@excalidraw/excalidraw 0.12.0-9a68dbf → 0.12.0-a271e42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +2 -1
  2. package/README.md +11 -7
  3. package/dist/excalidraw-assets/locales/bn-BD-json-906099d3f665de611389.js +1 -0
  4. package/dist/excalidraw-assets/locales/lt-LT-json-4147c3543dce75362050.js +1 -0
  5. package/dist/excalidraw-assets/locales/vi-VN-json-929afcbc15b2c06a64f2.js +1 -0
  6. package/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.js → vendor-ddc717b6da3bea42bb67.js} +2 -2
  7. package/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.js.LICENSE.txt → vendor-ddc717b6da3bea42bb67.js.LICENSE.txt} +0 -0
  8. package/dist/excalidraw-assets-dev/locales/{ar-SA-json-c8fa653de4977a22dad1.js → ar-SA-json-4bad5b5ff43b48c1e9a5.js} +0 -8
  9. package/dist/excalidraw-assets-dev/locales/{bg-BG-json-d7e517c7462119871c76.js → bg-BG-json-cbcbc92839539ec1816e.js} +0 -8
  10. package/dist/excalidraw-assets-dev/locales/bn-BD-json-23dc7c5cf87e10c0fa38.js +14 -0
  11. package/dist/excalidraw-assets-dev/locales/{ca-ES-json-465e286330127bad8841.js → ca-ES-json-8cc8fbe5df66d604ffc3.js} +0 -8
  12. package/dist/excalidraw-assets-dev/locales/{cs-CZ-json-a9cc158d187424de71d7.js → cs-CZ-json-dba21e0272554995c7d1.js} +0 -8
  13. package/dist/excalidraw-assets-dev/locales/{da-DK-json-81b641c9b272e91762b8.js → da-DK-json-bfbe643a377800d3d122.js} +0 -8
  14. package/dist/excalidraw-assets-dev/locales/{de-DE-json-e9f68b4434bb76d28151.js → de-DE-json-fe631cebdb2da354de25.js} +0 -8
  15. package/dist/excalidraw-assets-dev/locales/{el-GR-json-33bcaca5c1eb85d3d81a.js → el-GR-json-71dd4a99c18b08517ea4.js} +0 -8
  16. package/dist/excalidraw-assets-dev/locales/{es-ES-json-41e67e045d8f77e56a7a.js → es-ES-json-78ffeeedb2103c8e9e15.js} +0 -8
  17. package/dist/excalidraw-assets-dev/locales/{eu-ES-json-05199638b0e1e11061f3.js → eu-ES-json-cb70f440de0a76f6d69b.js} +0 -8
  18. package/dist/excalidraw-assets-dev/locales/{fa-IR-json-2a69e87cf2308b8e78f5.js → fa-IR-json-19fa55327f56b34b74d3.js} +0 -8
  19. package/dist/excalidraw-assets-dev/locales/{fi-FI-json-6f0f0bcd3593bcc8930a.js → fi-FI-json-50208311f1e4fc7cde1d.js} +0 -8
  20. package/dist/excalidraw-assets-dev/locales/{fr-FR-json-f53c7082a6f8691b7258.js → fr-FR-json-aa188d6228335106e7a0.js} +0 -8
  21. package/dist/excalidraw-assets-dev/locales/{gl-ES-json-5295fdf24f032f998f75.js → gl-ES-json-72548540dc6a9c01b240.js} +0 -8
  22. package/dist/excalidraw-assets-dev/locales/{he-IL-json-19fae6e424c8b418735d.js → he-IL-json-a62ed6086276dffb71fd.js} +0 -8
  23. package/dist/excalidraw-assets-dev/locales/{hi-IN-json-f04242b20685f34378a5.js → hi-IN-json-a929ddf2945cc4079a77.js} +0 -8
  24. package/dist/excalidraw-assets-dev/locales/{hu-HU-json-c8014a1b2a44d4885691.js → hu-HU-json-aaa54da52ca5ee068466.js} +0 -8
  25. package/dist/excalidraw-assets-dev/locales/{id-ID-json-bcd3ce43f1dbefe3f4d0.js → id-ID-json-fbee4b09ecbf4791e1e0.js} +0 -8
  26. package/dist/excalidraw-assets-dev/locales/{it-IT-json-946dc662ecab93b77e69.js → it-IT-json-b0eae328c3a49c21699f.js} +0 -8
  27. package/dist/excalidraw-assets-dev/locales/{ja-JP-json-77b3461742458e757b59.js → ja-JP-json-512054894cd1fae408e3.js} +0 -8
  28. package/dist/excalidraw-assets-dev/locales/{kab-KAB-json-5e733b113476a350e900.js → kab-KAB-json-dd04a087066d4715e744.js} +0 -8
  29. package/dist/excalidraw-assets-dev/locales/{kk-KZ-json-5ec5044574589896438e.js → kk-KZ-json-e7ce817c4e68640b3099.js} +0 -8
  30. package/dist/excalidraw-assets-dev/locales/{ko-KR-json-b6b0f0c8dc22ac7a3377.js → ko-KR-json-8b9fc794d8a77b6dffc4.js} +0 -8
  31. package/dist/excalidraw-assets-dev/locales/lt-LT-json-98d26affa1005499ac60.js +14 -0
  32. package/dist/excalidraw-assets-dev/locales/{lv-LV-json-2d1a7d044c33d030ecca.js → lv-LV-json-4c20b8e2ee74634c57ae.js} +0 -8
  33. package/dist/excalidraw-assets-dev/locales/{mr-IN-json-ed8cde2f50a5f3c08e85.js → mr-IN-json-165ab79d55f507272fd4.js} +0 -8
  34. package/dist/excalidraw-assets-dev/locales/{my-MM-json-600fc533d1a1c8d3e2f9.js → my-MM-json-098977a1778f20f3a53c.js} +0 -8
  35. package/dist/excalidraw-assets-dev/locales/{nb-NO-json-c7c63cfd529a92ac3510.js → nb-NO-json-3b7796c103baa51271a9.js} +0 -8
  36. package/dist/excalidraw-assets-dev/locales/{nl-NL-json-7e7200dded88b465781e.js → nl-NL-json-f2b834e213d9831504ac.js} +0 -8
  37. package/dist/excalidraw-assets-dev/locales/{nn-NO-json-d654941277fcbace33bf.js → nn-NO-json-82be69040c1ec437138f.js} +0 -8
  38. package/dist/excalidraw-assets-dev/locales/{oc-FR-json-2d347b7f54a867a5478f.js → oc-FR-json-e98b96eea154dfcded8b.js} +0 -8
  39. package/dist/excalidraw-assets-dev/locales/{pa-IN-json-63518bb328bf8b92790c.js → pa-IN-json-bb695a155f66b1c9385b.js} +0 -8
  40. package/dist/excalidraw-assets-dev/locales/{pl-PL-json-92de366ba93223fa3d6a.js → pl-PL-json-c802b8e3353ee92b1297.js} +0 -8
  41. package/dist/excalidraw-assets-dev/locales/{pt-BR-json-5abf09146a4f4387393d.js → pt-BR-json-395becbd0a0762796d55.js} +0 -8
  42. package/dist/excalidraw-assets-dev/locales/{pt-PT-json-c72abd8cf29d14347cf5.js → pt-PT-json-28b0243edfd2d1188d78.js} +0 -8
  43. package/dist/excalidraw-assets-dev/locales/{ro-RO-json-6903d070f824f8b91709.js → ro-RO-json-0b6a9ed696ac7c243e8d.js} +0 -8
  44. package/dist/excalidraw-assets-dev/locales/{ru-RU-json-110d8aec7823819bf4e3.js → ru-RU-json-a6c6479bfe4febbbc162.js} +0 -8
  45. package/dist/excalidraw-assets-dev/locales/{si-LK-json-ad2dff740d16a23684ff.js → si-LK-json-de30e8b93b04c9aa5708.js} +0 -8
  46. package/dist/excalidraw-assets-dev/locales/{sk-SK-json-209333495d21be527f89.js → sk-SK-json-1c1cc59d67308156afce.js} +0 -8
  47. package/dist/excalidraw-assets-dev/locales/{sl-SI-json-76bdeb34579c5b1f944f.js → sl-SI-json-eaf07f8494e7b5091add.js} +0 -8
  48. package/dist/excalidraw-assets-dev/locales/{sv-SE-json-6e768d07fff4e3ed6560.js → sv-SE-json-79dcebebf235b23c717e.js} +0 -8
  49. package/dist/excalidraw-assets-dev/locales/{ta-IN-json-059a459deba6d6230393.js → ta-IN-json-5212782b6c72fafb8ec2.js} +0 -8
  50. package/dist/excalidraw-assets-dev/locales/{tr-TR-json-7cc28f1f798ef2dd9864.js → tr-TR-json-f38f946cfbce79e9e21b.js} +0 -8
  51. package/dist/excalidraw-assets-dev/locales/{uk-UA-json-80b2990c3144c6bb1270.js → uk-UA-json-45d77feb9074985d4877.js} +0 -8
  52. package/dist/excalidraw-assets-dev/locales/{bn-BD-json-02993b6dba9e7f115b53.js → vi-VN-json-78f290fcef5e04912f86.js} +4 -12
  53. package/dist/excalidraw-assets-dev/locales/{zh-CN-json-26caa1a6379860230513.js → zh-CN-json-043751132a42a13d3de4.js} +0 -8
  54. package/dist/excalidraw-assets-dev/locales/{zh-HK-json-179f6dc61b14b96215fa.js → zh-HK-json-64105c4a0af0047b4d46.js} +0 -8
  55. package/dist/excalidraw-assets-dev/locales/{zh-TW-json-2aeeb73d79793ee69bfc.js → zh-TW-json-68624f1171bf9f71bf25.js} +0 -8
  56. package/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.js → vendor-2811fad3dc3b42ee3357.js} +1 -9
  57. package/dist/excalidraw.development.js +36 -267
  58. package/dist/excalidraw.production.min.js +1 -1
  59. package/package.json +1 -1
  60. package/types/actions/actionExport.d.ts +1 -1
  61. package/types/packages/common.webpack.dev.config.d.ts +71 -0
  62. package/types/packages/common.webpack.prod.config.d.ts +83 -0
  63. package/types/packages/excalidraw/dist/excalidraw-assets/locales/{bn-BD-json-aa99c5a33f005fb00c6b.d.ts → bn-BD-json-906099d3f665de611389.d.ts} +0 -0
  64. package/types/packages/excalidraw/dist/excalidraw-assets/locales/{lt-LT-json-7277ad8dae6d3e6607b3.d.ts → lt-LT-json-4147c3543dce75362050.d.ts} +0 -0
  65. package/types/packages/excalidraw/dist/excalidraw-assets/locales/{vi-VN-json-5c276b534d762658589c.d.ts → vi-VN-json-929afcbc15b2c06a64f2.d.ts} +0 -0
  66. package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.d.ts → vendor-ddc717b6da3bea42bb67.d.ts} +0 -0
  67. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ar-SA-json-c8fa653de4977a22dad1.d.ts → ar-SA-json-4bad5b5ff43b48c1e9a5.d.ts} +0 -0
  68. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{bg-BG-json-d7e517c7462119871c76.d.ts → bg-BG-json-cbcbc92839539ec1816e.d.ts} +0 -0
  69. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{bn-BD-json-02993b6dba9e7f115b53.d.ts → bn-BD-json-23dc7c5cf87e10c0fa38.d.ts} +0 -0
  70. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ca-ES-json-465e286330127bad8841.d.ts → ca-ES-json-8cc8fbe5df66d604ffc3.d.ts} +0 -0
  71. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{cs-CZ-json-a9cc158d187424de71d7.d.ts → cs-CZ-json-dba21e0272554995c7d1.d.ts} +0 -0
  72. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{da-DK-json-81b641c9b272e91762b8.d.ts → da-DK-json-bfbe643a377800d3d122.d.ts} +0 -0
  73. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{de-DE-json-e9f68b4434bb76d28151.d.ts → de-DE-json-fe631cebdb2da354de25.d.ts} +0 -0
  74. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{el-GR-json-33bcaca5c1eb85d3d81a.d.ts → el-GR-json-71dd4a99c18b08517ea4.d.ts} +0 -0
  75. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{es-ES-json-41e67e045d8f77e56a7a.d.ts → es-ES-json-78ffeeedb2103c8e9e15.d.ts} +0 -0
  76. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{eu-ES-json-05199638b0e1e11061f3.d.ts → eu-ES-json-cb70f440de0a76f6d69b.d.ts} +0 -0
  77. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{fa-IR-json-2a69e87cf2308b8e78f5.d.ts → fa-IR-json-19fa55327f56b34b74d3.d.ts} +0 -0
  78. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{fi-FI-json-6f0f0bcd3593bcc8930a.d.ts → fi-FI-json-50208311f1e4fc7cde1d.d.ts} +0 -0
  79. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{fr-FR-json-f53c7082a6f8691b7258.d.ts → fr-FR-json-aa188d6228335106e7a0.d.ts} +0 -0
  80. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{gl-ES-json-5295fdf24f032f998f75.d.ts → gl-ES-json-72548540dc6a9c01b240.d.ts} +0 -0
  81. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{he-IL-json-19fae6e424c8b418735d.d.ts → he-IL-json-a62ed6086276dffb71fd.d.ts} +0 -0
  82. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{hi-IN-json-f04242b20685f34378a5.d.ts → hi-IN-json-a929ddf2945cc4079a77.d.ts} +0 -0
  83. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{hu-HU-json-c8014a1b2a44d4885691.d.ts → hu-HU-json-aaa54da52ca5ee068466.d.ts} +0 -0
  84. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{id-ID-json-bcd3ce43f1dbefe3f4d0.d.ts → id-ID-json-fbee4b09ecbf4791e1e0.d.ts} +0 -0
  85. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{it-IT-json-946dc662ecab93b77e69.d.ts → it-IT-json-b0eae328c3a49c21699f.d.ts} +0 -0
  86. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ja-JP-json-77b3461742458e757b59.d.ts → ja-JP-json-512054894cd1fae408e3.d.ts} +0 -0
  87. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{kab-KAB-json-5e733b113476a350e900.d.ts → kab-KAB-json-dd04a087066d4715e744.d.ts} +0 -0
  88. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{kk-KZ-json-5ec5044574589896438e.d.ts → kk-KZ-json-e7ce817c4e68640b3099.d.ts} +0 -0
  89. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ko-KR-json-b6b0f0c8dc22ac7a3377.d.ts → ko-KR-json-8b9fc794d8a77b6dffc4.d.ts} +0 -0
  90. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{lt-LT-json-a17971ff33b8929e96d3.d.ts → lt-LT-json-98d26affa1005499ac60.d.ts} +0 -0
  91. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{lv-LV-json-2d1a7d044c33d030ecca.d.ts → lv-LV-json-4c20b8e2ee74634c57ae.d.ts} +0 -0
  92. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{mr-IN-json-ed8cde2f50a5f3c08e85.d.ts → mr-IN-json-165ab79d55f507272fd4.d.ts} +0 -0
  93. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{my-MM-json-600fc533d1a1c8d3e2f9.d.ts → my-MM-json-098977a1778f20f3a53c.d.ts} +0 -0
  94. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{nb-NO-json-c7c63cfd529a92ac3510.d.ts → nb-NO-json-3b7796c103baa51271a9.d.ts} +0 -0
  95. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{nl-NL-json-7e7200dded88b465781e.d.ts → nl-NL-json-f2b834e213d9831504ac.d.ts} +0 -0
  96. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{nn-NO-json-d654941277fcbace33bf.d.ts → nn-NO-json-82be69040c1ec437138f.d.ts} +0 -0
  97. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{oc-FR-json-2d347b7f54a867a5478f.d.ts → oc-FR-json-e98b96eea154dfcded8b.d.ts} +0 -0
  98. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{pa-IN-json-63518bb328bf8b92790c.d.ts → pa-IN-json-bb695a155f66b1c9385b.d.ts} +0 -0
  99. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{pl-PL-json-92de366ba93223fa3d6a.d.ts → pl-PL-json-c802b8e3353ee92b1297.d.ts} +0 -0
  100. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{pt-BR-json-5abf09146a4f4387393d.d.ts → pt-BR-json-395becbd0a0762796d55.d.ts} +0 -0
  101. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{pt-PT-json-c72abd8cf29d14347cf5.d.ts → pt-PT-json-28b0243edfd2d1188d78.d.ts} +0 -0
  102. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ro-RO-json-6903d070f824f8b91709.d.ts → ro-RO-json-0b6a9ed696ac7c243e8d.d.ts} +0 -0
  103. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ru-RU-json-110d8aec7823819bf4e3.d.ts → ru-RU-json-a6c6479bfe4febbbc162.d.ts} +0 -0
  104. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{si-LK-json-ad2dff740d16a23684ff.d.ts → si-LK-json-de30e8b93b04c9aa5708.d.ts} +0 -0
  105. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{sk-SK-json-209333495d21be527f89.d.ts → sk-SK-json-1c1cc59d67308156afce.d.ts} +0 -0
  106. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{sl-SI-json-76bdeb34579c5b1f944f.d.ts → sl-SI-json-eaf07f8494e7b5091add.d.ts} +0 -0
  107. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{sv-SE-json-6e768d07fff4e3ed6560.d.ts → sv-SE-json-79dcebebf235b23c717e.d.ts} +0 -0
  108. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{ta-IN-json-059a459deba6d6230393.d.ts → ta-IN-json-5212782b6c72fafb8ec2.d.ts} +0 -0
  109. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{tr-TR-json-7cc28f1f798ef2dd9864.d.ts → tr-TR-json-f38f946cfbce79e9e21b.d.ts} +0 -0
  110. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{uk-UA-json-80b2990c3144c6bb1270.d.ts → uk-UA-json-45d77feb9074985d4877.d.ts} +0 -0
  111. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{vi-VN-json-670ecb0ad40c0453bdfd.d.ts → vi-VN-json-78f290fcef5e04912f86.d.ts} +0 -0
  112. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{zh-CN-json-26caa1a6379860230513.d.ts → zh-CN-json-043751132a42a13d3de4.d.ts} +0 -0
  113. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{zh-HK-json-179f6dc61b14b96215fa.d.ts → zh-HK-json-64105c4a0af0047b4d46.d.ts} +0 -0
  114. package/types/packages/excalidraw/dist/excalidraw-assets-dev/locales/{zh-TW-json-2aeeb73d79793ee69bfc.d.ts → zh-TW-json-68624f1171bf9f71bf25.d.ts} +0 -0
  115. package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.d.ts → vendor-2811fad3dc3b42ee3357.d.ts} +0 -0
  116. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +4 -2
  117. package/types/packages/excalidraw/webpack.dev.config.d.ts +61 -72
  118. package/types/packages/excalidraw/webpack.prod.config.d.ts +70 -85
  119. package/types/packages/utils.d.ts +4 -1
  120. package/dist/excalidraw-assets/locales/bn-BD-json-aa99c5a33f005fb00c6b.js +0 -1
  121. package/dist/excalidraw-assets/locales/lt-LT-json-7277ad8dae6d3e6607b3.js +0 -1
  122. package/dist/excalidraw-assets/locales/vi-VN-json-5c276b534d762658589c.js +0 -1
  123. package/dist/excalidraw-assets-dev/locales/lt-LT-json-a17971ff33b8929e96d3.js +0 -22
  124. package/dist/excalidraw-assets-dev/locales/vi-VN-json-670ecb0ad40c0453bdfd.js +0 -22
@@ -1,11 +1,3 @@
1
- /*
2
- * ATTENTION: An "eval-source-map" devtool has been used.
3
- * This devtool is neither made for production nor for readable output files.
4
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
5
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
6
- * or disable the default devtool with "devtool: false".
7
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
- */
9
1
  (function webpackUniversalModuleDefinition(root, factory) {
10
2
  if(typeof exports === 'object' && typeof module === 'object')
11
3
  module.exports = factory(require("react"), require("react-dom"));
@@ -1010,223 +1002,7 @@ eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function mem
1010
1002
  \****************************************************************************************/
1011
1003
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1012
1004
 
1013
- var map = {
1014
- "./ar-SA.json": [
1015
- "../../locales/ar-SA.json",
1016
- "locales/ar-SA-json"
1017
- ],
1018
- "./bg-BG.json": [
1019
- "../../locales/bg-BG.json",
1020
- "locales/bg-BG-json"
1021
- ],
1022
- "./bn-BD.json": [
1023
- "../../locales/bn-BD.json",
1024
- "locales/bn-BD-json"
1025
- ],
1026
- "./ca-ES.json": [
1027
- "../../locales/ca-ES.json",
1028
- "locales/ca-ES-json"
1029
- ],
1030
- "./cs-CZ.json": [
1031
- "../../locales/cs-CZ.json",
1032
- "locales/cs-CZ-json"
1033
- ],
1034
- "./da-DK.json": [
1035
- "../../locales/da-DK.json",
1036
- "locales/da-DK-json"
1037
- ],
1038
- "./de-DE.json": [
1039
- "../../locales/de-DE.json",
1040
- "locales/de-DE-json"
1041
- ],
1042
- "./el-GR.json": [
1043
- "../../locales/el-GR.json",
1044
- "locales/el-GR-json"
1045
- ],
1046
- "./en.json": [
1047
- "../../locales/en.json"
1048
- ],
1049
- "./es-ES.json": [
1050
- "../../locales/es-ES.json",
1051
- "locales/es-ES-json"
1052
- ],
1053
- "./eu-ES.json": [
1054
- "../../locales/eu-ES.json",
1055
- "locales/eu-ES-json"
1056
- ],
1057
- "./fa-IR.json": [
1058
- "../../locales/fa-IR.json",
1059
- "locales/fa-IR-json"
1060
- ],
1061
- "./fi-FI.json": [
1062
- "../../locales/fi-FI.json",
1063
- "locales/fi-FI-json"
1064
- ],
1065
- "./fr-FR.json": [
1066
- "../../locales/fr-FR.json",
1067
- "locales/fr-FR-json"
1068
- ],
1069
- "./gl-ES.json": [
1070
- "../../locales/gl-ES.json",
1071
- "locales/gl-ES-json"
1072
- ],
1073
- "./he-IL.json": [
1074
- "../../locales/he-IL.json",
1075
- "locales/he-IL-json"
1076
- ],
1077
- "./hi-IN.json": [
1078
- "../../locales/hi-IN.json",
1079
- "locales/hi-IN-json"
1080
- ],
1081
- "./hu-HU.json": [
1082
- "../../locales/hu-HU.json",
1083
- "locales/hu-HU-json"
1084
- ],
1085
- "./id-ID.json": [
1086
- "../../locales/id-ID.json",
1087
- "locales/id-ID-json"
1088
- ],
1089
- "./it-IT.json": [
1090
- "../../locales/it-IT.json",
1091
- "locales/it-IT-json"
1092
- ],
1093
- "./ja-JP.json": [
1094
- "../../locales/ja-JP.json",
1095
- "locales/ja-JP-json"
1096
- ],
1097
- "./kab-KAB.json": [
1098
- "../../locales/kab-KAB.json",
1099
- "locales/kab-KAB-json"
1100
- ],
1101
- "./kk-KZ.json": [
1102
- "../../locales/kk-KZ.json",
1103
- "locales/kk-KZ-json"
1104
- ],
1105
- "./ko-KR.json": [
1106
- "../../locales/ko-KR.json",
1107
- "locales/ko-KR-json"
1108
- ],
1109
- "./lt-LT.json": [
1110
- "../../locales/lt-LT.json",
1111
- "locales/lt-LT-json"
1112
- ],
1113
- "./lv-LV.json": [
1114
- "../../locales/lv-LV.json",
1115
- "locales/lv-LV-json"
1116
- ],
1117
- "./mr-IN.json": [
1118
- "../../locales/mr-IN.json",
1119
- "locales/mr-IN-json"
1120
- ],
1121
- "./my-MM.json": [
1122
- "../../locales/my-MM.json",
1123
- "locales/my-MM-json"
1124
- ],
1125
- "./nb-NO.json": [
1126
- "../../locales/nb-NO.json",
1127
- "locales/nb-NO-json"
1128
- ],
1129
- "./nl-NL.json": [
1130
- "../../locales/nl-NL.json",
1131
- "locales/nl-NL-json"
1132
- ],
1133
- "./nn-NO.json": [
1134
- "../../locales/nn-NO.json",
1135
- "locales/nn-NO-json"
1136
- ],
1137
- "./oc-FR.json": [
1138
- "../../locales/oc-FR.json",
1139
- "locales/oc-FR-json"
1140
- ],
1141
- "./pa-IN.json": [
1142
- "../../locales/pa-IN.json",
1143
- "locales/pa-IN-json"
1144
- ],
1145
- "./percentages.json": [
1146
- "../../locales/percentages.json"
1147
- ],
1148
- "./pl-PL.json": [
1149
- "../../locales/pl-PL.json",
1150
- "locales/pl-PL-json"
1151
- ],
1152
- "./pt-BR.json": [
1153
- "../../locales/pt-BR.json",
1154
- "locales/pt-BR-json"
1155
- ],
1156
- "./pt-PT.json": [
1157
- "../../locales/pt-PT.json",
1158
- "locales/pt-PT-json"
1159
- ],
1160
- "./ro-RO.json": [
1161
- "../../locales/ro-RO.json",
1162
- "locales/ro-RO-json"
1163
- ],
1164
- "./ru-RU.json": [
1165
- "../../locales/ru-RU.json",
1166
- "locales/ru-RU-json"
1167
- ],
1168
- "./si-LK.json": [
1169
- "../../locales/si-LK.json",
1170
- "locales/si-LK-json"
1171
- ],
1172
- "./sk-SK.json": [
1173
- "../../locales/sk-SK.json",
1174
- "locales/sk-SK-json"
1175
- ],
1176
- "./sl-SI.json": [
1177
- "../../locales/sl-SI.json",
1178
- "locales/sl-SI-json"
1179
- ],
1180
- "./sv-SE.json": [
1181
- "../../locales/sv-SE.json",
1182
- "locales/sv-SE-json"
1183
- ],
1184
- "./ta-IN.json": [
1185
- "../../locales/ta-IN.json",
1186
- "locales/ta-IN-json"
1187
- ],
1188
- "./tr-TR.json": [
1189
- "../../locales/tr-TR.json",
1190
- "locales/tr-TR-json"
1191
- ],
1192
- "./uk-UA.json": [
1193
- "../../locales/uk-UA.json",
1194
- "locales/uk-UA-json"
1195
- ],
1196
- "./vi-VN.json": [
1197
- "../../locales/vi-VN.json",
1198
- "locales/vi-VN-json"
1199
- ],
1200
- "./zh-CN.json": [
1201
- "../../locales/zh-CN.json",
1202
- "locales/zh-CN-json"
1203
- ],
1204
- "./zh-HK.json": [
1205
- "../../locales/zh-HK.json",
1206
- "locales/zh-HK-json"
1207
- ],
1208
- "./zh-TW.json": [
1209
- "../../locales/zh-TW.json",
1210
- "locales/zh-TW-json"
1211
- ]
1212
- };
1213
- function webpackAsyncContext(req) {
1214
- if(!__webpack_require__.o(map, req)) {
1215
- return Promise.resolve().then(() => {
1216
- var e = new Error("Cannot find module '" + req + "'");
1217
- e.code = 'MODULE_NOT_FOUND';
1218
- throw e;
1219
- });
1220
- }
1221
-
1222
- var ids = map[req], id = ids[0];
1223
- return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {
1224
- return __webpack_require__.t(id, 3 | 16);
1225
- });
1226
- }
1227
- webpackAsyncContext.keys = () => (Object.keys(map));
1228
- webpackAsyncContext.id = "../../locales lazy recursive ^\\.\\/.*\\.json$";
1229
- module.exports = webpackAsyncContext;
1005
+ eval("var map = {\n\t\"./ar-SA.json\": [\n\t\t\"../../locales/ar-SA.json\",\n\t\t\"locales/ar-SA-json\"\n\t],\n\t\"./bg-BG.json\": [\n\t\t\"../../locales/bg-BG.json\",\n\t\t\"locales/bg-BG-json\"\n\t],\n\t\"./bn-BD.json\": [\n\t\t\"../../locales/bn-BD.json\",\n\t\t\"locales/bn-BD-json\"\n\t],\n\t\"./ca-ES.json\": [\n\t\t\"../../locales/ca-ES.json\",\n\t\t\"locales/ca-ES-json\"\n\t],\n\t\"./cs-CZ.json\": [\n\t\t\"../../locales/cs-CZ.json\",\n\t\t\"locales/cs-CZ-json\"\n\t],\n\t\"./da-DK.json\": [\n\t\t\"../../locales/da-DK.json\",\n\t\t\"locales/da-DK-json\"\n\t],\n\t\"./de-DE.json\": [\n\t\t\"../../locales/de-DE.json\",\n\t\t\"locales/de-DE-json\"\n\t],\n\t\"./el-GR.json\": [\n\t\t\"../../locales/el-GR.json\",\n\t\t\"locales/el-GR-json\"\n\t],\n\t\"./en.json\": [\n\t\t\"../../locales/en.json\"\n\t],\n\t\"./es-ES.json\": [\n\t\t\"../../locales/es-ES.json\",\n\t\t\"locales/es-ES-json\"\n\t],\n\t\"./eu-ES.json\": [\n\t\t\"../../locales/eu-ES.json\",\n\t\t\"locales/eu-ES-json\"\n\t],\n\t\"./fa-IR.json\": [\n\t\t\"../../locales/fa-IR.json\",\n\t\t\"locales/fa-IR-json\"\n\t],\n\t\"./fi-FI.json\": [\n\t\t\"../../locales/fi-FI.json\",\n\t\t\"locales/fi-FI-json\"\n\t],\n\t\"./fr-FR.json\": [\n\t\t\"../../locales/fr-FR.json\",\n\t\t\"locales/fr-FR-json\"\n\t],\n\t\"./gl-ES.json\": [\n\t\t\"../../locales/gl-ES.json\",\n\t\t\"locales/gl-ES-json\"\n\t],\n\t\"./he-IL.json\": [\n\t\t\"../../locales/he-IL.json\",\n\t\t\"locales/he-IL-json\"\n\t],\n\t\"./hi-IN.json\": [\n\t\t\"../../locales/hi-IN.json\",\n\t\t\"locales/hi-IN-json\"\n\t],\n\t\"./hu-HU.json\": [\n\t\t\"../../locales/hu-HU.json\",\n\t\t\"locales/hu-HU-json\"\n\t],\n\t\"./id-ID.json\": [\n\t\t\"../../locales/id-ID.json\",\n\t\t\"locales/id-ID-json\"\n\t],\n\t\"./it-IT.json\": [\n\t\t\"../../locales/it-IT.json\",\n\t\t\"locales/it-IT-json\"\n\t],\n\t\"./ja-JP.json\": [\n\t\t\"../../locales/ja-JP.json\",\n\t\t\"locales/ja-JP-json\"\n\t],\n\t\"./kab-KAB.json\": [\n\t\t\"../../locales/kab-KAB.json\",\n\t\t\"locales/kab-KAB-json\"\n\t],\n\t\"./kk-KZ.json\": [\n\t\t\"../../locales/kk-KZ.json\",\n\t\t\"locales/kk-KZ-json\"\n\t],\n\t\"./ko-KR.json\": [\n\t\t\"../../locales/ko-KR.json\",\n\t\t\"locales/ko-KR-json\"\n\t],\n\t\"./lt-LT.json\": [\n\t\t\"../../locales/lt-LT.json\",\n\t\t\"locales/lt-LT-json\"\n\t],\n\t\"./lv-LV.json\": [\n\t\t\"../../locales/lv-LV.json\",\n\t\t\"locales/lv-LV-json\"\n\t],\n\t\"./mr-IN.json\": [\n\t\t\"../../locales/mr-IN.json\",\n\t\t\"locales/mr-IN-json\"\n\t],\n\t\"./my-MM.json\": [\n\t\t\"../../locales/my-MM.json\",\n\t\t\"locales/my-MM-json\"\n\t],\n\t\"./nb-NO.json\": [\n\t\t\"../../locales/nb-NO.json\",\n\t\t\"locales/nb-NO-json\"\n\t],\n\t\"./nl-NL.json\": [\n\t\t\"../../locales/nl-NL.json\",\n\t\t\"locales/nl-NL-json\"\n\t],\n\t\"./nn-NO.json\": [\n\t\t\"../../locales/nn-NO.json\",\n\t\t\"locales/nn-NO-json\"\n\t],\n\t\"./oc-FR.json\": [\n\t\t\"../../locales/oc-FR.json\",\n\t\t\"locales/oc-FR-json\"\n\t],\n\t\"./pa-IN.json\": [\n\t\t\"../../locales/pa-IN.json\",\n\t\t\"locales/pa-IN-json\"\n\t],\n\t\"./percentages.json\": [\n\t\t\"../../locales/percentages.json\"\n\t],\n\t\"./pl-PL.json\": [\n\t\t\"../../locales/pl-PL.json\",\n\t\t\"locales/pl-PL-json\"\n\t],\n\t\"./pt-BR.json\": [\n\t\t\"../../locales/pt-BR.json\",\n\t\t\"locales/pt-BR-json\"\n\t],\n\t\"./pt-PT.json\": [\n\t\t\"../../locales/pt-PT.json\",\n\t\t\"locales/pt-PT-json\"\n\t],\n\t\"./ro-RO.json\": [\n\t\t\"../../locales/ro-RO.json\",\n\t\t\"locales/ro-RO-json\"\n\t],\n\t\"./ru-RU.json\": [\n\t\t\"../../locales/ru-RU.json\",\n\t\t\"locales/ru-RU-json\"\n\t],\n\t\"./si-LK.json\": [\n\t\t\"../../locales/si-LK.json\",\n\t\t\"locales/si-LK-json\"\n\t],\n\t\"./sk-SK.json\": [\n\t\t\"../../locales/sk-SK.json\",\n\t\t\"locales/sk-SK-json\"\n\t],\n\t\"./sl-SI.json\": [\n\t\t\"../../locales/sl-SI.json\",\n\t\t\"locales/sl-SI-json\"\n\t],\n\t\"./sv-SE.json\": [\n\t\t\"../../locales/sv-SE.json\",\n\t\t\"locales/sv-SE-json\"\n\t],\n\t\"./ta-IN.json\": [\n\t\t\"../../locales/ta-IN.json\",\n\t\t\"locales/ta-IN-json\"\n\t],\n\t\"./tr-TR.json\": [\n\t\t\"../../locales/tr-TR.json\",\n\t\t\"locales/tr-TR-json\"\n\t],\n\t\"./uk-UA.json\": [\n\t\t\"../../locales/uk-UA.json\",\n\t\t\"locales/uk-UA-json\"\n\t],\n\t\"./vi-VN.json\": [\n\t\t\"../../locales/vi-VN.json\",\n\t\t\"locales/vi-VN-json\"\n\t],\n\t\"./zh-CN.json\": [\n\t\t\"../../locales/zh-CN.json\",\n\t\t\"locales/zh-CN-json\"\n\t],\n\t\"./zh-HK.json\": [\n\t\t\"../../locales/zh-HK.json\",\n\t\t\"locales/zh-HK-json\"\n\t],\n\t\"./zh-TW.json\": [\n\t\t\"../../locales/zh-TW.json\",\n\t\t\"locales/zh-TW-json\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"../../locales lazy recursive ^\\\\.\\\\/.*\\\\.json$\";\nmodule.exports = webpackAsyncContext;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vbG9jYWxlcyBsYXp5IHJlY3Vyc2l2ZSBeXFwuXFwvLipcXC5qc29uJC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9sb2NhbGVzLyBsYXp5IF5cXC5cXC8uKlxcLmpzb24kIGNodW5rTmFtZTogbG9jYWxlcy9bcmVxdWVzdF0gbmFtZXNwYWNlIG9iamVjdD85ODU2Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBtYXAgPSB7XG5cdFwiLi9hci1TQS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvYXItU0EuanNvblwiLFxuXHRcdFwibG9jYWxlcy9hci1TQS1qc29uXCJcblx0XSxcblx0XCIuL2JnLUJHLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9iZy1CRy5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2JnLUJHLWpzb25cIlxuXHRdLFxuXHRcIi4vYm4tQkQuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2JuLUJELmpzb25cIixcblx0XHRcImxvY2FsZXMvYm4tQkQtanNvblwiXG5cdF0sXG5cdFwiLi9jYS1FUy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvY2EtRVMuanNvblwiLFxuXHRcdFwibG9jYWxlcy9jYS1FUy1qc29uXCJcblx0XSxcblx0XCIuL2NzLUNaLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9jcy1DWi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2NzLUNaLWpzb25cIlxuXHRdLFxuXHRcIi4vZGEtREsuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2RhLURLLmpzb25cIixcblx0XHRcImxvY2FsZXMvZGEtREstanNvblwiXG5cdF0sXG5cdFwiLi9kZS1ERS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvZGUtREUuanNvblwiLFxuXHRcdFwibG9jYWxlcy9kZS1ERS1qc29uXCJcblx0XSxcblx0XCIuL2VsLUdSLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9lbC1HUi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2VsLUdSLWpzb25cIlxuXHRdLFxuXHRcIi4vZW4uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2VuLmpzb25cIlxuXHRdLFxuXHRcIi4vZXMtRVMuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2VzLUVTLmpzb25cIixcblx0XHRcImxvY2FsZXMvZXMtRVMtanNvblwiXG5cdF0sXG5cdFwiLi9ldS1FUy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvZXUtRVMuanNvblwiLFxuXHRcdFwibG9jYWxlcy9ldS1FUy1qc29uXCJcblx0XSxcblx0XCIuL2ZhLUlSLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9mYS1JUi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2ZhLUlSLWpzb25cIlxuXHRdLFxuXHRcIi4vZmktRkkuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2ZpLUZJLmpzb25cIixcblx0XHRcImxvY2FsZXMvZmktRkktanNvblwiXG5cdF0sXG5cdFwiLi9mci1GUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvZnItRlIuanNvblwiLFxuXHRcdFwibG9jYWxlcy9mci1GUi1qc29uXCJcblx0XSxcblx0XCIuL2dsLUVTLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9nbC1FUy5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2dsLUVTLWpzb25cIlxuXHRdLFxuXHRcIi4vaGUtSUwuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2hlLUlMLmpzb25cIixcblx0XHRcImxvY2FsZXMvaGUtSUwtanNvblwiXG5cdF0sXG5cdFwiLi9oaS1JTi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvaGktSU4uanNvblwiLFxuXHRcdFwibG9jYWxlcy9oaS1JTi1qc29uXCJcblx0XSxcblx0XCIuL2h1LUhVLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9odS1IVS5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2h1LUhVLWpzb25cIlxuXHRdLFxuXHRcIi4vaWQtSUQuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2lkLUlELmpzb25cIixcblx0XHRcImxvY2FsZXMvaWQtSUQtanNvblwiXG5cdF0sXG5cdFwiLi9pdC1JVC5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvaXQtSVQuanNvblwiLFxuXHRcdFwibG9jYWxlcy9pdC1JVC1qc29uXCJcblx0XSxcblx0XCIuL2phLUpQLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9qYS1KUC5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2phLUpQLWpzb25cIlxuXHRdLFxuXHRcIi4va2FiLUtBQi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMva2FiLUtBQi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2thYi1LQUItanNvblwiXG5cdF0sXG5cdFwiLi9ray1LWi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMva2stS1ouanNvblwiLFxuXHRcdFwibG9jYWxlcy9ray1LWi1qc29uXCJcblx0XSxcblx0XCIuL2tvLUtSLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9rby1LUi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL2tvLUtSLWpzb25cIlxuXHRdLFxuXHRcIi4vbHQtTFQuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL2x0LUxULmpzb25cIixcblx0XHRcImxvY2FsZXMvbHQtTFQtanNvblwiXG5cdF0sXG5cdFwiLi9sdi1MVi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvbHYtTFYuanNvblwiLFxuXHRcdFwibG9jYWxlcy9sdi1MVi1qc29uXCJcblx0XSxcblx0XCIuL21yLUlOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9tci1JTi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL21yLUlOLWpzb25cIlxuXHRdLFxuXHRcIi4vbXktTU0uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL215LU1NLmpzb25cIixcblx0XHRcImxvY2FsZXMvbXktTU0tanNvblwiXG5cdF0sXG5cdFwiLi9uYi1OTy5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvbmItTk8uanNvblwiLFxuXHRcdFwibG9jYWxlcy9uYi1OTy1qc29uXCJcblx0XSxcblx0XCIuL25sLU5MLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9ubC1OTC5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL25sLU5MLWpzb25cIlxuXHRdLFxuXHRcIi4vbm4tTk8uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL25uLU5PLmpzb25cIixcblx0XHRcImxvY2FsZXMvbm4tTk8tanNvblwiXG5cdF0sXG5cdFwiLi9vYy1GUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvb2MtRlIuanNvblwiLFxuXHRcdFwibG9jYWxlcy9vYy1GUi1qc29uXCJcblx0XSxcblx0XCIuL3BhLUlOLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9wYS1JTi5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3BhLUlOLWpzb25cIlxuXHRdLFxuXHRcIi4vcGVyY2VudGFnZXMuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3BlcmNlbnRhZ2VzLmpzb25cIlxuXHRdLFxuXHRcIi4vcGwtUEwuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3BsLVBMLmpzb25cIixcblx0XHRcImxvY2FsZXMvcGwtUEwtanNvblwiXG5cdF0sXG5cdFwiLi9wdC1CUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvcHQtQlIuanNvblwiLFxuXHRcdFwibG9jYWxlcy9wdC1CUi1qc29uXCJcblx0XSxcblx0XCIuL3B0LVBULmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9wdC1QVC5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3B0LVBULWpzb25cIlxuXHRdLFxuXHRcIi4vcm8tUk8uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3JvLVJPLmpzb25cIixcblx0XHRcImxvY2FsZXMvcm8tUk8tanNvblwiXG5cdF0sXG5cdFwiLi9ydS1SVS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvcnUtUlUuanNvblwiLFxuXHRcdFwibG9jYWxlcy9ydS1SVS1qc29uXCJcblx0XSxcblx0XCIuL3NpLUxLLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9zaS1MSy5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3NpLUxLLWpzb25cIlxuXHRdLFxuXHRcIi4vc2stU0suanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3NrLVNLLmpzb25cIixcblx0XHRcImxvY2FsZXMvc2stU0stanNvblwiXG5cdF0sXG5cdFwiLi9zbC1TSS5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvc2wtU0kuanNvblwiLFxuXHRcdFwibG9jYWxlcy9zbC1TSS1qc29uXCJcblx0XSxcblx0XCIuL3N2LVNFLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy9zdi1TRS5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3N2LVNFLWpzb25cIlxuXHRdLFxuXHRcIi4vdGEtSU4uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3RhLUlOLmpzb25cIixcblx0XHRcImxvY2FsZXMvdGEtSU4tanNvblwiXG5cdF0sXG5cdFwiLi90ci1UUi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvdHItVFIuanNvblwiLFxuXHRcdFwibG9jYWxlcy90ci1UUi1qc29uXCJcblx0XSxcblx0XCIuL3VrLVVBLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy91ay1VQS5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3VrLVVBLWpzb25cIlxuXHRdLFxuXHRcIi4vdmktVk4uanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3ZpLVZOLmpzb25cIixcblx0XHRcImxvY2FsZXMvdmktVk4tanNvblwiXG5cdF0sXG5cdFwiLi96aC1DTi5qc29uXCI6IFtcblx0XHRcIi4uLy4uL2xvY2FsZXMvemgtQ04uanNvblwiLFxuXHRcdFwibG9jYWxlcy96aC1DTi1qc29uXCJcblx0XSxcblx0XCIuL3poLUhLLmpzb25cIjogW1xuXHRcdFwiLi4vLi4vbG9jYWxlcy96aC1ISy5qc29uXCIsXG5cdFx0XCJsb2NhbGVzL3poLUhLLWpzb25cIlxuXHRdLFxuXHRcIi4vemgtVFcuanNvblwiOiBbXG5cdFx0XCIuLi8uLi9sb2NhbGVzL3poLVRXLmpzb25cIixcblx0XHRcImxvY2FsZXMvemgtVFctanNvblwiXG5cdF1cbn07XG5mdW5jdGlvbiB3ZWJwYWNrQXN5bmNDb250ZXh0KHJlcSkge1xuXHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1hcCwgcmVxKSkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcblx0XHRcdHZhciBlID0gbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIiArIHJlcSArIFwiJ1wiKTtcblx0XHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHRcdHRocm93IGU7XG5cdFx0fSk7XG5cdH1cblxuXHR2YXIgaWRzID0gbWFwW3JlcV0sIGlkID0gaWRzWzBdO1xuXHRyZXR1cm4gUHJvbWlzZS5hbGwoaWRzLnNsaWNlKDEpLm1hcChfX3dlYnBhY2tfcmVxdWlyZV9fLmUpKS50aGVuKCgpID0+IHtcblx0XHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy50KGlkLCAzIHwgMTYpO1xuXHR9KTtcbn1cbndlYnBhY2tBc3luY0NvbnRleHQua2V5cyA9ICgpID0+IChPYmplY3Qua2V5cyhtYXApKTtcbndlYnBhY2tBc3luY0NvbnRleHQuaWQgPSBcIi4uLy4uL2xvY2FsZXMgbGF6eSByZWN1cnNpdmUgXlxcXFwuXFxcXC8uKlxcXFwuanNvbiRcIjtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0FzeW5jQ29udGV4dDsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../locales lazy recursive ^\\.\\/.*\\.json$\n");
1230
1006
 
1231
1007
  /***/ }),
1232
1008
 
@@ -1281,7 +1057,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1281
1057
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1282
1058
 
1283
1059
  "use strict";
1284
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Checkbox {\\n margin: 4px 0.3em;\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n user-select: none;\\n -webkit-tap-highlight-color: transparent;\\n}\\n.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n box-shadow: 0 0 0 2px #4dabf7;\\n}\\n.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) svg {\\n display: block;\\n opacity: 0.3;\\n}\\n.excalidraw .Checkbox:active .Checkbox-box {\\n box-shadow: 0 0 2px 1px inset #1c7ed6 !important;\\n}\\n.excalidraw .Checkbox:hover .Checkbox-box {\\n background-color: rgba(208, 235, 255, 0.2);\\n}\\n.excalidraw .Checkbox.is-checked .Checkbox-box {\\n background-color: #d0ebff;\\n}\\n.excalidraw .Checkbox.is-checked .Checkbox-box svg {\\n display: block;\\n}\\n.excalidraw .Checkbox.is-checked:hover .Checkbox-box {\\n background-color: #a5d8ff;\\n}\\n.excalidraw .Checkbox .Checkbox-box {\\n width: 22px;\\n height: 22px;\\n padding: 0;\\n flex: 0 0 auto;\\n margin: 0 1em;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n box-shadow: 0 0 0 2px #1c7ed6;\\n background-color: transparent;\\n border-radius: 4px;\\n color: #1c7ed6;\\n}\\n.excalidraw .Checkbox .Checkbox-box:focus {\\n box-shadow: 0 0 0 3px #1c7ed6;\\n}\\n.excalidraw .Checkbox .Checkbox-box svg {\\n display: none;\\n width: 16px;\\n height: 16px;\\n stroke-width: 3px;\\n}\\n.excalidraw .Checkbox .Checkbox-label {\\n display: flex;\\n align-items: center;\\n}\\n.excalidraw .Checkbox .excalidraw-tooltip-icon {\\n width: 1em;\\n height: 1em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/CheckboxItem.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,iBAAA;EACA,aAAA;EACA,mBAAA;EAEA,eAAA;EACA,iBAAA;EAEA,wCAAA;AACJ;AACI;EACE,6BAAA;AACN;AAGM;EACE,cAAA;EACA,YAAA;AADR;AAMM;EACE,gDAAA;AAJR;AASM;EACE,0CAAA;AAPR;AAYM;EACE,yBAAA;AAVR;AAWQ;EACE,cAAA;AATV;AAYM;EACE,yBAAA;AAVR;AAcI;EACE,WAAA;EACA,YAAA;EACA,UAAA;EACA,cAAA;EAEA,aAAA;EAEA,aAAA;EACA,mBAAA;EACA,uBAAA;EAEA,6BAAA;EACA,6BAAA;EACA,kBAAA;EAEA,cAAA;AAhBN;AAkBM;EACE,6BAAA;AAhBR;AAmBM;EACE,aAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;AAjBR;AAqBI;EACE,aAAA;EACA,mBAAA;AAnBN;AAsBI;EACE,UAAA;EACA,WAAA;AApBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Checkbox {\\n margin: 4px 0.3em;\\n display: flex;\\n align-items: center;\\n\\n cursor: pointer;\\n user-select: none;\\n\\n -webkit-tap-highlight-color: transparent;\\n\\n &:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n box-shadow: 0 0 0 2px #{$oc-blue-4};\\n }\\n\\n &:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n svg {\\n display: block;\\n opacity: 0.3;\\n }\\n }\\n\\n &:active {\\n .Checkbox-box {\\n box-shadow: 0 0 2px 1px inset #{$oc-blue-7} !important;\\n }\\n }\\n\\n &:hover {\\n .Checkbox-box {\\n background-color: fade-out($oc-blue-1, 0.8);\\n }\\n }\\n\\n &.is-checked {\\n .Checkbox-box {\\n background-color: #{$oc-blue-1};\\n svg {\\n display: block;\\n }\\n }\\n &:hover .Checkbox-box {\\n background-color: #{$oc-blue-2};\\n }\\n }\\n\\n .Checkbox-box {\\n width: 22px;\\n height: 22px;\\n padding: 0;\\n flex: 0 0 auto;\\n\\n margin: 0 1em;\\n\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n\\n box-shadow: 0 0 0 2px #{$oc-blue-7};\\n background-color: transparent;\\n border-radius: 4px;\\n\\n color: #{$oc-blue-7};\\n\\n &:focus {\\n box-shadow: 0 0 0 3px #{$oc-blue-7};\\n }\\n\\n svg {\\n display: none;\\n width: 16px;\\n height: 16px;\\n stroke-width: 3px;\\n }\\n }\\n\\n .Checkbox-label {\\n display: flex;\\n align-items: center;\\n }\\n\\n .excalidraw-tooltip-icon {\\n width: 1em;\\n height: 1em;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLDJCQUEyQixzQkFBc0Isa0JBQWtCLHdCQUF3QixvQkFBb0Isc0JBQXNCLDZDQUE2QyxHQUFHLDBFQUEwRSxrQ0FBa0MsR0FBRyw4RUFBOEUsbUJBQW1CLGlCQUFpQixHQUFHLDhDQUE4QyxxREFBcUQsR0FBRyw2Q0FBNkMsK0NBQStDLEdBQUcsa0RBQWtELDhCQUE4QixHQUFHLHNEQUFzRCxtQkFBbUIsR0FBRyx3REFBd0QsOEJBQThCLEdBQUcsdUNBQXVDLGdCQUFnQixpQkFBaUIsZUFBZSxtQkFBbUIsa0JBQWtCLGtCQUFrQix3QkFBd0IsNEJBQTRCLGtDQUFrQyxrQ0FBa0MsdUJBQXVCLG1CQUFtQixHQUFHLDZDQUE2QyxrQ0FBa0MsR0FBRywyQ0FBMkMsa0JBQWtCLGdCQUFnQixpQkFBaUIsc0JBQXNCLEdBQUcseUNBQXlDLGtCQUFrQix3QkFBd0IsR0FBRyxrREFBa0QsZUFBZSxnQkFBZ0IsR0FBRyxPQUFPLG9KQUFvSixXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsVUFBVSxpRUFBaUUsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLGVBQWUsd0JBQXdCLG9CQUFvQiwwQkFBMEIsd0JBQXdCLHdCQUF3QixpREFBaUQsNERBQTRELGdDQUFnQyxZQUFZLE9BQU8sNERBQTRELGFBQWEseUJBQXlCLHVCQUF1QixTQUFTLE9BQU8sa0JBQWtCLHVCQUF1QiwwQ0FBMEMsWUFBWSxXQUFXLFNBQVMsT0FBTyxpQkFBaUIsdUJBQXVCLHNEQUFzRCxTQUFTLE9BQU8sc0JBQXNCLHVCQUF1Qiw4QkFBOEIsWUFBWSxlQUFlLDJCQUEyQixXQUFXLFNBQVMsK0JBQStCLDhCQUE4QixZQUFZLFNBQVMsT0FBTyx1QkFBdUIsb0JBQW9CLHFCQUFxQixtQkFBbUIsdUJBQXVCLHdCQUF3Qix3QkFBd0IsNEJBQTRCLGdDQUFnQyxrQ0FBa0MsWUFBWSxzQ0FBc0MsMkJBQTJCLG1CQUFtQixZQUFZLG1CQUFtQixrQ0FBa0MsWUFBWSxTQUFTLGVBQWUsd0JBQXdCLHNCQUFzQix1QkFBdUIsNEJBQTRCLFNBQVMsT0FBTyx5QkFBeUIsc0JBQXNCLDRCQUE0QixPQUFPLGtDQUFrQyxtQkFBbUIsb0JBQW9CLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUNyeko7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS5zY3NzPzRlMjUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3gge1xcbiAgbWFyZ2luOiA0cHggMC4zZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94OmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggIzRkYWJmNztcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94OmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSBzdmcge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbi5leGNhbGlkcmF3IC5DaGVja2JveDphY3RpdmUgLkNoZWNrYm94LWJveCB7XFxuICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCBpbnNldCAjMWM3ZWQ2ICFpbXBvcnRhbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5DaGVja2JveDpob3ZlciAuQ2hlY2tib3gtYm94IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjA4LCAyMzUsIDI1NSwgMC4yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94LmlzLWNoZWNrZWQgLkNoZWNrYm94LWJveCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlYmZmO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3guaXMtY2hlY2tlZCAuQ2hlY2tib3gtYm94IHN2ZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94LmlzLWNoZWNrZWQ6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTVkOGZmO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWJveCB7XFxuICB3aWR0aDogMjJweDtcXG4gIGhlaWdodDogMjJweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmbGV4OiAwIDAgYXV0bztcXG4gIG1hcmdpbjogMCAxZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMxYzdlZDY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGNvbG9yOiAjMWM3ZWQ2O1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWJveDpmb2N1cyB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAzcHggIzFjN2VkNjtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94IC5DaGVja2JveC1ib3ggc3ZnIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHN0cm9rZS13aWR0aDogM3B4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWxhYmVsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLmV4Y2FsaWRyYXctdG9vbHRpcC1pY29uIHtcXG4gIHdpZHRoOiAxZW07XFxuICBoZWlnaHQ6IDFlbTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUFFO0VBQ0UsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFFQSxlQUFBO0VBQ0EsaUJBQUE7RUFFQSx3Q0FBQTtBQUNKO0FBQ0k7RUFDRSw2QkFBQTtBQUNOO0FBR007RUFDRSxjQUFBO0VBQ0EsWUFBQTtBQURSO0FBTU07RUFDRSxnREFBQTtBQUpSO0FBU007RUFDRSwwQ0FBQTtBQVBSO0FBWU07RUFDRSx5QkFBQTtBQVZSO0FBV1E7RUFDRSxjQUFBO0FBVFY7QUFZTTtFQUNFLHlCQUFBO0FBVlI7QUFjSTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7RUFFQSxhQUFBO0VBRUEsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFFQSw2QkFBQTtFQUNBLDZCQUFBO0VBQ0Esa0JBQUE7RUFFQSxjQUFBO0FBaEJOO0FBa0JNO0VBQ0UsNkJBQUE7QUFoQlI7QUFtQk07RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQWpCUjtBQXFCSTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtBQW5CTjtBQXNCSTtFQUNFLFVBQUE7RUFDQSxXQUFBO0FBcEJOXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC5DaGVja2JveCB7XFxuICAgIG1hcmdpbjogNHB4IDAuM2VtO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcbiAgICAmOmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICN7JG9jLWJsdWUtNH07XFxuICAgIH1cXG5cXG4gICAgJjpob3Zlcjpub3QoLmlzLWNoZWNrZWQpIC5DaGVja2JveC1ib3g6bm90KDpmb2N1cykge1xcbiAgICAgIHN2ZyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG9wYWNpdHk6IDAuMztcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIC5DaGVja2JveC1ib3gge1xcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCAxcHggaW5zZXQgI3skb2MtYmx1ZS03fSAhaW1wb3J0YW50O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICAuQ2hlY2tib3gtYm94IHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRvYy1ibHVlLTEsIDAuOCk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICYuaXMtY2hlY2tlZCB7XFxuICAgICAgLkNoZWNrYm94LWJveCB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRvYy1ibHVlLTF9O1xcbiAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICAgICY6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRvYy1ibHVlLTJ9O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAuQ2hlY2tib3gtYm94IHtcXG4gICAgICB3aWR0aDogMjJweDtcXG4gICAgICBoZWlnaHQ6IDIycHg7XFxuICAgICAgcGFkZGluZzogMDtcXG4gICAgICBmbGV4OiAwIDAgYXV0bztcXG5cXG4gICAgICBtYXJnaW46IDAgMWVtO1xcblxcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG5cXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggI3skb2MtYmx1ZS03fTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuXFxuICAgICAgY29sb3I6ICN7JG9jLWJsdWUtN307XFxuXFxuICAgICAgJjpmb2N1cyB7XFxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggI3skb2MtYmx1ZS03fTtcXG4gICAgICB9XFxuXFxuICAgICAgc3ZnIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICB3aWR0aDogMTZweDtcXG4gICAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICAgIHN0cm9rZS13aWR0aDogM3B4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAuQ2hlY2tib3gtbGFiZWwge1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgfVxcblxcbiAgICAuZXhjYWxpZHJhdy10b29sdGlwLWljb24ge1xcbiAgICAgIHdpZHRoOiAxZW07XFxuICAgICAgaGVpZ2h0OiAxZW07XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/CheckboxItem.scss\n");
1060
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Checkbox {\\n margin: 4px 0.3em;\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n -webkit-user-select: none;\\n user-select: none;\\n -webkit-tap-highlight-color: transparent;\\n}\\n.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n box-shadow: 0 0 0 2px #4dabf7;\\n}\\n.excalidraw .Checkbox:hover:not(.is-checked) .Checkbox-box:not(:focus) svg {\\n display: block;\\n opacity: 0.3;\\n}\\n.excalidraw .Checkbox:active .Checkbox-box {\\n box-shadow: 0 0 2px 1px inset #1c7ed6 !important;\\n}\\n.excalidraw .Checkbox:hover .Checkbox-box {\\n background-color: rgba(208, 235, 255, 0.2);\\n}\\n.excalidraw .Checkbox.is-checked .Checkbox-box {\\n background-color: #d0ebff;\\n}\\n.excalidraw .Checkbox.is-checked .Checkbox-box svg {\\n display: block;\\n}\\n.excalidraw .Checkbox.is-checked:hover .Checkbox-box {\\n background-color: #a5d8ff;\\n}\\n.excalidraw .Checkbox .Checkbox-box {\\n width: 22px;\\n height: 22px;\\n padding: 0;\\n flex: 0 0 auto;\\n margin: 0 1em;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n box-shadow: 0 0 0 2px #1c7ed6;\\n background-color: transparent;\\n border-radius: 4px;\\n color: #1c7ed6;\\n}\\n.excalidraw .Checkbox .Checkbox-box:focus {\\n box-shadow: 0 0 0 3px #1c7ed6;\\n}\\n.excalidraw .Checkbox .Checkbox-box svg {\\n display: none;\\n width: 16px;\\n height: 16px;\\n stroke-width: 3px;\\n}\\n.excalidraw .Checkbox .Checkbox-label {\\n display: flex;\\n align-items: center;\\n}\\n.excalidraw .Checkbox .excalidraw-tooltip-icon {\\n width: 1em;\\n height: 1em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/CheckboxItem.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,iBAAA;EACA,aAAA;EACA,mBAAA;EAEA,eAAA;EACA,yBAAA;UAAA,iBAAA;EAEA,wCAAA;AACJ;AACI;EACE,6BAAA;AACN;AAGM;EACE,cAAA;EACA,YAAA;AADR;AAMM;EACE,gDAAA;AAJR;AASM;EACE,0CAAA;AAPR;AAYM;EACE,yBAAA;AAVR;AAWQ;EACE,cAAA;AATV;AAYM;EACE,yBAAA;AAVR;AAcI;EACE,WAAA;EACA,YAAA;EACA,UAAA;EACA,cAAA;EAEA,aAAA;EAEA,aAAA;EACA,mBAAA;EACA,uBAAA;EAEA,6BAAA;EACA,6BAAA;EACA,kBAAA;EAEA,cAAA;AAhBN;AAkBM;EACE,6BAAA;AAhBR;AAmBM;EACE,aAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;AAjBR;AAqBI;EACE,aAAA;EACA,mBAAA;AAnBN;AAsBI;EACE,UAAA;EACA,WAAA;AApBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Checkbox {\\n margin: 4px 0.3em;\\n display: flex;\\n align-items: center;\\n\\n cursor: pointer;\\n user-select: none;\\n\\n -webkit-tap-highlight-color: transparent;\\n\\n &:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n box-shadow: 0 0 0 2px #{$oc-blue-4};\\n }\\n\\n &:hover:not(.is-checked) .Checkbox-box:not(:focus) {\\n svg {\\n display: block;\\n opacity: 0.3;\\n }\\n }\\n\\n &:active {\\n .Checkbox-box {\\n box-shadow: 0 0 2px 1px inset #{$oc-blue-7} !important;\\n }\\n }\\n\\n &:hover {\\n .Checkbox-box {\\n background-color: fade-out($oc-blue-1, 0.8);\\n }\\n }\\n\\n &.is-checked {\\n .Checkbox-box {\\n background-color: #{$oc-blue-1};\\n svg {\\n display: block;\\n }\\n }\\n &:hover .Checkbox-box {\\n background-color: #{$oc-blue-2};\\n }\\n }\\n\\n .Checkbox-box {\\n width: 22px;\\n height: 22px;\\n padding: 0;\\n flex: 0 0 auto;\\n\\n margin: 0 1em;\\n\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n\\n box-shadow: 0 0 0 2px #{$oc-blue-7};\\n background-color: transparent;\\n border-radius: 4px;\\n\\n color: #{$oc-blue-7};\\n\\n &:focus {\\n box-shadow: 0 0 0 3px #{$oc-blue-7};\\n }\\n\\n svg {\\n display: none;\\n width: 16px;\\n height: 16px;\\n stroke-width: 3px;\\n }\\n }\\n\\n .Checkbox-label {\\n display: flex;\\n align-items: center;\\n }\\n\\n .excalidraw-tooltip-icon {\\n width: 1em;\\n height: 1em;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLDJCQUEyQixzQkFBc0Isa0JBQWtCLHdCQUF3QixvQkFBb0IsOEJBQThCLDhCQUE4Qiw2Q0FBNkMsR0FBRywwRUFBMEUsa0NBQWtDLEdBQUcsOEVBQThFLG1CQUFtQixpQkFBaUIsR0FBRyw4Q0FBOEMscURBQXFELEdBQUcsNkNBQTZDLCtDQUErQyxHQUFHLGtEQUFrRCw4QkFBOEIsR0FBRyxzREFBc0QsbUJBQW1CLEdBQUcsd0RBQXdELDhCQUE4QixHQUFHLHVDQUF1QyxnQkFBZ0IsaUJBQWlCLGVBQWUsbUJBQW1CLGtCQUFrQixrQkFBa0Isd0JBQXdCLDRCQUE0QixrQ0FBa0Msa0NBQWtDLHVCQUF1QixtQkFBbUIsR0FBRyw2Q0FBNkMsa0NBQWtDLEdBQUcsMkNBQTJDLGtCQUFrQixnQkFBZ0IsaUJBQWlCLHNCQUFzQixHQUFHLHlDQUF5QyxrQkFBa0Isd0JBQXdCLEdBQUcsa0RBQWtELGVBQWUsZ0JBQWdCLEdBQUcsT0FBTyxvSkFBb0osV0FBVyxXQUFXLE9BQU8sS0FBSyxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsVUFBVSxpRUFBaUUsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLGVBQWUsd0JBQXdCLG9CQUFvQiwwQkFBMEIsd0JBQXdCLHdCQUF3QixpREFBaUQsNERBQTRELGdDQUFnQyxZQUFZLE9BQU8sNERBQTRELGFBQWEseUJBQXlCLHVCQUF1QixTQUFTLE9BQU8sa0JBQWtCLHVCQUF1QiwwQ0FBMEMsWUFBWSxXQUFXLFNBQVMsT0FBTyxpQkFBaUIsdUJBQXVCLHNEQUFzRCxTQUFTLE9BQU8sc0JBQXNCLHVCQUF1Qiw4QkFBOEIsWUFBWSxlQUFlLDJCQUEyQixXQUFXLFNBQVMsK0JBQStCLDhCQUE4QixZQUFZLFNBQVMsT0FBTyx1QkFBdUIsb0JBQW9CLHFCQUFxQixtQkFBbUIsdUJBQXVCLHdCQUF3Qix3QkFBd0IsNEJBQTRCLGdDQUFnQyxrQ0FBa0MsWUFBWSxzQ0FBc0MsMkJBQTJCLG1CQUFtQixZQUFZLG1CQUFtQixrQ0FBa0MsWUFBWSxTQUFTLGVBQWUsd0JBQXdCLHNCQUFzQix1QkFBdUIsNEJBQTRCLFNBQVMsT0FBTyx5QkFBeUIsc0JBQXNCLDRCQUE0QixPQUFPLGtDQUFrQyxtQkFBbUIsb0JBQW9CLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUN0Mko7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NoZWNrYm94SXRlbS5zY3NzPzRlMjUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3gge1xcbiAgbWFyZ2luOiA0cHggMC4zZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94OmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggIzRkYWJmNztcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94OmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSBzdmcge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbi5leGNhbGlkcmF3IC5DaGVja2JveDphY3RpdmUgLkNoZWNrYm94LWJveCB7XFxuICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCBpbnNldCAjMWM3ZWQ2ICFpbXBvcnRhbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5DaGVja2JveDpob3ZlciAuQ2hlY2tib3gtYm94IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjA4LCAyMzUsIDI1NSwgMC4yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94LmlzLWNoZWNrZWQgLkNoZWNrYm94LWJveCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlYmZmO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3guaXMtY2hlY2tlZCAuQ2hlY2tib3gtYm94IHN2ZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94LmlzLWNoZWNrZWQ6aG92ZXIgLkNoZWNrYm94LWJveCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTVkOGZmO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWJveCB7XFxuICB3aWR0aDogMjJweDtcXG4gIGhlaWdodDogMjJweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmbGV4OiAwIDAgYXV0bztcXG4gIG1hcmdpbjogMCAxZW07XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMxYzdlZDY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGNvbG9yOiAjMWM3ZWQ2O1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWJveDpmb2N1cyB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAzcHggIzFjN2VkNjtcXG59XFxuLmV4Y2FsaWRyYXcgLkNoZWNrYm94IC5DaGVja2JveC1ib3ggc3ZnIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHN0cm9rZS13aWR0aDogM3B4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLkNoZWNrYm94LWxhYmVsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZXhjYWxpZHJhdyAuQ2hlY2tib3ggLmV4Y2FsaWRyYXctdG9vbHRpcC1pY29uIHtcXG4gIHdpZHRoOiAxZW07XFxuICBoZWlnaHQ6IDFlbTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW0uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUFFO0VBQ0UsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFFQSxlQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtFQUVBLHdDQUFBO0FBQ0o7QUFDSTtFQUNFLDZCQUFBO0FBQ047QUFHTTtFQUNFLGNBQUE7RUFDQSxZQUFBO0FBRFI7QUFNTTtFQUNFLGdEQUFBO0FBSlI7QUFTTTtFQUNFLDBDQUFBO0FBUFI7QUFZTTtFQUNFLHlCQUFBO0FBVlI7QUFXUTtFQUNFLGNBQUE7QUFUVjtBQVlNO0VBQ0UseUJBQUE7QUFWUjtBQWNJO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsY0FBQTtFQUVBLGFBQUE7RUFFQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUVBLDZCQUFBO0VBQ0EsNkJBQUE7RUFDQSxrQkFBQTtFQUVBLGNBQUE7QUFoQk47QUFrQk07RUFDRSw2QkFBQTtBQWhCUjtBQW1CTTtFQUNFLGFBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FBakJSO0FBcUJJO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0FBbkJOO0FBc0JJO0VBQ0UsVUFBQTtFQUNBLFdBQUE7QUFwQk5cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLkNoZWNrYm94IHtcXG4gICAgbWFyZ2luOiA0cHggMC4zZW07XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuXFxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFxuICAgICY6aG92ZXI6bm90KC5pcy1jaGVja2VkKSAuQ2hlY2tib3gtYm94Om5vdCg6Zm9jdXMpIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggI3skb2MtYmx1ZS00fTtcXG4gICAgfVxcblxcbiAgICAmOmhvdmVyOm5vdCguaXMtY2hlY2tlZCkgLkNoZWNrYm94LWJveDpub3QoOmZvY3VzKSB7XFxuICAgICAgc3ZnIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgb3BhY2l0eTogMC4zO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgLkNoZWNrYm94LWJveCB7XFxuICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDFweCBpbnNldCAjeyRvYy1ibHVlLTd9ICFpbXBvcnRhbnQ7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIC5DaGVja2JveC1ib3gge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJG9jLWJsdWUtMSwgMC44KTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJi5pcy1jaGVja2VkIHtcXG4gICAgICAuQ2hlY2tib3gtYm94IHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JG9jLWJsdWUtMX07XFxuICAgICAgICBzdmcge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgJjpob3ZlciAuQ2hlY2tib3gtYm94IHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JG9jLWJsdWUtMn07XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5DaGVja2JveC1ib3gge1xcbiAgICAgIHdpZHRoOiAyMnB4O1xcbiAgICAgIGhlaWdodDogMjJweDtcXG4gICAgICBwYWRkaW5nOiAwO1xcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xcblxcbiAgICAgIG1hcmdpbjogMCAxZW07XFxuXFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjeyRvYy1ibHVlLTd9O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG5cXG4gICAgICBjb2xvcjogI3skb2MtYmx1ZS03fTtcXG5cXG4gICAgICAmOmZvY3VzIHtcXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAjeyRvYy1ibHVlLTd9O1xcbiAgICAgIH1cXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIHdpZHRoOiAxNnB4O1xcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xcbiAgICAgICAgc3Ryb2tlLXdpZHRoOiAzcHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5DaGVja2JveC1sYWJlbCB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICB9XFxuXFxuICAgIC5leGNhbGlkcmF3LXRvb2x0aXAtaWNvbiB7XFxuICAgICAgd2lkdGg6IDFlbTtcXG4gICAgICBoZWlnaHQ6IDFlbTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/CheckboxItem.scss\n");
1285
1061
 
1286
1062
  /***/ }),
1287
1063
 
@@ -1303,7 +1079,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1303
1079
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1304
1080
 
1305
1081
  "use strict";
1306
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg== */ \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .color-picker {\\n background: var(--popup-bg-color);\\n border: 0 solid rgba(255, 255, 255, 0.25);\\n box-shadow: rgba(0, 0, 0, 0.25) 0 1px 4px;\\n border-radius: 4px;\\n position: absolute;\\n}\\n:root[dir=ltr] .excalidraw .color-picker {\\n left: -5.5px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker {\\n right: -5.5px;\\n}\\n.excalidraw .color-picker-control-container {\\n display: grid;\\n grid-template-columns: auto 1fr;\\n align-items: center;\\n}\\n.excalidraw .color-picker-triangle {\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 9px 10px;\\n border-color: transparent transparent var(--popup-bg-color);\\n position: absolute;\\n top: -10px;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-triangle {\\n left: 12px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-triangle {\\n right: 12px;\\n}\\n.excalidraw .color-picker-triangle-shadow {\\n border-color: transparent transparent rgba(0, 0, 0, 0.1);\\n top: -11px;\\n}\\n.excalidraw .color-picker-content--default {\\n padding: 0.5rem;\\n display: grid;\\n grid-template-columns: repeat(5, auto);\\n grid-gap: 0.5rem;\\n border-radius: 4px;\\n}\\n.excalidraw .color-picker-content--default:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .color-picker-content--canvas {\\n display: flex;\\n flex-direction: column;\\n padding: 0.25rem;\\n}\\n.excalidraw .color-picker-content--canvas-title {\\n color: #868e96;\\n font-size: 12px;\\n padding: 0 0.25rem;\\n}\\n.excalidraw .color-picker-content--canvas-colors {\\n padding: 0.5rem 0;\\n}\\n.excalidraw .color-picker-content--canvas-colors .color-picker-swatch {\\n margin: 0 0.25rem;\\n}\\n.excalidraw .color-picker-content .color-input-container {\\n grid-column: 1/span 5;\\n}\\n.excalidraw .color-picker-swatch {\\n position: relative;\\n height: 1.875rem;\\n width: 1.875rem;\\n cursor: pointer;\\n border-radius: 4px;\\n margin: 0;\\n box-sizing: border-box;\\n border: 1px solid #ddd;\\n background-color: currentColor !important;\\n filter: var(--theme-filter);\\n}\\n.excalidraw .color-picker-swatch:focus {\\n /* TODO: only show the border when the color is too light to see as a shadow */\\n box-shadow: 0 0 4px 1px currentColor;\\n border-color: var(--select-highlight-color);\\n}\\n.excalidraw .color-picker-transparent {\\n border-radius: 4px;\\n box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px inset;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n.excalidraw .color-picker-transparent,\\n.excalidraw .color-picker-label-swatch {\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") left center;\\n}\\n.excalidraw .color-picker-hash {\\n background: var(--input-border-color);\\n height: 1.875rem;\\n width: 1.875rem;\\n color: var(--input-label-color);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-hash {\\n border-radius: 4px 0 0 4px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-hash {\\n border-radius: 0 4px 4px 0;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::before,\\n.excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n content: \\\"\\\";\\n width: 1px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n background: var(--input-border-color);\\n}\\n:root[dir=ltr] .excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n right: -1px;\\n}\\n:root[dir=rtl] .excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n left: -1px;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n background: var(--input-bg-color);\\n}\\n:root[dir=ltr] .excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n right: -2px;\\n}\\n:root[dir=rtl] .excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n left: -2px;\\n}\\n.excalidraw .color-input-container {\\n display: flex;\\n}\\n.excalidraw .color-picker-input {\\n width: 11ch;\\n /* length of `transparent` */\\n margin: 0;\\n font-size: 1rem;\\n background-color: var(--input-bg-color);\\n color: var(--text-primary-color);\\n border: 0;\\n outline: none;\\n height: 1.75em;\\n box-shadow: var(--input-border-color) 0 0 0 1px inset;\\n float: left;\\n padding: 1px;\\n padding-inline-start: 0.5em;\\n appearance: none;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-input {\\n border-radius: 0 4px 4px 0;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-input {\\n border-radius: 4px 0 0 4px;\\n}\\n.excalidraw .color-picker-label-swatch {\\n height: 1.875rem;\\n width: 1.875rem;\\n margin-inline-end: 0.25rem;\\n border: 1px solid #dee2e6;\\n position: relative;\\n overflow: hidden;\\n background-color: transparent !important;\\n filter: var(--theme-filter);\\n}\\n.excalidraw .color-picker-label-swatch:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: var(--swatch-color);\\n}\\n.excalidraw .color-picker-keybinding {\\n position: absolute;\\n bottom: 2px;\\n font-size: 0.7em;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-keybinding {\\n right: 2px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-keybinding {\\n left: 2px;\\n}\\n.excalidraw--mobile.excalidraw .color-picker-keybinding {\\n display: none;\\n}\\n\\n.excalidraw .color-picker-type-canvasBackground .color-picker-keybinding {\\n color: #aaa;\\n}\\n.excalidraw .color-picker-type-elementBackground .color-picker-keybinding {\\n color: #ffffff;\\n}\\n.excalidraw .color-picker-swatch[aria-label=transparent] .color-picker-keybinding {\\n color: #aaa;\\n}\\n.excalidraw .color-picker-type-elementStroke .color-picker-keybinding {\\n color: #d4d4d4;\\n}\\n.excalidraw.theme--dark .color-picker-type-elementBackground .color-picker-keybinding {\\n color: #000000;\\n}\\n.excalidraw.theme--dark .color-picker-swatch[aria-label=transparent] .color-picker-keybinding {\\n color: #000000;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ColorPicker.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,iCAAA;EACA,yCAAA;EACA,yCAAA;EACA,kBAAA;EACA,kBAAA;AAGJ;AADI;EACE,YAAA;AAGN;AAAI;EACE,aAAA;AAEN;AAEE;EACE,aAAA;EACA,+BAAA;EACA,mBAAA;AAAJ;AAGE;EACE,QAAA;EACA,SAAA;EACA,mBAAA;EACA,wBAAA;EACA,2DAAA;EACA,kBAAA;EACA,UAAA;AADJ;AAGI;EACE,UAAA;AADN;AAII;EACE,WAAA;AAFN;AAME;EACE,wDAAA;EACA,UAAA;AAJJ;AAOE;EACE,eAAA;EACA,aAAA;EACA,sCAAA;EACA,gBAAA;EACA,kBAAA;AALJ;AAOI;EACE,aAAA;EACA,kDAAA;AALN;AASE;EACE,aAAA;EACA,sBAAA;EACA,gBAAA;AAPJ;AASI;EACE,cC9BM;ED+BN,eAAA;EACA,kBAAA;AAPN;AAUI;EACE,iBAAA;AARN;AAUM;EACE,iBAAA;AARR;AAaE;EACE,qBAAA;AAXJ;AAcE;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,eAAA;EACA,kBAAA;EACA,SAAA;EACA,sBAAA;EACA,sBAAA;EACA,yCAAA;EACA,2BAAA;AAZJ;AAcI;EACE,8EAAA;EACA,oCAAA;EACA,2CAAA;AAZN;AAgBE;EACE,kBAAA;EACA,8CAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;AAdJ;AAiBE;;EAEE,+DAAA;AAfJ;AAmBE;EACE,qCAAA;EACA,gBAAA;EACA,eAAA;EAUA,+BAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,kBAAA;AA1BJ;AAcI;EACE,0BAAA;AAZN;AAeI;EACE,0BAAA;AAbN;AAuBE;EACE,kDAAA;AArBJ;AAwBE;;EAEE,WAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;EACA,MAAA;AAtBJ;AAyBE;EACE,qCAAA;AAvBJ;AAyBI;EACE,WAAA;AAvBN;AA0BI;EACE,UAAA;AAxBN;AA4BE;EACE,iCAAA;AA1BJ;AA4BI;EACE,WAAA;AA1BN;AA6BI;EACE,UAAA;AA3BN;AA+BE;EACE,aAAA;AA7BJ;AAgCE;EACE,WAAA;EAAa,4BAAA;EACb,SAAA;EACA,eAAA;EACA,uCAAA;EACA,gCAAA;EACA,SAAA;EACA,aAAA;EACA,cAAA;EACA,qDAAA;EAUA,WAAA;EACA,YAAA;EACA,2BAAA;EACA,gBAAA;AAtCJ;AA2BI;EACE,0BAAA;AAzBN;AA4BI;EACE,0BAAA;AA1BN;AAmCE;EACE,gBAAA;EACA,eAAA;EACA,0BAAA;EACA,yBAAA;EACA,kBAAA;EACA,gBAAA;EACA,wCAAA;EACA,2BAAA;AAjCJ;AAmCI;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,+BAAA;AAjCN;AAqCE;EACE,kBAAA;EACA,WAAA;EACA,gBAAA;AAnCJ;AAqCI;EACE,UAAA;AAnCN;AAsCI;EACE,SAAA;AApCN;ADtMW;EC8OL,aAAA;AArCN;;AAyCE;EACE,WAAA;AAtCJ;AAyCE;EACE,cC/Oe;ADwMnB;AA0CE;EACE,WAAA;AAxCJ;AA2CE;EACE,cAAA;AAzCJ;AA6CI;EACE,cC3Pa;ADgNnB;AA6CI;EACE,cC9Pa;ADmNnB\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .color-picker {\\n background: var(--popup-bg-color);\\n border: 0 solid transparentize($oc-white, 0.75);\\n box-shadow: transparentize($oc-black, 0.75) 0 1px 4px;\\n border-radius: 4px;\\n position: absolute;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: -5.5px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: -5.5px;\\n }\\n }\\n\\n .color-picker-control-container {\\n display: grid;\\n grid-template-columns: auto 1fr;\\n align-items: center;\\n }\\n\\n .color-picker-triangle {\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 9px 10px;\\n border-color: transparent transparent var(--popup-bg-color);\\n position: absolute;\\n top: -10px;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: 12px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 12px;\\n }\\n }\\n\\n .color-picker-triangle-shadow {\\n border-color: transparent transparent transparentize($oc-black, 0.9);\\n top: -11px;\\n }\\n\\n .color-picker-content--default {\\n padding: 0.5rem;\\n display: grid;\\n grid-template-columns: repeat(5, auto);\\n grid-gap: 0.5rem;\\n border-radius: 4px;\\n\\n &:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n\\n .color-picker-content--canvas {\\n display: flex;\\n flex-direction: column;\\n padding: 0.25rem;\\n\\n &-title {\\n color: $oc-gray-6;\\n font-size: 12px;\\n padding: 0 0.25rem;\\n }\\n\\n &-colors {\\n padding: 0.5rem 0;\\n\\n .color-picker-swatch {\\n margin: 0 0.25rem;\\n }\\n }\\n }\\n\\n .color-picker-content .color-input-container {\\n grid-column: 1 / span 5;\\n }\\n\\n .color-picker-swatch {\\n position: relative;\\n height: 1.875rem;\\n width: 1.875rem;\\n cursor: pointer;\\n border-radius: 4px;\\n margin: 0;\\n box-sizing: border-box;\\n border: 1px solid #ddd;\\n background-color: currentColor !important;\\n filter: var(--theme-filter);\\n\\n &:focus {\\n /* TODO: only show the border when the color is too light to see as a shadow */\\n box-shadow: 0 0 4px 1px currentColor;\\n border-color: var(--select-highlight-color);\\n }\\n }\\n\\n .color-picker-transparent {\\n border-radius: 4px;\\n box-shadow: transparentize($oc-black, 0.9) 0 0 0 1px inset;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n }\\n\\n .color-picker-transparent,\\n .color-picker-label-swatch {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\\\")\\n left center;\\n }\\n\\n .color-picker-hash {\\n background: var(--input-border-color);\\n height: 1.875rem;\\n width: 1.875rem;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n border-radius: 4px 0 0 4px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n border-radius: 0 4px 4px 0;\\n }\\n\\n color: var(--input-label-color);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n }\\n\\n .color-input-container:focus-within .color-picker-hash {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::before,\\n .color-input-container:focus-within .color-picker-hash::after {\\n content: \\\"\\\";\\n width: 1px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::before {\\n background: var(--input-border-color);\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: -1px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: -1px;\\n }\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::after {\\n background: var(--input-bg-color);\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: -2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: -2px;\\n }\\n }\\n\\n .color-input-container {\\n display: flex;\\n }\\n\\n .color-picker-input {\\n width: 11ch; /* length of `transparent` */\\n margin: 0;\\n font-size: 1rem;\\n background-color: var(--input-bg-color);\\n color: var(--text-primary-color);\\n border: 0;\\n outline: none;\\n height: 1.75em;\\n box-shadow: var(--input-border-color) 0 0 0 1px inset;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n border-radius: 0 4px 4px 0;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n border-radius: 4px 0 0 4px;\\n }\\n\\n float: left;\\n padding: 1px;\\n padding-inline-start: 0.5em;\\n appearance: none;\\n }\\n\\n .color-picker-label-swatch {\\n height: 1.875rem;\\n width: 1.875rem;\\n margin-inline-end: 0.25rem;\\n border: 1px solid $oc-gray-3;\\n position: relative;\\n overflow: hidden;\\n background-color: transparent !important;\\n filter: var(--theme-filter);\\n\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: var(--swatch-color);\\n }\\n }\\n\\n .color-picker-keybinding {\\n position: absolute;\\n bottom: 2px;\\n font-size: 0.7em;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: 2px;\\n }\\n\\n @include isMobile {\\n display: none;\\n }\\n }\\n\\n .color-picker-type-canvasBackground .color-picker-keybinding {\\n color: #aaa;\\n }\\n\\n .color-picker-type-elementBackground .color-picker-keybinding {\\n color: $oc-white;\\n }\\n\\n .color-picker-swatch[aria-label=\\\"transparent\\\"] .color-picker-keybinding {\\n color: #aaa;\\n }\\n\\n .color-picker-type-elementStroke .color-picker-keybinding {\\n color: #d4d4d4;\\n }\\n\\n &.theme--dark {\\n .color-picker-type-elementBackground .color-picker-keybinding {\\n color: $oc-black;\\n }\\n .color-picker-swatch[aria-label=\\\"transparent\\\"] .color-picker-keybinding {\\n color: $oc-black;\\n }\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUNPO0FBQ3BILDRDQUE0QyxxWkFBeUw7QUFDck8sOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRix5Q0FBeUMsMEdBQStCO0FBQ3hFO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRywrQkFBK0Isc0NBQXNDLDhDQUE4Qyw4Q0FBOEMsdUJBQXVCLHVCQUF1QixHQUFHLDRDQUE0QyxpQkFBaUIsR0FBRyw0Q0FBNEMsa0JBQWtCLEdBQUcsK0NBQStDLGtCQUFrQixvQ0FBb0Msd0JBQXdCLEdBQUcsc0NBQXNDLGFBQWEsY0FBYyx3QkFBd0IsNkJBQTZCLGdFQUFnRSx1QkFBdUIsZUFBZSxHQUFHLHFEQUFxRCxlQUFlLEdBQUcscURBQXFELGdCQUFnQixHQUFHLDZDQUE2Qyw2REFBNkQsZUFBZSxHQUFHLDhDQUE4QyxvQkFBb0Isa0JBQWtCLDJDQUEyQyxxQkFBcUIsdUJBQXVCLEdBQUcsb0RBQW9ELGtCQUFrQix1REFBdUQsR0FBRyw2Q0FBNkMsa0JBQWtCLDJCQUEyQixxQkFBcUIsR0FBRyxtREFBbUQsbUJBQW1CLG9CQUFvQix1QkFBdUIsR0FBRyxvREFBb0Qsc0JBQXNCLEdBQUcseUVBQXlFLHNCQUFzQixHQUFHLDREQUE0RCwwQkFBMEIsR0FBRyxvQ0FBb0MsdUJBQXVCLHFCQUFxQixvQkFBb0Isb0JBQW9CLHVCQUF1QixjQUFjLDJCQUEyQiwyQkFBMkIsOENBQThDLGdDQUFnQyxHQUFHLDBDQUEwQyw0SEFBNEgsZ0RBQWdELEdBQUcseUNBQXlDLHVCQUF1QixtREFBbUQsdUJBQXVCLFdBQVcsYUFBYSxjQUFjLFlBQVksR0FBRyxrRkFBa0YsNEVBQTRFLEdBQUcsa0NBQWtDLDBDQUEwQyxxQkFBcUIsb0JBQW9CLG9DQUFvQyxrQkFBa0Isd0JBQXdCLDRCQUE0Qix1QkFBdUIsR0FBRyxpREFBaUQsK0JBQStCLEdBQUcsaURBQWlELCtCQUErQixHQUFHLHNFQUFzRSx1REFBdUQsR0FBRywwSkFBMEosa0JBQWtCLGVBQWUsaUJBQWlCLHVCQUF1QixXQUFXLEdBQUcsOEVBQThFLDBDQUEwQyxHQUFHLDZGQUE2RixnQkFBZ0IsR0FBRyw2RkFBNkYsZUFBZSxHQUFHLDZFQUE2RSxzQ0FBc0MsR0FBRyw0RkFBNEYsZ0JBQWdCLEdBQUcsNEZBQTRGLGVBQWUsR0FBRyxzQ0FBc0Msa0JBQWtCLEdBQUcsbUNBQW1DLGdCQUFnQiwrQ0FBK0Msb0JBQW9CLDRDQUE0QyxxQ0FBcUMsY0FBYyxrQkFBa0IsbUJBQW1CLDBEQUEwRCxnQkFBZ0IsaUJBQWlCLGdDQUFnQyxxQkFBcUIsR0FBRyxrREFBa0QsK0JBQStCLEdBQUcsa0RBQWtELCtCQUErQixHQUFHLDBDQUEwQyxxQkFBcUIsb0JBQW9CLCtCQUErQiw4QkFBOEIsdUJBQXVCLHFCQUFxQiw2Q0FBNkMsZ0NBQWdDLEdBQUcsZ0RBQWdELGtCQUFrQix1QkFBdUIsV0FBVyxZQUFZLGdCQUFnQixpQkFBaUIsb0NBQW9DLEdBQUcsd0NBQXdDLHVCQUF1QixnQkFBZ0IscUJBQXFCLEdBQUcsdURBQXVELGVBQWUsR0FBRyx1REFBdUQsY0FBYyxHQUFHLDJEQUEyRCxrQkFBa0IsR0FBRyw4RUFBOEUsZ0JBQWdCLEdBQUcsNkVBQTZFLG1CQUFtQixHQUFHLHFGQUFxRixnQkFBZ0IsR0FBRyx5RUFBeUUsbUJBQW1CLEdBQUcseUZBQXlGLG1CQUFtQixHQUFHLGlHQUFpRyxtQkFBbUIsR0FBRyxPQUFPLGtOQUFrTixXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxXQUFXLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxVQUFVLFdBQVcsS0FBSyxLQUFLLFVBQVUsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssV0FBVyxXQUFXLFdBQVcsS0FBSyxNQUFNLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxPQUFPLFdBQVcsS0FBSyxNQUFNLFdBQVcsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxNQUFNLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLE1BQU0sV0FBVyxNQUFNLE9BQU8sVUFBVSxVQUFVLFVBQVUsV0FBVyxVQUFVLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxNQUFNLE1BQU0sV0FBVyxVQUFVLFdBQVcsTUFBTSxN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Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QywwUUFBMFEsNENBQTRDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCx5RkFBeUYsdWRBQXVkLHFCQUFxQjtBQUNsdXhCO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzPzViMzgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFNVWxFUVZRNFQyTmtZR0FRWWNBUDN1Q1RaaHcxZ0dHWWhBR0JaSUEvbllEQ2dCREFtOUJHRFdBQUp5UkNnTGFCQ0FBZ1h3aXh6QVMwcGdBQUFBQkpSVTVFcmtKZ2dnPT1cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgYm9yZGVyOiAwIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XFxuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMjUpIDAgMXB4IDRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlciB7XFxuICBsZWZ0OiAtNS41cHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIge1xcbiAgcmlnaHQ6IC01LjVweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250cm9sLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBncmlkO1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUge1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAwIDlweCAxMHB4O1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0xMHB4O1xcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyaWFuZ2xlIHtcXG4gIGxlZnQ6IDEycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUge1xcbiAgcmlnaHQ6IDEycHg7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUtc2hhZG93IHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgdG9wOiAtMTFweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1kZWZhdWx0IHtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBhdXRvKTtcXG4gIGdyaWQtZ2FwOiAwLjVyZW07XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdDpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZzogMC4yNXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtdGl0bGUge1xcbiAgY29sb3I6ICM4NjhlOTY7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBwYWRkaW5nOiAwIDAuMjVyZW07XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9ycyB7XFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzIC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gIG1hcmdpbjogMCAwLjI1cmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWNvbnRlbnQgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICBncmlkLWNvbHVtbjogMS9zcGFuIDU7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMS44NzVyZW07XFxuICB3aWR0aDogMS44NzVyZW07XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBtYXJnaW46IDA7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcXG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50O1xcbiAgZmlsdGVyOiB2YXIoLS10aGVtZS1maWx0ZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXN3YXRjaDpmb2N1cyB7XFxuICAvKiBUT0RPOiBvbmx5IHNob3cgdGhlIGJvcmRlciB3aGVuIHRoZSBjb2xvciBpcyB0b28gbGlnaHQgdG8gc2VlIGFzIGEgc2hhZG93ICovXFxuICBib3gtc2hhZG93OiAwIDAgNHB4IDFweCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXNlbGVjdC1oaWdobGlnaHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyYW5zcGFyZW50IHtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xKSAwIDAgMCAxcHggaW5zZXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJhbnNwYXJlbnQsXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcbiAgYmFja2dyb3VuZDogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKSBsZWZ0IGNlbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxuICBoZWlnaHQ6IDEuODc1cmVtO1xcbiAgd2lkdGg6IDEuODc1cmVtO1xcbiAgY29sb3I6IHZhcigtLWlucHV0LWxhYmVsLWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaGFzaCB7XFxuICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2gge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YmVmb3JlLFxcbi5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxuICByaWdodDogLTFweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjpiZWZvcmUge1xcbiAgbGVmdDogLTFweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgcmlnaHQ6IC0ycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgbGVmdDogLTJweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWlucHV0IHtcXG4gIHdpZHRoOiAxMWNoO1xcbiAgLyogbGVuZ3RoIG9mIGB0cmFuc3BhcmVudGAgKi9cXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogbm9uZTtcXG4gIGhlaWdodDogMS43NWVtO1xcbiAgYm94LXNoYWRvdzogdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKSAwIDAgMCAxcHggaW5zZXQ7XFxuICBmbG9hdDogbGVmdDtcXG4gIHBhZGRpbmc6IDFweDtcXG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcXG4gIGFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaW5wdXQge1xcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaW5wdXQge1xcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItbGFiZWwtc3dhdGNoIHtcXG4gIGhlaWdodDogMS44NzVyZW07XFxuICB3aWR0aDogMS44NzVyZW07XFxuICBtYXJnaW4taW5saW5lLWVuZDogMC4yNXJlbTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gIGZpbHRlcjogdmFyKC0tdGhlbWUtZmlsdGVyKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2g6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAycHg7XFxuICBmb250LXNpemU6IDAuN2VtO1xcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgcmlnaHQ6IDJweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gIGxlZnQ6IDJweDtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXR5cGUtY2FudmFzQmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgY29sb3I6ICNhYWE7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgY29sb3I6ICNmZmZmZmY7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItc3dhdGNoW2FyaWEtbGFiZWw9dHJhbnNwYXJlbnRdIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBjb2xvcjogI2FhYTtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRTdHJva2UgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gIGNvbG9yOiAjZDRkNGQ0O1xcbn1cXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayAuY29sb3ItcGlja2VyLXR5cGUtZWxlbWVudEJhY2tncm91bmQgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gIGNvbG9yOiAjMDAwMDAwO1xcbn1cXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayAuY29sb3ItcGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPXRyYW5zcGFyZW50XSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgY29sb3I6ICMwMDAwMDA7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ29sb3JQaWNrZXIuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQWlDQTtFQUNFLDJDQUFBO0VBQ0Esd0JBQUE7QUNoQ0Y7O0FBQUU7RUFDRSxpQ0FBQTtFQUNBLHlDQUFBO0VBQ0EseUNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FBR0o7QUFESTtFQUNFLFlBQUE7QUFHTjtBQUFJO0VBQ0UsYUFBQTtBQUVOO0FBRUU7RUFDRSxhQUFBO0VBQ0EsK0JBQUE7RUFDQSxtQkFBQTtBQUFKO0FBR0U7RUFDRSxRQUFBO0VBQ0EsU0FBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSwyREFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtBQURKO0FBR0k7RUFDRSxVQUFBO0FBRE47QUFJSTtFQUNFLFdBQUE7QUFGTjtBQU1FO0VBQ0Usd0RBQUE7RUFDQSxVQUFBO0FBSko7QUFPRTtFQUNFLGVBQUE7RUFDQSxhQUFBO0VBQ0Esc0NBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0FBTEo7QUFPSTtFQUNFLGFBQUE7RUFDQSxrREFBQTtBQUxOO0FBU0U7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtBQVBKO0FBU0k7RUFDRSxjQzlCTTtFRCtCTixlQUFBO0VBQ0Esa0JBQUE7QUFQTjtBQVVJO0VBQ0UsaUJBQUE7QUFSTjtBQVVNO0VBQ0UsaUJBQUE7QUFSUjtBQWFFO0VBQ0UscUJBQUE7QUFYSjtBQWNFO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQUNBLHlDQUFBO0VBQ0EsMkJBQUE7QUFaSjtBQWNJO0VBQ0UsOEVBQUE7RUFDQSxvQ0FBQTtFQUNBLDJDQUFBO0FBWk47QUFnQkU7RUFDRSxrQkFBQTtFQUNBLDhDQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0FBZEo7QUFpQkU7O0VBRUUsK0RBQUE7QUFmSjtBQW1CRTtFQUNFLHFDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBVUEsK0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0FBMUJKO0FBY0k7RUFDRSwwQkFBQTtBQVpOO0FBZUk7RUFDRSwwQkFBQTtBQWJOO0FBdUJFO0VBQ0Usa0RBQUE7QUFyQko7QUF3QkU7O0VBRUUsV0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0FBdEJKO0FBeUJFO0VBQ0UscUNBQUE7QUF2Qko7QUF5Qkk7RUFDRSxXQUFBO0FBdkJOO0FBMEJJO0VBQ0UsVUFBQTtBQXhCTjtBQTRCRTtFQUNFLGlDQUFBO0FBMUJKO0FBNEJJO0VBQ0UsV0FBQTtBQTFCTjtBQTZCSTtFQUNFLFVBQUE7QUEzQk47QUErQkU7RUFDRSxhQUFBO0FBN0JKO0FBZ0NFO0VBQ0UsV0FBQTtFQUFhLDRCQUFBO0VBQ2IsU0FBQTtFQUNBLGVBQUE7RUFDQSx1Q0FBQTtFQUNBLGdDQUFBO0VBQ0EsU0FBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EscURBQUE7RUFVQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLDJCQUFBO0VBQ0EsZ0JBQUE7QUF0Q0o7QUEyQkk7RUFDRSwwQkFBQTtBQXpCTjtBQTRCSTtFQUNFLDBCQUFBO0FBMUJOO0FBbUNFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx3Q0FBQTtFQUNBLDJCQUFBO0FBakNKO0FBbUNJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0FBakNOO0FBcUNFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7QUFuQ0o7QUFxQ0k7RUFDRSxVQUFBO0FBbkNOO0FBc0NJO0VBQ0UsU0FBQTtBQXBDTjtBRHRNVztFQzhPTCxhQUFBO0FBckNOOztBQXlDRTtFQUNFLFdBQUE7QUF0Q0o7QUF5Q0U7RUFDRSxjQy9PZTtBRHdNbkI7QUEwQ0U7RUFDRSxXQUFBO0FBeENKO0FBMkNFO0VBQ0UsY0FBQTtBQXpDSjtBQTZDSTtFQUNFLGNDM1BhO0FEZ05uQjtBQTZDSTtFQUNFLGNDOVBhO0FEbU5uQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuXFxuQG1peGluIGlzTW9iaWxlKCkge1xcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcbiAgICBAY29udGVudDtcXG4gIH1cXG59XFxuXFxuQG1peGluIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcyB7XFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gICAgJiArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICAgIGJvdHRvbTogNHB4O1xcbiAgICByaWdodDogNHB4O1xcbiAgfVxcbn1cXG5cXG4kdGhlbWUtZmlsdGVyOiBcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcIjtcXG4kcmlnaHQtc2lkZWJhci13aWR0aDogXFxcIjMwMnB4XFxcIjtcXG5cXG46ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IHVucXVvdGUoJHJpZ2h0LXNpZGViYXItd2lkdGgpO1xcbn1cXG5cIixcIkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuY29sb3ItcGlja2VyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgICBib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnRpemUoJG9jLXdoaXRlLCAwLjc1KTtcXG4gICAgYm94LXNoYWRvdzogdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjc1KSAwIDFweCA0cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGxlZnQ6IC01LjVweDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAtNS41cHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItY29udHJvbC1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci10cmlhbmdsZSB7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci13aWR0aDogMCA5cHggMTBweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAtMTBweDtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAxMnB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IDEycHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHJpYW5nbGUtc2hhZG93IHtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuOSk7XFxuICAgIHRvcDogLTExcHg7XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWNvbnRlbnQtLWRlZmF1bHQge1xcbiAgICBwYWRkaW5nOiAwLjVyZW07XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIGF1dG8pO1xcbiAgICBncmlkLWdhcDogMC41cmVtO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMC4yNXJlbTtcXG5cXG4gICAgJi10aXRsZSB7XFxuICAgICAgY29sb3I6ICRvYy1ncmF5LTY7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIHBhZGRpbmc6IDAgMC4yNXJlbTtcXG4gICAgfVxcblxcbiAgICAmLWNvbG9ycyB7XFxuICAgICAgcGFkZGluZzogMC41cmVtIDA7XFxuXFxuICAgICAgLmNvbG9yLXBpY2tlci1zd2F0Y2gge1xcbiAgICAgICAgbWFyZ2luOiAwIDAuMjVyZW07XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWNvbnRlbnQgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICAgIGdyaWQtY29sdW1uOiAxIC8gc3BhbiA1O1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1zd2F0Y2gge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGhlaWdodDogMS44NzVyZW07XFxuICAgIHdpZHRoOiAxLjg3NXJlbTtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yICFpbXBvcnRhbnQ7XFxuICAgIGZpbHRlcjogdmFyKC0tdGhlbWUtZmlsdGVyKTtcXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgLyogVE9ETzogb25seSBzaG93IHRoZSBib3JkZXIgd2hlbiB0aGUgY29sb3IgaXMgdG9vIGxpZ2h0IHRvIHNlZSBhcyBhIHNoYWRvdyAqL1xcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA0cHggMXB4IGN1cnJlbnRDb2xvcjtcXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXNlbGVjdC1oaWdobGlnaHQtY29sb3IpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLXRyYW5zcGFyZW50IHtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBib3gtc2hhZG93OiB0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuOSkgMCAwIDAgMXB4IGluc2V0O1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHJhbnNwYXJlbnQsXFxuICAuY29sb3ItcGlja2VyLWxhYmVsLXN3YXRjaCB7XFxuICAgIGJhY2tncm91bmQ6IHVybChcXFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQU1VbEVRVlE0VDJOa1lHQVFZY0FQM3VDVFpodzFnR0dZaEFHQlpJQS9uWURDZ0JEQW05QkdEV0FBSnlSQ2dMYUJDQUFnWHdpeHpBUzBwZ0FBQUFCSlJVNUVya0pnZ2c9PVxcXCIpXFxuICAgICAgbGVmdCBjZW50ZXI7XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWhhc2gge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xcbiAgICB3aWR0aDogMS44NzVyZW07XFxuXFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcXG4gICAgfVxcblxcbiAgICBjb2xvcjogdmFyKC0taW5wdXQtbGFiZWwtY29sb3IpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcblxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICB9XFxuXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSxcXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgd2lkdGg6IDFweDtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gIH1cXG5cXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YmVmb3JlIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICByaWdodDogLTFweDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIGxlZnQ6IC0xcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XFxuXFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IC0ycHg7XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAtMnB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItaW5wdXQge1xcbiAgICB3aWR0aDogMTFjaDsgLyogbGVuZ3RoIG9mIGB0cmFuc3BhcmVudGAgKi9cXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgaGVpZ2h0OiAxLjc1ZW07XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcikgMCAwIDAgMXB4IGluc2V0O1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XFxuICAgIH1cXG5cXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIHBhZGRpbmc6IDFweDtcXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNWVtO1xcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xcbiAgICB3aWR0aDogMS44NzVyZW07XFxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjI1cmVtO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkb2MtZ3JheS0zO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxuICAgIGZpbHRlcjogdmFyKC0tdGhlbWUtZmlsdGVyKTtcXG5cXG4gICAgJjphZnRlciB7XFxuICAgICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBsZWZ0OiAwO1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMnB4O1xcbiAgICBmb250LXNpemU6IDAuN2VtO1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAycHg7XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAycHg7XFxuICAgIH1cXG5cXG4gICAgQGluY2x1ZGUgaXNNb2JpbGUge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHlwZS1jYW52YXNCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgIGNvbG9yOiAjYWFhO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgIGNvbG9yOiAkb2Mtd2hpdGU7XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPVxcXCJ0cmFuc3BhcmVudFxcXCJdIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgIGNvbG9yOiAjYWFhO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRTdHJva2UgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gICAgY29sb3I6ICNkNGQ0ZDQ7XFxuICB9XFxuXFxuICAmLnRoZW1lLS1kYXJrIHtcXG4gICAgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgICAgY29sb3I6ICRvYy1ibGFjaztcXG4gICAgfVxcbiAgICAuY29sb3ItcGlja2VyLXN3YXRjaFthcmlhLWxhYmVsPVxcXCJ0cmFuc3BhcmVudFxcXCJdIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgICAgY29sb3I6ICRvYy1ibGFjaztcXG4gICAgfVxcbiAgfVxcbn1cXG5cIixcIi8vXFxuLy9cXG4vLyAg8J2XliDwnZeiIPCdl58g8J2XoiDwnZelXFxuLy8gIHYgMS45LjFcXG4vL1xcbi8vICDilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIFcXG5cXG5cXG4vLyAgR2VuZXJhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXG5cXG5cXG4vLyAgR3JheVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JheS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGY5ZmEsXFxuICBcXFwiMVxcXCI6ICNmMWYzZjUsXFxuICBcXFwiMlxcXCI6ICNlOWVjZWYsXFxuICBcXFwiM1xcXCI6ICNkZWUyZTYsXFxuICBcXFwiNFxcXCI6ICNjZWQ0ZGEsXFxuICBcXFwiNVxcXCI6ICNhZGI1YmQsXFxuICBcXFwiNlxcXCI6ICM4NjhlOTYsXFxuICBcXFwiN1xcXCI6ICM0OTUwNTcsXFxuICBcXFwiOFxcXCI6ICMzNDNhNDAsXFxuICBcXFwiOVxcXCI6ICMyMTI1MjlcXG4pO1xcblxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUmVkXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1yZWQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNWY1LFxcbiAgXFxcIjFcXFwiOiAjZmZlM2UzLFxcbiAgXFxcIjJcXFwiOiAjZmZjOWM5LFxcbiAgXFxcIjNcXFwiOiAjZmZhOGE4LFxcbiAgXFxcIjRcXFwiOiAjZmY4Nzg3LFxcbiAgXFxcIjVcXFwiOiAjZmY2YjZiLFxcbiAgXFxcIjZcXFwiOiAjZmE1MjUyLFxcbiAgXFxcIjdcXFwiOiAjZjAzZTNlLFxcbiAgXFxcIjhcXFwiOiAjZTAzMTMxLFxcbiAgXFxcIjlcXFwiOiAjYzkyYTJhXFxuKTtcXG5cXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBQaW5rXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1waW5rLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjBmNixcXG4gIFxcXCIxXFxcIjogI2ZmZGVlYixcXG4gIFxcXCIyXFxcIjogI2ZjYzJkNyxcXG4gIFxcXCIzXFxcIjogI2ZhYTJjMSxcXG4gIFxcXCI0XFxcIjogI2Y3ODNhYyxcXG4gIFxcXCI1XFxcIjogI2YwNjU5NSxcXG4gIFxcXCI2XFxcIjogI2U2NDk4MCxcXG4gIFxcXCI3XFxcIjogI2Q2MzM2YyxcXG4gIFxcXCI4XFxcIjogI2MyMjU1YyxcXG4gIFxcXCI5XFxcIjogI2E2MWU0ZFxcbik7XFxuXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmFwZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JhcGUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmMGZjLFxcbiAgXFxcIjFcXFwiOiAjZjNkOWZhLFxcbiAgXFxcIjJcXFwiOiAjZWViZWZhLFxcbiAgXFxcIjNcXFwiOiAjZTU5OWY3LFxcbiAgXFxcIjRcXFwiOiAjZGE3N2YyLFxcbiAgXFxcIjVcXFwiOiAjY2M1ZGU4LFxcbiAgXFxcIjZcXFwiOiAjYmU0YmRiLFxcbiAgXFxcIjdcXFwiOiAjYWUzZWM5LFxcbiAgXFxcIjhcXFwiOiAjOWMzNmI1LFxcbiAgXFxcIjlcXFwiOiAjODYyZTljXFxuKTtcXG5cXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVmlvbGV0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy12aW9sZXQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjNmMGZmLFxcbiAgXFxcIjFcXFwiOiAjZTVkYmZmLFxcbiAgXFxcIjJcXFwiOiAjZDBiZmZmLFxcbiAgXFxcIjNcXFwiOiAjYjE5N2ZjLFxcbiAgXFxcIjRcXFwiOiAjOTc3NWZhLFxcbiAgXFxcIjVcXFwiOiAjODQ1ZWY3LFxcbiAgXFxcIjZcXFwiOiAjNzk1MGYyLFxcbiAgXFxcIjdcXFwiOiAjNzA0OGU4LFxcbiAgXFxcIjhcXFwiOiAjNjc0MWQ5LFxcbiAgXFxcIjlcXFwiOiAjNWYzZGM0XFxuKTtcXG5cXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBJbmRpZ29cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWluZGlnby1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlZGYyZmYsXFxuICBcXFwiMVxcXCI6ICNkYmU0ZmYsXFxuICBcXFwiMlxcXCI6ICNiYWM4ZmYsXFxuICBcXFwiM1xcXCI6ICM5MWE3ZmYsXFxuICBcXFwiNFxcXCI6ICM3NDhmZmMsXFxuICBcXFwiNVxcXCI6ICM1YzdjZmEsXFxuICBcXFwiNlxcXCI6ICM0YzZlZjUsXFxuICBcXFwiN1xcXCI6ICM0MjYzZWIsXFxuICBcXFwiOFxcXCI6ICMzYjViZGIsXFxuICBcXFwiOVxcXCI6ICMzNjRmYzdcXG4pO1xcblxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEJsdWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWJsdWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTdmNWZmLFxcbiAgXFxcIjFcXFwiOiAjZDBlYmZmLFxcbiAgXFxcIjJcXFwiOiAjYTVkOGZmLFxcbiAgXFxcIjNcXFwiOiAjNzRjMGZjLFxcbiAgXFxcIjRcXFwiOiAjNGRhYmY3LFxcbiAgXFxcIjVcXFwiOiAjMzM5YWYwLFxcbiAgXFxcIjZcXFwiOiAjMjI4YmU2LFxcbiAgXFxcIjdcXFwiOiAjMWM3ZWQ2LFxcbiAgXFxcIjhcXFwiOiAjMTk3MWMyLFxcbiAgXFxcIjlcXFwiOiAjMTg2NGFiXFxuKTtcXG5cXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEN5YW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWN5YW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTNmYWZjLFxcbiAgXFxcIjFcXFwiOiAjYzVmNmZhLFxcbiAgXFxcIjJcXFwiOiAjOTllOWYyLFxcbiAgXFxcIjNcXFwiOiAjNjZkOWU4LFxcbiAgXFxcIjRcXFwiOiAjM2JjOWRiLFxcbiAgXFxcIjVcXFwiOiAjMjJiOGNmLFxcbiAgXFxcIjZcXFwiOiAjMTVhYWJmLFxcbiAgXFxcIjdcXFwiOiAjMTA5OGFkLFxcbiAgXFxcIjhcXFwiOiAjMGM4NTk5LFxcbiAgXFxcIjlcXFwiOiAjMGI3Mjg1XFxuKTtcXG5cXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFRlYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXRlYWwtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTZmY2Y1LFxcbiAgXFxcIjFcXFwiOiAjYzNmYWU4LFxcbiAgXFxcIjJcXFwiOiAjOTZmMmQ3LFxcbiAgXFxcIjNcXFwiOiAjNjNlNmJlLFxcbiAgXFxcIjRcXFwiOiAjMzhkOWE5LFxcbiAgXFxcIjVcXFwiOiAjMjBjOTk3LFxcbiAgXFxcIjZcXFwiOiAjMTJiODg2LFxcbiAgXFxcIjdcXFwiOiAjMGNhNjc4LFxcbiAgXFxcIjhcXFwiOiAjMDk5MjY4LFxcbiAgXFxcIjlcXFwiOiAjMDg3ZjViXFxuKTtcXG5cXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyZWVuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmVlbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlYmZiZWUsXFxuICBcXFwiMVxcXCI6ICNkM2Y5ZDgsXFxuICBcXFwiMlxcXCI6ICNiMmYyYmIsXFxuICBcXFwiM1xcXCI6ICM4Y2U5OWEsXFxuICBcXFwiNFxcXCI6ICM2OWRiN2MsXFxuICBcXFwiNVxcXCI6ICM1MWNmNjYsXFxuICBcXFwiNlxcXCI6ICM0MGMwNTcsXFxuICBcXFwiN1xcXCI6ICMzN2IyNGQsXFxuICBcXFwiOFxcXCI6ICMyZjllNDQsXFxuICBcXFwiOVxcXCI6ICMyYjhhM2VcXG4pO1xcblxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBMaW1lXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1saW1lLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y0ZmNlMyxcXG4gIFxcXCIxXFxcIjogI2U5ZmFjOCxcXG4gIFxcXCIyXFxcIjogI2Q4ZjVhMixcXG4gIFxcXCIzXFxcIjogI2MwZWI3NSxcXG4gIFxcXCI0XFxcIjogI2E5ZTM0YixcXG4gIFxcXCI1XFxcIjogIzk0ZDgyZCxcXG4gIFxcXCI2XFxcIjogIzgyYzkxZSxcXG4gIFxcXCI3XFxcIjogIzc0YjgxNixcXG4gIFxcXCI4XFxcIjogIzY2YTgwZixcXG4gIFxcXCI5XFxcIjogIzVjOTQwZFxcbik7XFxuXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBZZWxsb3dcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXllbGxvdy1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY5ZGIsXFxuICBcXFwiMVxcXCI6ICNmZmYzYmYsXFxuICBcXFwiMlxcXCI6ICNmZmVjOTksXFxuICBcXFwiM1xcXCI6ICNmZmUwNjYsXFxuICBcXFwiNFxcXCI6ICNmZmQ0M2IsXFxuICBcXFwiNVxcXCI6ICNmY2M0MTksXFxuICBcXFwiNlxcXCI6ICNmYWIwMDUsXFxuICBcXFwiN1xcXCI6ICNmNTlmMDAsXFxuICBcXFwiOFxcXCI6ICNmMDhjMDAsXFxuICBcXFwiOVxcXCI6ICNlNjc3MDBcXG4pO1xcblxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIE9yYW5nZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjRlNixcXG4gIFxcXCIxXFxcIjogI2ZmZThjYyxcXG4gIFxcXCIyXFxcIjogI2ZmZDhhOCxcXG4gIFxcXCIzXFxcIjogI2ZmYzA3OCxcXG4gIFxcXCI0XFxcIjogI2ZmYTk0ZCxcXG4gIFxcXCI1XFxcIjogI2ZmOTIyYixcXG4gIFxcXCI2XFxcIjogI2ZkN2UxNCxcXG4gIFxcXCI3XFxcIjogI2Y3NjcwNyxcXG4gIFxcXCI4XFxcIjogI2U4NTkwYyxcXG4gIFxcXCI5XFxcIjogI2Q5NDgwZlxcbik7XFxuXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ29sb3IgbGlzdFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXG5cXG4kb2MtY29sb3ItbGlzdDogKFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFwiZ3JheVxcXCIsXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcInJlZFxcXCIsXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXCJwaW5rXFxcIixcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXCJncmFwZVxcXCIsXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcInZpb2xldFxcXCIsXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcImluZGlnb1xcXCIsXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXCJibHVlXFxcIixcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcImN5YW5cXFwiLFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFwidGVhbFxcXCIsXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFwiZ3JlZW5cXFwiLFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFwibGltZVxcXCIsXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcInllbGxvd1xcXCIsXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcIm9yYW5nZVxcXCJcXG4pO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ColorPicker.scss\n");
1082
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg== */ \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .color-picker {\\n background: var(--popup-bg-color);\\n border: 0 solid rgba(255, 255, 255, 0.25);\\n box-shadow: rgba(0, 0, 0, 0.25) 0 1px 4px;\\n border-radius: 4px;\\n position: absolute;\\n}\\n:root[dir=ltr] .excalidraw .color-picker {\\n left: -5.5px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker {\\n right: -5.5px;\\n}\\n.excalidraw .color-picker-control-container {\\n display: grid;\\n grid-template-columns: auto 1fr;\\n align-items: center;\\n}\\n.excalidraw .color-picker-triangle {\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 9px 10px;\\n border-color: transparent transparent var(--popup-bg-color);\\n position: absolute;\\n top: -10px;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-triangle {\\n left: 12px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-triangle {\\n right: 12px;\\n}\\n.excalidraw .color-picker-triangle-shadow {\\n border-color: transparent transparent rgba(0, 0, 0, 0.1);\\n top: -11px;\\n}\\n.excalidraw .color-picker-content--default {\\n padding: 0.5rem;\\n display: grid;\\n grid-template-columns: repeat(5, auto);\\n grid-gap: 0.5rem;\\n border-radius: 4px;\\n}\\n.excalidraw .color-picker-content--default:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .color-picker-content--canvas {\\n display: flex;\\n flex-direction: column;\\n padding: 0.25rem;\\n}\\n.excalidraw .color-picker-content--canvas-title {\\n color: #868e96;\\n font-size: 12px;\\n padding: 0 0.25rem;\\n}\\n.excalidraw .color-picker-content--canvas-colors {\\n padding: 0.5rem 0;\\n}\\n.excalidraw .color-picker-content--canvas-colors .color-picker-swatch {\\n margin: 0 0.25rem;\\n}\\n.excalidraw .color-picker-content .color-input-container {\\n grid-column: 1/span 5;\\n}\\n.excalidraw .color-picker-swatch {\\n position: relative;\\n height: 1.875rem;\\n width: 1.875rem;\\n cursor: pointer;\\n border-radius: 4px;\\n margin: 0;\\n box-sizing: border-box;\\n border: 1px solid #ddd;\\n background-color: currentColor !important;\\n filter: var(--theme-filter);\\n}\\n.excalidraw .color-picker-swatch:focus {\\n /* TODO: only show the border when the color is too light to see as a shadow */\\n box-shadow: 0 0 4px 1px currentColor;\\n border-color: var(--select-highlight-color);\\n}\\n.excalidraw .color-picker-transparent {\\n border-radius: 4px;\\n box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 1px inset;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n}\\n.excalidraw .color-picker-transparent,\\n.excalidraw .color-picker-label-swatch {\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") left center;\\n}\\n.excalidraw .color-picker-hash {\\n background: var(--input-border-color);\\n height: 1.875rem;\\n width: 1.875rem;\\n color: var(--input-label-color);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-hash {\\n border-radius: 4px 0 0 4px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-hash {\\n border-radius: 0 4px 4px 0;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::before,\\n.excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n content: \\\"\\\";\\n width: 1px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n background: var(--input-border-color);\\n}\\n:root[dir=ltr] .excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n right: -1px;\\n}\\n:root[dir=rtl] .excalidraw .color-input-container:focus-within .color-picker-hash::before {\\n left: -1px;\\n}\\n.excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n background: var(--input-bg-color);\\n}\\n:root[dir=ltr] .excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n right: -2px;\\n}\\n:root[dir=rtl] .excalidraw .color-input-container:focus-within .color-picker-hash::after {\\n left: -2px;\\n}\\n.excalidraw .color-input-container {\\n display: flex;\\n}\\n.excalidraw .color-picker-input {\\n width: 11ch;\\n /* length of `transparent` */\\n margin: 0;\\n font-size: 1rem;\\n background-color: var(--input-bg-color);\\n color: var(--text-primary-color);\\n border: 0;\\n outline: none;\\n height: 1.75em;\\n box-shadow: var(--input-border-color) 0 0 0 1px inset;\\n float: left;\\n padding: 1px;\\n padding-inline-start: 0.5em;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-input {\\n border-radius: 0 4px 4px 0;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-input {\\n border-radius: 4px 0 0 4px;\\n}\\n.excalidraw .color-picker-label-swatch {\\n height: 1.875rem;\\n width: 1.875rem;\\n margin-inline-end: 0.25rem;\\n border: 1px solid #dee2e6;\\n position: relative;\\n overflow: hidden;\\n background-color: transparent !important;\\n filter: var(--theme-filter);\\n}\\n.excalidraw .color-picker-label-swatch:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: var(--swatch-color);\\n}\\n.excalidraw .color-picker-keybinding {\\n position: absolute;\\n bottom: 2px;\\n font-size: 0.7em;\\n}\\n:root[dir=ltr] .excalidraw .color-picker-keybinding {\\n right: 2px;\\n}\\n:root[dir=rtl] .excalidraw .color-picker-keybinding {\\n left: 2px;\\n}\\n.excalidraw--mobile.excalidraw .color-picker-keybinding {\\n display: none;\\n}\\n\\n.excalidraw .color-picker-type-canvasBackground .color-picker-keybinding {\\n color: #aaa;\\n}\\n.excalidraw .color-picker-type-elementBackground .color-picker-keybinding {\\n color: #ffffff;\\n}\\n.excalidraw .color-picker-swatch[aria-label=transparent] .color-picker-keybinding {\\n color: #aaa;\\n}\\n.excalidraw .color-picker-type-elementStroke .color-picker-keybinding {\\n color: #d4d4d4;\\n}\\n.excalidraw.theme--dark .color-picker-type-elementBackground .color-picker-keybinding {\\n color: #000000;\\n}\\n.excalidraw.theme--dark .color-picker-swatch[aria-label=transparent] .color-picker-keybinding {\\n color: #000000;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ColorPicker.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,iCAAA;EACA,yCAAA;EACA,yCAAA;EACA,kBAAA;EACA,kBAAA;AAGJ;AADI;EACE,YAAA;AAGN;AAAI;EACE,aAAA;AAEN;AAEE;EACE,aAAA;EACA,+BAAA;EACA,mBAAA;AAAJ;AAGE;EACE,QAAA;EACA,SAAA;EACA,mBAAA;EACA,wBAAA;EACA,2DAAA;EACA,kBAAA;EACA,UAAA;AADJ;AAGI;EACE,UAAA;AADN;AAII;EACE,WAAA;AAFN;AAME;EACE,wDAAA;EACA,UAAA;AAJJ;AAOE;EACE,eAAA;EACA,aAAA;EACA,sCAAA;EACA,gBAAA;EACA,kBAAA;AALJ;AAOI;EACE,aAAA;EACA,kDAAA;AALN;AASE;EACE,aAAA;EACA,sBAAA;EACA,gBAAA;AAPJ;AASI;EACE,cC9BM;ED+BN,eAAA;EACA,kBAAA;AAPN;AAUI;EACE,iBAAA;AARN;AAUM;EACE,iBAAA;AARR;AAaE;EACE,qBAAA;AAXJ;AAcE;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,eAAA;EACA,kBAAA;EACA,SAAA;EACA,sBAAA;EACA,sBAAA;EACA,yCAAA;EACA,2BAAA;AAZJ;AAcI;EACE,8EAAA;EACA,oCAAA;EACA,2CAAA;AAZN;AAgBE;EACE,kBAAA;EACA,8CAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;AAdJ;AAiBE;;EAEE,+DAAA;AAfJ;AAmBE;EACE,qCAAA;EACA,gBAAA;EACA,eAAA;EAUA,+BAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,kBAAA;AA1BJ;AAcI;EACE,0BAAA;AAZN;AAeI;EACE,0BAAA;AAbN;AAuBE;EACE,kDAAA;AArBJ;AAwBE;;EAEE,WAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;EACA,MAAA;AAtBJ;AAyBE;EACE,qCAAA;AAvBJ;AAyBI;EACE,WAAA;AAvBN;AA0BI;EACE,UAAA;AAxBN;AA4BE;EACE,iCAAA;AA1BJ;AA4BI;EACE,WAAA;AA1BN;AA6BI;EACE,UAAA;AA3BN;AA+BE;EACE,aAAA;AA7BJ;AAgCE;EACE,WAAA;EAAa,4BAAA;EACb,SAAA;EACA,eAAA;EACA,uCAAA;EACA,gCAAA;EACA,SAAA;EACA,aAAA;EACA,cAAA;EACA,qDAAA;EAUA,WAAA;EACA,YAAA;EACA,2BAAA;EACA,wBAAA;UAAA,gBAAA;AAtCJ;AA2BI;EACE,0BAAA;AAzBN;AA4BI;EACE,0BAAA;AA1BN;AAmCE;EACE,gBAAA;EACA,eAAA;EACA,0BAAA;EACA,yBAAA;EACA,kBAAA;EACA,gBAAA;EACA,wCAAA;EACA,2BAAA;AAjCJ;AAmCI;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,+BAAA;AAjCN;AAqCE;EACE,kBAAA;EACA,WAAA;EACA,gBAAA;AAnCJ;AAqCI;EACE,UAAA;AAnCN;AAsCI;EACE,SAAA;AApCN;ADtMW;EC8OL,aAAA;AArCN;;AAyCE;EACE,WAAA;AAtCJ;AAyCE;EACE,cC/Oe;ADwMnB;AA0CE;EACE,WAAA;AAxCJ;AA2CE;EACE,cAAA;AAzCJ;AA6CI;EACE,cC3Pa;ADgNnB;AA6CI;EACE,cC9Pa;ADmNnB\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .color-picker {\\n background: var(--popup-bg-color);\\n border: 0 solid transparentize($oc-white, 0.75);\\n box-shadow: transparentize($oc-black, 0.75) 0 1px 4px;\\n border-radius: 4px;\\n position: absolute;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: -5.5px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: -5.5px;\\n }\\n }\\n\\n .color-picker-control-container {\\n display: grid;\\n grid-template-columns: auto 1fr;\\n align-items: center;\\n }\\n\\n .color-picker-triangle {\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 9px 10px;\\n border-color: transparent transparent var(--popup-bg-color);\\n position: absolute;\\n top: -10px;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: 12px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 12px;\\n }\\n }\\n\\n .color-picker-triangle-shadow {\\n border-color: transparent transparent transparentize($oc-black, 0.9);\\n top: -11px;\\n }\\n\\n .color-picker-content--default {\\n padding: 0.5rem;\\n display: grid;\\n grid-template-columns: repeat(5, auto);\\n grid-gap: 0.5rem;\\n border-radius: 4px;\\n\\n &:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n\\n .color-picker-content--canvas {\\n display: flex;\\n flex-direction: column;\\n padding: 0.25rem;\\n\\n &-title {\\n color: $oc-gray-6;\\n font-size: 12px;\\n padding: 0 0.25rem;\\n }\\n\\n &-colors {\\n padding: 0.5rem 0;\\n\\n .color-picker-swatch {\\n margin: 0 0.25rem;\\n }\\n }\\n }\\n\\n .color-picker-content .color-input-container {\\n grid-column: 1 / span 5;\\n }\\n\\n .color-picker-swatch {\\n position: relative;\\n height: 1.875rem;\\n width: 1.875rem;\\n cursor: pointer;\\n border-radius: 4px;\\n margin: 0;\\n box-sizing: border-box;\\n border: 1px solid #ddd;\\n background-color: currentColor !important;\\n filter: var(--theme-filter);\\n\\n &:focus {\\n /* TODO: only show the border when the color is too light to see as a shadow */\\n box-shadow: 0 0 4px 1px currentColor;\\n border-color: var(--select-highlight-color);\\n }\\n }\\n\\n .color-picker-transparent {\\n border-radius: 4px;\\n box-shadow: transparentize($oc-black, 0.9) 0 0 0 1px inset;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n }\\n\\n .color-picker-transparent,\\n .color-picker-label-swatch {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\\\")\\n left center;\\n }\\n\\n .color-picker-hash {\\n background: var(--input-border-color);\\n height: 1.875rem;\\n width: 1.875rem;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n border-radius: 4px 0 0 4px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n border-radius: 0 4px 4px 0;\\n }\\n\\n color: var(--input-label-color);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: relative;\\n }\\n\\n .color-input-container:focus-within .color-picker-hash {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::before,\\n .color-input-container:focus-within .color-picker-hash::after {\\n content: \\\"\\\";\\n width: 1px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::before {\\n background: var(--input-border-color);\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: -1px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: -1px;\\n }\\n }\\n\\n .color-input-container:focus-within .color-picker-hash::after {\\n background: var(--input-bg-color);\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: -2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: -2px;\\n }\\n }\\n\\n .color-input-container {\\n display: flex;\\n }\\n\\n .color-picker-input {\\n width: 11ch; /* length of `transparent` */\\n margin: 0;\\n font-size: 1rem;\\n background-color: var(--input-bg-color);\\n color: var(--text-primary-color);\\n border: 0;\\n outline: none;\\n height: 1.75em;\\n box-shadow: var(--input-border-color) 0 0 0 1px inset;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n border-radius: 0 4px 4px 0;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n border-radius: 4px 0 0 4px;\\n }\\n\\n float: left;\\n padding: 1px;\\n padding-inline-start: 0.5em;\\n appearance: none;\\n }\\n\\n .color-picker-label-swatch {\\n height: 1.875rem;\\n width: 1.875rem;\\n margin-inline-end: 0.25rem;\\n border: 1px solid $oc-gray-3;\\n position: relative;\\n overflow: hidden;\\n background-color: transparent !important;\\n filter: var(--theme-filter);\\n\\n &:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: var(--swatch-color);\\n }\\n }\\n\\n .color-picker-keybinding {\\n position: absolute;\\n bottom: 2px;\\n font-size: 0.7em;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n right: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n left: 2px;\\n }\\n\\n @include isMobile {\\n display: none;\\n }\\n }\\n\\n .color-picker-type-canvasBackground .color-picker-keybinding {\\n color: #aaa;\\n }\\n\\n .color-picker-type-elementBackground .color-picker-keybinding {\\n color: $oc-white;\\n }\\n\\n .color-picker-swatch[aria-label=\\\"transparent\\\"] .color-picker-keybinding {\\n color: #aaa;\\n }\\n\\n .color-picker-type-elementStroke .color-picker-keybinding {\\n color: #d4d4d4;\\n }\\n\\n &.theme--dark {\\n .color-picker-type-elementBackground .color-picker-keybinding {\\n color: $oc-black;\\n }\\n .color-picker-swatch[aria-label=\\\"transparent\\\"] .color-picker-keybinding {\\n color: $oc-black;\\n }\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUNPO0FBQ3BILDRDQUE0QyxxWkFBeUw7QUFDck8sOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRix5Q0FBeUMsMEdBQStCO0FBQ3hFO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRywrQkFBK0Isc0NBQXNDLDhDQUE4Qyw4Q0FBOEMsdUJBQXVCLHVCQUF1QixHQUFHLDRDQUE0QyxpQkFBaUIsR0FBRyw0Q0FBNEMsa0JBQWtCLEdBQUcsK0NBQStDLGtCQUFrQixvQ0FBb0Msd0JBQXdCLEdBQUcsc0NBQXNDLGFBQWEsY0FBYyx3QkFBd0IsNkJBQTZCLGdFQUFnRSx1QkFBdUIsZUFBZSxHQUFHLHFEQUFxRCxlQUFlLEdBQUcscURBQXFELGdCQUFnQixHQUFHLDZDQUE2Qyw2REFBNkQsZUFBZSxHQUFHLDhDQUE4QyxvQkFBb0Isa0JBQWtCLDJDQUEyQyxxQkFBcUIsdUJBQXVCLEdBQUcsb0RBQW9ELGtCQUFrQix1REFBdUQsR0FBRyw2Q0FBNkMsa0JBQWtCLDJCQUEyQixxQkFBcUIsR0FBRyxtREFBbUQsbUJBQW1CLG9CQUFvQix1QkFBdUIsR0FBRyxvREFBb0Qsc0JBQXNCLEdBQUcseUVBQXlFLHNCQUFzQixHQUFHLDREQUE0RCwwQkFBMEIsR0FBRyxvQ0FBb0MsdUJBQXVCLHFCQUFxQixvQkFBb0Isb0JBQW9CLHVCQUF1QixjQUFjLDJCQUEyQiwyQkFBMkIsOENBQThDLGdDQUFnQyxHQUFHLDBDQUEwQyw0SEFBNEgsZ0RBQWdELEdBQUcseUNBQXlDLHVCQUF1QixtREFBbUQsdUJBQXVCLFdBQVcsYUFBYSxjQUFjLFlBQVksR0FBRyxrRkFBa0YsNEVBQTRFLEdBQUcsa0NBQWtDLDBDQUEwQyxxQkFBcUIsb0JBQW9CLG9DQUFvQyxrQkFBa0Isd0JBQXdCLDRCQUE0Qix1QkFBdUIsR0FBRyxpREFBaUQsK0JBQStCLEdBQUcsaURBQWlELCtCQUErQixHQUFHLHNFQUFzRSx1REFBdUQsR0FBRywwSkFBMEosa0JBQWtCLGVBQWUsaUJBQWlCLHVCQUF1QixXQUFXLEdBQUcsOEVBQThFLDBDQUEwQyxHQUFHLDZGQUE2RixnQkFBZ0IsR0FBRyw2RkFBNkYsZUFBZSxHQUFHLDZFQUE2RSxzQ0FBc0MsR0FBRyw0RkFBNEYsZ0JBQWdCLEdBQUcsNEZBQTRGLGVBQWUsR0FBRyxzQ0FBc0Msa0JBQWtCLEdBQUcsbUNBQW1DLGdCQUFnQiwrQ0FBK0Msb0JBQW9CLDRDQUE0QyxxQ0FBcUMsY0FBYyxrQkFBa0IsbUJBQW1CLDBEQUEwRCxnQkFBZ0IsaUJBQWlCLGdDQUFnQyw2QkFBNkIsNkJBQTZCLEdBQUcsa0RBQWtELCtCQUErQixHQUFHLGtEQUFrRCwrQkFBK0IsR0FBRywwQ0FBMEMscUJBQXFCLG9CQUFvQiwrQkFBK0IsOEJBQThCLHVCQUF1QixxQkFBcUIsNkNBQTZDLGdDQUFnQyxHQUFHLGdEQUFnRCxrQkFBa0IsdUJBQXVCLFdBQVcsWUFBWSxnQkFBZ0IsaUJBQWlCLG9DQUFvQyxHQUFHLHdDQUF3Qyx1QkFBdUIsZ0JBQWdCLHFCQUFxQixHQUFHLHVEQUF1RCxlQUFlLEdBQUcsdURBQXVELGNBQWMsR0FBRywyREFBMkQsa0JBQWtCLEdBQUcsOEVBQThFLGdCQUFnQixHQUFHLDZFQUE2RSxtQkFBbUIsR0FBRyxxRkFBcUYsZ0JBQWdCLEdBQUcseUVBQXlFLG1CQUFtQixHQUFHLHlGQUF5RixtQkFBbUIsR0FBRyxpR0FBaUcsbUJBQW1CLEdBQUcsT0FBTyxrTkFBa04sV0FBVyxXQUFXLE9BQU8sS0FBSyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsV0FBVyxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxXQUFXLEtBQUssS0FBSyxVQUFVLFdBQVcsV0FBVyxLQUFLLEtBQUssV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxVQUFVLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLEtBQUssTUFBTSxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssT0FBTyxXQUFXLEtBQUssTUFBTSxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsTUFBTSxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxNQUFNLFdBQVcsTUFBTSxPQUFPLFVBQVUsVUFBVSxVQUFVLFdBQVcsVUFBVSxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxNQUFNLE1BQU0sV0FBVyxVQUFV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QTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QywwUUFBMFEsNENBQTRDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCx5RkFBeUYsdWRBQXVkLHFCQUFxQjtBQUNseHhCO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzPzViMzgiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFNVWxFUVZRNFQyTmtZR0FRWWNBUDN1Q1RaaHcxZ0dHWWhBR0JaSUEvbllEQ2dCREFtOUJHRFdBQUp5UkNnTGFCQ0FBZ1h3aXh6QVMwcGdBQUFBQkpSVTVFcmtKZ2dnPT1cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgYm9yZGVyOiAwIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XFxuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMjUpIDAgMXB4IDRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlciB7XFxuICBsZWZ0OiAtNS41cHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIge1xcbiAgcmlnaHQ6IC01LjVweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250cm9sLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBncmlkO1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUge1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAwIDlweCAxMHB4O1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0xMHB4O1xcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyaWFuZ2xlIHtcXG4gIGxlZnQ6IDEycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUge1xcbiAgcmlnaHQ6IDEycHg7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJpYW5nbGUtc2hhZG93IHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgdG9wOiAtMTFweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1kZWZhdWx0IHtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBhdXRvKTtcXG4gIGdyaWQtZ2FwOiAwLjVyZW07XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdDpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZzogMC4yNXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtdGl0bGUge1xcbiAgY29sb3I6ICM4NjhlOTY7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBwYWRkaW5nOiAwIDAuMjVyZW07XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9ycyB7XFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzIC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gIG1hcmdpbjogMCAwLjI1cmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWNvbnRlbnQgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICBncmlkLWNvbHVtbjogMS9zcGFuIDU7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMS44NzVyZW07XFxuICB3aWR0aDogMS44NzVyZW07XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBtYXJnaW46IDA7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcXG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50O1xcbiAgZmlsdGVyOiB2YXIoLS10aGVtZS1maWx0ZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXN3YXRjaDpmb2N1cyB7XFxuICAvKiBUT0RPOiBvbmx5IHNob3cgdGhlIGJvcmRlciB3aGVuIHRoZSBjb2xvciBpcyB0b28gbGlnaHQgdG8gc2VlIGFzIGEgc2hhZG93ICovXFxuICBib3gtc2hhZG93OiAwIDAgNHB4IDFweCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXNlbGVjdC1oaWdobGlnaHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXRyYW5zcGFyZW50IHtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xKSAwIDAgMCAxcHggaW5zZXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHJhbnNwYXJlbnQsXFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcbiAgYmFja2dyb3VuZDogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKSBsZWZ0IGNlbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxuICBoZWlnaHQ6IDEuODc1cmVtO1xcbiAgd2lkdGg6IDEuODc1cmVtO1xcbiAgY29sb3I6IHZhcigtLWlucHV0LWxhYmVsLWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItaGFzaCB7XFxuICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2gge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YmVmb3JlLFxcbi5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxuICByaWdodDogLTFweDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjpiZWZvcmUge1xcbiAgbGVmdDogLTFweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgcmlnaHQ6IC0ycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaDo6YWZ0ZXIge1xcbiAgbGVmdDogLTJweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWlucHV0IHtcXG4gIHdpZHRoOiAxMWNoO1xcbiAgLyogbGVuZ3RoIG9mIGB0cmFuc3BhcmVudGAgKi9cXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogbm9uZTtcXG4gIGhlaWdodDogMS43NWVtO1xcbiAgYm94LXNoYWRvdzogdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKSAwIDAgMCAxcHggaW5zZXQ7XFxuICBmbG9hdDogbGVmdDtcXG4gIHBhZGRpbmc6IDFweDtcXG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1pbnB1dCB7XFxuICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1pbnB1dCB7XFxuICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcbiAgaGVpZ2h0OiAxLjg3NXJlbTtcXG4gIHdpZHRoOiAxLjg3NXJlbTtcXG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAwLjI1cmVtO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZTJlNjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgZmlsdGVyOiB2YXIoLS10aGVtZS1maWx0ZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWxhYmVsLXN3YXRjaDphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXN3YXRjaC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDJweDtcXG4gIGZvbnQtc2l6ZTogMC43ZW07XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICByaWdodDogMnB4O1xcbn1cXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgbGVmdDogMnB4O1xcbn1cXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5leGNhbGlkcmF3IC5jb2xvci1waWNrZXItdHlwZS1jYW52YXNCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBjb2xvcjogI2FhYTtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci10eXBlLWVsZW1lbnRCYWNrZ3JvdW5kIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBjb2xvcjogI2ZmZmZmZjtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbG9yLXBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD10cmFuc3BhcmVudF0gLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gIGNvbG9yOiAjYWFhO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29sb3ItcGlja2VyLXR5cGUtZWxlbWVudFN0cm9rZSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgY29sb3I6ICNkNGQ0ZDQ7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgY29sb3I6ICMwMDAwMDA7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIC5jb2xvci1waWNrZXItc3dhdGNoW2FyaWEtbGFiZWw9dHJhbnNwYXJlbnRdIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICBjb2xvcjogIzAwMDAwMDtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBaUNBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQ2hDRjs7QUFBRTtFQUNFLGlDQUFBO0VBQ0EseUNBQUE7RUFDQSx5Q0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUFHSjtBQURJO0VBQ0UsWUFBQTtBQUdOO0FBQUk7RUFDRSxhQUFBO0FBRU47QUFFRTtFQUNFLGFBQUE7RUFDQSwrQkFBQTtFQUNBLG1CQUFBO0FBQUo7QUFHRTtFQUNFLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLDJEQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0FBREo7QUFHSTtFQUNFLFVBQUE7QUFETjtBQUlJO0VBQ0UsV0FBQTtBQUZOO0FBTUU7RUFDRSx3REFBQTtFQUNBLFVBQUE7QUFKSjtBQU9FO0VBQ0UsZUFBQTtFQUNBLGFBQUE7RUFDQSxzQ0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUFMSjtBQU9JO0VBQ0UsYUFBQTtFQUNBLGtEQUFBO0FBTE47QUFTRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0FBUEo7QUFTSTtFQUNFLGNDOUJNO0VEK0JOLGVBQUE7RUFDQSxrQkFBQTtBQVBOO0FBVUk7RUFDRSxpQkFBQTtBQVJOO0FBVU07RUFDRSxpQkFBQTtBQVJSO0FBYUU7RUFDRSxxQkFBQTtBQVhKO0FBY0U7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUNBLHNCQUFBO0VBQ0EseUNBQUE7RUFDQSwyQkFBQTtBQVpKO0FBY0k7RUFDRSw4RUFBQTtFQUNBLG9DQUFBO0VBQ0EsMkNBQUE7QUFaTjtBQWdCRTtFQUNFLGtCQUFBO0VBQ0EsOENBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7QUFkSjtBQWlCRTs7RUFFRSwrREFBQTtBQWZKO0FBbUJFO0VBQ0UscUNBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFVQSwrQkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7QUExQko7QUFjSTtFQUNFLDBCQUFBO0FBWk47QUFlSTtFQUNFLDBCQUFBO0FBYk47QUF1QkU7RUFDRSxrREFBQTtBQXJCSjtBQXdCRTs7RUFFRSxXQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7QUF0Qko7QUF5QkU7RUFDRSxxQ0FBQTtBQXZCSjtBQXlCSTtFQUNFLFdBQUE7QUF2Qk47QUEwQkk7RUFDRSxVQUFBO0FBeEJOO0FBNEJFO0VBQ0UsaUNBQUE7QUExQko7QUE0Qkk7RUFDRSxXQUFBO0FBMUJOO0FBNkJJO0VBQ0UsVUFBQTtBQTNCTjtBQStCRTtFQUNFLGFBQUE7QUE3Qko7QUFnQ0U7RUFDRSxXQUFBO0VBQWEsNEJBQUE7RUFDYixTQUFBO0VBQ0EsZUFBQTtFQUNBLHVDQUFBO0VBQ0EsZ0NBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxxREFBQTtFQVVBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsMkJBQUE7RUFDQSx3QkFBQTtVQUFBLGdCQUFBO0FBdENKO0FBMkJJO0VBQ0UsMEJBQUE7QUF6Qk47QUE0Qkk7RUFDRSwwQkFBQTtBQTFCTjtBQW1DRTtFQUNFLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0Esd0NBQUE7RUFDQSwyQkFBQTtBQWpDSjtBQW1DSTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSwrQkFBQTtBQWpDTjtBQXFDRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FBbkNKO0FBcUNJO0VBQ0UsVUFBQTtBQW5DTjtBQXNDSTtFQUNFLFNBQUE7QUFwQ047QUR0TVc7RUM4T0wsYUFBQTtBQXJDTjs7QUF5Q0U7RUFDRSxXQUFBO0FBdENKO0FBeUNFO0VBQ0UsY0MvT2U7QUR3TW5CO0FBMENFO0VBQ0UsV0FBQTtBQXhDSjtBQTJDRTtFQUNFLGNBQUE7QUF6Q0o7QUE2Q0k7RUFDRSxjQzNQYTtBRGdObkI7QUE2Q0k7RUFDRSxjQzlQYTtBRG1ObkJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLmNvbG9yLXBpY2tlciB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXG4gICAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50aXplKCRvYy13aGl0ZSwgMC43NSk7XFxuICAgIGJveC1zaGFkb3c6IHRyYW5zcGFyZW50aXplKCRvYy1ibGFjaywgMC43NSkgMCAxcHggNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAtNS41cHg7XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICByaWdodDogLTUuNXB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWNvbnRyb2wtY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHJpYW5nbGUge1xcbiAgICB3aWR0aDogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItd2lkdGg6IDAgOXB4IDEwcHg7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogLTEwcHg7XFxuXFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgbGVmdDogMTJweDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAxMnB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLXRyaWFuZ2xlLXNoYWRvdyB7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjkpO1xcbiAgICB0b3A6IC0xMXB4O1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1jb250ZW50LS1kZWZhdWx0IHtcXG4gICAgcGFkZGluZzogMC41cmVtO1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBhdXRvKTtcXG4gICAgZ3JpZC1nYXA6IDAuNXJlbTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWNvbnRlbnQtLWNhbnZhcyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHBhZGRpbmc6IDAuMjVyZW07XFxuXFxuICAgICYtdGl0bGUge1xcbiAgICAgIGNvbG9yOiAkb2MtZ3JheS02O1xcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICBwYWRkaW5nOiAwIDAuMjVyZW07XFxuICAgIH1cXG5cXG4gICAgJi1jb2xvcnMge1xcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xcblxcbiAgICAgIC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gICAgICAgIG1hcmdpbjogMCAwLjI1cmVtO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1jb250ZW50IC5jb2xvci1pbnB1dC1jb250YWluZXIge1xcbiAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gNTtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItc3dhdGNoIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBoZWlnaHQ6IDEuODc1cmVtO1xcbiAgICB3aWR0aDogMS44NzVyZW07XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvciAhaW1wb3J0YW50O1xcbiAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIC8qIFRPRE86IG9ubHkgc2hvdyB0aGUgYm9yZGVyIHdoZW4gdGhlIGNvbG9yIGlzIHRvbyBsaWdodCB0byBzZWUgYXMgYSBzaGFkb3cgKi9cXG4gICAgICBib3gtc2hhZG93OiAwIDAgNHB4IDFweCBjdXJyZW50Q29sb3I7XFxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci10cmFuc3BhcmVudCB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgYm94LXNoYWRvdzogdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjkpIDAgMCAwIDFweCBpbnNldDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLXRyYW5zcGFyZW50LFxcbiAgLmNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2gge1xcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXFxcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFNVWxFUVZRNFQyTmtZR0FRWWNBUDN1Q1RaaHcxZ0dHWWhBR0JaSUEvbllEQ2dCREFtOUJHRFdBQUp5UkNnTGFCQ0FBZ1h3aXh6QVMwcGdBQUFBQkpSVTVFcmtKZ2dnPT1cXFwiKVxcbiAgICAgIGxlZnQgY2VudGVyO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1oYXNoIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXG4gICAgaGVpZ2h0OiAxLjg3NXJlbTtcXG4gICAgd2lkdGg6IDEuODc1cmVtO1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XFxuICAgIH1cXG5cXG4gICAgY29sb3I6IHZhcigtLWlucHV0LWxhYmVsLWNvbG9yKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIH1cXG5cXG4gIC5jb2xvci1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIC5jb2xvci1waWNrZXItaGFzaCB7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbiAgfVxcblxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gLmNvbG9yLXBpY2tlci1oYXNoOjpiZWZvcmUsXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmFmdGVyIHtcXG4gICAgY29udGVudDogXFxcIlxcXCI7XFxuICAgIHdpZHRoOiAxcHg7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICB9XFxuXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxuXFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IC0xcHg7XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAtMXB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiAuY29sb3ItcGlja2VyLWhhc2g6OmFmdGVyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAtMnB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgbGVmdDogLTJweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbG9yLWlucHV0LWNvbnRhaW5lciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLWlucHV0IHtcXG4gICAgd2lkdGg6IDExY2g7IC8qIGxlbmd0aCBvZiBgdHJhbnNwYXJlbnRgICovXFxuICAgIG1hcmdpbjogMDtcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iZy1jb2xvcik7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGhlaWdodDogMS43NWVtO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpIDAgMCAwIDFweCBpbnNldDtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xcbiAgICB9XFxuXFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nOiAxcHg7XFxuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItbGFiZWwtc3dhdGNoIHtcXG4gICAgaGVpZ2h0OiAxLjg3NXJlbTtcXG4gICAgd2lkdGg6IDEuODc1cmVtO1xcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNXJlbTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgJG9jLWdyYXktMztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxuXFxuICAgICY6YWZ0ZXIge1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3dhdGNoLWNvbG9yKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1rZXliaW5kaW5nIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IDJweDtcXG4gICAgZm9udC1zaXplOiAwLjdlbTtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICByaWdodDogMnB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgbGVmdDogMnB4O1xcbiAgICB9XFxuXFxuICAgIEBpbmNsdWRlIGlzTW9iaWxlIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29sb3ItcGlja2VyLXR5cGUtY2FudmFzQmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICBjb2xvcjogI2FhYTtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICBjb2xvcjogJG9jLXdoaXRlO1xcbiAgfVxcblxcbiAgLmNvbG9yLXBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD1cXFwidHJhbnNwYXJlbnRcXFwiXSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICBjb2xvcjogI2FhYTtcXG4gIH1cXG5cXG4gIC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50U3Ryb2tlIC5jb2xvci1waWNrZXIta2V5YmluZGluZyB7XFxuICAgIGNvbG9yOiAjZDRkNGQ0O1xcbiAgfVxcblxcbiAgJi50aGVtZS0tZGFyayB7XFxuICAgIC5jb2xvci1waWNrZXItdHlwZS1lbGVtZW50QmFja2dyb3VuZCAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICAgIGNvbG9yOiAkb2MtYmxhY2s7XFxuICAgIH1cXG4gICAgLmNvbG9yLXBpY2tlci1zd2F0Y2hbYXJpYS1sYWJlbD1cXFwidHJhbnNwYXJlbnRcXFwiXSAuY29sb3ItcGlja2VyLWtleWJpbmRpbmcge1xcbiAgICAgIGNvbG9yOiAkb2MtYmxhY2s7XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCIvL1xcbi8vXFxuLy8gIPCdl5Yg8J2XoiDwnZefIPCdl6Ig8J2XpVxcbi8vICB2IDEuOS4xXFxuLy9cXG4vLyAg4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBXFxuXFxuXFxuLy8gIEdlbmVyYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXdoaXRlOiAgICAgICAgICNmZmZmZmY7XFxuJG9jLWJsYWNrOiAgICAgICAgICMwMDAwMDA7XFxuXFxuXFxuLy8gIEdyYXlcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyYXktbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmOWZhLFxcbiAgXFxcIjFcXFwiOiAjZjFmM2Y1LFxcbiAgXFxcIjJcXFwiOiAjZTllY2VmLFxcbiAgXFxcIjNcXFwiOiAjZGVlMmU2LFxcbiAgXFxcIjRcXFwiOiAjY2VkNGRhLFxcbiAgXFxcIjVcXFwiOiAjYWRiNWJkLFxcbiAgXFxcIjZcXFwiOiAjODY4ZTk2LFxcbiAgXFxcIjdcXFwiOiAjNDk1MDU3LFxcbiAgXFxcIjhcXFwiOiAjMzQzYTQwLFxcbiAgXFxcIjlcXFwiOiAjMjEyNTI5XFxuKTtcXG5cXG4kb2MtZ3JheS0wOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyYXktMTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmF5LTI6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JheS0zOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyYXktNDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmF5LTU6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JheS02OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyYXktNzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmF5LTg6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JheS05OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFJlZFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtcmVkLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjVmNSxcXG4gIFxcXCIxXFxcIjogI2ZmZTNlMyxcXG4gIFxcXCIyXFxcIjogI2ZmYzljOSxcXG4gIFxcXCIzXFxcIjogI2ZmYThhOCxcXG4gIFxcXCI0XFxcIjogI2ZmODc4NyxcXG4gIFxcXCI1XFxcIjogI2ZmNmI2YixcXG4gIFxcXCI2XFxcIjogI2ZhNTI1MixcXG4gIFxcXCI3XFxcIjogI2YwM2UzZSxcXG4gIFxcXCI4XFxcIjogI2UwMzEzMSxcXG4gIFxcXCI5XFxcIjogI2M5MmEyYVxcbik7XFxuXFxuJG9jLXJlZC0wOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtcmVkLTE6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1yZWQtMjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXJlZC0zOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtcmVkLTQ6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1yZWQtNTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXJlZC02OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtcmVkLTc6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1yZWQtODogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXJlZC05OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUGlua1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtcGluay1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmYwZjYsXFxuICBcXFwiMVxcXCI6ICNmZmRlZWIsXFxuICBcXFwiMlxcXCI6ICNmY2MyZDcsXFxuICBcXFwiM1xcXCI6ICNmYWEyYzEsXFxuICBcXFwiNFxcXCI6ICNmNzgzYWMsXFxuICBcXFwiNVxcXCI6ICNmMDY1OTUsXFxuICBcXFwiNlxcXCI6ICNlNjQ5ODAsXFxuICBcXFwiN1xcXCI6ICNkNjMzNmMsXFxuICBcXFwiOFxcXCI6ICNjMjI1NWMsXFxuICBcXFwiOVxcXCI6ICNhNjFlNGRcXG4pO1xcblxcbiRvYy1waW5rLTA6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtcGluay0xOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXBpbmstMjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1waW5rLTM6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtcGluay00OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXBpbmstNTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1waW5rLTY6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtcGluay03OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXBpbmstODogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1waW5rLTk6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgR3JhcGVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyYXBlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y4ZjBmYyxcXG4gIFxcXCIxXFxcIjogI2YzZDlmYSxcXG4gIFxcXCIyXFxcIjogI2VlYmVmYSxcXG4gIFxcXCIzXFxcIjogI2U1OTlmNyxcXG4gIFxcXCI0XFxcIjogI2RhNzdmMixcXG4gIFxcXCI1XFxcIjogI2NjNWRlOCxcXG4gIFxcXCI2XFxcIjogI2JlNGJkYixcXG4gIFxcXCI3XFxcIjogI2FlM2VjOSxcXG4gIFxcXCI4XFxcIjogIzljMzZiNSxcXG4gIFxcXCI5XFxcIjogIzg2MmU5Y1xcbik7XFxuXFxuJG9jLWdyYXBlLTA6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyYXBlLTE6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXBlLTI6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyYXBlLTM6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyYXBlLTQ6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXBlLTU6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyYXBlLTY6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyYXBlLTc6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXBlLTg6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyYXBlLTk6IG1hcC1nZXQoJG9jLWdyYXBlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFZpb2xldFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtdmlvbGV0LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2YzZjBmZixcXG4gIFxcXCIxXFxcIjogI2U1ZGJmZixcXG4gIFxcXCIyXFxcIjogI2QwYmZmZixcXG4gIFxcXCIzXFxcIjogI2IxOTdmYyxcXG4gIFxcXCI0XFxcIjogIzk3NzVmYSxcXG4gIFxcXCI1XFxcIjogIzg0NWVmNyxcXG4gIFxcXCI2XFxcIjogIzc5NTBmMixcXG4gIFxcXCI3XFxcIjogIzcwNDhlOCxcXG4gIFxcXCI4XFxcIjogIzY3NDFkOSxcXG4gIFxcXCI5XFxcIjogIzVmM2RjNFxcbik7XFxuXFxuJG9jLXZpb2xldC0wOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtdmlvbGV0LTE6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy12aW9sZXQtMjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXZpb2xldC0zOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtdmlvbGV0LTQ6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy12aW9sZXQtNTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXZpb2xldC02OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtdmlvbGV0LTc6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy12aW9sZXQtODogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXZpb2xldC05OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgSW5kaWdvXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1pbmRpZ28tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZWRmMmZmLFxcbiAgXFxcIjFcXFwiOiAjZGJlNGZmLFxcbiAgXFxcIjJcXFwiOiAjYmFjOGZmLFxcbiAgXFxcIjNcXFwiOiAjOTFhN2ZmLFxcbiAgXFxcIjRcXFwiOiAjNzQ4ZmZjLFxcbiAgXFxcIjVcXFwiOiAjNWM3Y2ZhLFxcbiAgXFxcIjZcXFwiOiAjNGM2ZWY1LFxcbiAgXFxcIjdcXFwiOiAjNDI2M2ViLFxcbiAgXFxcIjhcXFwiOiAjM2I1YmRiLFxcbiAgXFxcIjlcXFwiOiAjMzY0ZmM3XFxuKTtcXG5cXG4kb2MtaW5kaWdvLTA6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1pbmRpZ28tMTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWluZGlnby0yOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtaW5kaWdvLTM6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1pbmRpZ28tNDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWluZGlnby01OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtaW5kaWdvLTY6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1pbmRpZ28tNzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWluZGlnby04OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtaW5kaWdvLTk6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBCbHVlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ibHVlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2U3ZjVmZixcXG4gIFxcXCIxXFxcIjogI2QwZWJmZixcXG4gIFxcXCIyXFxcIjogI2E1ZDhmZixcXG4gIFxcXCIzXFxcIjogIzc0YzBmYyxcXG4gIFxcXCI0XFxcIjogIzRkYWJmNyxcXG4gIFxcXCI1XFxcIjogIzMzOWFmMCxcXG4gIFxcXCI2XFxcIjogIzIyOGJlNixcXG4gIFxcXCI3XFxcIjogIzFjN2VkNixcXG4gIFxcXCI4XFxcIjogIzE5NzFjMixcXG4gIFxcXCI5XFxcIjogIzE4NjRhYlxcbik7XFxuXFxuJG9jLWJsdWUtMDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ibHVlLTE6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtYmx1ZS0yOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWJsdWUtMzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ibHVlLTQ6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtYmx1ZS01OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWJsdWUtNjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ibHVlLTc6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtYmx1ZS04OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWJsdWUtOTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBDeWFuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1jeWFuLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2UzZmFmYyxcXG4gIFxcXCIxXFxcIjogI2M1ZjZmYSxcXG4gIFxcXCIyXFxcIjogIzk5ZTlmMixcXG4gIFxcXCIzXFxcIjogIzY2ZDllOCxcXG4gIFxcXCI0XFxcIjogIzNiYzlkYixcXG4gIFxcXCI1XFxcIjogIzIyYjhjZixcXG4gIFxcXCI2XFxcIjogIzE1YWFiZixcXG4gIFxcXCI3XFxcIjogIzEwOThhZCxcXG4gIFxcXCI4XFxcIjogIzBjODU5OSxcXG4gIFxcXCI5XFxcIjogIzBiNzI4NVxcbik7XFxuXFxuJG9jLWN5YW4tMDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1jeWFuLTE6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtY3lhbi0yOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWN5YW4tMzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1jeWFuLTQ6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtY3lhbi01OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWN5YW4tNjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1jeWFuLTc6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtY3lhbi04OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWN5YW4tOTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBUZWFsXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy10ZWFsLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2U2ZmNmNSxcXG4gIFxcXCIxXFxcIjogI2MzZmFlOCxcXG4gIFxcXCIyXFxcIjogIzk2ZjJkNyxcXG4gIFxcXCIzXFxcIjogIzYzZTZiZSxcXG4gIFxcXCI0XFxcIjogIzM4ZDlhOSxcXG4gIFxcXCI1XFxcIjogIzIwYzk5NyxcXG4gIFxcXCI2XFxcIjogIzEyYjg4NixcXG4gIFxcXCI3XFxcIjogIzBjYTY3OCxcXG4gIFxcXCI4XFxcIjogIzA5OTI2OCxcXG4gIFxcXCI5XFxcIjogIzA4N2Y1Ylxcbik7XFxuXFxuJG9jLXRlYWwtMDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy10ZWFsLTE6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtdGVhbC0yOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXRlYWwtMzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy10ZWFsLTQ6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtdGVhbC01OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXRlYWwtNjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy10ZWFsLTc6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtdGVhbC04OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXRlYWwtOTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmVlblxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JlZW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZWJmYmVlLFxcbiAgXFxcIjFcXFwiOiAjZDNmOWQ4LFxcbiAgXFxcIjJcXFwiOiAjYjJmMmJiLFxcbiAgXFxcIjNcXFwiOiAjOGNlOTlhLFxcbiAgXFxcIjRcXFwiOiAjNjlkYjdjLFxcbiAgXFxcIjVcXFwiOiAjNTFjZjY2LFxcbiAgXFxcIjZcXFwiOiAjNDBjMDU3LFxcbiAgXFxcIjdcXFwiOiAjMzdiMjRkLFxcbiAgXFxcIjhcXFwiOiAjMmY5ZTQ0LFxcbiAgXFxcIjlcXFwiOiAjMmI4YTNlXFxuKTtcXG5cXG4kb2MtZ3JlZW4tMDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JlZW4tMTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JlZW4tMjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JlZW4tMzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JlZW4tNDogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JlZW4tNTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JlZW4tNjogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JlZW4tNzogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JlZW4tODogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JlZW4tOTogbWFwLWdldCgkb2MtZ3JlZW4tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgTGltZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtbGltZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmNGZjZTMsXFxuICBcXFwiMVxcXCI6ICNlOWZhYzgsXFxuICBcXFwiMlxcXCI6ICNkOGY1YTIsXFxuICBcXFwiM1xcXCI6ICNjMGViNzUsXFxuICBcXFwiNFxcXCI6ICNhOWUzNGIsXFxuICBcXFwiNVxcXCI6ICM5NGQ4MmQsXFxuICBcXFwiNlxcXCI6ICM4MmM5MWUsXFxuICBcXFwiN1xcXCI6ICM3NGI4MTYsXFxuICBcXFwiOFxcXCI6ICM2NmE4MGYsXFxuICBcXFwiOVxcXCI6ICM1Yzk0MGRcXG4pO1xcblxcbiRvYy1saW1lLTA6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtbGltZS0xOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWxpbWUtMjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1saW1lLTM6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtbGltZS00OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWxpbWUtNTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1saW1lLTY6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtbGltZS03OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWxpbWUtODogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1saW1lLTk6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgWWVsbG93XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy15ZWxsb3ctbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmOWRiLFxcbiAgXFxcIjFcXFwiOiAjZmZmM2JmLFxcbiAgXFxcIjJcXFwiOiAjZmZlYzk5LFxcbiAgXFxcIjNcXFwiOiAjZmZlMDY2LFxcbiAgXFxcIjRcXFwiOiAjZmZkNDNiLFxcbiAgXFxcIjVcXFwiOiAjZmNjNDE5LFxcbiAgXFxcIjZcXFwiOiAjZmFiMDA1LFxcbiAgXFxcIjdcXFwiOiAjZjU5ZjAwLFxcbiAgXFxcIjhcXFwiOiAjZjA4YzAwLFxcbiAgXFxcIjlcXFwiOiAjZTY3NzAwXFxuKTtcXG5cXG4kb2MteWVsbG93LTA6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy15ZWxsb3ctMTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXllbGxvdy0yOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MteWVsbG93LTM6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy15ZWxsb3ctNDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXllbGxvdy01OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MteWVsbG93LTY6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy15ZWxsb3ctNzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXllbGxvdy04OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MteWVsbG93LTk6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBPcmFuZ2VcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLW9yYW5nZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY0ZTYsXFxuICBcXFwiMVxcXCI6ICNmZmU4Y2MsXFxuICBcXFwiMlxcXCI6ICNmZmQ4YTgsXFxuICBcXFwiM1xcXCI6ICNmZmMwNzgsXFxuICBcXFwiNFxcXCI6ICNmZmE5NGQsXFxuICBcXFwiNVxcXCI6ICNmZjkyMmIsXFxuICBcXFwiNlxcXCI6ICNmZDdlMTQsXFxuICBcXFwiN1xcXCI6ICNmNzY3MDcsXFxuICBcXFwiOFxcXCI6ICNlODU5MGMsXFxuICBcXFwiOVxcXCI6ICNkOTQ4MGZcXG4pO1xcblxcbiRvYy1vcmFuZ2UtMDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLW9yYW5nZS0xOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2Mtb3JhbmdlLTI6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1vcmFuZ2UtMzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLW9yYW5nZS00OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2Mtb3JhbmdlLTU6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1vcmFuZ2UtNjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLW9yYW5nZS03OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2Mtb3JhbmdlLTg6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1vcmFuZ2UtOTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIENvbG9yIGxpc3RcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWNvbG9yLXNwZWN0cnVtOiAgIDk7XFxuXFxuJG9jLWNvbG9yLWxpc3Q6IChcXG4gICRvYy1ncmF5LWxpc3Q6ICAgICAgXFxcImdyYXlcXFwiLFxcbiAgJG9jLXJlZC1saXN0OiAgICAgIFxcXCJyZWRcXFwiLFxcbiAgJG9jLXBpbmstbGlzdDogICAgICBcXFwicGlua1xcXCIsXFxuICAkb2MtZ3JhcGUtbGlzdDogICAgICBcXFwiZ3JhcGVcXFwiLFxcbiAgJG9jLXZpb2xldC1saXN0OiAgICAgIFxcXCJ2aW9sZXRcXFwiLFxcbiAgJG9jLWluZGlnby1saXN0OiAgICAgIFxcXCJpbmRpZ29cXFwiLFxcbiAgJG9jLWJsdWUtbGlzdDogICAgICBcXFwiYmx1ZVxcXCIsXFxuICAkb2MtY3lhbi1saXN0OiAgICAgIFxcXCJjeWFuXFxcIixcXG4gICRvYy10ZWFsLWxpc3Q6ICAgICAgXFxcInRlYWxcXFwiLFxcbiAgJG9jLWdyZWVuLWxpc3Q6ICAgICAgXFxcImdyZWVuXFxcIixcXG4gICRvYy1saW1lLWxpc3Q6ICAgICAgXFxcImxpbWVcXFwiLFxcbiAgJG9jLXllbGxvdy1saXN0OiAgICAgIFxcXCJ5ZWxsb3dcXFwiLFxcbiAgJG9jLW9yYW5nZS1saXN0OiAgICAgIFxcXCJvcmFuZ2VcXFwiXFxuKTtcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ColorPicker.scss\n");
1307
1083
 
1308
1084
  /***/ }),
1309
1085
 
@@ -1325,7 +1101,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1325
1101
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1326
1102
 
1327
1103
  "use strict";
1328
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n:export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .context-menu {\\n position: relative;\\n border-radius: 4px;\\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\\n padding: 0;\\n list-style: none;\\n user-select: none;\\n margin: -0.25rem 0 0 0.125rem;\\n padding: 0.5rem 0;\\n background-color: var(--popup-secondary-bg-color);\\n border: 1px solid var(--button-gray-3);\\n cursor: default;\\n}\\n.excalidraw .context-menu button {\\n color: var(--popup-text-color);\\n}\\n.excalidraw .context-menu-option {\\n position: relative;\\n width: 100%;\\n min-width: 9.5rem;\\n margin: 0;\\n padding: 0.25rem 1rem 0.25rem 1.25rem;\\n text-align: start;\\n border-radius: 0;\\n background-color: transparent;\\n border: none;\\n white-space: nowrap;\\n display: grid;\\n grid-template-columns: 1fr 0.2fr;\\n align-items: center;\\n}\\n.excalidraw .context-menu-option.checkmark::before {\\n position: absolute;\\n left: 6px;\\n margin-bottom: 1px;\\n content: \\\"✓\\\";\\n}\\n.excalidraw .context-menu-option.dangerous .context-menu-option__label {\\n color: #f03e3e;\\n}\\n.excalidraw .context-menu-option .context-menu-option__label {\\n justify-self: start;\\n margin-inline-end: 20px;\\n}\\n.excalidraw .context-menu-option .context-menu-option__shortcut {\\n justify-self: end;\\n opacity: 0.6;\\n font-family: inherit;\\n font-size: 0.7rem;\\n}\\n.excalidraw .context-menu-option:hover {\\n color: var(--popup-bg-color);\\n background-color: var(--select-highlight-color);\\n}\\n.excalidraw .context-menu-option:hover.dangerous {\\n background-color: #fa5252;\\n}\\n.excalidraw .context-menu-option:hover.dangerous .context-menu-option__label {\\n color: var(--popup-bg-color);\\n}\\n.excalidraw .context-menu-option:focus {\\n z-index: 1;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option {\\n display: block;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option .context-menu-option__label {\\n margin-inline-end: 0;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option .context-menu-option__shortcut {\\n display: none;\\n}\\n\\n.excalidraw .context-menu-option-separator {\\n border: none;\\n border-top: 1px solid #adb5bd;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../components/ContextMenu.scss\",\"webpack://./../../css/variables.module.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACiChB;EACE,2CAAA;EACA,wBAAA;AD/BF;;AADE;EACE,kBAAA;EACA,kBAAA;EACA,yCAAA;EACA,UAAA;EACA,gBAAA;EACA,iBAAA;EACA,6BAAA;EACA,iBAAA;EACA,iDAAA;EACA,sCAAA;EACA,eAAA;AAIJ;AADE;EACE,8BAAA;AAGJ;AAAE;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;EACA,SAAA;EACA,qCAAA;EACA,iBAAA;EACA,gBAAA;EACA,6BAAA;EACA,YAAA;EACA,mBAAA;EAEA,aAAA;EACA,gCAAA;EACA,mBAAA;AACJ;AACI;EACE,kBAAA;EACA,SAAA;EACA,kBAAA;EACA,YAAA;AACN;AAGM;EACE,cEoBG;AFrBX;AAKI;EACE,mBAAA;EACA,uBAAA;AAHN;AAKI;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;EACA,iBAAA;AAHN;AAOE;EACE,4BAAA;EACA,+CAAA;AALJ;AAOI;EAIE,yBELK;AFHX;AAKM;EACE,4BAAA;AAHR;AASE;EACE,UAAA;AAPJ;AAWI;EACE,cAAA;AATN;AAWM;EACE,oBAAA;AATR;AAYM;EACE,aAAA;AAVR;;AAeE;EACE,YAAA;EACA,6BAAA;AAZJ\",\"sourcesContent\":[\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .context-menu {\\n position: relative;\\n border-radius: 4px;\\n box-shadow: 0 3px 10px transparentize($oc-black, 0.8);\\n padding: 0;\\n list-style: none;\\n user-select: none;\\n margin: -0.25rem 0 0 0.125rem;\\n padding: 0.5rem 0;\\n background-color: var(--popup-secondary-bg-color);\\n border: 1px solid var(--button-gray-3);\\n cursor: default;\\n }\\n\\n .context-menu button {\\n color: var(--popup-text-color);\\n }\\n\\n .context-menu-option {\\n position: relative;\\n width: 100%;\\n min-width: 9.5rem;\\n margin: 0;\\n padding: 0.25rem 1rem 0.25rem 1.25rem;\\n text-align: start;\\n border-radius: 0;\\n background-color: transparent;\\n border: none;\\n white-space: nowrap;\\n\\n display: grid;\\n grid-template-columns: 1fr 0.2fr;\\n align-items: center;\\n\\n &.checkmark::before {\\n position: absolute;\\n left: 6px;\\n margin-bottom: 1px;\\n content: \\\"\\\\2713\\\";\\n }\\n\\n &.dangerous {\\n .context-menu-option__label {\\n color: $oc-red-7;\\n }\\n }\\n\\n .context-menu-option__label {\\n justify-self: start;\\n margin-inline-end: 20px;\\n }\\n .context-menu-option__shortcut {\\n justify-self: end;\\n opacity: 0.6;\\n font-family: inherit;\\n font-size: 0.7rem;\\n }\\n }\\n\\n .context-menu-option:hover {\\n color: var(--popup-bg-color);\\n background-color: var(--select-highlight-color);\\n\\n &.dangerous {\\n .context-menu-option__label {\\n color: var(--popup-bg-color);\\n }\\n background-color: $oc-red-6;\\n }\\n }\\n\\n .context-menu-option:focus {\\n z-index: 1;\\n }\\n\\n @include isMobile {\\n .context-menu-option {\\n display: block;\\n\\n .context-menu-option__label {\\n margin-inline-end: 0;\\n }\\n\\n .context-menu-option__shortcut {\\n display: none;\\n }\\n }\\n }\\n\\n .context-menu-option-separator {\\n border: none;\\n border-top: 1px solid $oc-gray-5;\\n }\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLDZEQUE2RCxXQUFXLGdEQUFnRCw2QkFBNkIsR0FBRywrQkFBK0IsdUJBQXVCLHVCQUF1Qiw4Q0FBOEMsZUFBZSxxQkFBcUIsc0JBQXNCLGtDQUFrQyxzQkFBc0Isc0RBQXNELDJDQUEyQyxvQkFBb0IsR0FBRyxvQ0FBb0MsbUNBQW1DLEdBQUcsb0NBQW9DLHVCQUF1QixnQkFBZ0Isc0JBQXNCLGNBQWMsMENBQTBDLHNCQUFzQixxQkFBcUIsa0NBQWtDLGlCQUFpQix3QkFBd0Isa0JBQWtCLHFDQUFxQyx3QkFBd0IsR0FBRyxzREFBc0QsdUJBQXVCLGNBQWMsdUJBQXVCLG1CQUFtQixHQUFHLDBFQUEwRSxtQkFBbUIsR0FBRyxnRUFBZ0Usd0JBQXdCLDRCQUE0QixHQUFHLG1FQUFtRSxzQkFBc0IsaUJBQWlCLHlCQUF5QixzQkFBc0IsR0FBRywwQ0FBMEMsaUNBQWlDLG9EQUFvRCxHQUFHLG9EQUFvRCw4QkFBOEIsR0FBRyxnRkFBZ0YsaUNBQWlDLEdBQUcsMENBQTBDLGVBQWUsR0FBRyx1REFBdUQsbUJBQW1CLEdBQUcsbUZBQW1GLHlCQUF5QixHQUFHLHNGQUFzRixrQkFBa0IsR0FBRyxnREFBZ0QsaUJBQWlCLGtDQUFrQyxHQUFHLE9BQU8sd05BQXdOLE9BQU8sV0FBVyxXQUFXLE9BQU8sS0FBSyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVB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LDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QseUZBQXlGLHVkQUF1ZCxxQkFBcUI7QUFDbjRmO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzP2E2MzUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG46ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICBwYWRkaW5nOiAwO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgbWFyZ2luOiAtMC4yNXJlbSAwIDAgMC4xMjVyZW07XFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcik7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbnRleHQtbWVudSBidXR0b24ge1xcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi13aWR0aDogOS41cmVtO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMC4yNXJlbSAxcmVtIDAuMjVyZW0gMS4yNXJlbTtcXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwLjJmcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uLmNoZWNrbWFyazo6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDZweDtcXG4gIG1hcmdpbi1ib3R0b206IDFweDtcXG4gIGNvbnRlbnQ6IFxcXCLinJNcXFwiO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi5kYW5nZXJvdXMgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXG4gIGNvbG9yOiAjZjAzZTNlO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcbiAganVzdGlmeS1zZWxmOiBzdGFydDtcXG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fc2hvcnRjdXQge1xcbiAganVzdGlmeS1zZWxmOiBlbmQ7XFxuICBvcGFjaXR5OiAwLjY7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uOmhvdmVyLmRhbmdlcm91cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE1MjUyO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpob3Zlci5kYW5nZXJvdXMgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXG4gIGNvbG9yOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uOmZvY3VzIHtcXG4gIHotaW5kZXg6IDE7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uIC5jb250ZXh0LW1lbnUtb3B0aW9uX19zaG9ydGN1dCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhZGI1YmQ7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ29udGV4dE1lbnUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLGdCQUFnQjtBQ2lDaEI7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FEL0JGOztBQURFO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHlDQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0VBQ0EsaURBQUE7RUFDQSxzQ0FBQTtFQUNBLGVBQUE7QUFJSjtBQURFO0VBQ0UsOEJBQUE7QUFHSjtBQUFFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUNBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFFQSxhQUFBO0VBQ0EsZ0NBQUE7RUFDQSxtQkFBQTtBQUNKO0FBQ0k7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUFDTjtBQUdNO0VBQ0UsY0VvQkc7QUZyQlg7QUFLSTtFQUNFLG1CQUFBO0VBQ0EsdUJBQUE7QUFITjtBQUtJO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtBQUhOO0FBT0U7RUFDRSw0QkFBQTtFQUNBLCtDQUFBO0FBTEo7QUFPSTtFQUlFLHlCRUxLO0FGSFg7QUFLTTtFQUNFLDRCQUFBO0FBSFI7QUFTRTtFQUNFLFVBQUE7QUFQSjtBQVdJO0VBQ0UsY0FBQTtBQVROO0FBV007RUFDRSxvQkFBQTtBQVRSO0FBWU07RUFDRSxhQUFBO0FBVlI7O0FBZUU7RUFDRSxZQUFBO0VBQ0EsNkJBQUE7QUFaSlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLmNvbnRleHQtbWVudSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHRyYW5zcGFyZW50aXplKCRvYy1ibGFjaywgMC44KTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIG1hcmdpbjogLTAuMjVyZW0gMCAwIDAuMTI1cmVtO1xcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gIH1cXG5cXG4gIC5jb250ZXh0LW1lbnUgYnV0dG9uIHtcXG4gICAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbiAgfVxcblxcbiAgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtaW4td2lkdGg6IDkuNXJlbTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDFyZW0gMC4yNXJlbSAxLjI1cmVtO1xcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcXG4gICAgYm9yZGVyLXJhZGl1czogMDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMC4yZnI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgICYuY2hlY2ttYXJrOjpiZWZvcmUge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICBsZWZ0OiA2cHg7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFxcMjcxM1xcXCI7XFxuICAgIH1cXG5cXG4gICAgJi5kYW5nZXJvdXMge1xcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICAgICAgICBjb2xvcjogJG9jLXJlZC03O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcbiAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XFxuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDIwcHg7XFxuICAgIH1cXG4gICAgLmNvbnRleHQtbWVudS1vcHRpb25fX3Nob3J0Y3V0IHtcXG4gICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcXG4gICAgICBvcGFjaXR5OiAwLjY7XFxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICAgICAgZm9udC1zaXplOiAwLjdyZW07XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb250ZXh0LW1lbnUtb3B0aW9uOmhvdmVyIHtcXG4gICAgY29sb3I6IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcik7XFxuXFxuICAgICYuZGFuZ2Vyb3VzIHtcXG4gICAgICAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcbiAgICAgICAgY29sb3I6IHZhcigtLXBvcHVwLWJnLWNvbG9yKTtcXG4gICAgICB9XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLXJlZC02O1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29udGV4dC1tZW51LW9wdGlvbjpmb2N1cyB7XFxuICAgIHotaW5kZXg6IDE7XFxuICB9XFxuXFxuICBAaW5jbHVkZSBpc01vYmlsZSB7XFxuICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uIHtcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXG5cXG4gICAgICAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XFxuICAgICAgfVxcblxcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19zaG9ydGN1dCB7XFxuICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbnRleHQtbWVudS1vcHRpb24tc2VwYXJhdG9yIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG9jLWdyYXktNTtcXG4gIH1cXG59XFxuXCIsXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuXFxuQG1peGluIGlzTW9iaWxlKCkge1xcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcbiAgICBAY29udGVudDtcXG4gIH1cXG59XFxuXFxuQG1peGluIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcyB7XFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gICAgJiArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICAgIGJvdHRvbTogNHB4O1xcbiAgICByaWdodDogNHB4O1xcbiAgfVxcbn1cXG5cXG4kdGhlbWUtZmlsdGVyOiBcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcIjtcXG4kcmlnaHQtc2lkZWJhci13aWR0aDogXFxcIjMwMnB4XFxcIjtcXG5cXG46ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IHVucXVvdGUoJHJpZ2h0LXNpZGViYXItd2lkdGgpO1xcbn1cXG5cIixcIi8vXFxuLy9cXG4vLyAg8J2XliDwnZeiIPCdl58g8J2XoiDwnZelXFxuLy8gIHYgMS45LjFcXG4vL1xcbi8vICDilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIFcXG5cXG5cXG4vLyAgR2VuZXJhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXG5cXG5cXG4vLyAgR3JheVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JheS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGY5ZmEsXFxuICBcXFwiMVxcXCI6ICNmMWYzZjUsXFxuICBcXFwiMlxcXCI6ICNlOWVjZWYsXFxuICBcXFwiM1xcXCI6ICNkZWUyZTYsXFxuICBcXFwiNFxcXCI6ICNjZWQ0ZGEsXFxuICBcXFwiNVxcXCI6ICNhZGI1YmQsXFxuICBcXFwiNlxcXCI6ICM4NjhlOTYsXFxuICBcXFwiN1xcXCI6ICM0OTUwNTcsXFxuICBcXFwiOFxcXCI6ICMzNDNhNDAsXFxuICBcXFwiOVxcXCI6ICMyMTI1MjlcXG4pO1xcblxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUmVkXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1yZWQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNWY1LFxcbiAgXFxcIjFcXFwiOiAjZmZlM2UzLFxcbiAgXFxcIjJcXFwiOiAjZmZjOWM5LFxcbiAgXFxcIjNcXFwiOiAjZmZhOGE4LFxcbiAgXFxcIjRcXFwiOiAjZmY4Nzg3LFxcbiAgXFxcIjVcXFwiOiAjZmY2YjZiLFxcbiAgXFxcIjZcXFwiOiAjZmE1MjUyLFxcbiAgXFxcIjdcXFwiOiAjZjAzZTNlLFxcbiAgXFxcIjhcXFwiOiAjZTAzMTMxLFxcbiAgXFxcIjlcXFwiOiAjYzkyYTJhXFxuKTtcXG5cXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBQaW5rXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1waW5rLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjBmNixcXG4gIFxcXCIxXFxcIjogI2ZmZGVlYixcXG4gIFxcXCIyXFxcIjogI2ZjYzJkNyxcXG4gIFxcXCIzXFxcIjogI2ZhYTJjMSxcXG4gIFxcXCI0XFxcIjogI2Y3ODNhYyxcXG4gIFxcXCI1XFxcIjogI2YwNjU5NSxcXG4gIFxcXCI2XFxcIjogI2U2NDk4MCxcXG4gIFxcXCI3XFxcIjogI2Q2MzM2YyxcXG4gIFxcXCI4XFxcIjogI2MyMjU1YyxcXG4gIFxcXCI5XFxcIjogI2E2MWU0ZFxcbik7XFxuXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmFwZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JhcGUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmMGZjLFxcbiAgXFxcIjFcXFwiOiAjZjNkOWZhLFxcbiAgXFxcIjJcXFwiOiAjZWViZWZhLFxcbiAgXFxcIjNcXFwiOiAjZTU5OWY3LFxcbiAgXFxcIjRcXFwiOiAjZGE3N2YyLFxcbiAgXFxcIjVcXFwiOiAjY2M1ZGU4LFxcbiAgXFxcIjZcXFwiOiAjYmU0YmRiLFxcbiAgXFxcIjdcXFwiOiAjYWUzZWM5LFxcbiAgXFxcIjhcXFwiOiAjOWMzNmI1LFxcbiAgXFxcIjlcXFwiOiAjODYyZTljXFxuKTtcXG5cXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVmlvbGV0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy12aW9sZXQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjNmMGZmLFxcbiAgXFxcIjFcXFwiOiAjZTVkYmZmLFxcbiAgXFxcIjJcXFwiOiAjZDBiZmZmLFxcbiAgXFxcIjNcXFwiOiAjYjE5N2ZjLFxcbiAgXFxcIjRcXFwiOiAjOTc3NWZhLFxcbiAgXFxcIjVcXFwiOiAjODQ1ZWY3LFxcbiAgXFxcIjZcXFwiOiAjNzk1MGYyLFxcbiAgXFxcIjdcXFwiOiAjNzA0OGU4LFxcbiAgXFxcIjhcXFwiOiAjNjc0MWQ5LFxcbiAgXFxcIjlcXFwiOiAjNWYzZGM0XFxuKTtcXG5cXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBJbmRpZ29cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWluZGlnby1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlZGYyZmYsXFxuICBcXFwiMVxcXCI6ICNkYmU0ZmYsXFxuICBcXFwiMlxcXCI6ICNiYWM4ZmYsXFxuICBcXFwiM1xcXCI6ICM5MWE3ZmYsXFxuICBcXFwiNFxcXCI6ICM3NDhmZmMsXFxuICBcXFwiNVxcXCI6ICM1YzdjZmEsXFxuICBcXFwiNlxcXCI6ICM0YzZlZjUsXFxuICBcXFwiN1xcXCI6ICM0MjYzZWIsXFxuICBcXFwiOFxcXCI6ICMzYjViZGIsXFxuICBcXFwiOVxcXCI6ICMzNjRmYzdcXG4pO1xcblxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEJsdWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWJsdWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTdmNWZmLFxcbiAgXFxcIjFcXFwiOiAjZDBlYmZmLFxcbiAgXFxcIjJcXFwiOiAjYTVkOGZmLFxcbiAgXFxcIjNcXFwiOiAjNzRjMGZjLFxcbiAgXFxcIjRcXFwiOiAjNGRhYmY3LFxcbiAgXFxcIjVcXFwiOiAjMzM5YWYwLFxcbiAgXFxcIjZcXFwiOiAjMjI4YmU2LFxcbiAgXFxcIjdcXFwiOiAjMWM3ZWQ2LFxcbiAgXFxcIjhcXFwiOiAjMTk3MWMyLFxcbiAgXFxcIjlcXFwiOiAjMTg2NGFiXFxuKTtcXG5cXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEN5YW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWN5YW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTNmYWZjLFxcbiAgXFxcIjFcXFwiOiAjYzVmNmZhLFxcbiAgXFxcIjJcXFwiOiAjOTllOWYyLFxcbiAgXFxcIjNcXFwiOiAjNjZkOWU4LFxcbiAgXFxcIjRcXFwiOiAjM2JjOWRiLFxcbiAgXFxcIjVcXFwiOiAjMjJiOGNmLFxcbiAgXFxcIjZcXFwiOiAjMTVhYWJmLFxcbiAgXFxcIjdcXFwiOiAjMTA5OGFkLFxcbiAgXFxcIjhcXFwiOiAjMGM4NTk5LFxcbiAgXFxcIjlcXFwiOiAjMGI3Mjg1XFxuKTtcXG5cXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFRlYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXRlYWwtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTZmY2Y1LFxcbiAgXFxcIjFcXFwiOiAjYzNmYWU4LFxcbiAgXFxcIjJcXFwiOiAjOTZmMmQ3LFxcbiAgXFxcIjNcXFwiOiAjNjNlNmJlLFxcbiAgXFxcIjRcXFwiOiAjMzhkOWE5LFxcbiAgXFxcIjVcXFwiOiAjMjBjOTk3LFxcbiAgXFxcIjZcXFwiOiAjMTJiODg2LFxcbiAgXFxcIjdcXFwiOiAjMGNhNjc4LFxcbiAgXFxcIjhcXFwiOiAjMDk5MjY4LFxcbiAgXFxcIjlcXFwiOiAjMDg3ZjViXFxuKTtcXG5cXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyZWVuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmVlbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlYmZiZWUsXFxuICBcXFwiMVxcXCI6ICNkM2Y5ZDgsXFxuICBcXFwiMlxcXCI6ICNiMmYyYmIsXFxuICBcXFwiM1xcXCI6ICM4Y2U5OWEsXFxuICBcXFwiNFxcXCI6ICM2OWRiN2MsXFxuICBcXFwiNVxcXCI6ICM1MWNmNjYsXFxuICBcXFwiNlxcXCI6ICM0MGMwNTcsXFxuICBcXFwiN1xcXCI6ICMzN2IyNGQsXFxuICBcXFwiOFxcXCI6ICMyZjllNDQsXFxuICBcXFwiOVxcXCI6ICMyYjhhM2VcXG4pO1xcblxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBMaW1lXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1saW1lLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y0ZmNlMyxcXG4gIFxcXCIxXFxcIjogI2U5ZmFjOCxcXG4gIFxcXCIyXFxcIjogI2Q4ZjVhMixcXG4gIFxcXCIzXFxcIjogI2MwZWI3NSxcXG4gIFxcXCI0XFxcIjogI2E5ZTM0YixcXG4gIFxcXCI1XFxcIjogIzk0ZDgyZCxcXG4gIFxcXCI2XFxcIjogIzgyYzkxZSxcXG4gIFxcXCI3XFxcIjogIzc0YjgxNixcXG4gIFxcXCI4XFxcIjogIzY2YTgwZixcXG4gIFxcXCI5XFxcIjogIzVjOTQwZFxcbik7XFxuXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBZZWxsb3dcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXllbGxvdy1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY5ZGIsXFxuICBcXFwiMVxcXCI6ICNmZmYzYmYsXFxuICBcXFwiMlxcXCI6ICNmZmVjOTksXFxuICBcXFwiM1xcXCI6ICNmZmUwNjYsXFxuICBcXFwiNFxcXCI6ICNmZmQ0M2IsXFxuICBcXFwiNVxcXCI6ICNmY2M0MTksXFxuICBcXFwiNlxcXCI6ICNmYWIwMDUsXFxuICBcXFwiN1xcXCI6ICNmNTlmMDAsXFxuICBcXFwiOFxcXCI6ICNmMDhjMDAsXFxuICBcXFwiOVxcXCI6ICNlNjc3MDBcXG4pO1xcblxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIE9yYW5nZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjRlNixcXG4gIFxcXCIxXFxcIjogI2ZmZThjYyxcXG4gIFxcXCIyXFxcIjogI2ZmZDhhOCxcXG4gIFxcXCIzXFxcIjogI2ZmYzA3OCxcXG4gIFxcXCI0XFxcIjogI2ZmYTk0ZCxcXG4gIFxcXCI1XFxcIjogI2ZmOTIyYixcXG4gIFxcXCI2XFxcIjogI2ZkN2UxNCxcXG4gIFxcXCI3XFxcIjogI2Y3NjcwNyxcXG4gIFxcXCI4XFxcIjogI2U4NTkwYyxcXG4gIFxcXCI5XFxcIjogI2Q5NDgwZlxcbik7XFxuXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ29sb3IgbGlzdFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXG5cXG4kb2MtY29sb3ItbGlzdDogKFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFwiZ3JheVxcXCIsXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcInJlZFxcXCIsXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXCJwaW5rXFxcIixcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXCJncmFwZVxcXCIsXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcInZpb2xldFxcXCIsXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcImluZGlnb1xcXCIsXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXCJibHVlXFxcIixcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcImN5YW5cXFwiLFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFwidGVhbFxcXCIsXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFwiZ3JlZW5cXFwiLFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFwibGltZVxcXCIsXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcInllbGxvd1xcXCIsXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcIm9yYW5nZVxcXCJcXG4pO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ContextMenu.scss\n");
1104
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n:export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .context-menu {\\n position: relative;\\n border-radius: 4px;\\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\\n padding: 0;\\n list-style: none;\\n -webkit-user-select: none;\\n user-select: none;\\n margin: -0.25rem 0 0 0.125rem;\\n padding: 0.5rem 0;\\n background-color: var(--popup-secondary-bg-color);\\n border: 1px solid var(--button-gray-3);\\n cursor: default;\\n}\\n.excalidraw .context-menu button {\\n color: var(--popup-text-color);\\n}\\n.excalidraw .context-menu-option {\\n position: relative;\\n width: 100%;\\n min-width: 9.5rem;\\n margin: 0;\\n padding: 0.25rem 1rem 0.25rem 1.25rem;\\n text-align: start;\\n border-radius: 0;\\n background-color: transparent;\\n border: none;\\n white-space: nowrap;\\n display: grid;\\n grid-template-columns: 1fr 0.2fr;\\n align-items: center;\\n}\\n.excalidraw .context-menu-option.checkmark::before {\\n position: absolute;\\n left: 6px;\\n margin-bottom: 1px;\\n content: \\\"✓\\\";\\n}\\n.excalidraw .context-menu-option.dangerous .context-menu-option__label {\\n color: #f03e3e;\\n}\\n.excalidraw .context-menu-option .context-menu-option__label {\\n justify-self: start;\\n margin-inline-end: 20px;\\n}\\n.excalidraw .context-menu-option .context-menu-option__shortcut {\\n justify-self: end;\\n opacity: 0.6;\\n font-family: inherit;\\n font-size: 0.7rem;\\n}\\n.excalidraw .context-menu-option:hover {\\n color: var(--popup-bg-color);\\n background-color: var(--select-highlight-color);\\n}\\n.excalidraw .context-menu-option:hover.dangerous {\\n background-color: #fa5252;\\n}\\n.excalidraw .context-menu-option:hover.dangerous .context-menu-option__label {\\n color: var(--popup-bg-color);\\n}\\n.excalidraw .context-menu-option:focus {\\n z-index: 1;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option {\\n display: block;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option .context-menu-option__label {\\n margin-inline-end: 0;\\n}\\n.excalidraw--mobile.excalidraw .context-menu-option .context-menu-option__shortcut {\\n display: none;\\n}\\n\\n.excalidraw .context-menu-option-separator {\\n border: none;\\n border-top: 1px solid #adb5bd;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../components/ContextMenu.scss\",\"webpack://./../../css/variables.module.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;ACiChB;EACE,2CAAA;EACA,wBAAA;AD/BF;;AADE;EACE,kBAAA;EACA,kBAAA;EACA,yCAAA;EACA,UAAA;EACA,gBAAA;EACA,yBAAA;UAAA,iBAAA;EACA,6BAAA;EACA,iBAAA;EACA,iDAAA;EACA,sCAAA;EACA,eAAA;AAIJ;AADE;EACE,8BAAA;AAGJ;AAAE;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;EACA,SAAA;EACA,qCAAA;EACA,iBAAA;EACA,gBAAA;EACA,6BAAA;EACA,YAAA;EACA,mBAAA;EAEA,aAAA;EACA,gCAAA;EACA,mBAAA;AACJ;AACI;EACE,kBAAA;EACA,SAAA;EACA,kBAAA;EACA,YAAA;AACN;AAGM;EACE,cEoBG;AFrBX;AAKI;EACE,mBAAA;EACA,uBAAA;AAHN;AAKI;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;EACA,iBAAA;AAHN;AAOE;EACE,4BAAA;EACA,+CAAA;AALJ;AAOI;EAIE,yBELK;AFHX;AAKM;EACE,4BAAA;AAHR;AASE;EACE,UAAA;AAPJ;AAWI;EACE,cAAA;AATN;AAWM;EACE,oBAAA;AATR;AAYM;EACE,aAAA;AAVR;;AAeE;EACE,YAAA;EACA,6BAAA;AAZJ\",\"sourcesContent\":[\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .context-menu {\\n position: relative;\\n border-radius: 4px;\\n box-shadow: 0 3px 10px transparentize($oc-black, 0.8);\\n padding: 0;\\n list-style: none;\\n user-select: none;\\n margin: -0.25rem 0 0 0.125rem;\\n padding: 0.5rem 0;\\n background-color: var(--popup-secondary-bg-color);\\n border: 1px solid var(--button-gray-3);\\n cursor: default;\\n }\\n\\n .context-menu button {\\n color: var(--popup-text-color);\\n }\\n\\n .context-menu-option {\\n position: relative;\\n width: 100%;\\n min-width: 9.5rem;\\n margin: 0;\\n padding: 0.25rem 1rem 0.25rem 1.25rem;\\n text-align: start;\\n border-radius: 0;\\n background-color: transparent;\\n border: none;\\n white-space: nowrap;\\n\\n display: grid;\\n grid-template-columns: 1fr 0.2fr;\\n align-items: center;\\n\\n &.checkmark::before {\\n position: absolute;\\n left: 6px;\\n margin-bottom: 1px;\\n content: \\\"\\\\2713\\\";\\n }\\n\\n &.dangerous {\\n .context-menu-option__label {\\n color: $oc-red-7;\\n }\\n }\\n\\n .context-menu-option__label {\\n justify-self: start;\\n margin-inline-end: 20px;\\n }\\n .context-menu-option__shortcut {\\n justify-self: end;\\n opacity: 0.6;\\n font-family: inherit;\\n font-size: 0.7rem;\\n }\\n }\\n\\n .context-menu-option:hover {\\n color: var(--popup-bg-color);\\n background-color: var(--select-highlight-color);\\n\\n &.dangerous {\\n .context-menu-option__label {\\n color: var(--popup-bg-color);\\n }\\n background-color: $oc-red-6;\\n }\\n }\\n\\n .context-menu-option:focus {\\n z-index: 1;\\n }\\n\\n @include isMobile {\\n .context-menu-option {\\n display: block;\\n\\n .context-menu-option__label {\\n margin-inline-end: 0;\\n }\\n\\n .context-menu-option__shortcut {\\n display: none;\\n }\\n }\\n }\\n\\n .context-menu-option-separator {\\n border: none;\\n border-top: 1px solid $oc-gray-5;\\n }\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLDZEQUE2RCxXQUFXLGdEQUFnRCw2QkFBNkIsR0FBRywrQkFBK0IsdUJBQXVCLHVCQUF1Qiw4Q0FBOEMsZUFBZSxxQkFBcUIsOEJBQThCLDhCQUE4QixrQ0FBa0Msc0JBQXNCLHNEQUFzRCwyQ0FBMkMsb0JBQW9CLEdBQUcsb0NBQW9DLG1DQUFtQyxHQUFHLG9DQUFvQyx1QkFBdUIsZ0JBQWdCLHNCQUFzQixjQUFjLDBDQUEwQyxzQkFBc0IscUJBQXFCLGtDQUFrQyxpQkFBaUIsd0JBQXdCLGtCQUFrQixxQ0FBcUMsd0JBQXdCLEdBQUcsc0RBQXNELHVCQUF1QixjQUFjLHVCQUF1QixtQkFBbUIsR0FBRywwRUFBMEUsbUJBQW1CLEdBQUcsZ0VBQWdFLHdCQUF3Qiw0QkFBNEIsR0FBRyxtRUFBbUUsc0JBQXNCLGlCQUFpQix5QkFBeUIsc0JBQXNCLEdBQUcsMENBQTBDLGlDQUFpQyxvREFBb0QsR0FBRyxvREFBb0QsOEJBQThCLEdBQUcsZ0ZBQWdGLGlDQUFpQyxHQUFHLDBDQUEwQyxlQUFlLEdBQUcsdURBQXVELG1CQUFtQixHQUFHLG1GQUFtRix5QkFBeUIsR0FBRyxzRkFBc0Ysa0JBQWtCLEdBQUcsZ0RBQWdELGlCQUFpQixrQ0FBa0MsR0FBRyxPQUFPLHdOQUF3TixPQUFPLFdBQVcsV0FBVyxPQUFPLEtBQUssV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcs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REFBZ0QsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QseUZBQXlGLHVkQUF1ZCxxQkFBcUI7QUFDcDdmO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Db250ZXh0TWVudS5zY3NzP2E2MzUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG46ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgYm94LXNoYWRvdzogMCAzcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XFxuICBwYWRkaW5nOiAwO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgbWFyZ2luOiAtMC4yNXJlbSAwIDAgMC4xMjVyZW07XFxuICBwYWRkaW5nOiAwLjVyZW0gMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcik7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuLmV4Y2FsaWRyYXcgLmNvbnRleHQtbWVudSBidXR0b24ge1xcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi13aWR0aDogOS41cmVtO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMC4yNXJlbSAxcmVtIDAuMjVyZW0gMS4yNXJlbTtcXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwLjJmcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uLmNoZWNrbWFyazo6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDZweDtcXG4gIG1hcmdpbi1ib3R0b206IDFweDtcXG4gIGNvbnRlbnQ6IFxcXCLinJNcXFwiO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi5kYW5nZXJvdXMgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXG4gIGNvbG9yOiAjZjAzZTNlO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fbGFiZWwge1xcbiAganVzdGlmeS1zZWxmOiBzdGFydDtcXG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAyMHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiAuY29udGV4dC1tZW51LW9wdGlvbl9fc2hvcnRjdXQge1xcbiAganVzdGlmeS1zZWxmOiBlbmQ7XFxuICBvcGFjaXR5OiAwLjY7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uOmhvdmVyLmRhbmdlcm91cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE1MjUyO1xcbn1cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbjpob3Zlci5kYW5nZXJvdXMgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXG4gIGNvbG9yOiB2YXIoLS1wb3B1cC1iZy1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uOmZvY3VzIHtcXG4gIHotaW5kZXg6IDE7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5jb250ZXh0LW1lbnUtb3B0aW9uIC5jb250ZXh0LW1lbnUtb3B0aW9uX19zaG9ydGN1dCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuY29udGV4dC1tZW51LW9wdGlvbi1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhZGI1YmQ7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvQ29udGV4dE1lbnUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBLGdCQUFnQjtBQ2lDaEI7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FEL0JGOztBQURFO0VBQ0Usa0JBQUE7RUFDQSxrQkFBQTtFQUNBLHlDQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpREFBQTtFQUNBLHNDQUFBO0VBQ0EsZUFBQTtBQUlKO0FBREU7RUFDRSw4QkFBQTtBQUdKO0FBQUU7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxxQ0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2QkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUVBLGFBQUE7RUFDQSxnQ0FBQTtFQUNBLG1CQUFBO0FBQ0o7QUFDSTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQUNOO0FBR007RUFDRSxjRW9CRztBRnJCWDtBQUtJO0VBQ0UsbUJBQUE7RUFDQSx1QkFBQTtBQUhOO0FBS0k7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGlCQUFBO0FBSE47QUFPRTtFQUNFLDRCQUFBO0VBQ0EsK0NBQUE7QUFMSjtBQU9JO0VBSUUseUJFTEs7QUZIWDtBQUtNO0VBQ0UsNEJBQUE7QUFIUjtBQVNFO0VBQ0UsVUFBQTtBQVBKO0FBV0k7RUFDRSxjQUFBO0FBVE47QUFXTTtFQUNFLG9CQUFBO0FBVFI7QUFZTTtFQUNFLGFBQUE7QUFWUjs7QUFlRTtFQUNFLFlBQUE7RUFDQSw2QkFBQTtBQVpKXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuY29udGV4dC1tZW51IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggdHJhbnNwYXJlbnRpemUoJG9jLWJsYWNrLCAwLjgpO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgbWFyZ2luOiAtMC4yNXJlbSAwIDAgMC4xMjVyZW07XFxuICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wb3B1cC1zZWNvbmRhcnktYmctY29sb3IpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgfVxcblxcbiAgLmNvbnRleHQtbWVudSBidXR0b24ge1xcbiAgICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxuICB9XFxuXFxuICAuY29udGV4dC1tZW51LW9wdGlvbiB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1pbi13aWR0aDogOS41cmVtO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMXJlbSAwLjI1cmVtIDEuMjVyZW07XFxuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcblxcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAwLjJmcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgJi5jaGVja21hcms6OmJlZm9yZSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIGxlZnQ6IDZweDtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XFxuICAgICAgY29udGVudDogXFxcIlxcXFwyNzEzXFxcIjtcXG4gICAgfVxcblxcbiAgICAmLmRhbmdlcm91cyB7XFxuICAgICAgLmNvbnRleHQtbWVudS1vcHRpb25fX2xhYmVsIHtcXG4gICAgICAgIGNvbG9yOiAkb2MtcmVkLTc7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMjBweDtcXG4gICAgfVxcbiAgICAuY29udGV4dC1tZW51LW9wdGlvbl9fc2hvcnRjdXQge1xcbiAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xcbiAgICAgIG9wYWNpdHk6IDAuNjtcXG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICBmb250LXNpemU6IDAuN3JlbTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNvbnRleHQtbWVudS1vcHRpb246aG92ZXIge1xcbiAgICBjb2xvcjogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yKTtcXG5cXG4gICAgJi5kYW5nZXJvdXMge1xcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICAgICAgICBjb2xvcjogdmFyKC0tcG9wdXAtYmctY29sb3IpO1xcbiAgICAgIH1cXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtcmVkLTY7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jb250ZXh0LW1lbnUtb3B0aW9uOmZvY3VzIHtcXG4gICAgei1pbmRleDogMTtcXG4gIH1cXG5cXG4gIEBpbmNsdWRlIGlzTW9iaWxlIHtcXG4gICAgLmNvbnRleHQtbWVudS1vcHRpb24ge1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcblxcbiAgICAgIC5jb250ZXh0LW1lbnUtb3B0aW9uX19sYWJlbCB7XFxuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG4gICAgICB9XFxuXFxuICAgICAgLmNvbnRleHQtbWVudS1vcHRpb25fX3Nob3J0Y3V0IHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuY29udGV4dC1tZW51LW9wdGlvbi1zZXBhcmF0b3Ige1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2MtZ3JheS01O1xcbiAgfVxcbn1cXG5cIixcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiLy9cXG4vL1xcbi8vICDwnZeWIPCdl6Ig8J2XnyDwnZeiIPCdl6VcXG4vLyAgdiAxLjkuMVxcbi8vXFxuLy8gIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgVxcblxcblxcbi8vICBHZW5lcmFsXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcblxcblxcbi8vICBHcmF5XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmF5LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y4ZjlmYSxcXG4gIFxcXCIxXFxcIjogI2YxZjNmNSxcXG4gIFxcXCIyXFxcIjogI2U5ZWNlZixcXG4gIFxcXCIzXFxcIjogI2RlZTJlNixcXG4gIFxcXCI0XFxcIjogI2NlZDRkYSxcXG4gIFxcXCI1XFxcIjogI2FkYjViZCxcXG4gIFxcXCI2XFxcIjogIzg2OGU5NixcXG4gIFxcXCI3XFxcIjogIzQ5NTA1NyxcXG4gIFxcXCI4XFxcIjogIzM0M2E0MCxcXG4gIFxcXCI5XFxcIjogIzIxMjUyOVxcbik7XFxuXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBSZWRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXJlZC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY1ZjUsXFxuICBcXFwiMVxcXCI6ICNmZmUzZTMsXFxuICBcXFwiMlxcXCI6ICNmZmM5YzksXFxuICBcXFwiM1xcXCI6ICNmZmE4YTgsXFxuICBcXFwiNFxcXCI6ICNmZjg3ODcsXFxuICBcXFwiNVxcXCI6ICNmZjZiNmIsXFxuICBcXFwiNlxcXCI6ICNmYTUyNTIsXFxuICBcXFwiN1xcXCI6ICNmMDNlM2UsXFxuICBcXFwiOFxcXCI6ICNlMDMxMzEsXFxuICBcXFwiOVxcXCI6ICNjOTJhMmFcXG4pO1xcblxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFBpbmtcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXBpbmstbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmMGY2LFxcbiAgXFxcIjFcXFwiOiAjZmZkZWViLFxcbiAgXFxcIjJcXFwiOiAjZmNjMmQ3LFxcbiAgXFxcIjNcXFwiOiAjZmFhMmMxLFxcbiAgXFxcIjRcXFwiOiAjZjc4M2FjLFxcbiAgXFxcIjVcXFwiOiAjZjA2NTk1LFxcbiAgXFxcIjZcXFwiOiAjZTY0OTgwLFxcbiAgXFxcIjdcXFwiOiAjZDYzMzZjLFxcbiAgXFxcIjhcXFwiOiAjYzIyNTVjLFxcbiAgXFxcIjlcXFwiOiAjYTYxZTRkXFxuKTtcXG5cXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyYXBlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmFwZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGYwZmMsXFxuICBcXFwiMVxcXCI6ICNmM2Q5ZmEsXFxuICBcXFwiMlxcXCI6ICNlZWJlZmEsXFxuICBcXFwiM1xcXCI6ICNlNTk5ZjcsXFxuICBcXFwiNFxcXCI6ICNkYTc3ZjIsXFxuICBcXFwiNVxcXCI6ICNjYzVkZTgsXFxuICBcXFwiNlxcXCI6ICNiZTRiZGIsXFxuICBcXFwiN1xcXCI6ICNhZTNlYzksXFxuICBcXFwiOFxcXCI6ICM5YzM2YjUsXFxuICBcXFwiOVxcXCI6ICM4NjJlOWNcXG4pO1xcblxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBWaW9sZXRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXZpb2xldC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmM2YwZmYsXFxuICBcXFwiMVxcXCI6ICNlNWRiZmYsXFxuICBcXFwiMlxcXCI6ICNkMGJmZmYsXFxuICBcXFwiM1xcXCI6ICNiMTk3ZmMsXFxuICBcXFwiNFxcXCI6ICM5Nzc1ZmEsXFxuICBcXFwiNVxcXCI6ICM4NDVlZjcsXFxuICBcXFwiNlxcXCI6ICM3OTUwZjIsXFxuICBcXFwiN1xcXCI6ICM3MDQ4ZTgsXFxuICBcXFwiOFxcXCI6ICM2NzQxZDksXFxuICBcXFwiOVxcXCI6ICM1ZjNkYzRcXG4pO1xcblxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEluZGlnb1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtaW5kaWdvLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2VkZjJmZixcXG4gIFxcXCIxXFxcIjogI2RiZTRmZixcXG4gIFxcXCIyXFxcIjogI2JhYzhmZixcXG4gIFxcXCIzXFxcIjogIzkxYTdmZixcXG4gIFxcXCI0XFxcIjogIzc0OGZmYyxcXG4gIFxcXCI1XFxcIjogIzVjN2NmYSxcXG4gIFxcXCI2XFxcIjogIzRjNmVmNSxcXG4gIFxcXCI3XFxcIjogIzQyNjNlYixcXG4gIFxcXCI4XFxcIjogIzNiNWJkYixcXG4gIFxcXCI5XFxcIjogIzM2NGZjN1xcbik7XFxuXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQmx1ZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtYmx1ZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlN2Y1ZmYsXFxuICBcXFwiMVxcXCI6ICNkMGViZmYsXFxuICBcXFwiMlxcXCI6ICNhNWQ4ZmYsXFxuICBcXFwiM1xcXCI6ICM3NGMwZmMsXFxuICBcXFwiNFxcXCI6ICM0ZGFiZjcsXFxuICBcXFwiNVxcXCI6ICMzMzlhZjAsXFxuICBcXFwiNlxcXCI6ICMyMjhiZTYsXFxuICBcXFwiN1xcXCI6ICMxYzdlZDYsXFxuICBcXFwiOFxcXCI6ICMxOTcxYzIsXFxuICBcXFwiOVxcXCI6ICMxODY0YWJcXG4pO1xcblxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ3lhblxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY3lhbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlM2ZhZmMsXFxuICBcXFwiMVxcXCI6ICNjNWY2ZmEsXFxuICBcXFwiMlxcXCI6ICM5OWU5ZjIsXFxuICBcXFwiM1xcXCI6ICM2NmQ5ZTgsXFxuICBcXFwiNFxcXCI6ICMzYmM5ZGIsXFxuICBcXFwiNVxcXCI6ICMyMmI4Y2YsXFxuICBcXFwiNlxcXCI6ICMxNWFhYmYsXFxuICBcXFwiN1xcXCI6ICMxMDk4YWQsXFxuICBcXFwiOFxcXCI6ICMwYzg1OTksXFxuICBcXFwiOVxcXCI6ICMwYjcyODVcXG4pO1xcblxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVGVhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtdGVhbC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlNmZjZjUsXFxuICBcXFwiMVxcXCI6ICNjM2ZhZTgsXFxuICBcXFwiMlxcXCI6ICM5NmYyZDcsXFxuICBcXFwiM1xcXCI6ICM2M2U2YmUsXFxuICBcXFwiNFxcXCI6ICMzOGQ5YTksXFxuICBcXFwiNVxcXCI6ICMyMGM5OTcsXFxuICBcXFwiNlxcXCI6ICMxMmI4ODYsXFxuICBcXFwiN1xcXCI6ICMwY2E2NzgsXFxuICBcXFwiOFxcXCI6ICMwOTkyNjgsXFxuICBcXFwiOVxcXCI6ICMwODdmNWJcXG4pO1xcblxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgR3JlZW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyZWVuLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ViZmJlZSxcXG4gIFxcXCIxXFxcIjogI2QzZjlkOCxcXG4gIFxcXCIyXFxcIjogI2IyZjJiYixcXG4gIFxcXCIzXFxcIjogIzhjZTk5YSxcXG4gIFxcXCI0XFxcIjogIzY5ZGI3YyxcXG4gIFxcXCI1XFxcIjogIzUxY2Y2NixcXG4gIFxcXCI2XFxcIjogIzQwYzA1NyxcXG4gIFxcXCI3XFxcIjogIzM3YjI0ZCxcXG4gIFxcXCI4XFxcIjogIzJmOWU0NCxcXG4gIFxcXCI5XFxcIjogIzJiOGEzZVxcbik7XFxuXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIExpbWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWxpbWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjRmY2UzLFxcbiAgXFxcIjFcXFwiOiAjZTlmYWM4LFxcbiAgXFxcIjJcXFwiOiAjZDhmNWEyLFxcbiAgXFxcIjNcXFwiOiAjYzBlYjc1LFxcbiAgXFxcIjRcXFwiOiAjYTllMzRiLFxcbiAgXFxcIjVcXFwiOiAjOTRkODJkLFxcbiAgXFxcIjZcXFwiOiAjODJjOTFlLFxcbiAgXFxcIjdcXFwiOiAjNzRiODE2LFxcbiAgXFxcIjhcXFwiOiAjNjZhODBmLFxcbiAgXFxcIjlcXFwiOiAjNWM5NDBkXFxuKTtcXG5cXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFllbGxvd1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MteWVsbG93LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjlkYixcXG4gIFxcXCIxXFxcIjogI2ZmZjNiZixcXG4gIFxcXCIyXFxcIjogI2ZmZWM5OSxcXG4gIFxcXCIzXFxcIjogI2ZmZTA2NixcXG4gIFxcXCI0XFxcIjogI2ZmZDQzYixcXG4gIFxcXCI1XFxcIjogI2ZjYzQxOSxcXG4gIFxcXCI2XFxcIjogI2ZhYjAwNSxcXG4gIFxcXCI3XFxcIjogI2Y1OWYwMCxcXG4gIFxcXCI4XFxcIjogI2YwOGMwMCxcXG4gIFxcXCI5XFxcIjogI2U2NzcwMFxcbik7XFxuXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgT3JhbmdlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNGU2LFxcbiAgXFxcIjFcXFwiOiAjZmZlOGNjLFxcbiAgXFxcIjJcXFwiOiAjZmZkOGE4LFxcbiAgXFxcIjNcXFwiOiAjZmZjMDc4LFxcbiAgXFxcIjRcXFwiOiAjZmZhOTRkLFxcbiAgXFxcIjVcXFwiOiAjZmY5MjJiLFxcbiAgXFxcIjZcXFwiOiAjZmQ3ZTE0LFxcbiAgXFxcIjdcXFwiOiAjZjc2NzA3LFxcbiAgXFxcIjhcXFwiOiAjZTg1OTBjLFxcbiAgXFxcIjlcXFwiOiAjZDk0ODBmXFxuKTtcXG5cXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBDb2xvciBsaXN0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcblxcbiRvYy1jb2xvci1saXN0OiAoXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXCJncmF5XFxcIixcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFwicmVkXFxcIixcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcInBpbmtcXFwiLFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcImdyYXBlXFxcIixcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFwidmlvbGV0XFxcIixcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFwiaW5kaWdvXFxcIixcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcImJsdWVcXFwiLFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFwiY3lhblxcXCIsXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXCJ0ZWFsXFxcIixcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXCJncmVlblxcXCIsXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXCJsaW1lXFxcIixcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFwieWVsbG93XFxcIixcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFwib3JhbmdlXFxcIlxcbik7XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ContextMenu.scss\n");
1329
1105
 
1330
1106
  /***/ }),
1331
1107
 
@@ -1336,7 +1112,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1336
1112
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1337
1113
 
1338
1114
  "use strict";
1339
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Dialog {\\n user-select: text;\\n cursor: auto;\\n}\\n.excalidraw .Dialog__title {\\n display: grid;\\n align-items: center;\\n margin-top: 0;\\n grid-template-columns: 1fr calc(var(--space-factor) * 7);\\n grid-gap: var(--metric);\\n padding: calc(var(--space-factor) * 2);\\n text-align: center;\\n font-variant: small-caps;\\n font-size: 1.2em;\\n}\\n.excalidraw .Dialog__titleContent {\\n flex: 1;\\n}\\n.excalidraw .Dialog .Modal__close {\\n color: var(--icon-fill-color);\\n margin: 0;\\n}\\n.excalidraw .Dialog__content {\\n padding: 0 16px 16px;\\n}\\n.excalidraw--mobile.excalidraw .Dialog {\\n --metric: calc(var(--space-factor) * 4);\\n --inset-left: max(var(--metric), var(--sal));\\n --inset-right: max(var(--metric), var(--sar));\\n}\\n.excalidraw--mobile.excalidraw .Dialog__title {\\n grid-template-columns: calc(var(--space-factor) * 7) 1fr calc(var(--space-factor) * 7);\\n position: sticky;\\n top: 0;\\n padding: calc(var(--space-factor) * 2);\\n background: var(--island-bg-color);\\n font-size: 1.25em;\\n box-sizing: border-box;\\n border-bottom: 1px solid var(--button-gray-2);\\n z-index: 1;\\n}\\n.excalidraw--mobile.excalidraw .Dialog__titleContent {\\n text-align: center;\\n}\\n.excalidraw--mobile.excalidraw .Dialog .Island {\\n width: 100vw;\\n height: 100%;\\n box-sizing: border-box;\\n overflow-y: auto;\\n padding-left: max(calc(var(--padding) * var(--space-factor)), var(--sal));\\n padding-right: max(calc(var(--padding) * var(--space-factor)), var(--sar));\\n padding-bottom: max(calc(var(--padding) * var(--space-factor)), var(--sab));\\n}\\n.excalidraw--mobile.excalidraw .Dialog .Modal__close {\\n order: -1;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Dialog.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,iBAAA;EACA,YAAA;AAGJ;AAAE;EACE,aAAA;EACA,mBAAA;EACA,aAAA;EACA,wDAAA;EACA,uBAAA;EACA,sCAAA;EACA,kBAAA;EACA,wBAAA;EACA,gBAAA;AAEJ;AACE;EACE,OAAA;AACJ;AAEE;EACE,6BAAA;EACA,SAAA;AAAJ;AAGE;EACE,oBAAA;AADJ;AAKI;EACE,uCAAA;EACA,4CAAA;EACA,6CAAA;AAHN;AAMI;EACE,sFAAA;EAGA,gBAAA;EACA,MAAA;EACA,sCAAA;EACA,kCAAA;EACA,iBAAA;EAEA,sBAAA;EACA,6CAAA;EACA,UAAA;AAPN;AAUI;EACE,kBAAA;AARN;AAWI;EACE,YAAA;EACA,YAAA;EACA,sBAAA;EACA,gBAAA;EACA,yEAAA;EACA,0EAAA;EACA,2EAAA;AATN;AAYI;EACE,SAAA;AAVN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Dialog {\\n user-select: text;\\n cursor: auto;\\n }\\n\\n .Dialog__title {\\n display: grid;\\n align-items: center;\\n margin-top: 0;\\n grid-template-columns: 1fr calc(var(--space-factor) * 7);\\n grid-gap: var(--metric);\\n padding: calc(var(--space-factor) * 2);\\n text-align: center;\\n font-variant: small-caps;\\n font-size: 1.2em;\\n }\\n\\n .Dialog__titleContent {\\n flex: 1;\\n }\\n\\n .Dialog .Modal__close {\\n color: var(--icon-fill-color);\\n margin: 0;\\n }\\n\\n .Dialog__content {\\n padding: 0 16px 16px;\\n }\\n\\n @include isMobile {\\n .Dialog {\\n --metric: calc(var(--space-factor) * 4);\\n --inset-left: #{\\\"max(var(--metric), var(--sal))\\\"};\\n --inset-right: #{\\\"max(var(--metric), var(--sar))\\\"};\\n }\\n\\n .Dialog__title {\\n grid-template-columns: calc(var(--space-factor) * 7) 1fr calc(\\n var(--space-factor) * 7\\n );\\n position: sticky;\\n top: 0;\\n padding: calc(var(--space-factor) * 2);\\n background: var(--island-bg-color);\\n font-size: 1.25em;\\n\\n box-sizing: border-box;\\n border-bottom: 1px solid var(--button-gray-2);\\n z-index: 1;\\n }\\n\\n .Dialog__titleContent {\\n text-align: center;\\n }\\n\\n .Dialog .Island {\\n width: 100vw;\\n height: 100%;\\n box-sizing: border-box;\\n overflow-y: auto;\\n padding-left: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sal))\\\"};\\n padding-right: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sar))\\\"};\\n padding-bottom: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sab))\\\"};\\n }\\n\\n .Dialog .Modal__close {\\n order: -1;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLHlCQUF5QixzQkFBc0IsaUJBQWlCLEdBQUcsOEJBQThCLGtCQUFrQix3QkFBd0Isa0JBQWtCLDZEQUE2RCw0QkFBNEIsMkNBQTJDLHVCQUF1Qiw2QkFBNkIscUJBQXFCLEdBQUcscUNBQXFDLFlBQVksR0FBRyxxQ0FBcUMsa0NBQWtDLGNBQWMsR0FBRyxnQ0FBZ0MseUJBQXlCLEdBQUcsMENBQTBDLDRDQUE0QyxpREFBaUQsa0RBQWtELEdBQUcsaURBQWlELDJGQUEyRixxQkFBcUIsV0FBVywyQ0FBMkMsdUNBQXVDLHNCQUFzQiwyQkFBMkIsa0RBQWtELGVBQWUsR0FBRyx3REFBd0QsdUJBQXVCLEdBQUcsa0RBQWtELGlCQUFpQixpQkFBaUIsMkJBQTJCLHFCQUFxQiw4RUFBOEUsK0VBQStFLGdGQUFnRixHQUFHLHdEQUF3RCxjQUFjLEdBQUcsT0FBTyw4SUFBOEksV0FBVyxXQUFXLE9BQU8sS0FBSyxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxXQUFXLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxnRUFBZ0UsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLGFBQWEsd0JBQXdCLG1CQUFtQixLQUFLLHNCQUFzQixvQkFBb0IsMEJBQTBCLG9CQUFvQiwrREFBK0QsOEJBQThCLDZDQUE2Qyx5QkFBeUIsK0JBQStCLHVCQUF1QixLQUFLLDZCQUE2QixjQUFjLEtBQUssNkJBQTZCLG9DQUFvQyxnQkFBZ0IsS0FBSyx3QkFBd0IsMkJBQTJCLEtBQUsseUJBQXlCLGVBQWUsZ0RBQWdELHdCQUF3QixvQ0FBb0MseUJBQXlCLG9DQUFvQyxPQUFPLHdCQUF3QixxSEFBcUgseUJBQXlCLGVBQWUsK0NBQStDLDJDQUEyQywwQkFBMEIsaUNBQWlDLHNEQUFzRCxtQkFBbUIsT0FBTywrQkFBK0IsMkJBQTJCLE9BQU8seUJBQXlCLHFCQUFxQixxQkFBcUIsK0JBQStCLHlCQUF5Qix3QkFBd0IsaUVBQWlFLHlCQUF5QixpRUFBaUUsMEJBQTBCLGlFQUFpRSxPQUFPLCtCQUErQixrQkFBa0IsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQzErSjtBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nLnNjc3M/MGQ4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5EaWFsb2cge1xcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICBjdXJzb3I6IGF1dG87XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcbiAgZ3JpZC1nYXA6IHZhcigtLW1ldHJpYyk7XFxuICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiAyKTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcXG4gIGZvbnQtc2l6ZTogMS4yZW07XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICBmbGV4OiAxO1xcbn1cXG4uZXhjYWxpZHJhdyAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBtYXJnaW46IDA7XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX2NvbnRlbnQge1xcbiAgcGFkZGluZzogMCAxNnB4IDE2cHg7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIHtcXG4gIC0tbWV0cmljOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXG4gIC0taW5zZXQtbGVmdDogbWF4KHZhcigtLW1ldHJpYyksIHZhcigtLXNhbCkpO1xcbiAgLS1pbnNldC1yaWdodDogbWF4KHZhcigtLW1ldHJpYyksIHZhcigtLXNhcikpO1xcbn1cXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLkRpYWxvZ19fdGl0bGUge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KSAxZnIgY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNyk7XFxuICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgdG9wOiAwO1xcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcbiAgZm9udC1zaXplOiAxLjI1ZW07XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgei1pbmRleDogMTtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Jc2xhbmQge1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBwYWRkaW5nLWxlZnQ6IG1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhbCkpO1xcbiAgcGFkZGluZy1yaWdodDogbWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FyKSk7XFxuICBwYWRkaW5nLWJvdHRvbTogbWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FiKSk7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgb3JkZXI6IC0xO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQWlDQTtFQUNFLDJDQUFBO0VBQ0Esd0JBQUE7QUNoQ0Y7O0FBQUU7RUFDRSxpQkFBQTtFQUNBLFlBQUE7QUFHSjtBQUFFO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLHdEQUFBO0VBQ0EsdUJBQUE7RUFDQSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtBQUVKO0FBQ0U7RUFDRSxPQUFBO0FBQ0o7QUFFRTtFQUNFLDZCQUFBO0VBQ0EsU0FBQTtBQUFKO0FBR0U7RUFDRSxvQkFBQTtBQURKO0FBS0k7RUFDRSx1Q0FBQTtFQUNBLDRDQUFBO0VBQ0EsNkNBQUE7QUFITjtBQU1JO0VBQ0Usc0ZBQUE7RUFHQSxnQkFBQTtFQUNBLE1BQUE7RUFDQSxzQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsaUJBQUE7RUFFQSxzQkFBQTtFQUNBLDZDQUFBO0VBQ0EsVUFBQTtBQVBOO0FBVUk7RUFDRSxrQkFBQTtBQVJOO0FBV0k7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5RUFBQTtFQUNBLDBFQUFBO0VBQ0EsMkVBQUE7QUFUTjtBQVlJO0VBQ0UsU0FBQTtBQVZOXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC5EaWFsb2cge1xcbiAgICB1c2VyLXNlbGVjdDogdGV4dDtcXG4gICAgY3Vyc29yOiBhdXRvO1xcbiAgfVxcblxcbiAgLkRpYWxvZ19fdGl0bGUge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KTtcXG4gICAgZ3JpZC1nYXA6IHZhcigtLW1ldHJpYyk7XFxuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDIpO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcXG4gICAgZm9udC1zaXplOiAxLjJlbTtcXG4gIH1cXG5cXG4gIC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICAgIGZsZXg6IDE7XFxuICB9XFxuXFxuICAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLkRpYWxvZ19fY29udGVudCB7XFxuICAgIHBhZGRpbmc6IDAgMTZweCAxNnB4O1xcbiAgfVxcblxcbiAgQGluY2x1ZGUgaXNNb2JpbGUge1xcbiAgICAuRGlhbG9nIHtcXG4gICAgICAtLW1ldHJpYzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNCk7XFxuICAgICAgLS1pbnNldC1sZWZ0OiAje1xcXCJtYXgodmFyKC0tbWV0cmljKSwgdmFyKC0tc2FsKSlcXFwifTtcXG4gICAgICAtLWluc2V0LXJpZ2h0OiAje1xcXCJtYXgodmFyKC0tbWV0cmljKSwgdmFyKC0tc2FyKSlcXFwifTtcXG4gICAgfVxcblxcbiAgICAuRGlhbG9nX190aXRsZSB7XFxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KSAxZnIgY2FsYyhcXG4gICAgICAgICAgdmFyKC0tc3BhY2UtZmFjdG9yKSAqIDdcXG4gICAgICAgICk7XFxuICAgICAgcG9zaXRpb246IHN0aWNreTtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0taXNsYW5kLWJnLWNvbG9yKTtcXG4gICAgICBmb250LXNpemU6IDEuMjVlbTtcXG5cXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICB6LWluZGV4OiAxO1xcbiAgICB9XFxuXFxuICAgIC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB9XFxuXFxuICAgIC5EaWFsb2cgLklzbGFuZCB7XFxuICAgICAgd2lkdGg6IDEwMHZ3O1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgICAgcGFkZGluZy1sZWZ0OiAje1xcXCJtYXgoY2FsYyh2YXIoLS1wYWRkaW5nKSAqIHZhcigtLXNwYWNlLWZhY3RvcikpLCB2YXIoLS1zYWwpKVxcXCJ9O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICN7XFxcIm1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhcikpXFxcIn07XFxuICAgICAgcGFkZGluZy1ib3R0b206ICN7XFxcIm1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhYikpXFxcIn07XFxuICAgIH1cXG5cXG4gICAgLkRpYWxvZyAuTW9kYWxfX2Nsb3NlIHtcXG4gICAgICBvcmRlcjogLTE7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Dialog.scss\n");
1115
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .Dialog {\\n -webkit-user-select: text;\\n user-select: text;\\n cursor: auto;\\n}\\n.excalidraw .Dialog__title {\\n display: grid;\\n align-items: center;\\n margin-top: 0;\\n grid-template-columns: 1fr calc(var(--space-factor) * 7);\\n grid-gap: var(--metric);\\n padding: calc(var(--space-factor) * 2);\\n text-align: center;\\n font-variant: small-caps;\\n font-size: 1.2em;\\n}\\n.excalidraw .Dialog__titleContent {\\n flex: 1;\\n}\\n.excalidraw .Dialog .Modal__close {\\n color: var(--icon-fill-color);\\n margin: 0;\\n}\\n.excalidraw .Dialog__content {\\n padding: 0 16px 16px;\\n}\\n.excalidraw--mobile.excalidraw .Dialog {\\n --metric: calc(var(--space-factor) * 4);\\n --inset-left: max(var(--metric), var(--sal));\\n --inset-right: max(var(--metric), var(--sar));\\n}\\n.excalidraw--mobile.excalidraw .Dialog__title {\\n grid-template-columns: calc(var(--space-factor) * 7) 1fr calc(var(--space-factor) * 7);\\n position: sticky;\\n top: 0;\\n padding: calc(var(--space-factor) * 2);\\n background: var(--island-bg-color);\\n font-size: 1.25em;\\n box-sizing: border-box;\\n border-bottom: 1px solid var(--button-gray-2);\\n z-index: 1;\\n}\\n.excalidraw--mobile.excalidraw .Dialog__titleContent {\\n text-align: center;\\n}\\n.excalidraw--mobile.excalidraw .Dialog .Island {\\n width: 100vw;\\n height: 100%;\\n box-sizing: border-box;\\n overflow-y: auto;\\n padding-left: max(calc(var(--padding) * var(--space-factor)), var(--sal));\\n padding-right: max(calc(var(--padding) * var(--space-factor)), var(--sar));\\n padding-bottom: max(calc(var(--padding) * var(--space-factor)), var(--sab));\\n}\\n.excalidraw--mobile.excalidraw .Dialog .Modal__close {\\n order: -1;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Dialog.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AAAE;EACE,yBAAA;UAAA,iBAAA;EACA,YAAA;AAGJ;AAAE;EACE,aAAA;EACA,mBAAA;EACA,aAAA;EACA,wDAAA;EACA,uBAAA;EACA,sCAAA;EACA,kBAAA;EACA,wBAAA;EACA,gBAAA;AAEJ;AACE;EACE,OAAA;AACJ;AAEE;EACE,6BAAA;EACA,SAAA;AAAJ;AAGE;EACE,oBAAA;AADJ;AAKI;EACE,uCAAA;EACA,4CAAA;EACA,6CAAA;AAHN;AAMI;EACE,sFAAA;EAGA,gBAAA;EACA,MAAA;EACA,sCAAA;EACA,kCAAA;EACA,iBAAA;EAEA,sBAAA;EACA,6CAAA;EACA,UAAA;AAPN;AAUI;EACE,kBAAA;AARN;AAWI;EACE,YAAA;EACA,YAAA;EACA,sBAAA;EACA,gBAAA;EACA,yEAAA;EACA,0EAAA;EACA,2EAAA;AATN;AAYI;EACE,SAAA;AAVN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .Dialog {\\n user-select: text;\\n cursor: auto;\\n }\\n\\n .Dialog__title {\\n display: grid;\\n align-items: center;\\n margin-top: 0;\\n grid-template-columns: 1fr calc(var(--space-factor) * 7);\\n grid-gap: var(--metric);\\n padding: calc(var(--space-factor) * 2);\\n text-align: center;\\n font-variant: small-caps;\\n font-size: 1.2em;\\n }\\n\\n .Dialog__titleContent {\\n flex: 1;\\n }\\n\\n .Dialog .Modal__close {\\n color: var(--icon-fill-color);\\n margin: 0;\\n }\\n\\n .Dialog__content {\\n padding: 0 16px 16px;\\n }\\n\\n @include isMobile {\\n .Dialog {\\n --metric: calc(var(--space-factor) * 4);\\n --inset-left: #{\\\"max(var(--metric), var(--sal))\\\"};\\n --inset-right: #{\\\"max(var(--metric), var(--sar))\\\"};\\n }\\n\\n .Dialog__title {\\n grid-template-columns: calc(var(--space-factor) * 7) 1fr calc(\\n var(--space-factor) * 7\\n );\\n position: sticky;\\n top: 0;\\n padding: calc(var(--space-factor) * 2);\\n background: var(--island-bg-color);\\n font-size: 1.25em;\\n\\n box-sizing: border-box;\\n border-bottom: 1px solid var(--button-gray-2);\\n z-index: 1;\\n }\\n\\n .Dialog__titleContent {\\n text-align: center;\\n }\\n\\n .Dialog .Island {\\n width: 100vw;\\n height: 100%;\\n box-sizing: border-box;\\n overflow-y: auto;\\n padding-left: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sal))\\\"};\\n padding-right: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sar))\\\"};\\n padding-bottom: #{\\\"max(calc(var(--padding) * var(--space-factor)), var(--sab))\\\"};\\n }\\n\\n .Dialog .Modal__close {\\n order: -1;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9EaWFsb2cuc2Nzcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQzhIO0FBQ2pCO0FBQzdHLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0Y7QUFDQSxtREFBbUQsZ0RBQWdELDZCQUE2QixHQUFHLHlCQUF5Qiw4QkFBOEIsOEJBQThCLGlCQUFpQixHQUFHLDhCQUE4QixrQkFBa0Isd0JBQXdCLGtCQUFrQiw2REFBNkQsNEJBQTRCLDJDQUEyQyx1QkFBdUIsNkJBQTZCLHFCQUFxQixHQUFHLHFDQUFxQyxZQUFZLEdBQUcscUNBQXFDLGtDQUFrQyxjQUFjLEdBQUcsZ0NBQWdDLHlCQUF5QixHQUFHLDBDQUEwQyw0Q0FBNEMsaURBQWlELGtEQUFrRCxHQUFHLGlEQUFpRCwyRkFBMkYscUJBQXFCLFdBQVcsMkNBQTJDLHVDQUF1QyxzQkFBc0IsMkJBQTJCLGtEQUFrRCxlQUFlLEdBQUcsd0RBQXdELHVCQUF1QixHQUFHLGtEQUFrRCxpQkFBaUIsaUJBQWlCLDJCQUEyQixxQkFBcUIsOEVBQThFLCtFQUErRSxnRkFBZ0YsR0FBRyx3REFBd0QsY0FBYyxHQUFHLE9BQU8sOElBQThJLFdBQVcsV0FBVyxPQUFPLEtBQUssV0FBVyxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxXQUFXLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxnRUFBZ0UsdUJBQXVCLGtDQUFrQyxJQUFJLGVBQWUsS0FBSyxHQUFHLHFDQUFxQyxzREFBc0Qsa0NBQWtDLCtDQUErQyxPQUFPLG1DQUFtQyx5Q0FBeUMsNkJBQTZCLFdBQVcsOEJBQThCLFdBQVcsT0FBTywwQ0FBMEMsZ0RBQWdELE9BQU8sS0FBSyw2QkFBNkIsa0JBQWtCLGlCQUFpQixLQUFLLEdBQUcsc0RBQXNELGtDQUFrQyxhQUFhLHdDQUF3QyxxREFBcUQsR0FBRyx5Q0FBeUMsaUJBQWlCLGFBQWEsd0JBQXdCLG1CQUFtQixLQUFLLHNCQUFzQixvQkFBb0IsMEJBQTBCLG9CQUFvQiwrREFBK0QsOEJBQThCLDZDQUE2Qyx5QkFBeUIsK0JBQStCLHVCQUF1QixLQUFLLDZCQUE2QixjQUFjLEtBQUssNkJBQTZCLG9DQUFvQyxnQkFBZ0IsS0FBSyx3QkFBd0IsMkJBQTJCLEtBQUsseUJBQXlCLGVBQWUsZ0RBQWdELHdCQUF3QixvQ0FBb0MseUJBQXlCLG9DQUFvQyxPQUFPLHdCQUF3QixxSEFBcUgseUJBQXlCLGVBQWUsK0NBQStDLDJDQUEyQywwQkFBMEIsaUNBQWlDLHNEQUFzRCxtQkFBbUIsT0FBTywrQkFBK0IsMkJBQTJCLE9BQU8seUJBQXlCLHFCQUFxQixxQkFBcUIsK0JBQStCLHlCQUF5Qix3QkFBd0IsaUVBQWlFLHlCQUF5QixpRUFBaUUsMEJBQTBCLGlFQUFpRSxPQUFPLCtCQUErQixrQkFBa0IsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQzNoSztBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nLnNjc3M/MGQ4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5EaWFsb2cge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICBjdXJzb3I6IGF1dG87XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcbiAgZ3JpZC1nYXA6IHZhcigtLW1ldHJpYyk7XFxuICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiAyKTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcXG4gIGZvbnQtc2l6ZTogMS4yZW07XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICBmbGV4OiAxO1xcbn1cXG4uZXhjYWxpZHJhdyAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBtYXJnaW46IDA7XFxufVxcbi5leGNhbGlkcmF3IC5EaWFsb2dfX2NvbnRlbnQge1xcbiAgcGFkZGluZzogMCAxNnB4IDE2cHg7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIHtcXG4gIC0tbWV0cmljOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXG4gIC0taW5zZXQtbGVmdDogbWF4KHZhcigtLW1ldHJpYyksIHZhcigtLXNhbCkpO1xcbiAgLS1pbnNldC1yaWdodDogbWF4KHZhcigtLW1ldHJpYyksIHZhcigtLXNhcikpO1xcbn1cXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLkRpYWxvZ19fdGl0bGUge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA3KSAxZnIgY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogNyk7XFxuICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgdG9wOiAwO1xcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcbiAgZm9udC1zaXplOiAxLjI1ZW07XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgei1pbmRleDogMTtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IC5EaWFsb2dfX3RpdGxlQ29udGVudCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Jc2xhbmQge1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBwYWRkaW5nLWxlZnQ6IG1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhbCkpO1xcbiAgcGFkZGluZy1yaWdodDogbWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FyKSk7XFxuICBwYWRkaW5nLWJvdHRvbTogbWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FiKSk7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgb3JkZXI6IC0xO1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL0RpYWxvZy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQWlDQTtFQUNFLDJDQUFBO0VBQ0Esd0JBQUE7QUNoQ0Y7O0FBQUU7RUFDRSx5QkFBQTtVQUFBLGlCQUFBO0VBQ0EsWUFBQTtBQUdKO0FBQUU7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0Esd0RBQUE7RUFDQSx1QkFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7RUFDQSx3QkFBQTtFQUNBLGdCQUFBO0FBRUo7QUFDRTtFQUNFLE9BQUE7QUFDSjtBQUVFO0VBQ0UsNkJBQUE7RUFDQSxTQUFBO0FBQUo7QUFHRTtFQUNFLG9CQUFBO0FBREo7QUFLSTtFQUNFLHVDQUFBO0VBQ0EsNENBQUE7RUFDQSw2Q0FBQTtBQUhOO0FBTUk7RUFDRSxzRkFBQTtFQUdBLGdCQUFBO0VBQ0EsTUFBQTtFQUNBLHNDQUFBO0VBQ0Esa0NBQUE7RUFDQSxpQkFBQTtFQUVBLHNCQUFBO0VBQ0EsNkNBQUE7RUFDQSxVQUFBO0FBUE47QUFVSTtFQUNFLGtCQUFBO0FBUk47QUFXSTtFQUNFLFlBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLHlFQUFBO0VBQ0EsMEVBQUE7RUFDQSwyRUFBQTtBQVROO0FBWUk7RUFDRSxTQUFBO0FBVk5cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuLi9jc3MvdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuXFxuLmV4Y2FsaWRyYXcge1xcbiAgLkRpYWxvZyB7XFxuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICBjdXJzb3I6IGF1dG87XFxuICB9XFxuXFxuICAuRGlhbG9nX190aXRsZSB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpO1xcbiAgICBncmlkLWdhcDogdmFyKC0tbWV0cmljKTtcXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZS1mYWN0b3IpICogMik7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xcbiAgICBmb250LXNpemU6IDEuMmVtO1xcbiAgfVxcblxcbiAgLkRpYWxvZ19fdGl0bGVDb250ZW50IHtcXG4gICAgZmxleDogMTtcXG4gIH1cXG5cXG4gIC5EaWFsb2cgLk1vZGFsX19jbG9zZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuXFxuICAuRGlhbG9nX19jb250ZW50IHtcXG4gICAgcGFkZGluZzogMCAxNnB4IDE2cHg7XFxuICB9XFxuXFxuICBAaW5jbHVkZSBpc01vYmlsZSB7XFxuICAgIC5EaWFsb2cge1xcbiAgICAgIC0tbWV0cmljOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiA0KTtcXG4gICAgICAtLWluc2V0LWxlZnQ6ICN7XFxcIm1heCh2YXIoLS1tZXRyaWMpLCB2YXIoLS1zYWwpKVxcXCJ9O1xcbiAgICAgIC0taW5zZXQtcmlnaHQ6ICN7XFxcIm1heCh2YXIoLS1tZXRyaWMpLCB2YXIoLS1zYXIpKVxcXCJ9O1xcbiAgICB9XFxuXFxuICAgIC5EaWFsb2dfX3RpdGxlIHtcXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGNhbGModmFyKC0tc3BhY2UtZmFjdG9yKSAqIDcpIDFmciBjYWxjKFxcbiAgICAgICAgICB2YXIoLS1zcGFjZS1mYWN0b3IpICogN1xcbiAgICAgICAgKTtcXG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNwYWNlLWZhY3RvcikgKiAyKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcbiAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xcblxcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICAgIHotaW5kZXg6IDE7XFxuICAgIH1cXG5cXG4gICAgLkRpYWxvZ19fdGl0bGVDb250ZW50IHtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIH1cXG5cXG4gICAgLkRpYWxvZyAuSXNsYW5kIHtcXG4gICAgICB3aWR0aDogMTAwdnc7XFxuICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgICBwYWRkaW5nLWxlZnQ6ICN7XFxcIm1heChjYWxjKHZhcigtLXBhZGRpbmcpICogdmFyKC0tc3BhY2UtZmFjdG9yKSksIHZhcigtLXNhbCkpXFxcIn07XFxuICAgICAgcGFkZGluZy1yaWdodDogI3tcXFwibWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FyKSlcXFwifTtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogI3tcXFwibWF4KGNhbGModmFyKC0tcGFkZGluZykgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKSwgdmFyKC0tc2FiKSlcXFwifTtcXG4gICAgfVxcblxcbiAgICAuRGlhbG9nIC5Nb2RhbF9fY2xvc2Uge1xcbiAgICAgIG9yZGVyOiAtMTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Dialog.scss\n");
1340
1116
 
1341
1117
  /***/ }),
1342
1118
 
@@ -1589,7 +1365,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1589
1365
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1590
1366
 
1591
1367
  "use strict";
1592
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n user-select: none;\\n}\\n.excalidraw .ToolIcon--plain {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon--plain .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:hover,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .ToolIcon__icon + .ToolIcon__label {\\n margin-inline-start: 0;\\n}\\n.excalidraw .ToolIcon__icon svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n}\\n.excalidraw .ToolIcon__label .Spinner {\\n margin-left: 0.6em;\\n}\\n.excalidraw .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button,\\n.excalidraw .Modal .ToolIcon_type_button,\\n.excalidraw .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:focus-visible,\\n.excalidraw .Modal .ToolIcon_type_button:focus-visible,\\n.excalidraw .ToolIcon_type_button:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:hover,\\n.excalidraw .Modal .ToolIcon_type_button:hover,\\n.excalidraw .ToolIcon_type_button:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:active,\\n.excalidraw .Modal .ToolIcon_type_button:active,\\n.excalidraw .ToolIcon_type_button:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--show,\\n.excalidraw .Modal .ToolIcon_type_button--show,\\n.excalidraw .ToolIcon_type_button--show {\\n visibility: visible;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--hide,\\n.excalidraw .Modal .ToolIcon_type_button--hide,\\n.excalidraw .ToolIcon_type_button--hide {\\n visibility: hidden;\\n}\\n.excalidraw .ToolIcon_type_radio,\\n.excalidraw .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_radio:focus-visible + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .ToolIcon_type_radio:active + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_floating {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:hover {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:active {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n user-select: none;\\n}\\n@media (max-width: 425px) {\\n .excalidraw .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n .excalidraw .Shape .ToolIcon__icon svg {\\n height: 0.8em;\\n }\\n}\\n@media (max-width: 760px) {\\n .excalidraw .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:hover {\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:active {\\n background-color: var(--button-gray-2);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating svg {\\n position: static;\\n }\\n .excalidraw .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n}\\n:root[dir=ltr] .excalidraw .unlocked-icon {\\n left: 2px;\\n}\\n:root[dir=rtl] .excalidraw .unlocked-icon {\\n right: 2px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ToolIcon.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AACE;EACE,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,wCAAA;EACA,iBAAA;AAEJ;AACE;EACE,6BAAA;AACJ;AAAI;EACE,WAAA;EACA,YAAA;AAEN;AAII;;EACE,sCAAA;AADN;AAGM;;EACE,sCAAA;AAAR;AAEM;;EACE,sCAAA;AACR;AAIE;EACE,aAAA;EACA,cAAA;EACA,6BAAA;EAEA,aAAA;EACA,uBAAA;EACA,mBAAA;EAEA,sCAAA;AAJJ;AAMI;EACE,sBAAA;AAJN;AAOI;EACE,kBAAA;EACA,WAAA;EACA,4BAAA;EACA,6BAAA;AALN;AASE;EACE,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,2BAAA;EACA,eAAA;EACA,uBAAA;AAPJ;AASI;EACE,kBAAA;AAPN;AAWE;EACE,WAAA;EACA,YAAA;EACA,gBAAA;AATJ;AAYE;;;EAGE,UAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;AAVJ;AAYI;;;EACE,kDAAA;AARN;AAWI;;;EACE,sCAAA;AAPN;AASM;;;EACE,sCAAA;AALR;AASI;;;EACE,sCAAA;AALN;AAQI;;;EACE,sCAAA;AAJN;AAOI;;;EACE,mBAAA;AAHN;AAMI;;;EACE,kBAAA;AAFN;AAME;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AAJJ;AAMI;;EACE,sCAAA;AAHN;AAIM;;EACE,sCAAA;AADR;AAKI;;EACE,kDAAA;AAFN;AAKI;;EACE,sCAAA;AAFN;AAME;EACE,6BAAA;AAJJ;AAMI;EACE,6BAAA;AAJN;AAOI;EACE,6BAAA;AALN;AAQI;EACE,sCAAA;EAQA,WAAA;EACA,YAAA;AAbN;AAKM;EACE,sCAAA;AAHR;AAKM;EACE,sCAAA;AAHR;AAWE;EACE,kBAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,2BAAA;EACA,iBAAA;AATJ;AAaE;EACE;IACE,WAAA;IACA,YAAA;EAXJ;EAaI;IACE,aAAA;EAXN;AACF;AAiBE;EACE;IACE,qBAAA;IACA,kBAAA;IACA,WAAA;IAEA,cAAA;IACA,4BAAA;IACA,UAAA;IAEA,sCAAA;EAjBJ;EAmBI;IACE,sCAAA;EAjBN;EAoBI;IACE,sCAAA;EAlBN;EAqBI;IACE,sBAAA;EAnBN;EAsBI;IACE,gBAAA;EApBN;EAuBE;IACE,6BAAA;EArBJ;EAwBE;IACE,4BAAA;EAtBJ;EAwBE;IACE,6BAAA;EAtBJ;AACF;AA0BI;EACE,SAAA;AAxBN;AA2BI;EACE,UAAA;AAzBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n user-select: none;\\n }\\n\\n .ToolIcon--plain {\\n background-color: transparent;\\n .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n border-radius: var(--border-radius-lg);\\n\\n & + .ToolIcon__label {\\n margin-inline-start: 0;\\n }\\n\\n svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n }\\n }\\n\\n .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n\\n .Spinner {\\n margin-left: 0.6em;\\n }\\n }\\n\\n .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n }\\n\\n .excalidraw .ToolIcon_type_button,\\n .Modal .ToolIcon_type_button,\\n .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n\\n &:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &--show {\\n visibility: visible;\\n }\\n\\n &--hide {\\n visibility: hidden;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n\\n &:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n .ToolIcon_type_floating {\\n background-color: transparent;\\n\\n &:hover {\\n background-color: transparent;\\n }\\n\\n &:active {\\n background-color: transparent;\\n }\\n\\n .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n user-select: none;\\n }\\n\\n // shrink shape icons on small viewports to make them fit\\n @media (max-width: 425px) {\\n .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n\\n svg {\\n height: 0.8em;\\n }\\n }\\n }\\n\\n // move the lock button out of the way on small viewports\\n // it begins to collide with the GitHub icon before we switch to mobile mode\\n @media (max-width: 760px) {\\n .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-1);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n\\n .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n\\n svg {\\n position: static;\\n }\\n }\\n .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n }\\n\\n .unlocked-icon {\\n :root[dir=\\\"ltr\\\"] & {\\n left: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 2px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsMkJBQTJCLHlCQUF5Qix3QkFBd0IsdUJBQXVCLG9CQUFvQiw2Q0FBNkMsc0JBQXNCLEdBQUcsZ0NBQWdDLGtDQUFrQyxHQUFHLGdEQUFnRCxnQkFBZ0IsaUJBQWlCLEdBQUcsOEdBQThHLDJDQUEyQyxHQUFHLDBIQUEwSCwyQ0FBMkMsR0FBRyw0SEFBNEgsMkNBQTJDLEdBQUcsK0JBQStCLGtCQUFrQixtQkFBbUIsa0NBQWtDLGtCQUFrQiw0QkFBNEIsd0JBQXdCLDJDQUEyQyxHQUFHLGtEQUFrRCwyQkFBMkIsR0FBRyxtQ0FBbUMsdUJBQXVCLGdCQUFnQixpQ0FBaUMsa0NBQWtDLEdBQUcsZ0NBQWdDLGtCQUFrQix3QkFBd0Isa0NBQWtDLGdDQUFnQyxvQkFBb0IsNEJBQTRCLEdBQUcseUNBQXlDLHVCQUF1QixHQUFHLG9EQUFvRCxnQkFBZ0IsaUJBQWlCLHFCQUFxQixHQUFHLGdJQUFnSSxlQUFlLGlCQUFpQixjQUFjLHVCQUF1QixHQUFHLDBLQUEwSyx1REFBdUQsR0FBRyx5TEFBeUwsMkNBQTJDLEdBQUcsOE1BQThNLDJDQUEyQyxHQUFHLGtKQUFrSiwyQ0FBMkMsR0FBRyxxSkFBcUosMkNBQTJDLEdBQUcsa0pBQWtKLHdCQUF3QixHQUFHLGtKQUFrSix1QkFBdUIsR0FBRywwRUFBMEUsdUJBQXVCLGVBQWUseUJBQXlCLEdBQUcsd0xBQXdMLDJD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REFBaUQsU0FBUywyQkFBMkIsaUNBQWlDLFNBQVMsZUFBZSwyQkFBMkIsU0FBUyxPQUFPLG1DQUFtQyxzQ0FBc0MsT0FBTyxrQ0FBa0MscUNBQXFDLE9BQU8sbUNBQW1DLHNDQUFzQyxPQUFPLEtBQUssc0JBQXNCLDRCQUE0QixrQkFBa0IsT0FBTyw4QkFBOEIsbUJBQW1CLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUN4emE7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3M/YTBkNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4gLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAycmVtO1xcbiAgaGVpZ2h0OiAycmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMi41cmVtO1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19pY29uICsgLlRvb2xJY29uX19sYWJlbCB7XFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2ljb24gc3ZnIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMWVtO1xcbiAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2xhYmVsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICBtYXJnaW46IDAgMC44ZW07XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19sYWJlbCAuU3Bpbm5lciB7XFxuICBtYXJnaW4tbGVmdDogMC42ZW07XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9zaXplX3NtYWxsIC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG4gIGZvbnQtc2l6ZTogMC44ZW07XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxuICBwYWRkaW5nOiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZDphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlcixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93LFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3csXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93IHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpub3QoLlRvb2xJY29uX3RvZ2dsZV9vcGFxdWUpOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19pY29uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAycHg7XFxuICByaWdodDogM3B4O1xcbiAgZm9udC1zaXplOiAwLjVlbTtcXG4gIGNvbG9yOiB2YXIoLS1rZXliaW5kaW5nLWNvbG9yKTtcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNDI1cHgpIHtcXG4gIC5leGNhbGlkcmF3IC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMnJlbTtcXG4gICAgaGVpZ2h0OiAycmVtO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlNoYXBlIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgICBoZWlnaHQ6IDAuOGVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzYwcHgpIHtcXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAtOHB4O1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogMjBweCAwIDAgMjBweDtcXG4gICAgei1pbmRleDogMTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgc3ZnIHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fbGlicmFyeSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTAwcHgpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgdG9wOiBjYWxjKHZhcigtLXNhdCkgKyA2MHB4KTtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fcGVuTW9kZSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTQwcHgpO1xcbiAgfVxcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAudW5sb2NrZWQtaWNvbiB7XFxuICBsZWZ0OiAycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC51bmxvY2tlZC1pY29uIHtcXG4gIHJpZ2h0OiAycHg7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUNFO0VBQ0Usb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHdDQUFBO0VBQ0EsaUJBQUE7QUFFSjtBQUNFO0VBQ0UsNkJBQUE7QUFDSjtBQUFJO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUFFTjtBQUlJOztFQUNFLHNDQUFBO0FBRE47QUFHTTs7RUFDRSxzQ0FBQTtBQUFSO0FBRU07O0VBQ0Usc0NBQUE7QUFDUjtBQUlFO0VBQ0UsYUFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtFQUVBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBRUEsc0NBQUE7QUFKSjtBQU1JO0VBQ0Usc0JBQUE7QUFKTjtBQU9JO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsNEJBQUE7RUFDQSw2QkFBQTtBQUxOO0FBU0U7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw2QkFBQTtFQUNBLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0FBUEo7QUFTSTtFQUNFLGtCQUFBO0FBUE47QUFXRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUFUSjtBQVlFOzs7RUFHRSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtBQVZKO0FBWUk7OztFQUNFLGtEQUFBO0FBUk47QUFXSTs7O0VBQ0Usc0NBQUE7QUFQTjtBQVNNOzs7RUFDRSxzQ0FBQTtBQUxSO0FBU0k7OztFQUNFLHNDQUFBO0FBTE47QUFRSTs7O0VBQ0Usc0NBQUE7QUFKTjtBQU9JOzs7RUFDRSxtQkFBQTtBQUhOO0FBTUk7OztFQUNFLGtCQUFBO0FBRk47QUFNRTs7RUFFRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtBQUpKO0FBTUk7O0VBQ0Usc0NBQUE7QUFITjtBQUlNOztFQUNFLHNDQUFBO0FBRFI7QUFLSTs7RUFDRSxrREFBQTtBQUZOO0FBS0k7O0VBQ0Usc0NBQUE7QUFGTjtBQU1FO0VBQ0UsNkJBQUE7QUFKSjtBQU1JO0VBQ0UsNkJBQUE7QUFKTjtBQU9JO0VBQ0UsNkJBQUE7QUFMTjtBQVFJO0VBQ0Usc0NBQUE7RUFRQSxXQUFBO0VBQ0EsWUFBQTtBQWJOO0FBS007RUFDRSxzQ0FBQTtBQUhSO0FBS007RUFDRSxzQ0FBQTtBQUhSO0FBV0U7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLDJCQUFBO0VBQ0EsaUJBQUE7QUFUSjtBQWFFO0VBQ0U7SUFDRSxXQUFBO0lBQ0EsWUFBQTtFQVhKO0VBYUk7SUFDRSxhQUFBO0VBWE47QUFDRjtBQWlCRTtFQUNFO0lBQ0UscUJBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7SUFFQSxjQUFBO0lBQ0EsNEJBQUE7SUFDQSxVQUFBO0lBRUEsc0NBQUE7RUFqQko7RUFtQkk7SUFDRSxzQ0FBQTtFQWpCTjtFQW9CSTtJQUNFLHNDQUFBO0VBbEJOO0VBcUJJO0lBQ0Usc0JBQUE7RUFuQk47RUFzQkk7SUFDRSxnQkFBQTtFQXBCTjtFQXVCRTtJQUNFLDZCQUFBO0VBckJKO0VBd0JFO0lBQ0UsNEJBQUE7RUF0Qko7RUF3QkU7SUFDRSw2QkFBQTtFQXRCSjtBQUNGO0FBMEJJO0VBQ0UsU0FBQTtBQXhCTjtBQTJCSTtFQUNFLFVBQUE7QUF6Qk5cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuQGltcG9ydCBcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC5Ub29sSWNvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB9XFxuXFxuICAuVG9vbEljb24tLXBsYWluIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgd2lkdGg6IDJyZW07XFxuICAgICAgaGVpZ2h0OiAycmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gICAgJiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICB9XFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMi41cmVtO1xcbiAgICBoZWlnaHQ6IDIuNXJlbTtcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXG5cXG4gICAgJiArIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgaGVpZ2h0OiAxZW07XFxuICAgICAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19sYWJlbCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICAgIG1hcmdpbjogMCAwLjhlbTtcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuXFxuICAgIC5TcGlubmVyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMC42ZW07XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9zaXplX3NtYWxsIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgIHdpZHRoOiAycmVtO1xcbiAgICBoZWlnaHQ6IDJyZW07XFxuICAgIGZvbnQtc2l6ZTogMC44ZW07XFxuICB9XFxuXFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24sXFxuICAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbiAgLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG5cXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmLlRvb2xJY29uLS1zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuXFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgfVxcblxcbiAgICAmLS1zaG93IHtcXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICB9XFxuXFxuICAgICYtLWhpZGUge1xcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuXFxuICAgICY6bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgfVxcblxcbiAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG5cXG4gICAgICB3aWR0aDogMnJlbTtcXG4gICAgICBoZWlnaHQ6IDJyZW07XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAycHg7XFxuICAgIHJpZ2h0OiAzcHg7XFxuICAgIGZvbnQtc2l6ZTogMC41ZW07XFxuICAgIGNvbG9yOiB2YXIoLS1rZXliaW5kaW5nLWNvbG9yKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIH1cXG5cXG4gIC8vIHNocmluayBzaGFwZSBpY29ucyBvbiBzbWFsbCB2aWV3cG9ydHMgdG8gbWFrZSB0aGVtIGZpdFxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQyNXB4KSB7XFxuICAgIC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIHdpZHRoOiAycmVtO1xcbiAgICAgIGhlaWdodDogMnJlbTtcXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgaGVpZ2h0OiAwLjhlbTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC8vIG1vdmUgdGhlIGxvY2sgYnV0dG9uIG91dCBvZiB0aGUgd2F5IG9uIHNtYWxsIHZpZXdwb3J0c1xcbiAgLy8gaXQgYmVnaW5zIHRvIGNvbGxpZGUgd2l0aCB0aGUgR2l0SHViIGljb24gYmVmb3JlIHdlIHN3aXRjaCB0byBtb2JpbGUgbW9kZVxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHJpZ2h0OiAtOHB4O1xcblxcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMCAwIDIwcHg7XFxuICAgICAgei1pbmRleDogMTtcXG5cXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICAgIH1cXG5cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICAgICAgfVxcblxcbiAgICAgIHN2ZyB7XFxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAuVG9vbEljb24uVG9vbEljb25fX2xpYnJhcnkge1xcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTAwcHgpO1xcbiAgICB9XFxuXFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl9fbG9jayB7XFxuICAgICAgdG9wOiBjYWxjKHZhcigtLXNhdCkgKyA2MHB4KTtcXG4gICAgfVxcbiAgICAuVG9vbEljb24uVG9vbEljb25fX3Blbk1vZGUge1xcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTQwcHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICAudW5sb2NrZWQtaWNvbiB7XFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgbGVmdDogMnB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IDJweDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ToolIcon.scss\n");
1368
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.excalidraw .ToolIcon--plain {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon--plain .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:hover,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .ToolIcon__icon + .ToolIcon__label {\\n margin-inline-start: 0;\\n}\\n.excalidraw .ToolIcon__icon svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n}\\n.excalidraw .ToolIcon__label .Spinner {\\n margin-left: 0.6em;\\n}\\n.excalidraw .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button,\\n.excalidraw .Modal .ToolIcon_type_button,\\n.excalidraw .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:focus-visible,\\n.excalidraw .Modal .ToolIcon_type_button:focus-visible,\\n.excalidraw .ToolIcon_type_button:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:hover,\\n.excalidraw .Modal .ToolIcon_type_button:hover,\\n.excalidraw .ToolIcon_type_button:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:active,\\n.excalidraw .Modal .ToolIcon_type_button:active,\\n.excalidraw .ToolIcon_type_button:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--show,\\n.excalidraw .Modal .ToolIcon_type_button--show,\\n.excalidraw .ToolIcon_type_button--show {\\n visibility: visible;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--hide,\\n.excalidraw .Modal .ToolIcon_type_button--hide,\\n.excalidraw .ToolIcon_type_button--hide {\\n visibility: hidden;\\n}\\n.excalidraw .ToolIcon_type_radio,\\n.excalidraw .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_radio:focus-visible + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .ToolIcon_type_radio:active + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_floating {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:hover {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:active {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n@media (max-width: 425px) {\\n .excalidraw .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n .excalidraw .Shape .ToolIcon__icon svg {\\n height: 0.8em;\\n }\\n}\\n@media (max-width: 760px) {\\n .excalidraw .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:hover {\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:active {\\n background-color: var(--button-gray-2);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating svg {\\n position: static;\\n }\\n .excalidraw .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n}\\n:root[dir=ltr] .excalidraw .unlocked-icon {\\n left: 2px;\\n}\\n:root[dir=rtl] .excalidraw .unlocked-icon {\\n right: 2px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ToolIcon.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AACE;EACE,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,wCAAA;EACA,yBAAA;UAAA,iBAAA;AAEJ;AACE;EACE,6BAAA;AACJ;AAAI;EACE,WAAA;EACA,YAAA;AAEN;AAII;;EACE,sCAAA;AADN;AAGM;;EACE,sCAAA;AAAR;AAEM;;EACE,sCAAA;AACR;AAIE;EACE,aAAA;EACA,cAAA;EACA,6BAAA;EAEA,aAAA;EACA,uBAAA;EACA,mBAAA;EAEA,sCAAA;AAJJ;AAMI;EACE,sBAAA;AAJN;AAOI;EACE,kBAAA;EACA,WAAA;EACA,4BAAA;EACA,6BAAA;AALN;AASE;EACE,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,2BAAA;EACA,eAAA;EACA,uBAAA;AAPJ;AASI;EACE,kBAAA;AAPN;AAWE;EACE,WAAA;EACA,YAAA;EACA,gBAAA;AATJ;AAYE;;;EAGE,UAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;AAVJ;AAYI;;;EACE,kDAAA;AARN;AAWI;;;EACE,sCAAA;AAPN;AASM;;;EACE,sCAAA;AALR;AASI;;;EACE,sCAAA;AALN;AAQI;;;EACE,sCAAA;AAJN;AAOI;;;EACE,mBAAA;AAHN;AAMI;;;EACE,kBAAA;AAFN;AAME;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AAJJ;AAMI;;EACE,sCAAA;AAHN;AAIM;;EACE,sCAAA;AADR;AAKI;;EACE,kDAAA;AAFN;AAKI;;EACE,sCAAA;AAFN;AAME;EACE,6BAAA;AAJJ;AAMI;EACE,6BAAA;AAJN;AAOI;EACE,6BAAA;AALN;AAQI;EACE,sCAAA;EAQA,WAAA;EACA,YAAA;AAbN;AAKM;EACE,sCAAA;AAHR;AAKM;EACE,sCAAA;AAHR;AAWE;EACE,kBAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,2BAAA;EACA,yBAAA;UAAA,iBAAA;AATJ;AAaE;EACE;IACE,WAAA;IACA,YAAA;EAXJ;EAaI;IACE,aAAA;EAXN;AACF;AAiBE;EACE;IACE,qBAAA;IACA,kBAAA;IACA,WAAA;IAEA,cAAA;IACA,4BAAA;IACA,UAAA;IAEA,sCAAA;EAjBJ;EAmBI;IACE,sCAAA;EAjBN;EAoBI;IACE,sCAAA;EAlBN;EAqBI;IACE,sBAAA;EAnBN;EAsBI;IACE,gBAAA;EApBN;EAuBE;IACE,6BAAA;EArBJ;EAwBE;IACE,4BAAA;EAtBJ;EAwBE;IACE,6BAAA;EAtBJ;AACF;AA0BI;EACE,SAAA;AAxBN;AA2BI;EACE,UAAA;AAzBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n user-select: none;\\n }\\n\\n .ToolIcon--plain {\\n background-color: transparent;\\n .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n border-radius: var(--border-radius-lg);\\n\\n & + .ToolIcon__label {\\n margin-inline-start: 0;\\n }\\n\\n svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n }\\n }\\n\\n .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n\\n .Spinner {\\n margin-left: 0.6em;\\n }\\n }\\n\\n .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n }\\n\\n .excalidraw .ToolIcon_type_button,\\n .Modal .ToolIcon_type_button,\\n .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n\\n &:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &--show {\\n visibility: visible;\\n }\\n\\n &--hide {\\n visibility: hidden;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n\\n &:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n .ToolIcon_type_floating {\\n background-color: transparent;\\n\\n &:hover {\\n background-color: transparent;\\n }\\n\\n &:active {\\n background-color: transparent;\\n }\\n\\n .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n user-select: none;\\n }\\n\\n // shrink shape icons on small viewports to make them fit\\n @media (max-width: 425px) {\\n .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n\\n svg {\\n height: 0.8em;\\n }\\n }\\n }\\n\\n // move the lock button out of the way on small viewports\\n // it begins to collide with the GitHub icon before we switch to mobile mode\\n @media (max-width: 760px) {\\n .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-1);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n\\n .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n\\n svg {\\n position: static;\\n }\\n }\\n .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n }\\n\\n .unlocked-icon {\\n :root[dir=\\\"ltr\\\"] & {\\n left: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 2px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsMkJBQTJCLHlCQUF5Qix3QkFBd0IsdUJBQXVCLG9CQUFvQiw2Q0FBNkMsOEJBQThCLDhCQUE4QixHQUFHLGdDQUFnQyxrQ0FBa0MsR0FBRyxnREFBZ0QsZ0JBQWdCLGlCQUFpQixHQUFHLDhHQUE4RywyQ0FBMkMsR0FBRywwSEFBMEgsMkNBQTJDLEdBQUcsNEhBQTRILDJDQUEyQyxHQUFHLCtCQUErQixrQkFBa0IsbUJBQW1CLGtDQUFrQyxrQkFBa0IsNEJBQTRCLHdCQUF3QiwyQ0FBMkMsR0FBRyxrREFBa0QsMkJBQTJCLEdBQUcsbUNBQW1DLHVCQUF1QixnQkFBZ0IsaUNBQWlDLGtDQUFrQyxHQUFHLGdDQUFnQyxrQkFBa0Isd0JBQXdCLGtDQUFrQyxnQ0FBZ0Msb0JBQW9CLDRCQUE0QixHQUFHLHlDQUF5Qyx1QkFBdUIsR0FBRyxvREFBb0QsZ0JBQWdCLGlCQUFpQixxQkFBcUIsR0FBRyxnSUFBZ0ksZUFBZSxpQkFBaUIsY0FBYyx1QkFBdUIsR0FBRywwS0FBMEssdURBQXVELEdBQUcseUxBQXlMLDJDQUEyQyxHQUFHLDhNQUE4TSwyQ0FBMkMsR0FBRyxrSkFBa0osMkNBQTJDLEdBQUcscUpBQXFKLDJDQUEyQyxHQUFHLGtKQUFrSix3QkFBd0IsR0FBRyxrSkFBa0osdUJBQXVCLEdBQUcsMEVBQTBFLHVCQUF1QixlQUFlLHlCQUF5QixHQUFHLHdM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QW1CLGlEQUFpRCxTQUFTLG9CQUFvQixpREFBaUQsU0FBUywyQkFBMkIsaUNBQWlDLFNBQVMsZUFBZSwyQkFBMkIsU0FBUyxPQUFPLG1DQUFtQyxzQ0FBc0MsT0FBTyxrQ0FBa0MscUNBQXFDLE9BQU8sbUNBQW1DLHNDQUFzQyxPQUFPLEtBQUssc0JBQXNCLDRCQUE0QixrQkFBa0IsT0FBTyw4QkFBOEIsbUJBQW1CLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUMxNWE7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3M/YTBkNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4gLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAycmVtO1xcbiAgaGVpZ2h0OiAycmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMi41cmVtO1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19pY29uICsgLlRvb2xJY29uX19sYWJlbCB7XFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2ljb24gc3ZnIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMWVtO1xcbiAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2xhYmVsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICBtYXJnaW46IDAgMC44ZW07XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19sYWJlbCAuU3Bpbm5lciB7XFxuICBtYXJnaW4tbGVmdDogMC42ZW07XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9zaXplX3NtYWxsIC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG4gIGZvbnQtc2l6ZTogMC44ZW07XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxuICBwYWRkaW5nOiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZDphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlcixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93LFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3csXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93IHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpub3QoLlRvb2xJY29uX3RvZ2dsZV9vcGFxdWUpOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19pY29uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAycHg7XFxuICByaWdodDogM3B4O1xcbiAgZm9udC1zaXplOiAwLjVlbTtcXG4gIGNvbG9yOiB2YXIoLS1rZXliaW5kaW5nLWNvbG9yKTtcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNDI1cHgpIHtcXG4gIC5leGNhbGlkcmF3IC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMnJlbTtcXG4gICAgaGVpZ2h0OiAycmVtO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlNoYXBlIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgICBoZWlnaHQ6IDAuOGVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzYwcHgpIHtcXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAtOHB4O1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogMjBweCAwIDAgMjBweDtcXG4gICAgei1pbmRleDogMTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgc3ZnIHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fbGlicmFyeSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTAwcHgpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgdG9wOiBjYWxjKHZhcigtLXNhdCkgKyA2MHB4KTtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fcGVuTW9kZSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTQwcHgpO1xcbiAgfVxcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAudW5sb2NrZWQtaWNvbiB7XFxuICBsZWZ0OiAycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC51bmxvY2tlZC1pY29uIHtcXG4gIHJpZ2h0OiAycHg7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUNFO0VBQ0Usb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHdDQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtBQUVKO0FBQ0U7RUFDRSw2QkFBQTtBQUNKO0FBQUk7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBQUVOO0FBSUk7O0VBQ0Usc0NBQUE7QUFETjtBQUdNOztFQUNFLHNDQUFBO0FBQVI7QUFFTTs7RUFDRSxzQ0FBQTtBQUNSO0FBSUU7RUFDRSxhQUFBO0VBQ0EsY0FBQTtFQUNBLDZCQUFBO0VBRUEsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFFQSxzQ0FBQTtBQUpKO0FBTUk7RUFDRSxzQkFBQTtBQUpOO0FBT0k7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0FBTE47QUFTRTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0VBQ0EsdUJBQUE7QUFQSjtBQVNJO0VBQ0Usa0JBQUE7QUFQTjtBQVdFO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQVRKO0FBWUU7OztFQUdFLFVBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0FBVko7QUFZSTs7O0VBQ0Usa0RBQUE7QUFSTjtBQVdJOzs7RUFDRSxzQ0FBQTtBQVBOO0FBU007OztFQUNFLHNDQUFBO0FBTFI7QUFTSTs7O0VBQ0Usc0NBQUE7QUFMTjtBQVFJOzs7RUFDRSxzQ0FBQTtBQUpOO0FBT0k7OztFQUNFLG1CQUFBO0FBSE47QUFNSTs7O0VBQ0Usa0JBQUE7QUFGTjtBQU1FOztFQUVFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLG9CQUFBO0FBSko7QUFNSTs7RUFDRSxzQ0FBQTtBQUhOO0FBSU07O0VBQ0Usc0NBQUE7QUFEUjtBQUtJOztFQUNFLGtEQUFBO0FBRk47QUFLSTs7RUFDRSxzQ0FBQTtBQUZOO0FBTUU7RUFDRSw2QkFBQTtBQUpKO0FBTUk7RUFDRSw2QkFBQTtBQUpOO0FBT0k7RUFDRSw2QkFBQTtBQUxOO0FBUUk7RUFDRSxzQ0FBQTtFQVFBLFdBQUE7RUFDQSxZQUFBO0FBYk47QUFLTTtFQUNFLHNDQUFBO0FBSFI7QUFLTTtFQUNFLHNDQUFBO0FBSFI7QUFXRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0FBVEo7QUFhRTtFQUNFO0lBQ0UsV0FBQTtJQUNBLFlBQUE7RUFYSjtFQWFJO0lBQ0UsYUFBQTtFQVhOO0FBQ0Y7QUFpQkU7RUFDRTtJQUNFLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxXQUFBO0lBRUEsY0FBQTtJQUNBLDRCQUFBO0lBQ0EsVUFBQTtJQUVBLHNDQUFBO0VBakJKO0VBbUJJO0lBQ0Usc0NBQUE7RUFqQk47RUFvQkk7SUFDRSxzQ0FBQTtFQWxCTjtFQXFCSTtJQUNFLHNCQUFBO0VBbkJOO0VBc0JJO0lBQ0UsZ0JBQUE7RUFwQk47RUF1QkU7SUFDRSw2QkFBQTtFQXJCSjtFQXdCRTtJQUNFLDRCQUFBO0VBdEJKO0VBd0JFO0lBQ0UsNkJBQUE7RUF0Qko7QUFDRjtBQTBCSTtFQUNFLFNBQUE7QUF4Qk47QUEyQkk7RUFDRSxVQUFBO0FBekJOXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcbkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuVG9vbEljb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgfVxcblxcbiAgLlRvb2xJY29uLS1wbGFpbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIHdpZHRoOiAycmVtO1xcbiAgICAgIGhlaWdodDogMnJlbTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcblxcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgd2lkdGg6IDIuNXJlbTtcXG4gICAgaGVpZ2h0OiAyLjVyZW07XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuXFxuICAgICYgKyAuVG9vbEljb25fX2xhYmVsIHtcXG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcbiAgICB9XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIGhlaWdodDogMWVtO1xcbiAgICAgIGZpbGw6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICAgICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbiAgICBtYXJnaW46IDAgMC44ZW07XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcblxcbiAgICAuU3Bpbm5lciB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fc2l6ZV9zbWFsbCAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMnJlbTtcXG4gICAgaGVpZ2h0OiAycmVtO1xcbiAgICBmb250LXNpemU6IDAuOGVtO1xcbiAgfVxcblxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbiAgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXG4gIC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG5cXG4gICAgJi5Ub29sSWNvbi0tc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcblxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIH1cXG5cXG4gICAgJi0tc2hvdyB7XFxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgfVxcblxcbiAgICAmLS1oaWRlIHtcXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcblxcbiAgICAmOm5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICAgIH1cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgICB9XFxuXFxuICAgICAgd2lkdGg6IDJyZW07XFxuICAgICAgaGVpZ2h0OiAycmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMnB4O1xcbiAgICByaWdodDogM3B4O1xcbiAgICBmb250LXNpemU6IDAuNWVtO1xcbiAgICBjb2xvcjogdmFyKC0ta2V5YmluZGluZy1jb2xvcik7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB9XFxuXFxuICAvLyBzaHJpbmsgc2hhcGUgaWNvbnMgb24gc21hbGwgdmlld3BvcnRzIHRvIG1ha2UgdGhlbSBmaXRcXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0MjVweCkge1xcbiAgICAuU2hhcGUgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICB3aWR0aDogMnJlbTtcXG4gICAgICBoZWlnaHQ6IDJyZW07XFxuXFxuICAgICAgc3ZnIHtcXG4gICAgICAgIGhlaWdodDogMC44ZW07XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAvLyBtb3ZlIHRoZSBsb2NrIGJ1dHRvbiBvdXQgb2YgdGhlIHdheSBvbiBzbWFsbCB2aWV3cG9ydHNcXG4gIC8vIGl0IGJlZ2lucyB0byBjb2xsaWRlIHdpdGggdGhlIEdpdEh1YiBpY29uIGJlZm9yZSB3ZSBzd2l0Y2ggdG8gbW9iaWxlIG1vZGVcXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xcbiAgICAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICByaWdodDogLThweDtcXG5cXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDAgMCAyMHB4O1xcbiAgICAgIHotaW5kZXg6IDE7XFxuXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgICB9XFxuXFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcblxcbiAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgICAgIH1cXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgICB9XFxuICAgIH1cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19saWJyYXJ5IHtcXG4gICAgICB0b3A6IGNhbGModmFyKC0tc2F0KSArIDEwMHB4KTtcXG4gICAgfVxcblxcbiAgICAuVG9vbEljb24uVG9vbEljb25fX2xvY2sge1xcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgNjBweCk7XFxuICAgIH1cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19wZW5Nb2RlIHtcXG4gICAgICB0b3A6IGNhbGModmFyKC0tc2F0KSArIDE0MHB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnVubG9ja2VkLWljb24ge1xcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGxlZnQ6IDJweDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAycHg7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ToolIcon.scss\n");
1593
1369
 
1594
1370
  /***/ }),
1595
1371
 
@@ -1633,7 +1409,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1633
1409
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1634
1410
 
1635
1411
  "use strict";
1636
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".visually-hidden {\\n position: absolute !important;\\n height: 1px;\\n width: 1px;\\n overflow: hidden;\\n clip: rect(1px, 1px, 1px, 1px);\\n white-space: nowrap;\\n /* added line */\\n user-select: none;\\n}\\n\\n.LoadingMessage {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 999;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n}\\n.LoadingMessage .Spinner {\\n font-size: 2.8em;\\n}\\n.LoadingMessage .LoadingMessage-text {\\n margin-top: 1em;\\n font-size: 0.8em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/app.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,mBAAA;EAAqB,eAAA;EACrB,iBAAA;AAEF;;AACA;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,YAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;EACA,oBAAA;AAEF;AAAE;EACE,gBAAA;AAEJ;AACE;EACE,eAAA;EACA,gBAAA;AACJ\",\"sourcesContent\":[\".visually-hidden {\\n position: absolute !important;\\n height: 1px;\\n width: 1px;\\n overflow: hidden;\\n clip: rect(1px, 1px, 1px, 1px);\\n white-space: nowrap; /* added line */\\n user-select: none;\\n}\\n\\n.LoadingMessage {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 999;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n\\n .Spinner {\\n font-size: 2.8em;\\n }\\n\\n .LoadingMessage-text {\\n margin-top: 1em;\\n font-size: 0.8em;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL2FwcC5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLDREQUE0RCxrQ0FBa0MsZ0JBQWdCLGVBQWUscUJBQXFCLG1DQUFtQyx3QkFBd0IsMENBQTBDLEdBQUcscUJBQXFCLHVCQUF1QixXQUFXLGFBQWEsY0FBYyxZQUFZLGlCQUFpQixrQkFBa0IsMkJBQTJCLHdCQUF3Qiw0QkFBNEIseUJBQXlCLEdBQUcsNEJBQTRCLHFCQUFxQixHQUFHLHdDQUF3QyxvQkFBb0IscUJBQXFCLEdBQUcsT0FBTyxxRkFBcUYsV0FBVyxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxZQUFZLE1BQU0sS0FBSyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsV0FBVywyQ0FBMkMsa0NBQWtDLGdCQUFnQixlQUFlLHFCQUFxQixtQ0FBbUMseUJBQXlCLHNDQUFzQyxHQUFHLHFCQUFxQix1QkFBdUIsV0FBVyxhQUFhLGNBQWMsWUFBWSxpQkFBaUIsa0JBQWtCLDJCQUEyQix3QkFBd0IsNEJBQTRCLHlCQUF5QixnQkFBZ0IsdUJBQXVCLEtBQUssNEJBQTRCLHNCQUFzQix1QkFBdUIsS0FBSyxHQUFHLHFCQUFxQjtBQUNwakQ7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jc3MvYXBwLnNjc3M/ODE1MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIudmlzdWFsbHktaGlkZGVuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICB3aWR0aDogMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAvKiBhZGRlZCBsaW5lICovXFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLkxvYWRpbmdNZXNzYWdlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5Mb2FkaW5nTWVzc2FnZSAuU3Bpbm5lciB7XFxuICBmb250LXNpemU6IDIuOGVtO1xcbn1cXG4uTG9hZGluZ01lc3NhZ2UgLkxvYWRpbmdNZXNzYWdlLXRleHQge1xcbiAgbWFyZ2luLXRvcDogMWVtO1xcbiAgZm9udC1zaXplOiAwLjhlbTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL2FwcC5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtFQUFxQixlQUFBO0VBQ3JCLGlCQUFBO0FBRUY7O0FBQ0E7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLG9CQUFBO0FBRUY7QUFBRTtFQUNFLGdCQUFBO0FBRUo7QUFDRTtFQUNFLGVBQUE7RUFDQSxnQkFBQTtBQUNKXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi52aXN1YWxseS1oaWRkZW4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDFweDtcXG4gIHdpZHRoOiAxcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogYWRkZWQgbGluZSAqL1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5Mb2FkaW5nTWVzc2FnZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiA5OTk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcblxcbiAgLlNwaW5uZXIge1xcbiAgICBmb250LXNpemU6IDIuOGVtO1xcbiAgfVxcblxcbiAgLkxvYWRpbmdNZXNzYWdlLXRleHQge1xcbiAgICBtYXJnaW4tdG9wOiAxZW07XFxuICAgIGZvbnQtc2l6ZTogMC44ZW07XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../css/app.scss\n");
1412
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".visually-hidden {\\n position: absolute !important;\\n height: 1px;\\n width: 1px;\\n overflow: hidden;\\n clip: rect(1px, 1px, 1px, 1px);\\n white-space: nowrap;\\n /* added line */\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n\\n.LoadingMessage {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 999;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n}\\n.LoadingMessage .Spinner {\\n font-size: 2.8em;\\n}\\n.LoadingMessage .LoadingMessage-text {\\n margin-top: 1em;\\n font-size: 0.8em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/app.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,mBAAA;EAAqB,eAAA;EACrB,yBAAA;UAAA,iBAAA;AAEF;;AACA;EACE,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,YAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;EACA,oBAAA;AAEF;AAAE;EACE,gBAAA;AAEJ;AACE;EACE,eAAA;EACA,gBAAA;AACJ\",\"sourcesContent\":[\".visually-hidden {\\n position: absolute !important;\\n height: 1px;\\n width: 1px;\\n overflow: hidden;\\n clip: rect(1px, 1px, 1px, 1px);\\n white-space: nowrap; /* added line */\\n user-select: none;\\n}\\n\\n.LoadingMessage {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 999;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n pointer-events: none;\\n\\n .Spinner {\\n font-size: 2.8em;\\n }\\n\\n .LoadingMessage-text {\\n margin-top: 1em;\\n font-size: 0.8em;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL2FwcC5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLDREQUE0RCxrQ0FBa0MsZ0JBQWdCLGVBQWUscUJBQXFCLG1DQUFtQyx3QkFBd0Isa0RBQWtELDhCQUE4QixHQUFHLHFCQUFxQix1QkFBdUIsV0FBVyxhQUFhLGNBQWMsWUFBWSxpQkFBaUIsa0JBQWtCLDJCQUEyQix3QkFBd0IsNEJBQTRCLHlCQUF5QixHQUFHLDRCQUE0QixxQkFBcUIsR0FBRyx3Q0FBd0Msb0JBQW9CLHFCQUFxQixHQUFHLE9BQU8scUZBQXFGLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsWUFBWSxXQUFXLE1BQU0sS0FBSyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFVBQVUsV0FBVywyQ0FBMkMsa0NBQWtDLGdCQUFnQixlQUFlLHFCQUFxQixtQ0FBbUMseUJBQXlCLHNDQUFzQyxHQUFHLHFCQUFxQix1QkFBdUIsV0FBVyxhQUFhLGNBQWMsWUFBWSxpQkFBaUIsa0JBQWtCLDJCQUEyQix3QkFBd0IsNEJBQTRCLHlCQUF5QixnQkFBZ0IsdUJBQXVCLEtBQUssNEJBQTRCLHNCQUFzQix1QkFBdUIsS0FBSyxHQUFHLHFCQUFxQjtBQUNybUQ7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jc3MvYXBwLnNjc3M/ODE1MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIudmlzdWFsbHktaGlkZGVuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICB3aWR0aDogMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAvKiBhZGRlZCBsaW5lICovXFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLkxvYWRpbmdNZXNzYWdlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5Mb2FkaW5nTWVzc2FnZSAuU3Bpbm5lciB7XFxuICBmb250LXNpemU6IDIuOGVtO1xcbn1cXG4uTG9hZGluZ01lc3NhZ2UgLkxvYWRpbmdNZXNzYWdlLXRleHQge1xcbiAgbWFyZ2luLXRvcDogMWVtO1xcbiAgZm9udC1zaXplOiAwLjhlbTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL2FwcC5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtFQUFxQixlQUFBO0VBQ3JCLHlCQUFBO1VBQUEsaUJBQUE7QUFFRjs7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0Esb0JBQUE7QUFFRjtBQUFFO0VBQ0UsZ0JBQUE7QUFFSjtBQUNFO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FBQ0pcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLnZpc3VhbGx5LWhpZGRlbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMXB4O1xcbiAgd2lkdGg6IDFweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBhZGRlZCBsaW5lICovXFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuXFxuLkxvYWRpbmdNZXNzYWdlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuXFxuICAuU3Bpbm5lciB7XFxuICAgIGZvbnQtc2l6ZTogMi44ZW07XFxuICB9XFxuXFxuICAuTG9hZGluZ01lc3NhZ2UtdGV4dCB7XFxuICAgIG1hcmdpbi10b3A6IDFlbTtcXG4gICAgZm9udC1zaXplOiAwLjhlbTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../css/app.scss\n");
1637
1413
 
1638
1414
  /***/ }),
1639
1415
 
@@ -1644,7 +1420,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1644
1420
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1645
1421
 
1646
1422
  "use strict";
1647
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"292.4\" height=\"292.4\" viewBox=\"0 0 292 292\"><path d=\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\"/></svg> */ \"data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"292.4\" height=\"292.4\" viewBox=\"0 0 292 292\"><path fill=\"%23ced4da\" d=\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\"/></svg> */ \"data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path fill=\\\"%23ced4da\\\" d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n:export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw {\\n --theme-filter: none;\\n --button-destructive-bg-color: #ffe3e3;\\n --button-destructive-color: #c92a2a;\\n --button-gray-1: #e9ecef;\\n --button-gray-2: #ced4da;\\n --button-gray-3: #adb5bd;\\n --button-special-active-bg-color: #ebfbee;\\n --dialog-border-color: #868e96;\\n --dropdown-icon: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n --focus-highlight-color: #a5d8ff;\\n --icon-fill-color: #212529;\\n --icon-green-fill-color: #2b8a3e;\\n --default-bg-color: #ffffff;\\n --input-bg-color: #ffffff;\\n --input-border-color: #ced4da;\\n --input-hover-bg-color: #f1f3f5;\\n --input-label-color: #495057;\\n --island-bg-color: rgba(255, 255, 255, 0.96);\\n --keybinding-color: #adb5bd;\\n --link-color: #1c7ed6;\\n --overlay-bg-color: rgba(255, 255, 255, 0.88);\\n --popup-bg-color: #ffffff;\\n --popup-secondary-bg-color: #f1f3f5;\\n --popup-text-color: #000000;\\n --popup-text-inverted-color: #ffffff;\\n --sab: env(safe-area-inset-bottom);\\n --sal: env(safe-area-inset-left);\\n --sar: env(safe-area-inset-right);\\n --sat: env(safe-area-inset-top);\\n --select-highlight-color: #339af0;\\n --shadow-island: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 12%);\\n --space-factor: 0.25rem;\\n --text-primary-color: #343a40;\\n --color-primary: #6965db;\\n --color-primary-darker: #5b57d1;\\n --color-primary-darkest: #4a47b1;\\n --color-primary-light: #e2e1fc;\\n --border-radius-md: 0.375rem;\\n --border-radius-lg: 0.5rem;\\n}\\n.excalidraw.theme--dark {\\n background: #000000;\\n}\\n.excalidraw.theme--dark.theme--dark-background-none {\\n background: none;\\n}\\n.excalidraw.theme--dark {\\n --theme-filter: invert(93%) hue-rotate(180deg);\\n --button-destructive-bg-color: #5a0000;\\n --button-destructive-color: #ffa8a8;\\n --button-gray-1: #363636;\\n --button-gray-2: #272727;\\n --button-gray-3: #222;\\n --button-special-active-bg-color: #204624;\\n --dialog-border-color: #212529;\\n --dropdown-icon: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n --focus-highlight-color: #228be6;\\n --icon-fill-color: #ced4da;\\n --icon-green-fill-color: #69db7c;\\n --default-bg-color: #121212;\\n --input-bg-color: #121212;\\n --input-border-color: #2e2e2e;\\n --input-hover-bg-color: #181818;\\n --input-label-color: #e9ecef;\\n --island-bg-color: rgba(30, 30, 30, 0.98);\\n --keybinding-color: #868e96;\\n --link-color: #4dabf7;\\n --overlay-bg-color: rgba(52, 58, 64, 0.12);\\n --popup-bg-color: #2c2c2c;\\n --popup-secondary-bg-color: #222;\\n --popup-text-color: #ced4da;\\n --popup-text-inverted-color: #2c2c2c;\\n --select-highlight-color: #4dabf7;\\n --shadow-island: 1px 1px 5px rgba(0, 0, 0, 0.3);\\n --text-primary-color: #ced4da;\\n --color-primary: #5650f0;\\n --color-primary-darker: #4b46d8;\\n --color-primary-darkest: #3e39be;\\n --color-primary-light: #3f3d64;\\n}\\n\\n:root {\\n --zIndex-canvas: 1;\\n --zIndex-wysiwyg: 2;\\n --zIndex-layerUI: 3;\\n}\\n\\n.excalidraw {\\n position: relative;\\n overflow: hidden;\\n color: var(--text-primary-color);\\n display: flex;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 100%;\\n width: 100%;\\n user-select: none;\\n}\\n.excalidraw:focus {\\n outline: none;\\n}\\n.excalidraw a {\\n font-weight: 500;\\n text-decoration: none;\\n color: var(--link-color);\\n}\\n.excalidraw a:hover {\\n text-decoration: underline;\\n}\\n.excalidraw canvas {\\n touch-action: none;\\n image-rendering: pixelated;\\n image-rendering: -moz-crisp-edges;\\n z-index: var(--zIndex-canvas);\\n}\\n.excalidraw__canvas {\\n position: absolute;\\n}\\n.excalidraw.theme--dark canvas {\\n filter: var(--theme-filter);\\n}\\n.excalidraw .FixedSideContainer {\\n padding-top: var(--sat, 0);\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n}\\n.excalidraw .panelRow {\\n display: flex;\\n justify-content: space-between;\\n}\\n.excalidraw .panelColumn {\\n display: flex;\\n flex-direction: column;\\n}\\n.excalidraw .panelColumn h3,\\n.excalidraw .panelColumn legend,\\n.excalidraw .panelColumn .control-label {\\n margin-top: 0.333rem;\\n margin-bottom: 0.333rem;\\n font-size: 0.75rem;\\n color: var(--text-primary-color);\\n font-weight: bold;\\n display: block;\\n}\\n.excalidraw .panelColumn .control-label input {\\n display: block;\\n width: 100%;\\n}\\n.excalidraw .panelColumn h3:first-child,\\n.excalidraw .panelColumn legend:first-child,\\n.excalidraw .panelColumn .control-label:first-child {\\n margin-top: 0;\\n}\\n.excalidraw .panelColumn legend {\\n padding: 0;\\n}\\n.excalidraw .panelColumn .iconSelectList {\\n flex-wrap: wrap;\\n position: relative;\\n}\\n.excalidraw .panelColumn .buttonList {\\n flex-wrap: wrap;\\n}\\n.excalidraw .panelColumn .buttonList label {\\n margin-right: 0.25rem;\\n font-size: 0.75rem;\\n display: inline-block;\\n}\\n.excalidraw .panelColumn .buttonList input[type=radio],\\n.excalidraw .panelColumn .buttonList input[type=button] {\\n opacity: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n.excalidraw .panelColumn .buttonList .iconRow {\\n margin-top: 8px;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon {\\n margin: 0;\\n margin-inline-end: 8px;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:focus {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:disabled {\\n cursor: not-allowed;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon__icon {\\n width: 28px;\\n height: 28px;\\n}\\n.excalidraw .panelColumn fieldset {\\n margin: 0;\\n margin-top: 0.333rem;\\n padding: 0;\\n border: none;\\n}\\n.excalidraw .divider {\\n width: 1px;\\n background-color: #e9ecef;\\n margin: 1px;\\n}\\n.excalidraw .buttonList label:focus-within,\\n.excalidraw input:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw button,\\n.excalidraw .buttonList label {\\n user-select: none;\\n background-color: var(--button-gray-1);\\n border: 0;\\n border-radius: var(--border-radius-md);\\n margin: 0.125rem 0;\\n padding: 0.25rem;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n.excalidraw button:focus-visible,\\n.excalidraw .buttonList label:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw button:hover,\\n.excalidraw .buttonList label:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw button:active,\\n.excalidraw .buttonList label:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw button:disabled,\\n.excalidraw .buttonList label:disabled {\\n cursor: not-allowed;\\n}\\n.excalidraw .active,\\n.excalidraw .buttonList label.active {\\n background-color: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n}\\n.excalidraw .active:hover,\\n.excalidraw .buttonList label.active:hover {\\n background-color: var(--color-primary-darker);\\n}\\n.excalidraw .active:active,\\n.excalidraw .buttonList label.active:active {\\n background-color: var(--color-primary-darkest);\\n}\\n.excalidraw .buttonList.buttonListIcon label {\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.excalidraw .buttonList.buttonListIcon label svg {\\n width: 35px;\\n height: 14px;\\n padding: 2px;\\n opacity: 0.6;\\n}\\n.excalidraw .buttonList.buttonListIcon label.active svg {\\n opacity: 1;\\n}\\n.excalidraw .App-top-bar {\\n z-index: var(--zIndex-layerUI);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n.excalidraw .App-bottom-bar {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n --bar-padding: calc(4 * var(--space-factor));\\n padding-top: max(var(--bar-padding), var(--sat,0));\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n z-index: 4;\\n display: flex;\\n align-items: flex-end;\\n pointer-events: none;\\n}\\n.excalidraw .App-bottom-bar > .Island {\\n width: 100%;\\n max-width: 100%;\\n min-width: 100%;\\n box-sizing: border-box;\\n max-height: 100%;\\n display: flex;\\n flex-direction: column;\\n pointer-events: initial;\\n}\\n.excalidraw .App-bottom-bar > .Island .panelColumn {\\n padding: 8px 8px 0 8px;\\n}\\n.excalidraw .App-toolbar {\\n width: 100%;\\n box-sizing: border-box;\\n}\\n.excalidraw .App-toolbar .eraser.ToolIcon:hover {\\n --icon-fill-color: #fff;\\n --keybinding-color: #fff;\\n}\\n.excalidraw .App-toolbar .eraser.active {\\n background-color: var(--color-primary);\\n}\\n.excalidraw .App-toolbar-content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 8px;\\n}\\n.excalidraw .App-mobile-menu {\\n width: 100%;\\n overflow-x: visible;\\n overflow-y: auto;\\n box-sizing: border-box;\\n margin-bottom: var(--bar-padding);\\n}\\n.excalidraw .App-menu {\\n display: grid;\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .App-menu_top {\\n grid-template-columns: auto max-content auto;\\n grid-gap: 4px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n}\\n.excalidraw .layer-ui__wrapper:not(.disable-pointerEvents) .App-menu_top > * {\\n pointer-events: all;\\n}\\n.excalidraw .App-menu_top > *:first-child {\\n justify-self: flex-start;\\n}\\n.excalidraw .App-menu_top > *:last-child {\\n justify-self: flex-end;\\n}\\n.excalidraw .App-menu_bottom {\\n position: absolute;\\n bottom: 0;\\n grid-template-columns: min-content auto min-content;\\n grid-gap: 15px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n}\\n:root[dir=ltr] .excalidraw .App-menu_bottom {\\n left: 0.25rem;\\n}\\n:root[dir=rtl] .excalidraw .App-menu_bottom {\\n right: 0.25rem;\\n}\\n.excalidraw .App-menu_bottom--transition-left section {\\n width: 185px;\\n}\\n.excalidraw .App-menu_bottom section {\\n display: flex;\\n}\\n.excalidraw .App-menu_bottom > *:first-child {\\n justify-self: flex-start;\\n}\\n.excalidraw .App-menu_bottom > *:last-child {\\n justify-self: flex-end;\\n}\\n.excalidraw .App-menu_left {\\n grid-template-rows: 1fr auto 1fr;\\n height: 100%;\\n}\\n.excalidraw .App-menu_right {\\n grid-template-rows: 1fr;\\n height: 100%;\\n}\\n.excalidraw .App-menu__left {\\n overflow-y: auto;\\n box-shadow: var(--shadow-island);\\n}\\n.excalidraw .dropdown-select {\\n height: 1.5rem;\\n padding: 0;\\n padding-inline-start: 0.5rem;\\n padding-inline-end: 1.5rem;\\n color: var(--icon-fill-color);\\n background-color: var(--button-gray-1);\\n border-radius: var(--space-factor);\\n border: 1px solid var(--button-gray-2);\\n font-size: 0.8rem;\\n outline: none;\\n appearance: none;\\n background-image: var(--dropdown-icon);\\n background-repeat: no-repeat;\\n background-position: right 0.7rem top 50%, 0 0;\\n background-size: 0.65em auto, 100%;\\n}\\n:root[dir=rtl] .excalidraw .dropdown-select {\\n background-position: left 0.7rem top 50%, 0 0;\\n}\\n.excalidraw .dropdown-select:focus {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .dropdown-select:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .dropdown-select:active {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .zIndexButton {\\n margin: 0;\\n margin-inline-end: 8px;\\n padding: 5px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.excalidraw .zIndexButton svg {\\n width: 18px;\\n height: 18px;\\n}\\n.excalidraw .scroll-back-to-content {\\n color: var(--popup-text-color);\\n position: absolute;\\n left: 50%;\\n bottom: 30px;\\n transform: translateX(-50%);\\n padding: 10px 20px;\\n pointer-events: all;\\n}\\n.excalidraw .help-icon {\\n display: flex;\\n cursor: pointer;\\n fill: #868e96;\\n padding: 0;\\n margin: 0;\\n background: none;\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .help-icon svg {\\n width: 1.5rem;\\n height: 1.5rem;\\n}\\n.excalidraw .help-icon:hover {\\n background: none;\\n}\\n.excalidraw .reset-zoom-button {\\n padding: 0.2em;\\n background: transparent;\\n color: var(--text-primary-color);\\n font-family: var(--ui-font);\\n}\\n.excalidraw .finalize-button {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n}\\n.excalidraw .undo-redo-buttons,\\n.excalidraw .eraser-buttons {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n}\\n.excalidraw--mobile.excalidraw aside {\\n display: none;\\n}\\n.excalidraw--mobile.excalidraw .scroll-back-to-content {\\n bottom: calc(80px + var(--sab, 0));\\n z-index: -1;\\n}\\n\\n:root[dir=rtl] .excalidraw .rtl-mirror {\\n transform: scaleX(-1);\\n}\\n.excalidraw .zen-mode-visibility {\\n visibility: visible;\\n opacity: 1;\\n height: auto;\\n width: auto;\\n transition: opacity 0.5s;\\n}\\n.excalidraw .zen-mode-visibility.zen-mode-visibility--hidden {\\n visibility: hidden;\\n opacity: 0;\\n height: 0;\\n width: 0;\\n transition: opacity 0.5s;\\n}\\n.excalidraw .disable-pointerEvents {\\n pointer-events: none !important;\\n}\\n.excalidraw.excalidraw--view-mode .App-menu {\\n display: flex;\\n justify-content: space-between;\\n}\\n.excalidraw input[type=text],\\n.excalidraw textarea:not(.excalidraw-wysiwyg) {\\n color: var(--text-primary-color);\\n border: 1.5px solid var(--input-border-color);\\n padding: 0.75rem;\\n white-space: nowrap;\\n border-radius: var(--space-factor);\\n background-color: var(--input-bg-color);\\n}\\n.excalidraw input[type=text]:not(:focus):hover,\\n.excalidraw textarea:not(.excalidraw-wysiwyg):not(:focus):hover {\\n background-color: var(--input-hover-bg-color);\\n}\\n.excalidraw input[type=text]:focus,\\n.excalidraw textarea:not(.excalidraw-wysiwyg):focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n@media print {\\n .excalidraw .App-bottom-bar,\\n.excalidraw .FixedSideContainer,\\n.excalidraw .layer-ui__wrapper {\\n display: none;\\n }\\n}\\n.excalidraw ::-webkit-scrollbar {\\n width: 5px;\\n}\\n.excalidraw ::-webkit-scrollbar-thumb {\\n background: var(--button-gray-2);\\n border-radius: 10px;\\n}\\n.excalidraw ::-webkit-scrollbar-thumb:hover {\\n background: var(--button-gray-3);\\n}\\n.excalidraw ::-webkit-scrollbar-thumb:active {\\n background: var(--button-gray-2);\\n}\\n\\n.ErrorSplash.excalidraw {\\n min-height: 100vh;\\n padding: 20px 0;\\n overflow: auto;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n user-select: text;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-messageContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n padding: 40px;\\n background-color: #ffe3e3;\\n border: 3px solid #c92a2a;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-paragraph {\\n margin: 15px 0;\\n max-width: 600px;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-paragraph.align-center {\\n text-align: center;\\n}\\n.ErrorSplash.excalidraw .bigger,\\n.ErrorSplash.excalidraw .bigger button {\\n font-size: 1.1em;\\n}\\n.ErrorSplash.excalidraw .smaller,\\n.ErrorSplash.excalidraw .smaller button {\\n font-size: 0.9em;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-details {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-details textarea {\\n width: 100%;\\n margin: 10px 0;\\n font-family: \\\"Cascadia\\\";\\n font-size: 0.8em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../css/styles.scss\",\"webpack://./../../css/theme.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AD8BA;EACE,2CAAA;EACA,wBAAA;AC3BF;;ACLA;EACE,oBAAA;EACA,sCAAA;EACA,mCAAA;EACA,wBAAA;EACA,wBAAA;EACA,wBAAA;EACA,yCAAA;EACA,8BAAA;EACA,wDAAA;EACA,gCAAA;EACA,0BAAA;EACA,gCAAA;EACA,2BAAA;EACA,yBAAA;EACA,6BAAA;EACA,+BAAA;EACA,4BAAA;EACA,4CAAA;EACA,2BAAA;EACA,qBAAA;EACA,6CAAA;EACA,yBAAA;EACA,mCAAA;EACA,2BAAA;EACA,oCAAA;EACA,kCAAA;EACA,gCAAA;EACA,iCAAA;EACA,+BAAA;EACA,iCAAA;EACA,4EAAA;EAEA,uBAAA;EACA,6BAAA;EAEA,wBAAA;EACA,+BAAA;EACA,gCAAA;EACA,8BAAA;EAEA,4BAAA;EACA,0BAAA;ADKF;ACHE;EACE,mBCpCe;AFyCnB;ACHI;EACE,gBAAA;ADKN;ACDE;EACE,8CAAA;EACA,sCAAA;EACA,mCAAA;EACA,wBAAA;EACA,wBAAA;EACA,qBAAA;EACA,yCAAA;EACA,8BAAA;EACA,wDAAA;EACA,gCAAA;EACA,0BAAA;EACA,gCAAA;EACA,2BAAA;EACA,yBAAA;EACA,6BAAA;EACA,+BAAA;EACA,4BAAA;EACA,yCAAA;EACA,2BAAA;EACA,qBAAA;EACA,0CAAA;EACA,yBAAA;EACA,gCAAA;EACA,2BAAA;EACA,oCAAA;EACA,iCAAA;EACA,+CAAA;EACA,6BAAA;EAEA,wBAAA;EACA,+BAAA;EACA,gCAAA;EACA,8BAAA;ADEJ;;AAvFA;EACE,kBAAA;EACA,mBAAA;EACA,mBAAA;AA0FF;;AAvFA;EACE,kBAAA;EACA,gBAAA;EACA,gCAAA;EACA,aAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,YAAA;EACA,WAAA;EAWA,iBAAA;AAgFF;AAzFE;EACE,aAAA;AA2FJ;AAjFE;EACE,gBAAA;EACA,qBAAA;EACA,wBAAA;AAmFJ;AAjFI;EACE,0BAAA;AAmFN;AA/EE;EACE,kBAAA;EAKA,0BAAA;EAEA,iCAAA;EAEA,6BAAA;AA2EJ;AArEE;EACE,kBAAA;AAuEJ;AA/DI;EACE,2BAAA;AAiEN;AA7DE;EACE,0BAAA;EACA,4BAAA;EACA,6BAAA;EACA,2BAAA;AA+DJ;AA5DE;EACE,aAAA;EACA,8BAAA;AA8DJ;AA3DE;EACE,aAAA;EACA,sBAAA;AA6DJ;AA3DI;;;EAGE,oBAAA;EACA,uBAAA;EACA,kBAAA;EACA,gCAAA;EACA,iBAAA;EACA,cAAA;AA6DN;AA1DI;EACE,cAAA;EACA,WAAA;AA4DN;AAzDI;;;EAGE,aAAA;AA2DN;AAxDI;EACE,UAAA;AA0DN;AAvDI;EACE,eAAA;EACA,kBAAA;AAyDN;AAtDI;EACE,eAAA;AAwDN;AAtDM;EACE,qBAAA;EACA,kBAAA;EACA,qBAAA;AAwDR;AArDM;;EAEE,UAAA;EACA,kBAAA;EACA,oBAAA;AAuDR;AApDM;EACE,eAAA;AAsDR;AAnDM;EACE,SAAA;EACA,sBAAA;AAqDR;AAnDQ;EACE,oBAAA;EACA,kDAAA;AAqDV;AAlDQ;EACE,sCAAA;AAoDV;AAjDQ;EACE,sCAAA;AAmDV;AAhDQ;EACE,mBAAA;AAkDV;AA9CM;EACE,WAAA;EACA,YAAA;AAgDR;AA5CI;EACE,SAAA;EACA,oBAAA;EACA,UAAA;EACA,YAAA;AA8CN;AA1CE;EACE,UAAA;EACA,yBEhJQ;EFiJR,WAAA;AA4CJ;AAzCE;;EAEE,oBAAA;EACA,kDAAA;AA2CJ;AAxCE;;EAEE,iBAAA;EACA,sCAAA;EACA,SAAA;EACA,sCAAA;EACA,kBAAA;EACA,gBAAA;EACA,mBAAA;EAEA,eAAA;AAyCJ;AAvCI;;EACE,oBAAA;EACA,kDAAA;AA0CN;AAvCI;;EACE,sCAAA;AA0CN;AAvCI;;EACE,sCAAA;AA0CN;AAvCI;;EACE,mBAAA;AA0CN;AAtCE;;EAEE,sCAAA;EAEA,0BAAA;AAuCJ;AArCI;;EACE,6CAAA;AAwCN;AArCI;;EACE,8CAAA;AAwCN;AAnCI;EACE,oBAAA;EACA,uBAAA;EACA,mBAAA;AAqCN;AApCM;EACE,WAAA;EACA,YAAA;EACA,YAAA;EACA,YAAA;AAsCR;AApCM;EACE,UAAA;AAsCR;AAjCE;EACE,8BAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;AAmCJ;AAhCE;EACE,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,4CAAA;EACA,kDAAA;EACA,4BAAA;EACA,6BAAA;EACA,2BAAA;EACA,UAAA;EACA,aAAA;EACA,qBAAA;EACA,oBAAA;AAkCJ;AAhCI;EACE,WAAA;EACA,eAAA;EACA,eAAA;EACA,sBAAA;EACA,gBAAA;EACA,aAAA;EACA,sBAAA;EACA,uBAAA;AAkCN;AAhCM;EACE,sBAAA;AAkCR;AA7BE;EACE,WAAA;EAEA,sBAAA;AA8BJ;AA3BM;EACE,uBAAA;EACA,wBAAA;AA6BR;AA3BM;EACE,sCAAA;AA6BR;AAxBE;EACE,aAAA;EACA,mBAAA;EACA,8BAAA;EACA,YAAA;AA0BJ;AAvBE;EACE,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,sBAAA;EACA,iCAAA;AAyBJ;AAtBE;EACE,aAAA;EACA,6BAAA;AAwBJ;AArBE;EACE,4CAAA;EACA,aAAA;EACA,uBAAA;EACA,eAAA;EACA,+BAAA;AAuBJ;AApBE;EACE,mBAAA;AAsBJ;AAnBE;EACE,wBAAA;AAqBJ;AAlBE;EACE,sBAAA;AAoBJ;AAjBE;EACE,kBAAA;EACA,SAAA;EACA,mDAAA;EACA,cAAA;EACA,uBAAA;EACA,eAAA;EACA,+BAAA;AAmBJ;AAjBI;EACE,aAAA;AAmBN;AAhBI;EACE,cAAA;AAkBN;AAdM;EACE,YAAA;AAgBR;AAZI;EACE,aAAA;AAcN;AAVE;EACE,wBAAA;AAYJ;AATE;EACE,sBAAA;AAWJ;AARE;EACE,gCAAA;EACA,YAAA;AAUJ;AAPE;EACE,uBAAA;EACA,YAAA;AASJ;AANE;EACE,gBAAA;EACA,gCAAA;AAQJ;AALE;EACE,cAAA;EACA,UAAA;EACA,4BAAA;EACA,0BAAA;EACA,6BAAA;EACA,sCAAA;EACA,kCAAA;EACA,sCAAA;EACA,iBAAA;EACA,aAAA;EACA,gBAAA;EACA,sCAAA;EACA,4BAAA;EACA,8CAAA;EAMA,kCAAA;AAEJ;AANI;EACE,6CAAA;AAQN;AAHI;EACE,kDAAA;AAKN;AAFI;EACE,sCAAA;AAIN;AADI;EACE,sCAAA;AAGN;AACE;EACE,SAAA;EACA,sBAAA;EACA,YAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;AACJ;AACI;EACE,WAAA;EACA,YAAA;AACN;AAGE;EACE,8BAAA;EACA,kBAAA;EACA,SAAA;EACA,YAAA;EACA,2BAAA;EACA,kBAAA;EACA,mBAAA;AADJ;AAIE;EACE,aAAA;EACA,eAAA;EACA,aEpaQ;EFqaR,UAAA;EACA,SAAA;EACA,gBAAA;EACA,6BAAA;AAFJ;AAII;EACE,aAAA;EACA,cAAA;AAFN;AAKI;EACE,gBAAA;AAHN;AAOE;EACE,cAAA;EACA,uBAAA;EACA,gCAAA;EACA,2BAAA;AALJ;AAQE;EACE,aAAA;EACA,sBAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,0BAAA;AANJ;AASE;;EAEE,aAAA;EACA,sBAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,0BAAA;AAPJ;AAWI;EACE,aAAA;AATN;AAWI;EACE,kCAAA;EACA,WAAA;AATN;;AAcI;EACE,qBAAA;AAXN;AAeE;EACE,mBAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,wBAAA;AAbJ;AAeI;EACE,kBAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;EACA,wBAAA;AAbN;AAiBE;EACE,+BAAA;AAfJ;AAmBI;EACE,aAAA;EACA,8BAAA;AAjBN;AAqBE;;EAEE,gCAAA;EACA,6CAAA;EACA,gBAAA;EACA,mBAAA;EACA,kCAAA;EACA,uCAAA;AAnBJ;AAsBM;;EACE,6CAAA;AAnBR;AAuBI;;EACE,aAAA;EACA,kDAAA;AApBN;AAwBE;EACE;;;IAGE,aAAA;EAtBJ;AACF;AA2BE;EACE,UAAA;AAzBJ;AA2BE;EACE,gCAAA;EACA,mBAAA;AAzBJ;AA2BE;EACE,gCAAA;AAzBJ;AA2BE;EACE,gCAAA;AAzBJ;;AA6BA;EACE,iBAAA;EACA,eAAA;EACA,cAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,iBAAA;AA1BF;AA4BE;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;EAEA,aAAA;EACA,yBEhiBO;EFiiBP,yBAAA;AA3BJ;AA8BE;EACE,cAAA;EACA,gBAAA;AA5BJ;AA8BI;EACE,kBAAA;AA5BN;AAgCE;;EAEE,gBAAA;AA9BJ;AAiCE;;EAEE,gBAAA;AA/BJ;AAkCE;EACE,aAAA;EACA,sBAAA;EACA,uBAAA;AAhCJ;AAkCI;EACE,WAAA;EACA,cAAA;EACA,uBAAA;EACA,gBAAA;AAhCN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"./variables.module\\\";\\n@import \\\"./theme\\\";\\n\\n:root {\\n --zIndex-canvas: 1;\\n --zIndex-wysiwyg: 2;\\n --zIndex-layerUI: 3;\\n}\\n\\n.excalidraw {\\n position: relative;\\n overflow: hidden;\\n color: var(--text-primary-color);\\n display: flex;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 100%;\\n width: 100%;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n // serves 2 purposes:\\n // 1. prevent selecting text outside the component when double-clicking or\\n // dragging inside it (e.g. on canvas)\\n // 2. prevent selecting UI, both from the inside, and from outside the\\n // component (e.g. if you select text in a sidebar)\\n user-select: none;\\n\\n a {\\n font-weight: 500;\\n text-decoration: none;\\n color: var(--link-color);\\n\\n &:hover {\\n text-decoration: underline;\\n }\\n }\\n\\n canvas {\\n touch-action: none;\\n\\n // following props improve blurriness at certain devicePixelRatios.\\n // AFAIK it doesn't affect export (in fact, export seems sharp either way).\\n\\n image-rendering: pixelated; // chromium\\n // NOTE: must be declared *after* the above\\n image-rendering: -moz-crisp-edges; // FF\\n\\n z-index: var(--zIndex-canvas);\\n\\n // Remove the main canvas from document flow to avoid resizeObserver\\n // feedback loop (see https://github.com/excalidraw/excalidraw/pull/3379)\\n }\\n\\n &__canvas {\\n position: absolute;\\n }\\n\\n &.theme--dark {\\n // The percentage is inspired by\\n // https://material.io/design/color/dark-theme.html#properties, which\\n // recommends surface color of #121212, 93% yields #111111 for #FFF\\n\\n canvas {\\n filter: var(--theme-filter);\\n }\\n }\\n\\n .FixedSideContainer {\\n padding-top: var(--sat, 0);\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n }\\n\\n .panelRow {\\n display: flex;\\n justify-content: space-between;\\n }\\n\\n .panelColumn {\\n display: flex;\\n flex-direction: column;\\n\\n h3,\\n legend,\\n .control-label {\\n margin-top: 0.333rem;\\n margin-bottom: 0.333rem;\\n font-size: 0.75rem;\\n color: var(--text-primary-color);\\n font-weight: bold;\\n display: block;\\n }\\n\\n .control-label input {\\n display: block;\\n width: 100%;\\n }\\n\\n h3:first-child,\\n legend:first-child,\\n .control-label:first-child {\\n margin-top: 0;\\n }\\n\\n legend {\\n padding: 0;\\n }\\n\\n .iconSelectList {\\n flex-wrap: wrap;\\n position: relative;\\n }\\n\\n .buttonList {\\n flex-wrap: wrap;\\n\\n label {\\n margin-right: 0.25rem;\\n font-size: 0.75rem;\\n display: inline-block;\\n }\\n\\n input[type=\\\"radio\\\"],\\n input[type=\\\"button\\\"] {\\n opacity: 0;\\n position: absolute;\\n pointer-events: none;\\n }\\n\\n .iconRow {\\n margin-top: 8px;\\n }\\n\\n .ToolIcon {\\n margin: 0;\\n margin-inline-end: 8px;\\n\\n &:focus {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 28px;\\n height: 28px;\\n }\\n }\\n\\n fieldset {\\n margin: 0;\\n margin-top: 0.333rem;\\n padding: 0;\\n border: none;\\n }\\n }\\n\\n .divider {\\n width: 1px;\\n background-color: $oc-gray-2;\\n margin: 1px;\\n }\\n\\n .buttonList label:focus-within,\\n input:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n button,\\n .buttonList label {\\n user-select: none;\\n background-color: var(--button-gray-1);\\n border: 0;\\n border-radius: var(--border-radius-md);\\n margin: 0.125rem 0;\\n padding: 0.25rem;\\n white-space: nowrap;\\n\\n cursor: pointer;\\n\\n &:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n\\n .active,\\n .buttonList label.active {\\n background-color: var(--color-primary);\\n\\n --icon-fill-color: #{$oc-white};\\n\\n &:hover {\\n background-color: var(--color-primary-darker);\\n }\\n\\n &:active {\\n background-color: var(--color-primary-darkest);\\n }\\n }\\n\\n .buttonList.buttonListIcon {\\n label {\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n svg {\\n width: 35px;\\n height: 14px;\\n padding: 2px;\\n opacity: 0.6;\\n }\\n &.active svg {\\n opacity: 1;\\n }\\n }\\n }\\n\\n .App-top-bar {\\n z-index: var(--zIndex-layerUI);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n }\\n\\n .App-bottom-bar {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n --bar-padding: calc(4 * var(--space-factor));\\n padding-top: #{\\\"max(var(--bar-padding), var(--sat,0))\\\"};\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n z-index: 4;\\n display: flex;\\n align-items: flex-end;\\n pointer-events: none;\\n\\n > .Island {\\n width: 100%;\\n max-width: 100%;\\n min-width: 100%;\\n box-sizing: border-box;\\n max-height: 100%;\\n display: flex;\\n flex-direction: column;\\n pointer-events: initial;\\n\\n .panelColumn {\\n padding: 8px 8px 0 8px;\\n }\\n }\\n }\\n\\n .App-toolbar {\\n width: 100%;\\n\\n box-sizing: border-box;\\n\\n .eraser {\\n &.ToolIcon:hover {\\n --icon-fill-color: #fff;\\n --keybinding-color: #fff;\\n }\\n &.active {\\n background-color: var(--color-primary);\\n }\\n }\\n }\\n\\n .App-toolbar-content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 8px;\\n }\\n\\n .App-mobile-menu {\\n width: 100%;\\n overflow-x: visible;\\n overflow-y: auto;\\n box-sizing: border-box;\\n margin-bottom: var(--bar-padding);\\n }\\n\\n .App-menu {\\n display: grid;\\n color: var(--icon-fill-color);\\n }\\n\\n .App-menu_top {\\n grid-template-columns: auto max-content auto;\\n grid-gap: 4px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n }\\n\\n .layer-ui__wrapper:not(.disable-pointerEvents) .App-menu_top > * {\\n pointer-events: all;\\n }\\n\\n .App-menu_top > *:first-child {\\n justify-self: flex-start;\\n }\\n\\n .App-menu_top > *:last-child {\\n justify-self: flex-end;\\n }\\n\\n .App-menu_bottom {\\n position: absolute;\\n bottom: 0;\\n grid-template-columns: min-content auto min-content;\\n grid-gap: 15px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: 0.25rem;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 0.25rem;\\n }\\n\\n &--transition-left {\\n section {\\n width: 185px;\\n }\\n }\\n\\n section {\\n display: flex;\\n }\\n }\\n\\n .App-menu_bottom > *:first-child {\\n justify-self: flex-start;\\n }\\n\\n .App-menu_bottom > *:last-child {\\n justify-self: flex-end;\\n }\\n\\n .App-menu_left {\\n grid-template-rows: 1fr auto 1fr;\\n height: 100%;\\n }\\n\\n .App-menu_right {\\n grid-template-rows: 1fr;\\n height: 100%;\\n }\\n\\n .App-menu__left {\\n overflow-y: auto;\\n box-shadow: var(--shadow-island);\\n }\\n\\n .dropdown-select {\\n height: 1.5rem;\\n padding: 0;\\n padding-inline-start: 0.5rem;\\n padding-inline-end: 1.5rem;\\n color: var(--icon-fill-color);\\n background-color: var(--button-gray-1);\\n border-radius: var(--space-factor);\\n border: 1px solid var(--button-gray-2);\\n font-size: 0.8rem;\\n outline: none;\\n appearance: none;\\n background-image: var(--dropdown-icon);\\n background-repeat: no-repeat;\\n background-position: right 0.7rem top 50%, 0 0;\\n\\n :root[dir=\\\"rtl\\\"] & {\\n background-position: left 0.7rem top 50%, 0 0;\\n }\\n\\n background-size: 0.65em auto, 100%;\\n\\n &:focus {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n }\\n\\n .zIndexButton {\\n margin: 0;\\n margin-inline-end: 8px;\\n padding: 5px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n svg {\\n width: 18px;\\n height: 18px;\\n }\\n }\\n\\n .scroll-back-to-content {\\n color: var(--popup-text-color);\\n position: absolute;\\n left: 50%;\\n bottom: 30px;\\n transform: translateX(-50%);\\n padding: 10px 20px;\\n pointer-events: all;\\n }\\n\\n .help-icon {\\n display: flex;\\n cursor: pointer;\\n fill: $oc-gray-6;\\n padding: 0;\\n margin: 0;\\n background: none;\\n color: var(--icon-fill-color);\\n\\n svg {\\n width: 1.5rem;\\n height: 1.5rem;\\n }\\n\\n &:hover {\\n background: none;\\n }\\n }\\n\\n .reset-zoom-button {\\n padding: 0.2em;\\n background: transparent;\\n color: var(--text-primary-color);\\n font-family: var(--ui-font);\\n }\\n\\n .finalize-button {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n }\\n\\n .undo-redo-buttons,\\n .eraser-buttons {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n }\\n\\n @include isMobile {\\n aside {\\n display: none;\\n }\\n .scroll-back-to-content {\\n bottom: calc(80px + var(--sab, 0));\\n z-index: -1;\\n }\\n }\\n\\n .rtl-mirror {\\n :root[dir=\\\"rtl\\\"] & {\\n transform: scaleX(-1);\\n }\\n }\\n\\n .zen-mode-visibility {\\n visibility: visible;\\n opacity: 1;\\n height: auto;\\n width: auto;\\n transition: opacity 0.5s;\\n\\n &.zen-mode-visibility--hidden {\\n visibility: hidden;\\n opacity: 0;\\n height: 0;\\n width: 0;\\n transition: opacity 0.5s;\\n }\\n }\\n\\n .disable-pointerEvents {\\n pointer-events: none !important;\\n }\\n\\n &.excalidraw--view-mode {\\n .App-menu {\\n display: flex;\\n justify-content: space-between;\\n }\\n }\\n\\n input[type=\\\"text\\\"],\\n textarea:not(.excalidraw-wysiwyg) {\\n color: var(--text-primary-color);\\n border: 1.5px solid var(--input-border-color);\\n padding: 0.75rem;\\n white-space: nowrap;\\n border-radius: var(--space-factor);\\n background-color: var(--input-bg-color);\\n\\n &:not(:focus) {\\n &:hover {\\n background-color: var(--input-hover-bg-color);\\n }\\n }\\n\\n &:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n\\n @media print {\\n .App-bottom-bar,\\n .FixedSideContainer,\\n .layer-ui__wrapper {\\n display: none;\\n }\\n }\\n\\n // use custom, minimalistic scrollbar\\n // (doesn't work in Firefox)\\n ::-webkit-scrollbar {\\n width: 5px;\\n }\\n ::-webkit-scrollbar-thumb {\\n background: var(--button-gray-2);\\n border-radius: 10px;\\n }\\n ::-webkit-scrollbar-thumb:hover {\\n background: var(--button-gray-3);\\n }\\n ::-webkit-scrollbar-thumb:active {\\n background: var(--button-gray-2);\\n }\\n}\\n\\n.ErrorSplash.excalidraw {\\n min-height: 100vh;\\n padding: 20px 0;\\n overflow: auto;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n user-select: text;\\n\\n .ErrorSplash-messageContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n\\n padding: 40px;\\n background-color: $oc-red-1;\\n border: 3px solid $oc-red-9;\\n }\\n\\n .ErrorSplash-paragraph {\\n margin: 15px 0;\\n max-width: 600px;\\n\\n &.align-center {\\n text-align: center;\\n }\\n }\\n\\n .bigger,\\n .bigger button {\\n font-size: 1.1em;\\n }\\n\\n .smaller,\\n .smaller button {\\n font-size: 0.9em;\\n }\\n\\n .ErrorSplash-details {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n\\n textarea {\\n width: 100%;\\n margin: 10px 0;\\n font-family: \\\"Cascadia\\\";\\n font-size: 0.8em;\\n }\\n }\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"./variables.module.scss\\\";\\n\\n.excalidraw {\\n --theme-filter: none;\\n --button-destructive-bg-color: #{$oc-red-1};\\n --button-destructive-color: #{$oc-red-9};\\n --button-gray-1: #{$oc-gray-2};\\n --button-gray-2: #{$oc-gray-4};\\n --button-gray-3: #{$oc-gray-5};\\n --button-special-active-bg-color: #{$oc-green-0};\\n --dialog-border-color: #{$oc-gray-6};\\n --dropdown-icon: url('data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>');\\n --focus-highlight-color: #{$oc-blue-2};\\n --icon-fill-color: #{$oc-gray-9};\\n --icon-green-fill-color: #{$oc-green-9};\\n --default-bg-color: #{$oc-white};\\n --input-bg-color: #{$oc-white};\\n --input-border-color: #{$oc-gray-4};\\n --input-hover-bg-color: #{$oc-gray-1};\\n --input-label-color: #{$oc-gray-7};\\n --island-bg-color: rgba(255, 255, 255, 0.96);\\n --keybinding-color: #{$oc-gray-5};\\n --link-color: #{$oc-blue-7};\\n --overlay-bg-color: #{transparentize($oc-white, 0.12)};\\n --popup-bg-color: #{$oc-white};\\n --popup-secondary-bg-color: #{$oc-gray-1};\\n --popup-text-color: #{$oc-black};\\n --popup-text-inverted-color: #{$oc-white};\\n --sab: env(safe-area-inset-bottom);\\n --sal: env(safe-area-inset-left);\\n --sar: env(safe-area-inset-right);\\n --sat: env(safe-area-inset-top);\\n --select-highlight-color: #{$oc-blue-5};\\n --shadow-island: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 12%);\\n\\n --space-factor: 0.25rem;\\n --text-primary-color: #{$oc-gray-8};\\n\\n --color-primary: #6965db;\\n --color-primary-darker: #5b57d1;\\n --color-primary-darkest: #4a47b1;\\n --color-primary-light: #e2e1fc;\\n\\n --border-radius-md: 0.375rem;\\n --border-radius-lg: 0.5rem;\\n\\n &.theme--dark {\\n background: $oc-black;\\n\\n &.theme--dark-background-none {\\n background: none;\\n }\\n }\\n\\n &.theme--dark {\\n --theme-filter: #{$theme-filter};\\n --button-destructive-bg-color: #5a0000;\\n --button-destructive-color: #{$oc-red-3};\\n --button-gray-1: #363636;\\n --button-gray-2: #272727;\\n --button-gray-3: #222;\\n --button-special-active-bg-color: #204624;\\n --dialog-border-color: #{$oc-gray-9};\\n --dropdown-icon: url('data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path fill=\\\"%23ced4da\\\" d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>');\\n --focus-highlight-color: #{$oc-blue-6};\\n --icon-fill-color: #{$oc-gray-4};\\n --icon-green-fill-color: #{$oc-green-4};\\n --default-bg-color: #121212;\\n --input-bg-color: #121212;\\n --input-border-color: #2e2e2e;\\n --input-hover-bg-color: #181818;\\n --input-label-color: #{$oc-gray-2};\\n --island-bg-color: rgba(30, 30, 30, 0.98);\\n --keybinding-color: #{$oc-gray-6};\\n --link-color: #{$oc-blue-4};\\n --overlay-bg-color: #{transparentize($oc-gray-8, 0.88)};\\n --popup-bg-color: #2c2c2c;\\n --popup-secondary-bg-color: #222;\\n --popup-text-color: #{$oc-gray-4};\\n --popup-text-inverted-color: #2c2c2c;\\n --select-highlight-color: #{$oc-blue-4};\\n --shadow-island: 1px 1px 5px #{transparentize($oc-black, 0.7)};\\n --text-primary-color: #{$oc-gray-4};\\n\\n --color-primary: #5650f0;\\n --color-primary-darker: #4b46d8;\\n --color-primary-darkest: #3e39be;\\n --color-primary-light: #3f3d64;\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL3N0eWxlcy5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUNPO0FBQ3BILDRDQUE0Qyw2akJBQWtSO0FBQzlULDRDQUE0QyxpbUJBQXFTO0FBQ2pWLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0YseUNBQXlDLDBHQUErQjtBQUN4RSx5Q0FBeUMsMEdBQStCO0FBQ3hFO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRyxhQUFhLGdEQUFnRCw2QkFBNkIsR0FBRyxpQkFBaUIseUJBQXlCLDJDQUEyQyx3Q0FBd0MsNkJBQTZCLDZCQUE2Qiw2QkFBNkIsOENBQThDLG1DQUFtQyxxRUFBcUUscUNBQXFDLCtCQUErQixxQ0FBcUMsZ0NBQWdDLDhCQUE4QixrQ0FBa0Msb0NBQW9DLGlDQUFpQyxpREFBaUQsZ0NBQWdDLDBCQUEwQixrREFBa0QsOEJBQThCLHdDQUF3QyxnQ0FBZ0MseUNBQXlDLHVDQUF1QyxxQ0FBcUMsc0NBQXNDLG9DQUFvQyxzQ0FBc0MsaUZBQWlGLDRCQUE0QixrQ0FBa0MsNkJBQTZCLG9DQUFvQyxxQ0FBcUMsbUNBQW1DLGlDQUFpQywrQkFBK0IsR0FBRywyQkFBMkIsd0JBQXdCLEdBQUcsdURBQXVELHFCQUFxQixHQUFHLDJCQUEyQixtREFBbUQsMkNBQTJDLHdDQUF3Qyw2QkFBNkIsNkJBQTZCLDBCQUEwQiw4Q0FBOEMsbUNBQW1DLHFFQUFxRSxxQ0FBcUMsK0JBQStCLHFDQUFxQyxnQ0FBZ0MsOEJBQThCLGtDQUFrQyxvQ0FBb0MsaUNBQWlDLDhDQUE4QyxnQ0FBZ0MsMEJBQTBCLCtDQUErQyw4QkFBOEIscUNBQXFDLGdDQUFnQyx5Q0FBeUMsc0NBQXNDLG9EQUFvRCxrQ0FBa0MsNkJBQTZCLG9DQUFvQyxxQ0FBcUMsbUNBQW1DLEdBQUcsV0FBVyx1QkFBdUIsd0JBQXdCLHdCQUF3QixHQUFHLGlCQUFpQix1QkFBdUIscUJBQXFCLHFDQUFxQyxrQkFBa0IsV0FBVyxjQUFjLFlBQVksYUFBYSxpQkFBaUIsZ0JBQWdCLHNCQUFzQixHQUFHLHFCQUFxQixrQkFBa0IsR0FBRyxpQkFBaUIscUJBQXFCLDBCQUEwQiw2QkFBNkIsR0FBRyx1QkFBdUIsK0JBQStCLEdBQUcsc0JBQXNCLHVCQUF1QiwrQkFBK0Isc0NBQXNDLGtDQUFrQyxHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyxrQ0FBa0MsZ0NBQWdDLEdBQUcsbUNBQW1DLCtCQUErQixpQ0FBaUMsa0NBQWtDLGdDQUFnQyxHQUFHLHlCQUF5QixrQkFBa0IsbUNBQW1DLEdBQUcsNEJBQTRCLGtCQUFrQiwyQkFBMkIsR0FBRywyR0FBMkcseUJBQXlCLDRCQUE0Qix1QkFBdUIscUNBQXFDLHNCQUFzQixtQkFBbUIsR0FBRyxpREFBaUQsbUJBQW1CLGdCQUFnQixHQUFHLCtJQUErSSxrQkFBa0IsR0FBRyxtQ0FBbUMsZUFBZSxHQUFHLDRDQUE0QyxvQkFBb0IsdUJBQXVCLEdBQUcsd0NBQXdDLG9CQUFvQixHQUFHLDhDQUE4QywwQkFBMEIsdUJBQXVCLDBCQUEwQixHQUFHLG9IQUFvSCxlQUFlLHVCQUF1Qix5QkFBeUIsR0FBRyxpREFBaUQsb0JBQW9CLEdBQUcsa0RBQWtELGNBQWMsMkJBQTJCLEdBQUcsd0RBQXdELHlCQUF5Qix1REFBdUQsR0FBRyx3REFBd0QsMkNBQTJDLEdBQUcseURBQXlELDJDQUEyQyxHQUFHLDJEQUEyRCx3QkFBd0IsR0FBRyx3REFBd0QsZ0JBQWdCLGlCQUFpQixHQUFHLHFDQUFxQyxjQUFjLHlCQUF5QixlQUFlLGlCQUFpQixHQUFHLHdCQUF3QixlQUFlLDhCQUE4QixnQkFBZ0IsR0FBRyxnRkFBZ0YseUJBQXlCLHVEQUF1RCxHQUFHLHNEQUFzRCxzQkFBc0IsMkNBQTJDLGNBQWMsMkNBQTJDLHVCQUF1QixxQkFBcUIsd0JBQXdCLG9CQUFvQixHQUFHLGtGQUFrRix5QkFBeUIsdURBQXVELEdBQUcsa0VBQWtFLDJDQUEyQyxHQUFHLG9FQUFvRSwyQ0FBMkMsR0FBRyx3RUFBd0Usd0JBQXdCLEdBQUcsOERBQThELDJDQUEyQywrQkFBK0IsR0FBRywwRUFBMEUsa0RBQWtELEdBQUcsNEVBQTRFLG1EQUFtRCxHQUFHLGdEQUFnRCx5QkFBeUIsNEJBQTRCLHdCQUF3QixHQUFHLG9EQUFvRCxnQkFBZ0IsaUJBQWlCLGlCQUFpQixpQkFBaUIsR0FBRywyREFBMkQsZUFBZSxHQUFHLDRCQUE0QixtQ0FBbUMsa0JBQWtCLDJCQUEyQix3QkFBd0IsR0FBRywrQkFBK0IsdUJBQXVCLFdBQVcsY0FBYyxZQUFZLGFBQWEsaURBQWlELHVEQUF1RCxpQ0FBaUMsa0NBQWtDLGdDQUFnQyxlQUFlLGtCQUFrQiwwQkFBMEIseUJBQXlCLEdBQUcseUNBQXlDLGdCQUFnQixvQkFBb0Isb0JBQW9CLDJCQUEyQixxQkFBcUIsa0JBQWtCLDJCQUEyQiw0QkFBNEIsR0FBRyxzREFBc0QsMkJBQTJCLEdBQUcsNEJBQTRCLGdCQUFnQiwyQkFBMkIsR0FBRyxtREFBbUQsNEJBQTRCLDZCQUE2QixHQUFHLDJDQUEyQywyQ0FBMkMsR0FBRyxvQ0FBb0Msa0JBQWtCLHdCQUF3QixtQ0FBbUMsaUJBQWlCLEdBQUcsZ0NBQWdDLGdCQUFnQix3QkFBd0IscUJBQXFCLDJCQUEyQixzQ0FBc0MsR0FBRyx5QkFBeUIsa0JBQWtCLGtDQUFrQyxHQUFHLDZCQUE2QixpREFBaUQsa0JBQWtCLDRCQUE0QixvQkFBb0Isb0NBQW9DLEdBQUcsZ0ZBQWdGLHdCQUF3QixHQUFHLDZDQUE2Qyw2QkFBNkIsR0FBRyw0Q0FBNEMsMkJBQTJCLEdBQUcsZ0NBQWdDLHVCQUF1QixjQUFjLHdEQUF3RCxtQkFBbUIsNEJBQTRCLG9CQUFvQixvQ0FBb0MsR0FBRywrQ0FBK0Msa0JBQWtCLEdBQUcsK0NBQStDLG1CQUFtQixHQUFHLHlEQUF5RCxpQkFBaUIsR0FBRyx3Q0FBd0Msa0JBQWtCLEdBQUcsZ0RBQWdELDZCQUE2QixHQUFHLCtDQUErQywyQkFBMkIsR0FBRyw4QkFBOEIscUNBQXFDLGlCQUFpQixHQUFHLCtCQUErQiw0QkFBNEIsaUJBQWlCLEdBQUcsK0JBQStCLHFCQUFxQixxQ0FBcUMsR0FBRyxnQ0FBZ0MsbUJBQW1CLGVBQWUsaUNBQWlDLCtCQUErQixrQ0FBa0MsMkNBQTJDLHVDQUF1QywyQ0FBMkMsc0JBQXNCLGtCQUFrQixxQkFBcUIsMkNBQTJDLGlDQUFpQyxtREFBbUQsdUNBQXVDLEdBQUcsK0NBQStDLGtEQUFrRCxHQUFHLHNDQUFzQyx1REFBdUQsR0FBRyxzQ0FBc0MsMkNBQTJDLEdBQUcsdUNBQXVDLDJDQUEyQyxHQUFHLDZCQUE2QixjQUFjLDJCQUEyQixpQkFBaUIseUJBQXlCLHdCQUF3Qiw0QkFBNEIsR0FBRyxpQ0FBaUMsZ0JBQWdCLGlCQUFpQixHQUFHLHVDQUF1QyxtQ0FBbUMsdUJBQXVCLGNBQWMsaUJBQWlCLGdDQUFnQyx1QkFBdUIsd0JBQXdCLEdBQUcsMEJBQTBCLGtCQUFrQixvQkFBb0Isa0JBQWtCLGVBQWUsY0FBYyxxQkFBcUIsa0NBQWtDLEdBQUcsOEJBQThCLGtCQUFrQixtQkFBbUIsR0FBRyxnQ0FBZ0MscUJBQXFCLEdBQUcsa0NBQWtDLG1CQUFtQiw0QkFBNEIscUNBQXFDLGdDQUFnQyxHQUFHLGdDQUFnQyxrQkFBa0IsMkJBQTJCLGVBQWUscUJBQXFCLHdCQUF3QiwrQkFBK0IsR0FBRyxnRUFBZ0Usa0JBQWtCLDJCQUEyQixlQUFlLHFCQUFxQix3QkFBd0IsK0JBQStCLEdBQUcsd0NBQXdDLGtCQUFrQixHQUFHLDBEQUEwRCx1Q0FBdUMsZ0JBQWdCLEdBQUcsNENBQTRDLDBCQUEwQixHQUFHLG9DQUFvQyx3QkFBd0IsZUFBZSxpQkFBaUIsZ0JBQWdCLDZCQUE2QixHQUFHLGdFQUFnRSx1QkFBdUIsZUFBZSxjQUFjLGFBQWEsNkJBQTZCLEdBQUcsc0NBQXNDLG9DQUFvQyxHQUFHLCtDQUErQyxrQkFBa0IsbUNBQW1DLEdBQUcsZ0ZBQWdGLHFDQUFxQyxrREFBa0QscUJBQXFCLHdCQUF3Qix1Q0FBdUMsNENBQTRDLEdBQUcsb0hBQW9ILGtEQUFrRCxHQUFHLDRGQUE0RixrQkFBa0IsdURBQXVELEdBQUcsZ0JBQWdCLG9HQUFvRyxvQkFBb0IsS0FBSyxHQUFHLG1DQUFtQyxlQUFlLEdBQUcseUNBQXlDLHFDQUFxQyx3QkFBd0IsR0FBRywrQ0FBK0MscUNBQXFDLEdBQUcsZ0RBQWdELHFDQUFxQyxHQUFHLDZCQUE2QixzQkFBc0Isb0JBQW9CLG1CQUFtQixrQkFBa0Isd0JBQXdCLDRCQUE0QixzQkFBc0IsR0FBRyx5REFBeUQsa0JBQWtCLDJCQUEyQix3QkFBd0IsNEJBQTRCLGtCQUFrQiw4QkFBOEIsOEJBQThCLEdBQUcsa0RBQWtELG1CQUFtQixxQkFBcUIsR0FBRywrREFBK0QsdUJBQXVCLEdBQUcsNEVBQTRFLHFCQUFxQixHQUFHLDhFQUE4RSxxQkFBcUIsR0FBRyxnREFBZ0Qsa0JBQWtCLDJCQUEyQiw0QkFBNEIsR0FBRyx5REFBeUQsZ0JBQWdCLG1CQUFtQiw4QkFBOEIscUJBQXFCLEdBQUcsT0FBTyx5T0FBeU8sV0FBVyxXQUFXLE9BQU8sTUFBTSxXQUFXLFdBQVcsT0FBTyxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxZQUFZLE9BQU8sS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsV0FBVyxXQUFXLE9BQU8sTUFBTSxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsV0FBVyxNQUFNLFFBQVEsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLFFBQVEsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxXQUFXLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxNQUFNLE9BQU8sVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsV0FBVyxNQUFNLE1BQU0sV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsV0FBVyxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLE1BQU0sT0FBTyxXQUFXLFdBQVcsTUFBTSxPQUFPLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxNQUFNLE9BQU8sV0FBVyxXQUFXLE1BQU0sT0FBTyxXQUFXLE1BQU0sT0FBTyxXQUFXLE1BQU0sT0FBTyxXQUFXLE1BQU0sT0FBTyxXQUFXLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxNQUFNLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxXQUFXLFVBQVUsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFVBQVUsV0FBVyxXQUFXLFVBQVUsTUFBTSxNQUFNLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLE1BQU0sTUFBTSxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVcsVUFBVSxLQUFLLEtBQUssV0FBVyxVQUFVLEtBQUssS0FBSyxXQUFXLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxXQUFXLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxV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QUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw4UUFBOFEsZ0RBQWdELDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELHlGQUF5Rix1ZEFBdWQscUJBQXFCO0FBQ254K0M7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jc3Mvc3R5bGVzLnNjc3M/MGQ1NSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz5cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIyOTIuNFxcXCIgaGVpZ2h0PVxcXCIyOTIuNFxcXCIgdmlld0JveD1cXFwiMCAwIDI5MiAyOTJcXFwiPjxwYXRoIGZpbGw9XFxcIiUyM2NlZDRkYVxcXCIgZD1cXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcIi8+PC9zdmc+XCIsIGltcG9ydC5tZXRhLnVybCk7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiAzMDJweDtcXG59XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAtLXRoZW1lLWZpbHRlcjogbm9uZTtcXG4gIC0tYnV0dG9uLWRlc3RydWN0aXZlLWJnLWNvbG9yOiAjZmZlM2UzO1xcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3I6ICNjOTJhMmE7XFxuICAtLWJ1dHRvbi1ncmF5LTE6ICNlOWVjZWY7XFxuICAtLWJ1dHRvbi1ncmF5LTI6ICNjZWQ0ZGE7XFxuICAtLWJ1dHRvbi1ncmF5LTM6ICNhZGI1YmQ7XFxuICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogI2ViZmJlZTtcXG4gIC0tZGlhbG9nLWJvcmRlci1jb2xvcjogIzg2OGU5NjtcXG4gIC0tZHJvcGRvd24taWNvbjogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKTtcXG4gIC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yOiAjYTVkOGZmO1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICMyMTI1Mjk7XFxuICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogIzJiOGEzZTtcXG4gIC0tZGVmYXVsdC1iZy1jb2xvcjogI2ZmZmZmZjtcXG4gIC0taW5wdXQtYmctY29sb3I6ICNmZmZmZmY7XFxuICAtLWlucHV0LWJvcmRlci1jb2xvcjogI2NlZDRkYTtcXG4gIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICNmMWYzZjU7XFxuICAtLWlucHV0LWxhYmVsLWNvbG9yOiAjNDk1MDU3O1xcbiAgLS1pc2xhbmQtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNhZGI1YmQ7XFxuICAtLWxpbmstY29sb3I6ICMxYzdlZDY7XFxuICAtLW92ZXJsYXktYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7XFxuICAtLXBvcHVwLWJnLWNvbG9yOiAjZmZmZmZmO1xcbiAgLS1wb3B1cC1zZWNvbmRhcnktYmctY29sb3I6ICNmMWYzZjU7XFxuICAtLXBvcHVwLXRleHQtY29sb3I6ICMwMDAwMDA7XFxuICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICNmZmZmZmY7XFxuICAtLXNhYjogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgLS1zYWw6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XFxuICAtLXNhcjogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XFxuICAtLXNhdDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbiAgLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yOiAjMzM5YWYwO1xcbiAgLS1zaGFkb3ctaXNsYW5kOiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTIlKTtcXG4gIC0tc3BhY2UtZmFjdG9yOiAwLjI1cmVtO1xcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICMzNDNhNDA7XFxuICAtLWNvbG9yLXByaW1hcnk6ICM2OTY1ZGI7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNWI1N2QxO1xcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICM0YTQ3YjE7XFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICNlMmUxZmM7XFxuICAtLWJvcmRlci1yYWRpdXMtbWQ6IDAuMzc1cmVtO1xcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAwLjVyZW07XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrLnRoZW1lLS1kYXJrLWJhY2tncm91bmQtbm9uZSB7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayB7XFxuICAtLXRoZW1lLWZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtYmctY29sb3I6ICM1YTAwMDA7XFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI2ZmYThhODtcXG4gIC0tYnV0dG9uLWdyYXktMTogIzM2MzYzNjtcXG4gIC0tYnV0dG9uLWdyYXktMjogIzI3MjcyNztcXG4gIC0tYnV0dG9uLWdyYXktMzogIzIyMjtcXG4gIC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yOiAjMjA0NjI0O1xcbiAgLS1kaWFsb2ctYm9yZGVyLWNvbG9yOiAjMjEyNTI5O1xcbiAgLS1kcm9wZG93bi1pY29uOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXCIpO1xcbiAgLS1mb2N1cy1oaWdobGlnaHQtY29sb3I6ICMyMjhiZTY7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2NlZDRkYTtcXG4gIC0taWNvbi1ncmVlbi1maWxsLWNvbG9yOiAjNjlkYjdjO1xcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjMTIxMjEyO1xcbiAgLS1pbnB1dC1iZy1jb2xvcjogIzEyMTIxMjtcXG4gIC0taW5wdXQtYm9yZGVyLWNvbG9yOiAjMmUyZTJlO1xcbiAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogIzE4MTgxODtcXG4gIC0taW5wdXQtbGFiZWwtY29sb3I6ICNlOWVjZWY7XFxuICAtLWlzbGFuZC1iZy1jb2xvcjogcmdiYSgzMCwgMzAsIDMwLCAwLjk4KTtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogIzg2OGU5NjtcXG4gIC0tbGluay1jb2xvcjogIzRkYWJmNztcXG4gIC0tb3ZlcmxheS1iZy1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjEyKTtcXG4gIC0tcG9wdXAtYmctY29sb3I6ICMyYzJjMmM7XFxuICAtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcjogIzIyMjtcXG4gIC0tcG9wdXAtdGV4dC1jb2xvcjogI2NlZDRkYTtcXG4gIC0tcG9wdXAtdGV4dC1pbnZlcnRlZC1jb2xvcjogIzJjMmMyYztcXG4gIC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcjogIzRkYWJmNztcXG4gIC0tc2hhZG93LWlzbGFuZDogMXB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICNjZWQ0ZGE7XFxuICAtLWNvbG9yLXByaW1hcnk6ICM1NjUwZjA7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNGI0NmQ4O1xcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICMzZTM5YmU7XFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMzZjNkNjQ7XFxufVxcblxcbjpyb290IHtcXG4gIC0tekluZGV4LWNhbnZhczogMTtcXG4gIC0tekluZGV4LXd5c2l3eWc6IDI7XFxuICAtLXpJbmRleC1sYXllclVJOiAzO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXc6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgYSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBhOmhvdmVyIHtcXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbn1cXG4uZXhjYWxpZHJhdyBjYW52YXMge1xcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xcbiAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7XFxuICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XFxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtY2FudmFzKTtcXG59XFxuLmV4Y2FsaWRyYXdfX2NhbnZhcyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIGNhbnZhcyB7XFxuICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxufVxcbi5leGNhbGlkcmF3IC5GaXhlZFNpZGVDb250YWluZXIge1xcbiAgcGFkZGluZy10b3A6IHZhcigtLXNhdCwgMCk7XFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNhbCwgMCk7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbFJvdyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBoMyxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gbGVnZW5kLFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuY29udHJvbC1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXG4gIG1hcmdpbi1ib3R0b206IDAuMzMzcmVtO1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmNvbnRyb2wtbGFiZWwgaW5wdXQge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIGgzOmZpcnN0LWNoaWxkLFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQ6Zmlyc3QtY2hpbGQsXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5jb250cm9sLWxhYmVsOmZpcnN0LWNoaWxkIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5pY29uU2VsZWN0TGlzdCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCBsYWJlbCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCBpbnB1dFt0eXBlPXJhZGlvXSxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgaW5wdXRbdHlwZT1idXR0b25dIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IC5pY29uUm93IHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IC5Ub29sSWNvbiB7XFxuICBtYXJnaW46IDA7XFxuICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uOmZvY3VzIHtcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb25fX2ljb24ge1xcbiAgd2lkdGg6IDI4cHg7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBmaWVsZHNldCB7XFxuICBtYXJnaW46IDA7XFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3IC5kaXZpZGVyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0IGxhYmVsOmZvY3VzLXdpdGhpbixcXG4uZXhjYWxpZHJhdyBpbnB1dDpmb2N1cy12aXNpYmxlIHtcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IGJ1dHRvbixcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbCB7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7XFxuICBtYXJnaW46IDAuMTI1cmVtIDA7XFxuICBwYWRkaW5nOiAwLjI1cmVtO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgYnV0dG9uOmZvY3VzLXZpc2libGUsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6Zm9jdXMtdmlzaWJsZSB7XFxuICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBidXR0b246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IGJ1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyBidXR0b246ZGlzYWJsZWQsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6ZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuLmV4Y2FsaWRyYXcgLmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZmZmZjtcXG59XFxuLmV4Y2FsaWRyYXcgLmFjdGl2ZTpob3ZlcixcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmU6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuYWN0aXZlOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmU6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VzdCk7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIGxhYmVsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdC5idXR0b25MaXN0SWNvbiBsYWJlbCBzdmcge1xcbiAgd2lkdGg6IDM1cHg7XFxuICBoZWlnaHQ6IDE0cHg7XFxuICBwYWRkaW5nOiAycHg7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIGxhYmVsLmFjdGl2ZSBzdmcge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b3AtYmFyIHtcXG4gIHotaW5kZXg6IHZhcigtLXpJbmRleC1sYXllclVJKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1ib3R0b20tYmFyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIC0tYmFyLXBhZGRpbmc6IGNhbGMoNCAqIHZhcigtLXNwYWNlLWZhY3RvcikpO1xcbiAgcGFkZGluZy10b3A6IG1heCh2YXIoLS1iYXItcGFkZGluZyksIHZhcigtLXNhdCwwKSk7XFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNhbCwgMCk7XFxuICB6LWluZGV4OiA0O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIgPiAuSXNsYW5kIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbWluLXdpZHRoOiAxMDAlO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIgPiAuSXNsYW5kIC5wYW5lbENvbHVtbiB7XFxuICBwYWRkaW5nOiA4cHggOHB4IDAgOHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLmVyYXNlci5Ub29sSWNvbjpob3ZlciB7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZjtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogI2ZmZjtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5lcmFzZXIuYWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGVudCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIHBhZGRpbmc6IDhweDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tb2JpbGUtbWVudSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJhci1wYWRkaW5nKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51IHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X3RvcCB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWF4LWNvbnRlbnQgYXV0bztcXG4gIGdyaWQtZ2FwOiA0cHg7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlcjpub3QoLmRpc2FibGUtcG9pbnRlckV2ZW50cykgLkFwcC1tZW51X3RvcCA+ICoge1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X3RvcCA+ICo6Zmlyc3QtY2hpbGQge1xcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfdG9wID4gKjpsYXN0LWNoaWxkIHtcXG4gIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW4tY29udGVudCBhdXRvIG1pbi1jb250ZW50O1xcbiAgZ3JpZC1nYXA6IDE1cHg7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20ge1xcbiAgbGVmdDogMC4yNXJlbTtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSB7XFxuICByaWdodDogMC4yNXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbS0tdHJhbnNpdGlvbi1sZWZ0IHNlY3Rpb24ge1xcbiAgd2lkdGg6IDE4NXB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfYm90dG9tIHNlY3Rpb24ge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSA+ICo6Zmlyc3QtY2hpbGQge1xcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfYm90dG9tID4gKjpsYXN0LWNoaWxkIHtcXG4gIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9sZWZ0IHtcXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG8gMWZyO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfcmlnaHQge1xcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9fbGVmdCB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWlzbGFuZCk7XFxufVxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Qge1xcbiAgaGVpZ2h0OiAxLjVyZW07XFxuICBwYWRkaW5nOiAwO1xcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNXJlbTtcXG4gIHBhZGRpbmctaW5saW5lLWVuZDogMS41cmVtO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgb3V0bGluZTogbm9uZTtcXG4gIGFwcGVhcmFuY2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kcm9wZG93bi1pY29uKTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjdyZW0gdG9wIDUwJSwgMCAwO1xcbiAgYmFja2dyb3VuZC1zaXplOiAwLjY1ZW0gYXV0bywgMTAwJTtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdCB7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDAuN3JlbSB0b3AgNTAlLCAwIDA7XFxufVxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Q6Zm9jdXMge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Q6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuekluZGV4QnV0dG9uIHtcXG4gIG1hcmdpbjogMDtcXG4gIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxuICBwYWRkaW5nOiA1cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgLnpJbmRleEJ1dHRvbiBzdmcge1xcbiAgd2lkdGg6IDE4cHg7XFxuICBoZWlnaHQ6IDE4cHg7XFxufVxcbi5leGNhbGlkcmF3IC5zY3JvbGwtYmFjay10by1jb250ZW50IHtcXG4gIGNvbG9yOiB2YXIoLS1wb3B1cC10ZXh0LWNvbG9yKTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIGJvdHRvbTogMzBweDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5leGNhbGlkcmF3IC5oZWxwLWljb24ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGZpbGw6ICM4NjhlOTY7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuaGVscC1pY29uIHN2ZyB7XFxuICB3aWR0aDogMS41cmVtO1xcbiAgaGVpZ2h0OiAxLjVyZW07XFxufVxcbi5leGNhbGlkcmF3IC5oZWxwLWljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLnJlc2V0LXpvb20tYnV0dG9uIHtcXG4gIHBhZGRpbmc6IDAuMmVtO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG59XFxuLmV4Y2FsaWRyYXcgLmZpbmFsaXplLWJ1dHRvbiB7XFxuICBkaXNwbGF5OiBncmlkO1xcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcXG4gIGdhcDogMC40ZW07XFxuICBtYXJnaW4tdG9wOiBhdXRvO1xcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDAuNmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAudW5kby1yZWRvLWJ1dHRvbnMsXFxuLmV4Y2FsaWRyYXcgLmVyYXNlci1idXR0b25zIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcbiAgZ2FwOiAwLjRlbTtcXG4gIG1hcmdpbi10b3A6IGF1dG87XFxuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xcbiAgbWFyZ2luLWlubGluZS1zdGFydDogMC42ZW07XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyBhc2lkZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdy0tbW9iaWxlLmV4Y2FsaWRyYXcgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcbiAgYm90dG9tOiBjYWxjKDgwcHggKyB2YXIoLS1zYWIsIDApKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAucnRsLW1pcnJvciB7XFxuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XFxufVxcbi5leGNhbGlkcmF3IC56ZW4tbW9kZS12aXNpYmlsaXR5IHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IGF1dG87XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxufVxcbi5leGNhbGlkcmF3IC56ZW4tbW9kZS12aXNpYmlsaXR5Lnplbi1tb2RlLXZpc2liaWxpdHktLWhpZGRlbiB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBvcGFjaXR5OiAwO1xcbiAgaGVpZ2h0OiAwO1xcbiAgd2lkdGg6IDA7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxufVxcbi5leGNhbGlkcmF3IC5kaXNhYmxlLXBvaW50ZXJFdmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmV4Y2FsaWRyYXcuZXhjYWxpZHJhdy0tdmlldy1tb2RlIC5BcHAtbWVudSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZXhjYWxpZHJhdyBpbnB1dFt0eXBlPXRleHRdLFxcbi5leGNhbGlkcmF3IHRleHRhcmVhOm5vdCguZXhjYWxpZHJhdy13eXNpd3lnKSB7XFxuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXG4gIHBhZGRpbmc6IDAuNzVyZW07XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgaW5wdXRbdHlwZT10ZXh0XTpub3QoOmZvY3VzKTpob3ZlcixcXG4uZXhjYWxpZHJhdyB0ZXh0YXJlYTpub3QoLmV4Y2FsaWRyYXctd3lzaXd5Zyk6bm90KDpmb2N1cyk6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtaG92ZXItYmctY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLFxcbi5leGNhbGlkcmF3IHRleHRhcmVhOm5vdCguZXhjYWxpZHJhdy13eXNpd3lnKTpmb2N1cyB7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbkBtZWRpYSBwcmludCB7XFxuICAuZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIsXFxuLmV4Y2FsaWRyYXcgLkZpeGVkU2lkZUNvbnRhaW5lcixcXG4uZXhjYWxpZHJhdyAubGF5ZXItdWlfX3dyYXBwZXIge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4uZXhjYWxpZHJhdyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXG4gIHdpZHRoOiA1cHg7XFxufVxcbi5leGNhbGlkcmF3IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xcbn1cXG4uZXhjYWxpZHJhdyA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcge1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxuICBwYWRkaW5nOiAyMHB4IDA7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB1c2VyLXNlbGVjdDogdGV4dDtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLW1lc3NhZ2VDb250YWluZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBwYWRkaW5nOiA0MHB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTNlMztcXG4gIGJvcmRlcjogM3B4IHNvbGlkICNjOTJhMmE7XFxufVxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5FcnJvclNwbGFzaC1wYXJhZ3JhcGgge1xcbiAgbWFyZ2luOiAxNXB4IDA7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbn1cXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuRXJyb3JTcGxhc2gtcGFyYWdyYXBoLmFsaWduLWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5iaWdnZXIsXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLmJpZ2dlciBidXR0b24ge1xcbiAgZm9udC1zaXplOiAxLjFlbTtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLnNtYWxsZXIsXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLnNtYWxsZXIgYnV0dG9uIHtcXG4gIGZvbnQtc2l6ZTogMC45ZW07XFxufVxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5FcnJvclNwbGFzaC1kZXRhaWxzIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5FcnJvclNwbGFzaC1kZXRhaWxzIHRleHRhcmVhIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWFyZ2luOiAxMHB4IDA7XFxuICBmb250LWZhbWlseTogXFxcIkNhc2NhZGlhXFxcIjtcXG4gIGZvbnQtc2l6ZTogMC44ZW07XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy9zdHlsZXMuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY3NzL3RoZW1lLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9vcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBRDhCQTtFQUNFLDJDQUFBO0VBQ0Esd0JBQUE7QUMzQkY7O0FDTEE7RUFDRSxvQkFBQTtFQUNBLHNDQUFBO0VBQ0EsbUNBQUE7RUFDQSx3QkFBQTtFQUNBLHdCQUFBO0VBQ0Esd0JBQUE7RUFDQSx5Q0FBQTtFQUNBLDhCQUFBO0VBQ0Esd0RBQUE7RUFDQSxnQ0FBQTtFQUNBLDBCQUFBO0VBQ0EsZ0NBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO0VBQ0EsNkJBQUE7RUFDQSwrQkFBQTtFQUNBLDRCQUFBO0VBQ0EsNENBQUE7RUFDQSwyQkFB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QSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsaUJBQUE7QUExQkY7QUE0QkU7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBRUEsYUFBQTtFQUNBLHlCRWhpQk87RUZpaUJQLHlCQUFBO0FBM0JKO0FBOEJFO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0FBNUJKO0FBOEJJO0VBQ0Usa0JBQUE7QUE1Qk47QUFnQ0U7O0VBRUUsZ0JBQUE7QUE5Qko7QUFpQ0U7O0VBRUUsZ0JBQUE7QUEvQko7QUFrQ0U7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtBQWhDSjtBQWtDSTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtBQWhDTlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuXFxuQG1peGluIGlzTW9iaWxlKCkge1xcbiAgQGF0LXJvb3QgLmV4Y2FsaWRyYXctLW1vYmlsZSN7Jn0ge1xcbiAgICBAY29udGVudDtcXG4gIH1cXG59XFxuXFxuQG1peGluIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcyB7XFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gICAgJiArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICAgIGJvdHRvbTogNHB4O1xcbiAgICByaWdodDogNHB4O1xcbiAgfVxcbn1cXG5cXG4kdGhlbWUtZmlsdGVyOiBcXFwiaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpXFxcIjtcXG4kcmlnaHQtc2lkZWJhci13aWR0aDogXFxcIjMwMnB4XFxcIjtcXG5cXG46ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiB1bnF1b3RlKCR0aGVtZS1maWx0ZXIpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IHVucXVvdGUoJHJpZ2h0LXNpZGViYXItd2lkdGgpO1xcbn1cXG5cIixcIkBpbXBvcnQgXFxcIi4vdmFyaWFibGVzLm1vZHVsZVxcXCI7XFxuQGltcG9ydCBcXFwiLi90aGVtZVxcXCI7XFxuXFxuOnJvb3Qge1xcbiAgLS16SW5kZXgtY2FudmFzOiAxO1xcbiAgLS16SW5kZXgtd3lzaXd5ZzogMjtcXG4gIC0tekluZGV4LWxheWVyVUk6IDM7XFxufVxcblxcbi5leGNhbGlkcmF3IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG5cXG4gICY6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgfVxcblxcbiAgLy8gc2VydmVzIDIgcHVycG9zZXM6XFxuICAvLyAxLiBwcmV2ZW50IHNlbGVjdGluZyB0ZXh0IG91dHNpZGUgdGhlIGNvbXBvbmVudCB3aGVuIGRvdWJsZS1jbGlja2luZyBvclxcbiAgLy8gICAgZHJhZ2dpbmcgaW5zaWRlIGl0IChlLmcuIG9uIGNhbnZhcylcXG4gIC8vIDIuIHByZXZlbnQgc2VsZWN0aW5nIFVJLCBib3RoIGZyb20gdGhlIGluc2lkZSwgYW5kIGZyb20gb3V0c2lkZSB0aGVcXG4gIC8vICAgIGNvbXBvbmVudCAoZS5nLiBpZiB5b3Ugc2VsZWN0IHRleHQgaW4gYSBzaWRlYmFyKVxcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuXFxuICBhIHtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICB9XFxuICB9XFxuXFxuICBjYW52YXMge1xcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XFxuXFxuICAgIC8vIGZvbGxvd2luZyBwcm9wcyBpbXByb3ZlIGJsdXJyaW5lc3MgYXQgY2VydGFpbiBkZXZpY2VQaXhlbFJhdGlvcy5cXG4gICAgLy8gQUZBSUsgaXQgZG9lc24ndCBhZmZlY3QgZXhwb3J0IChpbiBmYWN0LCBleHBvcnQgc2VlbXMgc2hhcnAgZWl0aGVyIHdheSkuXFxuXFxuICAgIGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkOyAvLyBjaHJvbWl1bVxcbiAgICAvLyBOT1RFOiBtdXN0IGJlIGRlY2xhcmVkICphZnRlciogdGhlIGFib3ZlXFxuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlczsgLy8gRkZcXG5cXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LWNhbnZhcyk7XFxuXFxuICAgIC8vIFJlbW92ZSB0aGUgbWFpbiBjYW52YXMgZnJvbSBkb2N1bWVudCBmbG93IHRvIGF2b2lkIHJlc2l6ZU9ic2VydmVyXFxuICAgIC8vIGZlZWRiYWNrIGxvb3AgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpZHJhdy9leGNhbGlkcmF3L3B1bGwvMzM3OSlcXG4gIH1cXG5cXG4gICZfX2NhbnZhcyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIH1cXG5cXG4gICYudGhlbWUtLWRhcmsge1xcbiAgICAvLyBUaGUgcGVyY2VudGFnZSBpcyBpbnNwaXJlZCBieVxcbiAgICAvLyBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb2xvci9kYXJrLXRoZW1lLmh0bWwjcHJvcGVydGllcywgd2hpY2hcXG4gICAgLy8gcmVjb21tZW5kcyBzdXJmYWNlIGNvbG9yIG9mICMxMjEyMTIsIDkzJSB5aWVsZHMgIzExMTExMSBmb3IgI0ZGRlxcblxcbiAgICBjYW52YXMge1xcbiAgICAgIGZpbHRlcjogdmFyKC0tdGhlbWUtZmlsdGVyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLkZpeGVkU2lkZUNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zYXQsIDApO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2FiLCAwKTtcXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zYWwsIDApO1xcbiAgfVxcblxcbiAgLnBhbmVsUm93IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgfVxcblxcbiAgLnBhbmVsQ29sdW1uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG5cXG4gICAgaDMsXFxuICAgIGxlZ2VuZCxcXG4gICAgLmNvbnRyb2wtbGFiZWwge1xcbiAgICAgIG1hcmdpbi10b3A6IDAuMzMzcmVtO1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuMzMzcmVtO1xcbiAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gICAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5LWNvbG9yKTtcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgfVxcblxcbiAgICAuY29udHJvbC1sYWJlbCBpbnB1dCB7XFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG5cXG4gICAgaDM6Zmlyc3QtY2hpbGQsXFxuICAgIGxlZ2VuZDpmaXJzdC1jaGlsZCxcXG4gICAgLmNvbnRyb2wtbGFiZWw6Zmlyc3QtY2hpbGQge1xcbiAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIH1cXG5cXG4gICAgbGVnZW5kIHtcXG4gICAgICBwYWRkaW5nOiAwO1xcbiAgICB9XFxuXFxuICAgIC5pY29uU2VsZWN0TGlzdCB7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgfVxcblxcbiAgICAuYnV0dG9uTGlzdCB7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcblxcbiAgICAgIGxhYmVsIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICB9XFxuXFxuICAgICAgaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSxcXG4gICAgICBpbnB1dFt0eXBlPVxcXCJidXR0b25cXFwiXSB7XFxuICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgICAgfVxcblxcbiAgICAgIC5pY29uUm93IHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxuXFxuICAgICAgICAmOmZvY3VzIHtcXG4gICAgICAgICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgICY6ZGlzYWJsZWQge1xcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgICAgd2lkdGg6IDI4cHg7XFxuICAgICAgICBoZWlnaHQ6IDI4cHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGZpZWxkc2V0IHtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgICAgbWFyZ2luLXRvcDogMC4zMzNyZW07XFxuICAgICAgcGFkZGluZzogMDtcXG4gICAgICBib3JkZXI6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5kaXZpZGVyIHtcXG4gICAgd2lkdGg6IDFweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9jLWdyYXktMjtcXG4gICAgbWFyZ2luOiAxcHg7XFxuICB9XFxuXFxuICAuYnV0dG9uTGlzdCBsYWJlbDpmb2N1cy13aXRoaW4sXFxuICBpbnB1dDpmb2N1cy12aXNpYmxlIHtcXG4gICAgb3V0bGluZTogdHJhbnNwYXJlbnQ7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbiAgfVxcblxcbiAgYnV0dG9uLFxcbiAgLmJ1dHRvbkxpc3QgbGFiZWwge1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7XFxuICAgIG1hcmdpbjogMC4xMjVyZW0gMDtcXG4gICAgcGFkZGluZzogMC4yNXJlbTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICB9XFxuICB9XFxuXFxuICAuYWN0aXZlLFxcbiAgLmJ1dHRvbkxpc3QgbGFiZWwuYWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuXFxuICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXN0KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmJ1dHRvbkxpc3QuYnV0dG9uTGlzdEljb24ge1xcbiAgICBsYWJlbCB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBzdmcge1xcbiAgICAgICAgd2lkdGg6IDM1cHg7XFxuICAgICAgICBoZWlnaHQ6IDE0cHg7XFxuICAgICAgICBwYWRkaW5nOiAycHg7XFxuICAgICAgICBvcGFjaXR5OiAwLjY7XFxuICAgICAgfVxcbiAgICAgICYuYWN0aXZlIHN2ZyB7XFxuICAgICAgICBvcGFjaXR5OiAxO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLkFwcC10b3AtYmFyIHtcXG4gICAgei1pbmRleDogdmFyKC0tekluZGV4LWxheWVyVUkpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgfVxcblxcbiAgLkFwcC1ib3R0b20tYmFyIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIC0tYmFyLXBhZGRpbmc6IGNhbGMoNCAqIHZhcigtLXNwYWNlLWZhY3RvcikpO1xcbiAgICBwYWRkaW5nLXRvcDogI3tcXFwibWF4KHZhcigtLWJhci1wYWRkaW5nKSwgdmFyKC0tc2F0LDApKVxcXCJ9O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2FiLCAwKTtcXG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zYWwsIDApO1xcbiAgICB6LWluZGV4OiA0O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcblxcbiAgICA+IC5Jc2xhbmQge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcXG5cXG4gICAgICAucGFuZWxDb2x1bW4ge1xcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCAwIDhweDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5BcHAtdG9vbGJhciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcblxcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcblxcbiAgICAuZXJhc2VyIHtcXG4gICAgICAmLlRvb2xJY29uOmhvdmVyIHtcXG4gICAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjZmZmO1xcbiAgICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjZmZmO1xcbiAgICAgIH1cXG4gICAgICAmLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5BcHAtdG9vbGJhci1jb250ZW50IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICB9XFxuXFxuICAuQXBwLW1vYmlsZS1tZW51IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG92ZXJmbG93LXg6IHZpc2libGU7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWJhci1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudSB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgfVxcblxcbiAgLkFwcC1tZW51X3RvcCB7XFxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtYXgtY29udGVudCBhdXRvO1xcbiAgICBncmlkLWdhcDogNHB4O1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcblxcbiAgLmxheWVyLXVpX193cmFwcGVyOm5vdCguZGlzYWJsZS1wb2ludGVyRXZlbnRzKSAuQXBwLW1lbnVfdG9wID4gKiB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICB9XFxuXFxuICAuQXBwLW1lbnVfdG9wID4gKjpmaXJzdC1jaGlsZCB7XFxuICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV90b3AgPiAqOmxhc3QtY2hpbGQge1xcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xcbiAgfVxcblxcbiAgLkFwcC1tZW51X2JvdHRvbSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7XFxuICAgIGdyaWQtZ2FwOiAxNXB4O1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcblxcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGxlZnQ6IDAuMjVyZW07XFxuICAgIH1cXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICByaWdodDogMC4yNXJlbTtcXG4gICAgfVxcblxcbiAgICAmLS10cmFuc2l0aW9uLWxlZnQge1xcbiAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgd2lkdGg6IDE4NXB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICBzZWN0aW9uIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICB9XFxuICB9XFxuXFxuICAuQXBwLW1lbnVfYm90dG9tID4gKjpmaXJzdC1jaGlsZCB7XFxuICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV9ib3R0b20gPiAqOmxhc3QtY2hpbGQge1xcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xcbiAgfVxcblxcbiAgLkFwcC1tZW51X2xlZnQge1xcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciBhdXRvIDFmcjtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblxcbiAgLkFwcC1tZW51X3JpZ2h0IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV9fbGVmdCB7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1pc2xhbmQpO1xcbiAgfVxcblxcbiAgLmRyb3Bkb3duLXNlbGVjdCB7XFxuICAgIGhlaWdodDogMS41cmVtO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMC41cmVtO1xcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEuNXJlbTtcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgZm9udC1zaXplOiAwLjhyZW07XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWRyb3Bkb3duLWljb24pO1xcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjdyZW0gdG9wIDUwJSwgMCAwO1xcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMC43cmVtIHRvcCA1MCUsIDAgMDtcXG4gICAgfVxcblxcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuNjVlbSBhdXRvLCAxMDAlO1xcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC56SW5kZXhCdXR0b24ge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XFxuICAgIHBhZGRpbmc6IDVweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiAxOHB4O1xcbiAgICAgIGhlaWdodDogMThweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcbiAgICBjb2xvcjogdmFyKC0tcG9wdXAtdGV4dC1jb2xvcik7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBib3R0b206IDMwcHg7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xcbiAgfVxcblxcbiAgLmhlbHAtaWNvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZmlsbDogJG9jLWdyYXktNjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogMS41cmVtO1xcbiAgICAgIGhlaWdodDogMS41cmVtO1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5yZXNldC16b29tLWJ1dHRvbiB7XFxuICAgIHBhZGRpbmc6IDAuMmVtO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gIH1cXG5cXG4gIC5maW5hbGl6ZS1idXR0b24ge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcbiAgICBnYXA6IDAuNGVtO1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwLjZlbTtcXG4gIH1cXG5cXG4gIC51bmRvLXJlZG8tYnV0dG9ucyxcXG4gIC5lcmFzZXItYnV0dG9ucyB7XFxuICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XFxuICAgIGdhcDogMC40ZW07XFxuICAgIG1hcmdpbi10b3A6IGF1dG87XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XFxuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDAuNmVtO1xcbiAgfVxcblxcbiAgQGluY2x1ZGUgaXNNb2JpbGUge1xcbiAgICBhc2lkZSB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcbiAgICAuc2Nyb2xsLWJhY2stdG8tY29udGVudCB7XFxuICAgICAgYm90dG9tOiBjYWxjKDgwcHggKyB2YXIoLS1zYWIsIDApKTtcXG4gICAgICB6LWluZGV4OiAtMTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnJ0bC1taXJyb3Ige1xcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnplbi1tb2RlLXZpc2liaWxpdHkge1xcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XFxuXFxuICAgICYuemVuLW1vZGUtdmlzaWJpbGl0eS0taGlkZGVuIHtcXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgICAgb3BhY2l0eTogMDtcXG4gICAgICBoZWlnaHQ6IDA7XFxuICAgICAgd2lkdGg6IDA7XFxuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGlzYWJsZS1wb2ludGVyRXZlbnRzIHtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG5cXG4gICYuZXhjYWxpZHJhdy0tdmlldy1tb2RlIHtcXG4gICAgLkFwcC1tZW51IHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgfVxcbiAgfVxcblxcbiAgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdLFxcbiAgdGV4dGFyZWE6bm90KC5leGNhbGlkcmF3LXd5c2l3eWcpIHtcXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTtcXG4gICAgcGFkZGluZzogMC43NXJlbTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcblxcbiAgICAmOm5vdCg6Zm9jdXMpIHtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWhvdmVyLWJnLWNvbG9yKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIHByaW50IHtcXG4gICAgLkFwcC1ib3R0b20tYmFyLFxcbiAgICAuRml4ZWRTaWRlQ29udGFpbmVyLFxcbiAgICAubGF5ZXItdWlfX3dyYXBwZXIge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC8vIHVzZSBjdXN0b20sIG1pbmltYWxpc3RpYyBzY3JvbGxiYXJcXG4gIC8vIChkb2Vzbid0IHdvcmsgaW4gRmlyZWZveClcXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xcbiAgICB3aWR0aDogNXB4O1xcbiAgfVxcbiAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xcbiAgfVxcbiAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgfVxcbiAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gIH1cXG59XFxuXFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcge1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxuICBwYWRkaW5nOiAyMHB4IDA7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB1c2VyLXNlbGVjdDogdGV4dDtcXG5cXG4gIC5FcnJvclNwbGFzaC1tZXNzYWdlQ29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuXFxuICAgIHBhZGRpbmc6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1yZWQtMTtcXG4gICAgYm9yZGVyOiAzcHggc29saWQgJG9jLXJlZC05O1xcbiAgfVxcblxcbiAgLkVycm9yU3BsYXNoLXBhcmFncmFwaCB7XFxuICAgIG1hcmdpbjogMTVweCAwO1xcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xcblxcbiAgICAmLmFsaWduLWNlbnRlciB7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB9XFxuICB9XFxuXFxuICAuYmlnZ2VyLFxcbiAgLmJpZ2dlciBidXR0b24ge1xcbiAgICBmb250LXNpemU6IDEuMWVtO1xcbiAgfVxcblxcbiAgLnNtYWxsZXIsXFxuICAuc21hbGxlciBidXR0b24ge1xcbiAgICBmb250LXNpemU6IDAuOWVtO1xcbiAgfVxcblxcbiAgLkVycm9yU3BsYXNoLWRldGFpbHMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG5cXG4gICAgdGV4dGFyZWEge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIG1hcmdpbjogMTBweCAwO1xcbiAgICAgIGZvbnQtZmFtaWx5OiBcXFwiQ2FzY2FkaWFcXFwiO1xcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuQGltcG9ydCBcXFwiLi92YXJpYWJsZXMubW9kdWxlLnNjc3NcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC0tdGhlbWUtZmlsdGVyOiBub25lO1xcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtYmctY29sb3I6ICN7JG9jLXJlZC0xfTtcXG4gIC0tYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yOiAjeyRvYy1yZWQtOX07XFxuICAtLWJ1dHRvbi1ncmF5LTE6ICN7JG9jLWdyYXktMn07XFxuICAtLWJ1dHRvbi1ncmF5LTI6ICN7JG9jLWdyYXktNH07XFxuICAtLWJ1dHRvbi1ncmF5LTM6ICN7JG9jLWdyYXktNX07XFxuICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogI3skb2MtZ3JlZW4tMH07XFxuICAtLWRpYWxvZy1ib3JkZXItY29sb3I6ICN7JG9jLWdyYXktNn07XFxuICAtLWRyb3Bkb3duLWljb246IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz4nKTtcXG4gIC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yOiAjeyRvYy1ibHVlLTJ9O1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLWdyYXktOX07XFxuICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogI3skb2MtZ3JlZW4tOX07XFxuICAtLWRlZmF1bHQtYmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gIC0taW5wdXQtYmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gIC0taW5wdXQtYm9yZGVyLWNvbG9yOiAjeyRvYy1ncmF5LTR9O1xcbiAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogI3skb2MtZ3JheS0xfTtcXG4gIC0taW5wdXQtbGFiZWwtY29sb3I6ICN7JG9jLWdyYXktN307XFxuICAtLWlzbGFuZC1iZy1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KTtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS01fTtcXG4gIC0tbGluay1jb2xvcjogI3skb2MtYmx1ZS03fTtcXG4gIC0tb3ZlcmxheS1iZy1jb2xvcjogI3t0cmFuc3BhcmVudGl6ZSgkb2Mtd2hpdGUsIDAuMTIpfTtcXG4gIC0tcG9wdXAtYmctY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gIC0tcG9wdXAtc2Vjb25kYXJ5LWJnLWNvbG9yOiAjeyRvYy1ncmF5LTF9O1xcbiAgLS1wb3B1cC10ZXh0LWNvbG9yOiAjeyRvYy1ibGFja307XFxuICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICN7JG9jLXdoaXRlfTtcXG4gIC0tc2FiOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxuICAtLXNhbDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcXG4gIC0tc2FyOiBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KTtcXG4gIC0tc2F0OiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxuICAtLXNlbGVjdC1oaWdobGlnaHQtY29sb3I6ICN7JG9jLWJsdWUtNX07XFxuICAtLXNoYWRvdy1pc2xhbmQ6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDEpLCAxcHggMXB4IDVweCByZ2IoMCAwIDAgLyAxMiUpO1xcblxcbiAgLS1zcGFjZS1mYWN0b3I6IDAuMjVyZW07XFxuICAtLXRleHQtcHJpbWFyeS1jb2xvcjogI3skb2MtZ3JheS04fTtcXG5cXG4gIC0tY29sb3ItcHJpbWFyeTogIzY5NjVkYjtcXG4gIC0tY29sb3ItcHJpbWFyeS1kYXJrZXI6ICM1YjU3ZDE7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VzdDogIzRhNDdiMTtcXG4gIC0tY29sb3ItcHJpbWFyeS1saWdodDogI2UyZTFmYztcXG5cXG4gIC0tYm9yZGVyLXJhZGl1cy1tZDogMC4zNzVyZW07XFxuICAtLWJvcmRlci1yYWRpdXMtbGc6IDAuNXJlbTtcXG5cXG4gICYudGhlbWUtLWRhcmsge1xcbiAgICBiYWNrZ3JvdW5kOiAkb2MtYmxhY2s7XFxuXFxuICAgICYudGhlbWUtLWRhcmstYmFja2dyb3VuZC1ub25lIHtcXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLnRoZW1lLS1kYXJrIHtcXG4gICAgLS10aGVtZS1maWx0ZXI6ICN7JHRoZW1lLWZpbHRlcn07XFxuICAgIC0tYnV0dG9uLWRlc3RydWN0aXZlLWJnLWNvbG9yOiAjNWEwMDAwO1xcbiAgICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI3skb2MtcmVkLTN9O1xcbiAgICAtLWJ1dHRvbi1ncmF5LTE6ICMzNjM2MzY7XFxuICAgIC0tYnV0dG9uLWdyYXktMjogIzI3MjcyNztcXG4gICAgLS1idXR0b24tZ3JheS0zOiAjMjIyO1xcbiAgICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogIzIwNDYyNDtcXG4gICAgLS1kaWFsb2ctYm9yZGVyLWNvbG9yOiAjeyRvYy1ncmF5LTl9O1xcbiAgICAtLWRyb3Bkb3duLWljb246IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBmaWxsPVxcXCIlMjNjZWQ0ZGFcXFwiIGQ9XFxcIk0yODcgMTk3TDE1OSA2OWMtNC0zLTgtNS0xMy01cy05IDItMTMgNUw1IDE5N2MtMyA0LTUgOC01IDEzczIgOSA1IDEzYzQgNCA4IDUgMTMgNWgyNTZjNSAwIDktMSAxMy01czUtOCA1LTEzLTEtOS01LTEzelxcXCIvPjwvc3ZnPicpO1xcbiAgICAtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS02fTtcXG4gICAgLS1pY29uLWZpbGwtY29sb3I6ICN7JG9jLWdyYXktNH07XFxuICAgIC0taWNvbi1ncmVlbi1maWxsLWNvbG9yOiAjeyRvYy1ncmVlbi00fTtcXG4gICAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjMTIxMjEyO1xcbiAgICAtLWlucHV0LWJnLWNvbG9yOiAjMTIxMjEyO1xcbiAgICAtLWlucHV0LWJvcmRlci1jb2xvcjogIzJlMmUyZTtcXG4gICAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogIzE4MTgxODtcXG4gICAgLS1pbnB1dC1sYWJlbC1jb2xvcjogI3skb2MtZ3JheS0yfTtcXG4gICAgLS1pc2xhbmQtYmctY29sb3I6IHJnYmEoMzAsIDMwLCAzMCwgMC45OCk7XFxuICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS02fTtcXG4gICAgLS1saW5rLWNvbG9yOiAjeyRvYy1ibHVlLTR9O1xcbiAgICAtLW92ZXJsYXktYmctY29sb3I6ICN7dHJhbnNwYXJlbnRpemUoJG9jLWdyYXktOCwgMC44OCl9O1xcbiAgICAtLXBvcHVwLWJnLWNvbG9yOiAjMmMyYzJjO1xcbiAgICAtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcjogIzIyMjtcXG4gICAgLS1wb3B1cC10ZXh0LWNvbG9yOiAjeyRvYy1ncmF5LTR9O1xcbiAgICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICMyYzJjMmM7XFxuICAgIC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS00fTtcXG4gICAgLS1zaGFkb3ctaXNsYW5kOiAxcHggMXB4IDVweCAje3RyYW5zcGFyZW50aXplKCRvYy1ibGFjaywgMC43KX07XFxuICAgIC0tdGV4dC1wcmltYXJ5LWNvbG9yOiAjeyRvYy1ncmF5LTR9O1xcblxcbiAgICAtLWNvbG9yLXByaW1hcnk6ICM1NjUwZjA7XFxuICAgIC0tY29sb3ItcHJpbWFyeS1kYXJrZXI6ICM0YjQ2ZDg7XFxuICAgIC0tY29sb3ItcHJpbWFyeS1kYXJrZXN0OiAjM2UzOWJlO1xcbiAgICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMzZjNkNjQ7XFxuICB9XFxufVxcblwiLFwiLy9cXG4vL1xcbi8vICDwnZeWIPCdl6Ig8J2XnyDwnZeiIPCdl6VcXG4vLyAgdiAxLjkuMVxcbi8vXFxuLy8gIOKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgVxcblxcblxcbi8vICBHZW5lcmFsXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy13aGl0ZTogICAgICAgICAjZmZmZmZmO1xcbiRvYy1ibGFjazogICAgICAgICAjMDAwMDAwO1xcblxcblxcbi8vICBHcmF5XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmF5LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y4ZjlmYSxcXG4gIFxcXCIxXFxcIjogI2YxZjNmNSxcXG4gIFxcXCIyXFxcIjogI2U5ZWNlZixcXG4gIFxcXCIzXFxcIjogI2RlZTJlNixcXG4gIFxcXCI0XFxcIjogI2NlZDRkYSxcXG4gIFxcXCI1XFxcIjogI2FkYjViZCxcXG4gIFxcXCI2XFxcIjogIzg2OGU5NixcXG4gIFxcXCI3XFxcIjogIzQ5NTA1NyxcXG4gIFxcXCI4XFxcIjogIzM0M2E0MCxcXG4gIFxcXCI5XFxcIjogIzIxMjUyOVxcbik7XFxuXFxuJG9jLWdyYXktMDogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmF5LTE6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JheS0yOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyYXktMzogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmF5LTQ6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JheS01OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyYXktNjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmF5LTc6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JheS04OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyYXktOTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBSZWRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXJlZC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY1ZjUsXFxuICBcXFwiMVxcXCI6ICNmZmUzZTMsXFxuICBcXFwiMlxcXCI6ICNmZmM5YzksXFxuICBcXFwiM1xcXCI6ICNmZmE4YTgsXFxuICBcXFwiNFxcXCI6ICNmZjg3ODcsXFxuICBcXFwiNVxcXCI6ICNmZjZiNmIsXFxuICBcXFwiNlxcXCI6ICNmYTUyNTIsXFxuICBcXFwiN1xcXCI6ICNmMDNlM2UsXFxuICBcXFwiOFxcXCI6ICNlMDMxMzEsXFxuICBcXFwiOVxcXCI6ICNjOTJhMmFcXG4pO1xcblxcbiRvYy1yZWQtMDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXJlZC0xOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcmVkLTI6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1yZWQtMzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXJlZC00OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcmVkLTU6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1yZWQtNjogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXJlZC03OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcmVkLTg6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1yZWQtOTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFBpbmtcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXBpbmstbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmMGY2LFxcbiAgXFxcIjFcXFwiOiAjZmZkZWViLFxcbiAgXFxcIjJcXFwiOiAjZmNjMmQ3LFxcbiAgXFxcIjNcXFwiOiAjZmFhMmMxLFxcbiAgXFxcIjRcXFwiOiAjZjc4M2FjLFxcbiAgXFxcIjVcXFwiOiAjZjA2NTk1LFxcbiAgXFxcIjZcXFwiOiAjZTY0OTgwLFxcbiAgXFxcIjdcXFwiOiAjZDYzMzZjLFxcbiAgXFxcIjhcXFwiOiAjYzIyNTVjLFxcbiAgXFxcIjlcXFwiOiAjYTYxZTRkXFxuKTtcXG5cXG4kb2MtcGluay0wOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXBpbmstMTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1waW5rLTI6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcGluay0zOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXBpbmstNDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1waW5rLTU6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcGluay02OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXBpbmstNzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1waW5rLTg6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcGluay05OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyYXBlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmFwZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGYwZmMsXFxuICBcXFwiMVxcXCI6ICNmM2Q5ZmEsXFxuICBcXFwiMlxcXCI6ICNlZWJlZmEsXFxuICBcXFwiM1xcXCI6ICNlNTk5ZjcsXFxuICBcXFwiNFxcXCI6ICNkYTc3ZjIsXFxuICBcXFwiNVxcXCI6ICNjYzVkZTgsXFxuICBcXFwiNlxcXCI6ICNiZTRiZGIsXFxuICBcXFwiN1xcXCI6ICNhZTNlYzksXFxuICBcXFwiOFxcXCI6ICM5YzM2YjUsXFxuICBcXFwiOVxcXCI6ICM4NjJlOWNcXG4pO1xcblxcbiRvYy1ncmFwZS0wOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmFwZS0xOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmFwZS0yOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmFwZS0zOiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmFwZS00OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmFwZS01OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmFwZS02OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmFwZS03OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmFwZS04OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmFwZS05OiBtYXAtZ2V0KCRvYy1ncmFwZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBWaW9sZXRcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXZpb2xldC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmM2YwZmYsXFxuICBcXFwiMVxcXCI6ICNlNWRiZmYsXFxuICBcXFwiMlxcXCI6ICNkMGJmZmYsXFxuICBcXFwiM1xcXCI6ICNiMTk3ZmMsXFxuICBcXFwiNFxcXCI6ICM5Nzc1ZmEsXFxuICBcXFwiNVxcXCI6ICM4NDVlZjcsXFxuICBcXFwiNlxcXCI6ICM3OTUwZjIsXFxuICBcXFwiN1xcXCI6ICM3MDQ4ZTgsXFxuICBcXFwiOFxcXCI6ICM2NzQxZDksXFxuICBcXFwiOVxcXCI6ICM1ZjNkYzRcXG4pO1xcblxcbiRvYy12aW9sZXQtMDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXZpb2xldC0xOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtdmlvbGV0LTI6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy12aW9sZXQtMzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXZpb2xldC00OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtdmlvbGV0LTU6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy12aW9sZXQtNjogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXZpb2xldC03OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtdmlvbGV0LTg6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy12aW9sZXQtOTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEluZGlnb1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtaW5kaWdvLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2VkZjJmZixcXG4gIFxcXCIxXFxcIjogI2RiZTRmZixcXG4gIFxcXCIyXFxcIjogI2JhYzhmZixcXG4gIFxcXCIzXFxcIjogIzkxYTdmZixcXG4gIFxcXCI0XFxcIjogIzc0OGZmYyxcXG4gIFxcXCI1XFxcIjogIzVjN2NmYSxcXG4gIFxcXCI2XFxcIjogIzRjNmVmNSxcXG4gIFxcXCI3XFxcIjogIzQyNjNlYixcXG4gIFxcXCI4XFxcIjogIzNiNWJkYixcXG4gIFxcXCI5XFxcIjogIzM2NGZjN1xcbik7XFxuXFxuJG9jLWluZGlnby0wOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtaW5kaWdvLTE6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1pbmRpZ28tMjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWluZGlnby0zOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtaW5kaWdvLTQ6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1pbmRpZ28tNTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWluZGlnby02OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtaW5kaWdvLTc6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1pbmRpZ28tODogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWluZGlnby05OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQmx1ZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtYmx1ZS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlN2Y1ZmYsXFxuICBcXFwiMVxcXCI6ICNkMGViZmYsXFxuICBcXFwiMlxcXCI6ICNhNWQ4ZmYsXFxuICBcXFwiM1xcXCI6ICM3NGMwZmMsXFxuICBcXFwiNFxcXCI6ICM0ZGFiZjcsXFxuICBcXFwiNVxcXCI6ICMzMzlhZjAsXFxuICBcXFwiNlxcXCI6ICMyMjhiZTYsXFxuICBcXFwiN1xcXCI6ICMxYzdlZDYsXFxuICBcXFwiOFxcXCI6ICMxOTcxYzIsXFxuICBcXFwiOVxcXCI6ICMxODY0YWJcXG4pO1xcblxcbiRvYy1ibHVlLTA6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtYmx1ZS0xOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWJsdWUtMjogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ibHVlLTM6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtYmx1ZS00OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWJsdWUtNTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ibHVlLTY6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtYmx1ZS03OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWJsdWUtODogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ibHVlLTk6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ3lhblxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY3lhbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlM2ZhZmMsXFxuICBcXFwiMVxcXCI6ICNjNWY2ZmEsXFxuICBcXFwiMlxcXCI6ICM5OWU5ZjIsXFxuICBcXFwiM1xcXCI6ICM2NmQ5ZTgsXFxuICBcXFwiNFxcXCI6ICMzYmM5ZGIsXFxuICBcXFwiNVxcXCI6ICMyMmI4Y2YsXFxuICBcXFwiNlxcXCI6ICMxNWFhYmYsXFxuICBcXFwiN1xcXCI6ICMxMDk4YWQsXFxuICBcXFwiOFxcXCI6ICMwYzg1OTksXFxuICBcXFwiOVxcXCI6ICMwYjcyODVcXG4pO1xcblxcbiRvYy1jeWFuLTA6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtY3lhbi0xOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWN5YW4tMjogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1jeWFuLTM6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtY3lhbi00OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWN5YW4tNTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1jeWFuLTY6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtY3lhbi03OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWN5YW4tODogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1jeWFuLTk6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVGVhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtdGVhbC1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlNmZjZjUsXFxuICBcXFwiMVxcXCI6ICNjM2ZhZTgsXFxuICBcXFwiMlxcXCI6ICM5NmYyZDcsXFxuICBcXFwiM1xcXCI6ICM2M2U2YmUsXFxuICBcXFwiNFxcXCI6ICMzOGQ5YTksXFxuICBcXFwiNVxcXCI6ICMyMGM5OTcsXFxuICBcXFwiNlxcXCI6ICMxMmI4ODYsXFxuICBcXFwiN1xcXCI6ICMwY2E2NzgsXFxuICBcXFwiOFxcXCI6ICMwOTkyNjgsXFxuICBcXFwiOVxcXCI6ICMwODdmNWJcXG4pO1xcblxcbiRvYy10ZWFsLTA6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtdGVhbC0xOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXRlYWwtMjogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy10ZWFsLTM6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtdGVhbC00OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXRlYWwtNTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy10ZWFsLTY6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtdGVhbC03OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXRlYWwtODogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy10ZWFsLTk6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgR3JlZW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWdyZWVuLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ViZmJlZSxcXG4gIFxcXCIxXFxcIjogI2QzZjlkOCxcXG4gIFxcXCIyXFxcIjogI2IyZjJiYixcXG4gIFxcXCIzXFxcIjogIzhjZTk5YSxcXG4gIFxcXCI0XFxcIjogIzY5ZGI3YyxcXG4gIFxcXCI1XFxcIjogIzUxY2Y2NixcXG4gIFxcXCI2XFxcIjogIzQwYzA1NyxcXG4gIFxcXCI3XFxcIjogIzM3YjI0ZCxcXG4gIFxcXCI4XFxcIjogIzJmOWU0NCxcXG4gIFxcXCI5XFxcIjogIzJiOGEzZVxcbik7XFxuXFxuJG9jLWdyZWVuLTA6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWdyZWVuLTE6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyZWVuLTI6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWdyZWVuLTM6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWdyZWVuLTQ6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyZWVuLTU6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWdyZWVuLTY6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWdyZWVuLTc6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyZWVuLTg6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWdyZWVuLTk6IG1hcC1nZXQoJG9jLWdyZWVuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIExpbWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWxpbWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjRmY2UzLFxcbiAgXFxcIjFcXFwiOiAjZTlmYWM4LFxcbiAgXFxcIjJcXFwiOiAjZDhmNWEyLFxcbiAgXFxcIjNcXFwiOiAjYzBlYjc1LFxcbiAgXFxcIjRcXFwiOiAjYTllMzRiLFxcbiAgXFxcIjVcXFwiOiAjOTRkODJkLFxcbiAgXFxcIjZcXFwiOiAjODJjOTFlLFxcbiAgXFxcIjdcXFwiOiAjNzRiODE2LFxcbiAgXFxcIjhcXFwiOiAjNjZhODBmLFxcbiAgXFxcIjlcXFwiOiAjNWM5NDBkXFxuKTtcXG5cXG4kb2MtbGltZS0wOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWxpbWUtMTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1saW1lLTI6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtbGltZS0zOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWxpbWUtNDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1saW1lLTU6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtbGltZS02OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWxpbWUtNzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1saW1lLTg6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtbGltZS05OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFllbGxvd1xcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MteWVsbG93LWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjlkYixcXG4gIFxcXCIxXFxcIjogI2ZmZjNiZixcXG4gIFxcXCIyXFxcIjogI2ZmZWM5OSxcXG4gIFxcXCIzXFxcIjogI2ZmZTA2NixcXG4gIFxcXCI0XFxcIjogI2ZmZDQzYixcXG4gIFxcXCI1XFxcIjogI2ZjYzQxOSxcXG4gIFxcXCI2XFxcIjogI2ZhYjAwNSxcXG4gIFxcXCI3XFxcIjogI2Y1OWYwMCxcXG4gIFxcXCI4XFxcIjogI2YwOGMwMCxcXG4gIFxcXCI5XFxcIjogI2U2NzcwMFxcbik7XFxuXFxuJG9jLXllbGxvdy0wOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MteWVsbG93LTE6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy15ZWxsb3ctMjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXllbGxvdy0zOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MteWVsbG93LTQ6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy15ZWxsb3ctNTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXllbGxvdy02OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MteWVsbG93LTc6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy15ZWxsb3ctODogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXllbGxvdy05OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgT3JhbmdlXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1vcmFuZ2UtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNGU2LFxcbiAgXFxcIjFcXFwiOiAjZmZlOGNjLFxcbiAgXFxcIjJcXFwiOiAjZmZkOGE4LFxcbiAgXFxcIjNcXFwiOiAjZmZjMDc4LFxcbiAgXFxcIjRcXFwiOiAjZmZhOTRkLFxcbiAgXFxcIjVcXFwiOiAjZmY5MjJiLFxcbiAgXFxcIjZcXFwiOiAjZmQ3ZTE0LFxcbiAgXFxcIjdcXFwiOiAjZjc2NzA3LFxcbiAgXFxcIjhcXFwiOiAjZTg1OTBjLFxcbiAgXFxcIjlcXFwiOiAjZDk0ODBmXFxuKTtcXG5cXG4kb2Mtb3JhbmdlLTA6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1vcmFuZ2UtMTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLW9yYW5nZS0yOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2Mtb3JhbmdlLTM6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1vcmFuZ2UtNDogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLW9yYW5nZS01OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2Mtb3JhbmdlLTY6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1vcmFuZ2UtNzogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLW9yYW5nZS04OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2Mtb3JhbmdlLTk6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBDb2xvciBsaXN0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1jb2xvci1zcGVjdHJ1bTogICA5O1xcblxcbiRvYy1jb2xvci1saXN0OiAoXFxuICAkb2MtZ3JheS1saXN0OiAgICAgIFxcXCJncmF5XFxcIixcXG4gICRvYy1yZWQtbGlzdDogICAgICBcXFwicmVkXFxcIixcXG4gICRvYy1waW5rLWxpc3Q6ICAgICAgXFxcInBpbmtcXFwiLFxcbiAgJG9jLWdyYXBlLWxpc3Q6ICAgICAgXFxcImdyYXBlXFxcIixcXG4gICRvYy12aW9sZXQtbGlzdDogICAgICBcXFwidmlvbGV0XFxcIixcXG4gICRvYy1pbmRpZ28tbGlzdDogICAgICBcXFwiaW5kaWdvXFxcIixcXG4gICRvYy1ibHVlLWxpc3Q6ICAgICAgXFxcImJsdWVcXFwiLFxcbiAgJG9jLWN5YW4tbGlzdDogICAgICBcXFwiY3lhblxcXCIsXFxuICAkb2MtdGVhbC1saXN0OiAgICAgIFxcXCJ0ZWFsXFxcIixcXG4gICRvYy1ncmVlbi1saXN0OiAgICAgIFxcXCJncmVlblxcXCIsXFxuICAkb2MtbGltZS1saXN0OiAgICAgIFxcXCJsaW1lXFxcIixcXG4gICRvYy15ZWxsb3ctbGlzdDogICAgICBcXFwieWVsbG93XFxcIixcXG4gICRvYy1vcmFuZ2UtbGlzdDogICAgICBcXFwib3JhbmdlXFxcIlxcbik7XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../css/styles.scss\n");
1423
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"292.4\" height=\"292.4\" viewBox=\"0 0 292 292\"><path d=\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\"/></svg> */ \"data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"292.4\" height=\"292.4\" viewBox=\"0 0 292 292\"><path fill=\"%23ced4da\" d=\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\"/></svg> */ \"data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path fill=\\\"%23ced4da\\\" d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n:export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw {\\n --theme-filter: none;\\n --button-destructive-bg-color: #ffe3e3;\\n --button-destructive-color: #c92a2a;\\n --button-gray-1: #e9ecef;\\n --button-gray-2: #ced4da;\\n --button-gray-3: #adb5bd;\\n --button-special-active-bg-color: #ebfbee;\\n --dialog-border-color: #868e96;\\n --dropdown-icon: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n --focus-highlight-color: #a5d8ff;\\n --icon-fill-color: #212529;\\n --icon-green-fill-color: #2b8a3e;\\n --default-bg-color: #ffffff;\\n --input-bg-color: #ffffff;\\n --input-border-color: #ced4da;\\n --input-hover-bg-color: #f1f3f5;\\n --input-label-color: #495057;\\n --island-bg-color: rgba(255, 255, 255, 0.96);\\n --keybinding-color: #adb5bd;\\n --link-color: #1c7ed6;\\n --overlay-bg-color: rgba(255, 255, 255, 0.88);\\n --popup-bg-color: #ffffff;\\n --popup-secondary-bg-color: #f1f3f5;\\n --popup-text-color: #000000;\\n --popup-text-inverted-color: #ffffff;\\n --sab: env(safe-area-inset-bottom);\\n --sal: env(safe-area-inset-left);\\n --sar: env(safe-area-inset-right);\\n --sat: env(safe-area-inset-top);\\n --select-highlight-color: #339af0;\\n --shadow-island: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 12%);\\n --space-factor: 0.25rem;\\n --text-primary-color: #343a40;\\n --color-primary: #6965db;\\n --color-primary-darker: #5b57d1;\\n --color-primary-darkest: #4a47b1;\\n --color-primary-light: #e2e1fc;\\n --border-radius-md: 0.375rem;\\n --border-radius-lg: 0.5rem;\\n}\\n.excalidraw.theme--dark {\\n background: #000000;\\n}\\n.excalidraw.theme--dark.theme--dark-background-none {\\n background: none;\\n}\\n.excalidraw.theme--dark {\\n --theme-filter: invert(93%) hue-rotate(180deg);\\n --button-destructive-bg-color: #5a0000;\\n --button-destructive-color: #ffa8a8;\\n --button-gray-1: #363636;\\n --button-gray-2: #272727;\\n --button-gray-3: #222;\\n --button-special-active-bg-color: #204624;\\n --dialog-border-color: #212529;\\n --dropdown-icon: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n --focus-highlight-color: #228be6;\\n --icon-fill-color: #ced4da;\\n --icon-green-fill-color: #69db7c;\\n --default-bg-color: #121212;\\n --input-bg-color: #121212;\\n --input-border-color: #2e2e2e;\\n --input-hover-bg-color: #181818;\\n --input-label-color: #e9ecef;\\n --island-bg-color: rgba(30, 30, 30, 0.98);\\n --keybinding-color: #868e96;\\n --link-color: #4dabf7;\\n --overlay-bg-color: rgba(52, 58, 64, 0.12);\\n --popup-bg-color: #2c2c2c;\\n --popup-secondary-bg-color: #222;\\n --popup-text-color: #ced4da;\\n --popup-text-inverted-color: #2c2c2c;\\n --select-highlight-color: #4dabf7;\\n --shadow-island: 1px 1px 5px rgba(0, 0, 0, 0.3);\\n --text-primary-color: #ced4da;\\n --color-primary: #5650f0;\\n --color-primary-darker: #4b46d8;\\n --color-primary-darkest: #3e39be;\\n --color-primary-light: #3f3d64;\\n}\\n\\n:root {\\n --zIndex-canvas: 1;\\n --zIndex-wysiwyg: 2;\\n --zIndex-layerUI: 3;\\n}\\n\\n.excalidraw {\\n position: relative;\\n overflow: hidden;\\n color: var(--text-primary-color);\\n display: flex;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 100%;\\n width: 100%;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.excalidraw:focus {\\n outline: none;\\n}\\n.excalidraw a {\\n font-weight: 500;\\n text-decoration: none;\\n color: var(--link-color);\\n}\\n.excalidraw a:hover {\\n text-decoration: underline;\\n}\\n.excalidraw canvas {\\n touch-action: none;\\n image-rendering: pixelated;\\n image-rendering: -moz-crisp-edges;\\n z-index: var(--zIndex-canvas);\\n}\\n.excalidraw__canvas {\\n position: absolute;\\n}\\n.excalidraw.theme--dark canvas {\\n filter: var(--theme-filter);\\n}\\n.excalidraw .FixedSideContainer {\\n padding-top: var(--sat, 0);\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n}\\n.excalidraw .panelRow {\\n display: flex;\\n justify-content: space-between;\\n}\\n.excalidraw .panelColumn {\\n display: flex;\\n flex-direction: column;\\n}\\n.excalidraw .panelColumn h3,\\n.excalidraw .panelColumn legend,\\n.excalidraw .panelColumn .control-label {\\n margin-top: 0.333rem;\\n margin-bottom: 0.333rem;\\n font-size: 0.75rem;\\n color: var(--text-primary-color);\\n font-weight: bold;\\n display: block;\\n}\\n.excalidraw .panelColumn .control-label input {\\n display: block;\\n width: 100%;\\n}\\n.excalidraw .panelColumn h3:first-child,\\n.excalidraw .panelColumn legend:first-child,\\n.excalidraw .panelColumn .control-label:first-child {\\n margin-top: 0;\\n}\\n.excalidraw .panelColumn legend {\\n padding: 0;\\n}\\n.excalidraw .panelColumn .iconSelectList {\\n flex-wrap: wrap;\\n position: relative;\\n}\\n.excalidraw .panelColumn .buttonList {\\n flex-wrap: wrap;\\n}\\n.excalidraw .panelColumn .buttonList label {\\n margin-right: 0.25rem;\\n font-size: 0.75rem;\\n display: inline-block;\\n}\\n.excalidraw .panelColumn .buttonList input[type=radio],\\n.excalidraw .panelColumn .buttonList input[type=button] {\\n opacity: 0;\\n position: absolute;\\n pointer-events: none;\\n}\\n.excalidraw .panelColumn .buttonList .iconRow {\\n margin-top: 8px;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon {\\n margin: 0;\\n margin-inline-end: 8px;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:focus {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon:disabled {\\n cursor: not-allowed;\\n}\\n.excalidraw .panelColumn .buttonList .ToolIcon__icon {\\n width: 28px;\\n height: 28px;\\n}\\n.excalidraw .panelColumn fieldset {\\n margin: 0;\\n margin-top: 0.333rem;\\n padding: 0;\\n border: none;\\n}\\n.excalidraw .divider {\\n width: 1px;\\n background-color: #e9ecef;\\n margin: 1px;\\n}\\n.excalidraw .buttonList label:focus-within,\\n.excalidraw input:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw button,\\n.excalidraw .buttonList label {\\n -webkit-user-select: none;\\n user-select: none;\\n background-color: var(--button-gray-1);\\n border: 0;\\n border-radius: var(--border-radius-md);\\n margin: 0.125rem 0;\\n padding: 0.25rem;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n.excalidraw button:focus-visible,\\n.excalidraw .buttonList label:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw button:hover,\\n.excalidraw .buttonList label:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw button:active,\\n.excalidraw .buttonList label:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw button:disabled,\\n.excalidraw .buttonList label:disabled {\\n cursor: not-allowed;\\n}\\n.excalidraw .active,\\n.excalidraw .buttonList label.active {\\n background-color: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n}\\n.excalidraw .active:hover,\\n.excalidraw .buttonList label.active:hover {\\n background-color: var(--color-primary-darker);\\n}\\n.excalidraw .active:active,\\n.excalidraw .buttonList label.active:active {\\n background-color: var(--color-primary-darkest);\\n}\\n.excalidraw .buttonList.buttonListIcon label {\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.excalidraw .buttonList.buttonListIcon label svg {\\n width: 35px;\\n height: 14px;\\n padding: 2px;\\n opacity: 0.6;\\n}\\n.excalidraw .buttonList.buttonListIcon label.active svg {\\n opacity: 1;\\n}\\n.excalidraw .App-top-bar {\\n z-index: var(--zIndex-layerUI);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n}\\n.excalidraw .App-bottom-bar {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n --bar-padding: calc(4 * var(--space-factor));\\n padding-top: max(var(--bar-padding), var(--sat,0));\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n z-index: 4;\\n display: flex;\\n align-items: flex-end;\\n pointer-events: none;\\n}\\n.excalidraw .App-bottom-bar > .Island {\\n width: 100%;\\n max-width: 100%;\\n min-width: 100%;\\n box-sizing: border-box;\\n max-height: 100%;\\n display: flex;\\n flex-direction: column;\\n pointer-events: initial;\\n}\\n.excalidraw .App-bottom-bar > .Island .panelColumn {\\n padding: 8px 8px 0 8px;\\n}\\n.excalidraw .App-toolbar {\\n width: 100%;\\n box-sizing: border-box;\\n}\\n.excalidraw .App-toolbar .eraser.ToolIcon:hover {\\n --icon-fill-color: #fff;\\n --keybinding-color: #fff;\\n}\\n.excalidraw .App-toolbar .eraser.active {\\n background-color: var(--color-primary);\\n}\\n.excalidraw .App-toolbar-content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 8px;\\n}\\n.excalidraw .App-mobile-menu {\\n width: 100%;\\n overflow-x: visible;\\n overflow-y: auto;\\n box-sizing: border-box;\\n margin-bottom: var(--bar-padding);\\n}\\n.excalidraw .App-menu {\\n display: grid;\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .App-menu_top {\\n grid-template-columns: auto max-content auto;\\n grid-gap: 4px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n}\\n.excalidraw .layer-ui__wrapper:not(.disable-pointerEvents) .App-menu_top > * {\\n pointer-events: all;\\n}\\n.excalidraw .App-menu_top > *:first-child {\\n justify-self: flex-start;\\n}\\n.excalidraw .App-menu_top > *:last-child {\\n justify-self: flex-end;\\n}\\n.excalidraw .App-menu_bottom {\\n position: absolute;\\n bottom: 0;\\n grid-template-columns: min-content auto min-content;\\n grid-gap: 15px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n}\\n:root[dir=ltr] .excalidraw .App-menu_bottom {\\n left: 0.25rem;\\n}\\n:root[dir=rtl] .excalidraw .App-menu_bottom {\\n right: 0.25rem;\\n}\\n.excalidraw .App-menu_bottom--transition-left section {\\n width: 185px;\\n}\\n.excalidraw .App-menu_bottom section {\\n display: flex;\\n}\\n.excalidraw .App-menu_bottom > *:first-child {\\n justify-self: flex-start;\\n}\\n.excalidraw .App-menu_bottom > *:last-child {\\n justify-self: flex-end;\\n}\\n.excalidraw .App-menu_left {\\n grid-template-rows: 1fr auto 1fr;\\n height: 100%;\\n}\\n.excalidraw .App-menu_right {\\n grid-template-rows: 1fr;\\n height: 100%;\\n}\\n.excalidraw .App-menu__left {\\n overflow-y: auto;\\n box-shadow: var(--shadow-island);\\n}\\n.excalidraw .dropdown-select {\\n height: 1.5rem;\\n padding: 0;\\n padding-inline-start: 0.5rem;\\n padding-inline-end: 1.5rem;\\n color: var(--icon-fill-color);\\n background-color: var(--button-gray-1);\\n border-radius: var(--space-factor);\\n border: 1px solid var(--button-gray-2);\\n font-size: 0.8rem;\\n outline: none;\\n -webkit-appearance: none;\\n appearance: none;\\n background-image: var(--dropdown-icon);\\n background-repeat: no-repeat;\\n background-position: right 0.7rem top 50%, 0 0;\\n background-size: 0.65em auto, 100%;\\n}\\n:root[dir=rtl] .excalidraw .dropdown-select {\\n background-position: left 0.7rem top 50%, 0 0;\\n}\\n.excalidraw .dropdown-select:focus {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .dropdown-select:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .dropdown-select:active {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .zIndexButton {\\n margin: 0;\\n margin-inline-end: 8px;\\n padding: 5px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.excalidraw .zIndexButton svg {\\n width: 18px;\\n height: 18px;\\n}\\n.excalidraw .scroll-back-to-content {\\n color: var(--popup-text-color);\\n position: absolute;\\n left: 50%;\\n bottom: 30px;\\n transform: translateX(-50%);\\n padding: 10px 20px;\\n pointer-events: all;\\n}\\n.excalidraw .help-icon {\\n display: flex;\\n cursor: pointer;\\n fill: #868e96;\\n padding: 0;\\n margin: 0;\\n background: none;\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .help-icon svg {\\n width: 1.5rem;\\n height: 1.5rem;\\n}\\n.excalidraw .help-icon:hover {\\n background: none;\\n}\\n.excalidraw .reset-zoom-button {\\n padding: 0.2em;\\n background: transparent;\\n color: var(--text-primary-color);\\n font-family: var(--ui-font);\\n}\\n.excalidraw .finalize-button {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n}\\n.excalidraw .undo-redo-buttons,\\n.excalidraw .eraser-buttons {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n}\\n.excalidraw--mobile.excalidraw aside {\\n display: none;\\n}\\n.excalidraw--mobile.excalidraw .scroll-back-to-content {\\n bottom: calc(80px + var(--sab, 0));\\n z-index: -1;\\n}\\n\\n:root[dir=rtl] .excalidraw .rtl-mirror {\\n transform: scaleX(-1);\\n}\\n.excalidraw .zen-mode-visibility {\\n visibility: visible;\\n opacity: 1;\\n height: auto;\\n width: auto;\\n transition: opacity 0.5s;\\n}\\n.excalidraw .zen-mode-visibility.zen-mode-visibility--hidden {\\n visibility: hidden;\\n opacity: 0;\\n height: 0;\\n width: 0;\\n transition: opacity 0.5s;\\n}\\n.excalidraw .disable-pointerEvents {\\n pointer-events: none !important;\\n}\\n.excalidraw.excalidraw--view-mode .App-menu {\\n display: flex;\\n justify-content: space-between;\\n}\\n.excalidraw input[type=text],\\n.excalidraw textarea:not(.excalidraw-wysiwyg) {\\n color: var(--text-primary-color);\\n border: 1.5px solid var(--input-border-color);\\n padding: 0.75rem;\\n white-space: nowrap;\\n border-radius: var(--space-factor);\\n background-color: var(--input-bg-color);\\n}\\n.excalidraw input[type=text]:not(:focus):hover,\\n.excalidraw textarea:not(.excalidraw-wysiwyg):not(:focus):hover {\\n background-color: var(--input-hover-bg-color);\\n}\\n.excalidraw input[type=text]:focus,\\n.excalidraw textarea:not(.excalidraw-wysiwyg):focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n@media print {\\n .excalidraw .App-bottom-bar,\\n.excalidraw .FixedSideContainer,\\n.excalidraw .layer-ui__wrapper {\\n display: none;\\n }\\n}\\n.excalidraw ::-webkit-scrollbar {\\n width: 5px;\\n}\\n.excalidraw ::-webkit-scrollbar-thumb {\\n background: var(--button-gray-2);\\n border-radius: 10px;\\n}\\n.excalidraw ::-webkit-scrollbar-thumb:hover {\\n background: var(--button-gray-3);\\n}\\n.excalidraw ::-webkit-scrollbar-thumb:active {\\n background: var(--button-gray-2);\\n}\\n\\n.ErrorSplash.excalidraw {\\n min-height: 100vh;\\n padding: 20px 0;\\n overflow: auto;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n -webkit-user-select: text;\\n user-select: text;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-messageContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n padding: 40px;\\n background-color: #ffe3e3;\\n border: 3px solid #c92a2a;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-paragraph {\\n margin: 15px 0;\\n max-width: 600px;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-paragraph.align-center {\\n text-align: center;\\n}\\n.ErrorSplash.excalidraw .bigger,\\n.ErrorSplash.excalidraw .bigger button {\\n font-size: 1.1em;\\n}\\n.ErrorSplash.excalidraw .smaller,\\n.ErrorSplash.excalidraw .smaller button {\\n font-size: 0.9em;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-details {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n}\\n.ErrorSplash.excalidraw .ErrorSplash-details textarea {\\n width: 100%;\\n margin: 10px 0;\\n font-family: \\\"Cascadia\\\";\\n font-size: 0.8em;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../css/styles.scss\",\"webpack://./../../css/theme.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"./variables.module\\\";\\n@import \\\"./theme\\\";\\n\\n:root {\\n --zIndex-canvas: 1;\\n --zIndex-wysiwyg: 2;\\n --zIndex-layerUI: 3;\\n}\\n\\n.excalidraw {\\n position: relative;\\n overflow: hidden;\\n color: var(--text-primary-color);\\n display: flex;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 100%;\\n width: 100%;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n // serves 2 purposes:\\n // 1. prevent selecting text outside the component when double-clicking or\\n // dragging inside it (e.g. on canvas)\\n // 2. prevent selecting UI, both from the inside, and from outside the\\n // component (e.g. if you select text in a sidebar)\\n user-select: none;\\n\\n a {\\n font-weight: 500;\\n text-decoration: none;\\n color: var(--link-color);\\n\\n &:hover {\\n text-decoration: underline;\\n }\\n }\\n\\n canvas {\\n touch-action: none;\\n\\n // following props improve blurriness at certain devicePixelRatios.\\n // AFAIK it doesn't affect export (in fact, export seems sharp either way).\\n\\n image-rendering: pixelated; // chromium\\n // NOTE: must be declared *after* the above\\n image-rendering: -moz-crisp-edges; // FF\\n\\n z-index: var(--zIndex-canvas);\\n\\n // Remove the main canvas from document flow to avoid resizeObserver\\n // feedback loop (see https://github.com/excalidraw/excalidraw/pull/3379)\\n }\\n\\n &__canvas {\\n position: absolute;\\n }\\n\\n &.theme--dark {\\n // The percentage is inspired by\\n // https://material.io/design/color/dark-theme.html#properties, which\\n // recommends surface color of #121212, 93% yields #111111 for #FFF\\n\\n canvas {\\n filter: var(--theme-filter);\\n }\\n }\\n\\n .FixedSideContainer {\\n padding-top: var(--sat, 0);\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n }\\n\\n .panelRow {\\n display: flex;\\n justify-content: space-between;\\n }\\n\\n .panelColumn {\\n display: flex;\\n flex-direction: column;\\n\\n h3,\\n legend,\\n .control-label {\\n margin-top: 0.333rem;\\n margin-bottom: 0.333rem;\\n font-size: 0.75rem;\\n color: var(--text-primary-color);\\n font-weight: bold;\\n display: block;\\n }\\n\\n .control-label input {\\n display: block;\\n width: 100%;\\n }\\n\\n h3:first-child,\\n legend:first-child,\\n .control-label:first-child {\\n margin-top: 0;\\n }\\n\\n legend {\\n padding: 0;\\n }\\n\\n .iconSelectList {\\n flex-wrap: wrap;\\n position: relative;\\n }\\n\\n .buttonList {\\n flex-wrap: wrap;\\n\\n label {\\n margin-right: 0.25rem;\\n font-size: 0.75rem;\\n display: inline-block;\\n }\\n\\n input[type=\\\"radio\\\"],\\n input[type=\\\"button\\\"] {\\n opacity: 0;\\n position: absolute;\\n pointer-events: none;\\n }\\n\\n .iconRow {\\n margin-top: 8px;\\n }\\n\\n .ToolIcon {\\n margin: 0;\\n margin-inline-end: 8px;\\n\\n &:focus {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 28px;\\n height: 28px;\\n }\\n }\\n\\n fieldset {\\n margin: 0;\\n margin-top: 0.333rem;\\n padding: 0;\\n border: none;\\n }\\n }\\n\\n .divider {\\n width: 1px;\\n background-color: $oc-gray-2;\\n margin: 1px;\\n }\\n\\n .buttonList label:focus-within,\\n input:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n button,\\n .buttonList label {\\n user-select: none;\\n background-color: var(--button-gray-1);\\n border: 0;\\n border-radius: var(--border-radius-md);\\n margin: 0.125rem 0;\\n padding: 0.25rem;\\n white-space: nowrap;\\n\\n cursor: pointer;\\n\\n &:focus-visible {\\n outline: transparent;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &:disabled {\\n cursor: not-allowed;\\n }\\n }\\n\\n .active,\\n .buttonList label.active {\\n background-color: var(--color-primary);\\n\\n --icon-fill-color: #{$oc-white};\\n\\n &:hover {\\n background-color: var(--color-primary-darker);\\n }\\n\\n &:active {\\n background-color: var(--color-primary-darkest);\\n }\\n }\\n\\n .buttonList.buttonListIcon {\\n label {\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n svg {\\n width: 35px;\\n height: 14px;\\n padding: 2px;\\n opacity: 0.6;\\n }\\n &.active svg {\\n opacity: 1;\\n }\\n }\\n }\\n\\n .App-top-bar {\\n z-index: var(--zIndex-layerUI);\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n }\\n\\n .App-bottom-bar {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n --bar-padding: calc(4 * var(--space-factor));\\n padding-top: #{\\\"max(var(--bar-padding), var(--sat,0))\\\"};\\n padding-right: var(--sar, 0);\\n padding-bottom: var(--sab, 0);\\n padding-left: var(--sal, 0);\\n z-index: 4;\\n display: flex;\\n align-items: flex-end;\\n pointer-events: none;\\n\\n > .Island {\\n width: 100%;\\n max-width: 100%;\\n min-width: 100%;\\n box-sizing: border-box;\\n max-height: 100%;\\n display: flex;\\n flex-direction: column;\\n pointer-events: initial;\\n\\n .panelColumn {\\n padding: 8px 8px 0 8px;\\n }\\n }\\n }\\n\\n .App-toolbar {\\n width: 100%;\\n\\n box-sizing: border-box;\\n\\n .eraser {\\n &.ToolIcon:hover {\\n --icon-fill-color: #fff;\\n --keybinding-color: #fff;\\n }\\n &.active {\\n background-color: var(--color-primary);\\n }\\n }\\n }\\n\\n .App-toolbar-content {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 8px;\\n }\\n\\n .App-mobile-menu {\\n width: 100%;\\n overflow-x: visible;\\n overflow-y: auto;\\n box-sizing: border-box;\\n margin-bottom: var(--bar-padding);\\n }\\n\\n .App-menu {\\n display: grid;\\n color: var(--icon-fill-color);\\n }\\n\\n .App-menu_top {\\n grid-template-columns: auto max-content auto;\\n grid-gap: 4px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n }\\n\\n .layer-ui__wrapper:not(.disable-pointerEvents) .App-menu_top > * {\\n pointer-events: all;\\n }\\n\\n .App-menu_top > *:first-child {\\n justify-self: flex-start;\\n }\\n\\n .App-menu_top > *:last-child {\\n justify-self: flex-end;\\n }\\n\\n .App-menu_bottom {\\n position: absolute;\\n bottom: 0;\\n grid-template-columns: min-content auto min-content;\\n grid-gap: 15px;\\n align-items: flex-start;\\n cursor: default;\\n pointer-events: none !important;\\n\\n :root[dir=\\\"ltr\\\"] & {\\n left: 0.25rem;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 0.25rem;\\n }\\n\\n &--transition-left {\\n section {\\n width: 185px;\\n }\\n }\\n\\n section {\\n display: flex;\\n }\\n }\\n\\n .App-menu_bottom > *:first-child {\\n justify-self: flex-start;\\n }\\n\\n .App-menu_bottom > *:last-child {\\n justify-self: flex-end;\\n }\\n\\n .App-menu_left {\\n grid-template-rows: 1fr auto 1fr;\\n height: 100%;\\n }\\n\\n .App-menu_right {\\n grid-template-rows: 1fr;\\n height: 100%;\\n }\\n\\n .App-menu__left {\\n overflow-y: auto;\\n box-shadow: var(--shadow-island);\\n }\\n\\n .dropdown-select {\\n height: 1.5rem;\\n padding: 0;\\n padding-inline-start: 0.5rem;\\n padding-inline-end: 1.5rem;\\n color: var(--icon-fill-color);\\n background-color: var(--button-gray-1);\\n border-radius: var(--space-factor);\\n border: 1px solid var(--button-gray-2);\\n font-size: 0.8rem;\\n outline: none;\\n appearance: none;\\n background-image: var(--dropdown-icon);\\n background-repeat: no-repeat;\\n background-position: right 0.7rem top 50%, 0 0;\\n\\n :root[dir=\\\"rtl\\\"] & {\\n background-position: left 0.7rem top 50%, 0 0;\\n }\\n\\n background-size: 0.65em auto, 100%;\\n\\n &:focus {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n }\\n\\n .zIndexButton {\\n margin: 0;\\n margin-inline-end: 8px;\\n padding: 5px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n svg {\\n width: 18px;\\n height: 18px;\\n }\\n }\\n\\n .scroll-back-to-content {\\n color: var(--popup-text-color);\\n position: absolute;\\n left: 50%;\\n bottom: 30px;\\n transform: translateX(-50%);\\n padding: 10px 20px;\\n pointer-events: all;\\n }\\n\\n .help-icon {\\n display: flex;\\n cursor: pointer;\\n fill: $oc-gray-6;\\n padding: 0;\\n margin: 0;\\n background: none;\\n color: var(--icon-fill-color);\\n\\n svg {\\n width: 1.5rem;\\n height: 1.5rem;\\n }\\n\\n &:hover {\\n background: none;\\n }\\n }\\n\\n .reset-zoom-button {\\n padding: 0.2em;\\n background: transparent;\\n color: var(--text-primary-color);\\n font-family: var(--ui-font);\\n }\\n\\n .finalize-button {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n }\\n\\n .undo-redo-buttons,\\n .eraser-buttons {\\n display: grid;\\n grid-auto-flow: column;\\n gap: 0.4em;\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-inline-start: 0.6em;\\n }\\n\\n @include isMobile {\\n aside {\\n display: none;\\n }\\n .scroll-back-to-content {\\n bottom: calc(80px + var(--sab, 0));\\n z-index: -1;\\n }\\n }\\n\\n .rtl-mirror {\\n :root[dir=\\\"rtl\\\"] & {\\n transform: scaleX(-1);\\n }\\n }\\n\\n .zen-mode-visibility {\\n visibility: visible;\\n opacity: 1;\\n height: auto;\\n width: auto;\\n transition: opacity 0.5s;\\n\\n &.zen-mode-visibility--hidden {\\n visibility: hidden;\\n opacity: 0;\\n height: 0;\\n width: 0;\\n transition: opacity 0.5s;\\n }\\n }\\n\\n .disable-pointerEvents {\\n pointer-events: none !important;\\n }\\n\\n &.excalidraw--view-mode {\\n .App-menu {\\n display: flex;\\n justify-content: space-between;\\n }\\n }\\n\\n input[type=\\\"text\\\"],\\n textarea:not(.excalidraw-wysiwyg) {\\n color: var(--text-primary-color);\\n border: 1.5px solid var(--input-border-color);\\n padding: 0.75rem;\\n white-space: nowrap;\\n border-radius: var(--space-factor);\\n background-color: var(--input-bg-color);\\n\\n &:not(:focus) {\\n &:hover {\\n background-color: var(--input-hover-bg-color);\\n }\\n }\\n\\n &:focus {\\n outline: none;\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n\\n @media print {\\n .App-bottom-bar,\\n .FixedSideContainer,\\n .layer-ui__wrapper {\\n display: none;\\n }\\n }\\n\\n // use custom, minimalistic scrollbar\\n // (doesn't work in Firefox)\\n ::-webkit-scrollbar {\\n width: 5px;\\n }\\n ::-webkit-scrollbar-thumb {\\n background: var(--button-gray-2);\\n border-radius: 10px;\\n }\\n ::-webkit-scrollbar-thumb:hover {\\n background: var(--button-gray-3);\\n }\\n ::-webkit-scrollbar-thumb:active {\\n background: var(--button-gray-2);\\n }\\n}\\n\\n.ErrorSplash.excalidraw {\\n min-height: 100vh;\\n padding: 20px 0;\\n overflow: auto;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n user-select: text;\\n\\n .ErrorSplash-messageContainer {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n\\n padding: 40px;\\n background-color: $oc-red-1;\\n border: 3px solid $oc-red-9;\\n }\\n\\n .ErrorSplash-paragraph {\\n margin: 15px 0;\\n max-width: 600px;\\n\\n &.align-center {\\n text-align: center;\\n }\\n }\\n\\n .bigger,\\n .bigger button {\\n font-size: 1.1em;\\n }\\n\\n .smaller,\\n .smaller button {\\n font-size: 0.9em;\\n }\\n\\n .ErrorSplash-details {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n\\n textarea {\\n width: 100%;\\n margin: 10px 0;\\n font-family: \\\"Cascadia\\\";\\n font-size: 0.8em;\\n }\\n }\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"./variables.module.scss\\\";\\n\\n.excalidraw {\\n --theme-filter: none;\\n --button-destructive-bg-color: #{$oc-red-1};\\n --button-destructive-color: #{$oc-red-9};\\n --button-gray-1: #{$oc-gray-2};\\n --button-gray-2: #{$oc-gray-4};\\n --button-gray-3: #{$oc-gray-5};\\n --button-special-active-bg-color: #{$oc-green-0};\\n --dialog-border-color: #{$oc-gray-6};\\n --dropdown-icon: url('data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>');\\n --focus-highlight-color: #{$oc-blue-2};\\n --icon-fill-color: #{$oc-gray-9};\\n --icon-green-fill-color: #{$oc-green-9};\\n --default-bg-color: #{$oc-white};\\n --input-bg-color: #{$oc-white};\\n --input-border-color: #{$oc-gray-4};\\n --input-hover-bg-color: #{$oc-gray-1};\\n --input-label-color: #{$oc-gray-7};\\n --island-bg-color: rgba(255, 255, 255, 0.96);\\n --keybinding-color: #{$oc-gray-5};\\n --link-color: #{$oc-blue-7};\\n --overlay-bg-color: #{transparentize($oc-white, 0.12)};\\n --popup-bg-color: #{$oc-white};\\n --popup-secondary-bg-color: #{$oc-gray-1};\\n --popup-text-color: #{$oc-black};\\n --popup-text-inverted-color: #{$oc-white};\\n --sab: env(safe-area-inset-bottom);\\n --sal: env(safe-area-inset-left);\\n --sar: env(safe-area-inset-right);\\n --sat: env(safe-area-inset-top);\\n --select-highlight-color: #{$oc-blue-5};\\n --shadow-island: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 12%);\\n\\n --space-factor: 0.25rem;\\n --text-primary-color: #{$oc-gray-8};\\n\\n --color-primary: #6965db;\\n --color-primary-darker: #5b57d1;\\n --color-primary-darkest: #4a47b1;\\n --color-primary-light: #e2e1fc;\\n\\n --border-radius-md: 0.375rem;\\n --border-radius-lg: 0.5rem;\\n\\n &.theme--dark {\\n background: $oc-black;\\n\\n &.theme--dark-background-none {\\n background: none;\\n }\\n }\\n\\n &.theme--dark {\\n --theme-filter: #{$theme-filter};\\n --button-destructive-bg-color: #5a0000;\\n --button-destructive-color: #{$oc-red-3};\\n --button-gray-1: #363636;\\n --button-gray-2: #272727;\\n --button-gray-3: #222;\\n --button-special-active-bg-color: #204624;\\n --dialog-border-color: #{$oc-gray-9};\\n --dropdown-icon: url('data:image/svg+xml,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"292.4\\\" height=\\\"292.4\\\" viewBox=\\\"0 0 292 292\\\"><path fill=\\\"%23ced4da\\\" d=\\\"M287 197L159 69c-4-3-8-5-13-5s-9 2-13 5L5 197c-3 4-5 8-5 13s2 9 5 13c4 4 8 5 13 5h256c5 0 9-1 13-5s5-8 5-13-1-9-5-13z\\\"/></svg>');\\n --focus-highlight-color: #{$oc-blue-6};\\n --icon-fill-color: #{$oc-gray-4};\\n --icon-green-fill-color: #{$oc-green-4};\\n --default-bg-color: #121212;\\n --input-bg-color: #121212;\\n --input-border-color: #2e2e2e;\\n --input-hover-bg-color: #181818;\\n --input-label-color: #{$oc-gray-2};\\n --island-bg-color: rgba(30, 30, 30, 0.98);\\n --keybinding-color: #{$oc-gray-6};\\n --link-color: #{$oc-blue-4};\\n --overlay-bg-color: #{transparentize($oc-gray-8, 0.88)};\\n --popup-bg-color: #2c2c2c;\\n --popup-secondary-bg-color: #222;\\n --popup-text-color: #{$oc-gray-4};\\n --popup-text-inverted-color: #2c2c2c;\\n --select-highlight-color: #{$oc-blue-4};\\n --shadow-island: 1px 1px 5px #{transparentize($oc-black, 0.7)};\\n --text-primary-color: #{$oc-gray-4};\\n\\n --color-primary: #5650f0;\\n --color-primary-darker: #4b46d8;\\n --color-primary-darkest: #3e39be;\\n --color-primary-light: #3f3d64;\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY3NzL3N0eWxlcy5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUNPO0FBQ3BILDRDQUE0Qyw2akJBQWtSO0FBQzlULDRDQUE0QyxpbUJBQXFTO0FBQ2pWLDhCQUE4Qix1R0FBMkIsQ0FBQyxnSEFBcUM7QUFDL0YseUNBQXlDLDBHQUErQjtBQUN4RSx5Q0FBeUMsMEdBQStCO0FBQ3hFO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRyxhQUFhLGdEQUFnRCw2QkFBNkIsR0FBRyxpQkFBaUIseUJBQXlCLDJDQUEyQyx3Q0FBd0MsNkJBQTZCLDZCQUE2Qiw2QkFBNkIsOENBQThDLG1DQUFtQyxxRUFBcUUscUNBQXFDLCtCQUErQixxQ0FBcUMsZ0NBQWdDLDhCQUE4QixrQ0FBa0Msb0NBQW9DLGlDQUFpQyxpREFBaUQsZ0NBQWdDLDBCQUEwQixrREFBa0QsOEJBQThCLHdDQUF3QyxnQ0FBZ0MseUNBQXlDLHVDQUF1QyxxQ0FBcUMsc0NBQXNDLG9DQUFvQyxzQ0FBc0MsaUZBQWlGLDRCQUE0QixrQ0FBa0MsNkJBQTZCLG9DQUFvQyxxQ0FBcUMsbUNBQW1DLGlDQUFpQywrQkFBK0IsR0FBRywyQkFBMkIsd0JBQXdCLEdBQUcsdURBQXVELHFCQUFxQixHQUFHLDJCQUEyQixtREFBbUQsMkNBQTJDLHdDQUF3Qyw2QkFBNkIsNkJBQTZCLDBCQUEwQiw4Q0FBOEMsbUNBQW1DLHFFQUFxRSxxQ0FBcUMsK0JBQStCLHFDQUFxQyxnQ0FBZ0MsOEJBQThCLGtDQUFrQyxvQ0FBb0MsaUNBQWlDLDhDQUE4QyxnQ0FBZ0MsMEJBQTBCLCtDQUErQyw4QkFBOEIscUNB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VyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxPQUFPLE1BQU0sV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFVBQVUsV0FBVyxNQUFNLFFBQVEsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLFFBQVEsVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxXQUFXLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxXQUFXLFdBQVcsV0FBVyxNQUFNLE9BQU8sVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsV0FBVyxNQUFNLE1BQU0sV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsV0FBVyxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLE1BQU0sT0FBTyxXQUFXLFdBQVcsTUFBTSxPQUFPLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLE1BQU0sT0FBTyxXQUFXLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxPQUFPLFdBQVcsV0FBVyxNQUFNLE9BQU8sV0FBVyxNQUFNLE9BQU8sV0FBVyxNQUFNLE1BQU0sV0FBVyxXQUFXLFdBQVcsTUFBTSxNQUFNLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFdBQVcsVUFBVSxXQUFXLFdBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFdBQVcsV0FBVyxNQUFNLE1BQU0sVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLE1BQU0sTUFBTSxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFdBQVcsV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sVUFBVSxXQUFXLFdBQVcsVUFBVSxNQUFNLE1BQU0sVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLE1BQU0sTUFBTSxVQUFVLFdBQVcsTUFBTSxNQUFNLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxNQUFNLE1BQU0sV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxVQUFVLEtBQUssS0FBSyxXQUFXLFVBQVUsS0FBSyxLQUFLLFdBQVcsV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUssVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssV0FB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QWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw4UUFBOFEsZ0RBQWdELDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELHlGQUF5Rix1ZEFBdWQscUJBQXFCO0FBQ3Q5K0M7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jc3Mvc3R5bGVzLnNjc3M/MGQ1NSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB3aWR0aD1cXFwiMjkyLjRcXFwiIGhlaWdodD1cXFwiMjkyLjRcXFwiIHZpZXdCb3g9XFxcIjAgMCAyOTIgMjkyXFxcIj48cGF0aCBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz5cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHdpZHRoPVxcXCIyOTIuNFxcXCIgaGVpZ2h0PVxcXCIyOTIuNFxcXCIgdmlld0JveD1cXFwiMCAwIDI5MiAyOTJcXFwiPjxwYXRoIGZpbGw9XFxcIiUyM2NlZDRkYVxcXCIgZD1cXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcIi8+PC9zdmc+XCIsIGltcG9ydC5tZXRhLnVybCk7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiAzMDJweDtcXG59XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAtLXRoZW1lLWZpbHRlcjogbm9uZTtcXG4gIC0tYnV0dG9uLWRlc3RydWN0aXZlLWJnLWNvbG9yOiAjZmZlM2UzO1xcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3I6ICNjOTJhMmE7XFxuICAtLWJ1dHRvbi1ncmF5LTE6ICNlOWVjZWY7XFxuICAtLWJ1dHRvbi1ncmF5LTI6ICNjZWQ0ZGE7XFxuICAtLWJ1dHRvbi1ncmF5LTM6ICNhZGI1YmQ7XFxuICAtLWJ1dHRvbi1zcGVjaWFsLWFjdGl2ZS1iZy1jb2xvcjogI2ViZmJlZTtcXG4gIC0tZGlhbG9nLWJvcmRlci1jb2xvcjogIzg2OGU5NjtcXG4gIC0tZHJvcGRvd24taWNvbjogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKTtcXG4gIC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yOiAjYTVkOGZmO1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICMyMTI1Mjk7XFxuICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogIzJiOGEzZTtcXG4gIC0tZGVmYXVsdC1iZy1jb2xvcjogI2ZmZmZmZjtcXG4gIC0taW5wdXQtYmctY29sb3I6ICNmZmZmZmY7XFxuICAtLWlucHV0LWJvcmRlci1jb2xvcjogI2NlZDRkYTtcXG4gIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICNmMWYzZjU7XFxuICAtLWlucHV0LWxhYmVsLWNvbG9yOiAjNDk1MDU3O1xcbiAgLS1pc2xhbmQtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNhZGI1YmQ7XFxuICAtLWxpbmstY29sb3I6ICMxYzdlZDY7XFxuICAtLW92ZXJsYXktYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7XFxuICAtLXBvcHVwLWJnLWNvbG9yOiAjZmZmZmZmO1xcbiAgLS1wb3B1cC1zZWNvbmRhcnktYmctY29sb3I6ICNmMWYzZjU7XFxuICAtLXBvcHVwLXRleHQtY29sb3I6ICMwMDAwMDA7XFxuICAtLXBvcHVwLXRleHQtaW52ZXJ0ZWQtY29sb3I6ICNmZmZmZmY7XFxuICAtLXNhYjogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgLS1zYWw6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XFxuICAtLXNhcjogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XFxuICAtLXNhdDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbiAgLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yOiAjMzM5YWYwO1xcbiAgLS1zaGFkb3ctaXNsYW5kOiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTIlKTtcXG4gIC0tc3BhY2UtZmFjdG9yOiAwLjI1cmVtO1xcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICMzNDNhNDA7XFxuICAtLWNvbG9yLXByaW1hcnk6ICM2OTY1ZGI7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNWI1N2QxO1xcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICM0YTQ3YjE7XFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICNlMmUxZmM7XFxuICAtLWJvcmRlci1yYWRpdXMtbWQ6IDAuMzc1cmVtO1xcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAwLjVyZW07XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrLnRoZW1lLS1kYXJrLWJhY2tncm91bmQtbm9uZSB7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdy50aGVtZS0tZGFyayB7XFxuICAtLXRoZW1lLWZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtYmctY29sb3I6ICM1YTAwMDA7XFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI2ZmYThhODtcXG4gIC0tYnV0dG9uLWdyYXktMTogIzM2MzYzNjtcXG4gIC0tYnV0dG9uLWdyYXktMjogIzI3MjcyNztcXG4gIC0tYnV0dG9uLWdyYXktMzogIzIyMjtcXG4gIC0tYnV0dG9uLXNwZWNpYWwtYWN0aXZlLWJnLWNvbG9yOiAjMjA0NjI0O1xcbiAgLS1kaWFsb2ctYm9yZGVyLWNvbG9yOiAjMjEyNTI5O1xcbiAgLS1kcm9wZG93bi1pY29uOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXCIpO1xcbiAgLS1mb2N1cy1oaWdobGlnaHQtY29sb3I6ICMyMjhiZTY7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2NlZDRkYTtcXG4gIC0taWNvbi1ncmVlbi1maWxsLWNvbG9yOiAjNjlkYjdjO1xcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjMTIxMjEyO1xcbiAgLS1pbnB1dC1iZy1jb2xvcjogIzEyMTIxMjtcXG4gIC0taW5wdXQtYm9yZGVyLWNvbG9yOiAjMmUyZTJlO1xcbiAgLS1pbnB1dC1ob3Zlci1iZy1jb2xvcjogIzE4MTgxODtcXG4gIC0taW5wdXQtbGFiZWwtY29sb3I6ICNlOWVjZWY7XFxuICAtLWlzbGFuZC1iZy1jb2xvcjogcmdiYSgzMCwgMzAsIDMwLCAwLjk4KTtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogIzg2OGU5NjtcXG4gIC0tbGluay1jb2xvcjogIzRkYWJmNztcXG4gIC0tb3ZlcmxheS1iZy1jb2xvcjogcmdiYSg1MiwgNTgsIDY0LCAwLjEyKTtcXG4gIC0tcG9wdXAtYmctY29sb3I6ICMyYzJjMmM7XFxuICAtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcjogIzIyMjtcXG4gIC0tcG9wdXAtdGV4dC1jb2xvcjogI2NlZDRkYTtcXG4gIC0tcG9wdXAtdGV4dC1pbnZlcnRlZC1jb2xvcjogIzJjMmMyYztcXG4gIC0tc2VsZWN0LWhpZ2hsaWdodC1jb2xvcjogIzRkYWJmNztcXG4gIC0tc2hhZG93LWlzbGFuZDogMXB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICNjZWQ0ZGE7XFxuICAtLWNvbG9yLXByaW1hcnk6ICM1NjUwZjA7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNGI0NmQ4O1xcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICMzZTM5YmU7XFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICMzZjNkNjQ7XFxufVxcblxcbjpyb290IHtcXG4gIC0tekluZGV4LWNhbnZhczogMTtcXG4gIC0tekluZGV4LXd5c2l3eWc6IDI7XFxuICAtLXpJbmRleC1sYXllclVJOiAzO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXc6Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgYSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBhOmhvdmVyIHtcXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbn1cXG4uZXhjYWxpZHJhdyBjYW52YXMge1xcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xcbiAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7XFxuICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XFxuICB6LWluZGV4OiB2YXIoLS16SW5kZXgtY2FudmFzKTtcXG59XFxuLmV4Y2FsaWRyYXdfX2NhbnZhcyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5leGNhbGlkcmF3LnRoZW1lLS1kYXJrIGNhbnZhcyB7XFxuICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxufVxcbi5leGNhbGlkcmF3IC5GaXhlZFNpZGVDb250YWluZXIge1xcbiAgcGFkZGluZy10b3A6IHZhcigtLXNhdCwgMCk7XFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNhbCwgMCk7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbFJvdyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBoMyxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gbGVnZW5kLFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuY29udHJvbC1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXG4gIG1hcmdpbi1ib3R0b206IDAuMzMzcmVtO1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmNvbnRyb2wtbGFiZWwgaW5wdXQge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIGgzOmZpcnN0LWNoaWxkLFxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQ6Zmlyc3QtY2hpbGQsXFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5jb250cm9sLWxhYmVsOmZpcnN0LWNoaWxkIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBsZWdlbmQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5pY29uU2VsZWN0TGlzdCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCBsYWJlbCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCBpbnB1dFt0eXBlPXJhZGlvXSxcXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgaW5wdXRbdHlwZT1idXR0b25dIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IC5pY29uUm93IHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLmV4Y2FsaWRyYXcgLnBhbmVsQ29sdW1uIC5idXR0b25MaXN0IC5Ub29sSWNvbiB7XFxuICBtYXJnaW46IDA7XFxuICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uOmZvY3VzIHtcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAucGFuZWxDb2x1bW4gLmJ1dHRvbkxpc3QgLlRvb2xJY29uOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiAuYnV0dG9uTGlzdCAuVG9vbEljb25fX2ljb24ge1xcbiAgd2lkdGg6IDI4cHg7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5leGNhbGlkcmF3IC5wYW5lbENvbHVtbiBmaWVsZHNldCB7XFxuICBtYXJnaW46IDA7XFxuICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3IC5kaXZpZGVyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0IGxhYmVsOmZvY3VzLXdpdGhpbixcXG4uZXhjYWxpZHJhdyBpbnB1dDpmb2N1cy12aXNpYmxlIHtcXG4gIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IGJ1dHRvbixcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbCB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7XFxuICBtYXJnaW46IDAuMTI1cmVtIDA7XFxuICBwYWRkaW5nOiAwLjI1cmVtO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgYnV0dG9uOmZvY3VzLXZpc2libGUsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6Zm9jdXMtdmlzaWJsZSB7XFxuICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mb2N1cy1oaWdobGlnaHQtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBidXR0b246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IGJ1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyBidXR0b246ZGlzYWJsZWQsXFxuLmV4Y2FsaWRyYXcgLmJ1dHRvbkxpc3QgbGFiZWw6ZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuLmV4Y2FsaWRyYXcgLmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZmZmZjtcXG59XFxuLmV4Y2FsaWRyYXcgLmFjdGl2ZTpob3ZlcixcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmU6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuYWN0aXZlOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdCBsYWJlbC5hY3RpdmU6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VzdCk7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIGxhYmVsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZXhjYWxpZHJhdyAuYnV0dG9uTGlzdC5idXR0b25MaXN0SWNvbiBsYWJlbCBzdmcge1xcbiAgd2lkdGg6IDM1cHg7XFxuICBoZWlnaHQ6IDE0cHg7XFxuICBwYWRkaW5nOiAycHg7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5leGNhbGlkcmF3IC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIGxhYmVsLmFjdGl2ZSBzdmcge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b3AtYmFyIHtcXG4gIHotaW5kZXg6IHZhcigtLXpJbmRleC1sYXllclVJKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1ib3R0b20tYmFyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIC0tYmFyLXBhZGRpbmc6IGNhbGMoNCAqIHZhcigtLXNwYWNlLWZhY3RvcikpO1xcbiAgcGFkZGluZy10b3A6IG1heCh2YXIoLS1iYXItcGFkZGluZyksIHZhcigtLXNhdCwwKSk7XFxuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zYXIsIDApO1xcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNhbCwgMCk7XFxuICB6LWluZGV4OiA0O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIgPiAuSXNsYW5kIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbWluLXdpZHRoOiAxMDAlO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLWJvdHRvbS1iYXIgPiAuSXNsYW5kIC5wYW5lbENvbHVtbiB7XFxuICBwYWRkaW5nOiA4cHggOHB4IDAgOHB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLmVyYXNlci5Ub29sSWNvbjpob3ZlciB7XFxuICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZjtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogI2ZmZjtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5lcmFzZXIuYWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGVudCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIHBhZGRpbmc6IDhweDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tb2JpbGUtbWVudSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWJhci1wYWRkaW5nKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51IHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X3RvcCB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWF4LWNvbnRlbnQgYXV0bztcXG4gIGdyaWQtZ2FwOiA0cHg7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlcjpub3QoLmRpc2FibGUtcG9pbnRlckV2ZW50cykgLkFwcC1tZW51X3RvcCA+ICoge1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X3RvcCA+ICo6Zmlyc3QtY2hpbGQge1xcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfdG9wID4gKjpsYXN0LWNoaWxkIHtcXG4gIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW4tY29udGVudCBhdXRvIG1pbi1jb250ZW50O1xcbiAgZ3JpZC1nYXA6IDE1cHg7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbjpyb290W2Rpcj1sdHJdIC5leGNhbGlkcmF3IC5BcHAtbWVudV9ib3R0b20ge1xcbiAgbGVmdDogMC4yNXJlbTtcXG59XFxuOnJvb3RbZGlyPXJ0bF0gLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSB7XFxuICByaWdodDogMC4yNXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbS0tdHJhbnNpdGlvbi1sZWZ0IHNlY3Rpb24ge1xcbiAgd2lkdGg6IDE4NXB4O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfYm90dG9tIHNlY3Rpb24ge1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC1tZW51X2JvdHRvbSA+ICo6Zmlyc3QtY2hpbGQge1xcbiAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfYm90dG9tID4gKjpsYXN0LWNoaWxkIHtcXG4gIGp1c3RpZnktc2VsZjogZmxleC1lbmQ7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9sZWZ0IHtcXG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG8gMWZyO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLW1lbnVfcmlnaHQge1xcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtbWVudV9fbGVmdCB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWlzbGFuZCk7XFxufVxcbi5leGNhbGlkcmF3IC5kcm9wZG93bi1zZWxlY3Qge1xcbiAgaGVpZ2h0OiAxLjVyZW07XFxuICBwYWRkaW5nOiAwO1xcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNXJlbTtcXG4gIHBhZGRpbmctaW5saW5lLWVuZDogMS41cmVtO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgb3V0bGluZTogbm9uZTtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWRyb3Bkb3duLWljb24pO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuN3JlbSB0b3AgNTAlLCAwIDA7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDAuNjVlbSBhdXRvLCAxMDAlO1xcbn1cXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAuZHJvcGRvd24tc2VsZWN0IHtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgMC43cmVtIHRvcCA1MCUsIDAgMDtcXG59XFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDpmb2N1cyB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmRyb3Bkb3duLXNlbGVjdDphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC56SW5kZXhCdXR0b24ge1xcbiAgbWFyZ2luOiAwO1xcbiAgbWFyZ2luLWlubGluZS1lbmQ6IDhweDtcXG4gIHBhZGRpbmc6IDVweDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uZXhjYWxpZHJhdyAuekluZGV4QnV0dG9uIHN2ZyB7XFxuICB3aWR0aDogMThweDtcXG4gIGhlaWdodDogMThweDtcXG59XFxuLmV4Y2FsaWRyYXcgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcbiAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgYm90dG9tOiAzMHB4O1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLmV4Y2FsaWRyYXcgLmhlbHAtaWNvbiB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZmlsbDogIzg2OGU5NjtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5oZWxwLWljb24gc3ZnIHtcXG4gIHdpZHRoOiAxLjVyZW07XFxuICBoZWlnaHQ6IDEuNXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLmhlbHAtaWNvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdyAucmVzZXQtem9vbS1idXR0b24ge1xcbiAgcGFkZGluZzogMC4yZW07XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZmluYWxpemUtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcbiAgZ2FwOiAwLjRlbTtcXG4gIG1hcmdpbi10b3A6IGF1dG87XFxuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xcbiAgbWFyZ2luLWlubGluZS1zdGFydDogMC42ZW07XFxufVxcbi5leGNhbGlkcmF3IC51bmRvLXJlZG8tYnV0dG9ucyxcXG4uZXhjYWxpZHJhdyAuZXJhc2VyLWJ1dHRvbnMge1xcbiAgZGlzcGxheTogZ3JpZDtcXG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XFxuICBnYXA6IDAuNGVtO1xcbiAgbWFyZ2luLXRvcDogYXV0bztcXG4gIG1hcmdpbi1ib3R0b206IGF1dG87XFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwLjZlbTtcXG59XFxuLmV4Y2FsaWRyYXctLW1vYmlsZS5leGNhbGlkcmF3IGFzaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3LS1tb2JpbGUuZXhjYWxpZHJhdyAuc2Nyb2xsLWJhY2stdG8tY29udGVudCB7XFxuICBib3R0b206IGNhbGMoODBweCArIHZhcigtLXNhYiwgMCkpO1xcbiAgei1pbmRleDogLTE7XFxufVxcblxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC5ydGwtbWlycm9yIHtcXG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcXG59XFxuLmV4Y2FsaWRyYXcgLnplbi1tb2RlLXZpc2liaWxpdHkge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogYXV0bztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcXG59XFxuLmV4Y2FsaWRyYXcgLnplbi1tb2RlLXZpc2liaWxpdHkuemVuLW1vZGUtdmlzaWJpbGl0eS0taGlkZGVuIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIG9wYWNpdHk6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcXG59XFxuLmV4Y2FsaWRyYXcgLmRpc2FibGUtcG9pbnRlckV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uZXhjYWxpZHJhdy5leGNhbGlkcmF3LS12aWV3LW1vZGUgLkFwcC1tZW51IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5leGNhbGlkcmF3IGlucHV0W3R5cGU9dGV4dF0sXFxuLmV4Y2FsaWRyYXcgdGV4dGFyZWE6bm90KC5leGNhbGlkcmF3LXd5c2l3eWcpIHtcXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpO1xcbiAgcGFkZGluZzogMC43NXJlbTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmctY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyBpbnB1dFt0eXBlPXRleHRdOm5vdCg6Zm9jdXMpOmhvdmVyLFxcbi5leGNhbGlkcmF3IHRleHRhcmVhOm5vdCguZXhjYWxpZHJhdy13eXNpd3lnKTpub3QoOmZvY3VzKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1ob3Zlci1iZy1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsXFxuLmV4Y2FsaWRyYXcgdGV4dGFyZWE6bm90KC5leGNhbGlkcmF3LXd5c2l3eWcpOmZvY3VzIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG59XFxuQG1lZGlhIHByaW50IHtcXG4gIC5leGNhbGlkcmF3IC5BcHAtYm90dG9tLWJhcixcXG4uZXhjYWxpZHJhdyAuRml4ZWRTaWRlQ29udGFpbmVyLFxcbi5leGNhbGlkcmF3IC5sYXllci11aV9fd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbi5leGNhbGlkcmF3IDo6LXdlYmtpdC1zY3JvbGxiYXIge1xcbiAgd2lkdGg6IDVweDtcXG59XFxuLmV4Y2FsaWRyYXcgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxufVxcbi5leGNhbGlkcmF3IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG5cXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyB7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG4gIHBhZGRpbmc6IDIwcHggMDtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbn1cXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuRXJyb3JTcGxhc2gtbWVzc2FnZUNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDQwcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlM2UzO1xcbiAgYm9yZGVyOiAzcHggc29saWQgI2M5MmEyYTtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLXBhcmFncmFwaCB7XFxuICBtYXJnaW46IDE1cHggMDtcXG4gIG1heC13aWR0aDogNjAwcHg7XFxufVxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IC5FcnJvclNwbGFzaC1wYXJhZ3JhcGguYWxpZ24tY2VudGVyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLmJpZ2dlcixcXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuYmlnZ2VyIGJ1dHRvbiB7XFxuICBmb250LXNpemU6IDEuMWVtO1xcbn1cXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuc21hbGxlcixcXG4uRXJyb3JTcGxhc2guZXhjYWxpZHJhdyAuc21hbGxlciBidXR0b24ge1xcbiAgZm9udC1zaXplOiAwLjllbTtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLWRldGFpbHMge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLkVycm9yU3BsYXNoLmV4Y2FsaWRyYXcgLkVycm9yU3BsYXNoLWRldGFpbHMgdGV4dGFyZWEge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXJnaW46IDEwcHggMDtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiQ2FzY2FkaWFcXFwiO1xcbiAgZm9udC1zaXplOiAwLjhlbTtcXG59XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vY3NzL3N0eWxlcy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdGhlbWUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL29wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQWlDQTtFQUNFLDJDQUFBO0VBQ0Esd0JBQUE7QUNoQ0Y7O0FEOEJBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQzNCRjs7QUNMQTtFQUNF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QUFBO0VBQ0EsdUNBQUE7QUFuQko7QUFzQk07O0VBQ0UsNkNBQUE7QUFuQlI7QUF1Qkk7O0VBQ0UsYUFBQTtFQUNBLGtEQUFBO0FBcEJOO0FBd0JFO0VBQ0U7OztJQUdFLGFBQUE7RUF0Qko7QUFDRjtBQTJCRTtFQUNFLFVBQUE7QUF6Qko7QUEyQkU7RUFDRSxnQ0FBQTtFQUNBLG1CQUFBO0FBekJKO0FBMkJFO0VBQ0UsZ0NBQUE7QUF6Qko7QUEyQkU7RUFDRSxnQ0FBQTtBQXpCSjs7QUE2QkE7RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0FBMUJGO0FBNEJFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUVBLGFBQUE7RUFDQSx5QkVoaUJPO0VGaWlCUCx5QkFBQTtBQTNCSjtBQThCRTtFQUNFLGNBQUE7RUFDQSxnQkFBQTtBQTVCSjtBQThCSTtFQUNFLGtCQUFBO0FBNUJOO0FBZ0NFOztFQUVFLGdCQUFBO0FBOUJKO0FBaUNFOztFQUVFLGdCQUFBO0FBL0JKO0FBa0NFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7QUFoQ0o7QUFrQ0k7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7QUFoQ05cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcbkBpbXBvcnQgXFxcIi4vdGhlbWVcXFwiO1xcblxcbjpyb290IHtcXG4gIC0tekluZGV4LWNhbnZhczogMTtcXG4gIC0tekluZGV4LXd5c2l3eWc6IDI7XFxuICAtLXpJbmRleC1sYXllclVJOiAzO1xcbn1cXG5cXG4uZXhjYWxpZHJhdyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuXFxuICAmOmZvY3VzIHtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gIH1cXG5cXG4gIC8vIHNlcnZlcyAyIHB1cnBvc2VzOlxcbiAgLy8gMS4gcHJldmVudCBzZWxlY3RpbmcgdGV4dCBvdXRzaWRlIHRoZSBjb21wb25lbnQgd2hlbiBkb3VibGUtY2xpY2tpbmcgb3JcXG4gIC8vICAgIGRyYWdnaW5nIGluc2lkZSBpdCAoZS5nLiBvbiBjYW52YXMpXFxuICAvLyAyLiBwcmV2ZW50IHNlbGVjdGluZyBVSSwgYm90aCBmcm9tIHRoZSBpbnNpZGUsIGFuZCBmcm9tIG91dHNpZGUgdGhlXFxuICAvLyAgICBjb21wb25lbnQgKGUuZy4gaWYgeW91IHNlbGVjdCB0ZXh0IGluIGEgc2lkZWJhcilcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcblxcbiAgYSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgfVxcbiAgfVxcblxcbiAgY2FudmFzIHtcXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xcblxcbiAgICAvLyBmb2xsb3dpbmcgcHJvcHMgaW1wcm92ZSBibHVycmluZXNzIGF0IGNlcnRhaW4gZGV2aWNlUGl4ZWxSYXRpb3MuXFxuICAgIC8vIEFGQUlLIGl0IGRvZXNuJ3QgYWZmZWN0IGV4cG9ydCAoaW4gZmFjdCwgZXhwb3J0IHNlZW1zIHNoYXJwIGVpdGhlciB3YXkpLlxcblxcbiAgICBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsgLy8gY2hyb21pdW1cXG4gICAgLy8gTk9URTogbXVzdCBiZSBkZWNsYXJlZCAqYWZ0ZXIqIHRoZSBhYm92ZVxcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7IC8vIEZGXFxuXFxuICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC1jYW52YXMpO1xcblxcbiAgICAvLyBSZW1vdmUgdGhlIG1haW4gY2FudmFzIGZyb20gZG9jdW1lbnQgZmxvdyB0byBhdm9pZCByZXNpemVPYnNlcnZlclxcbiAgICAvLyBmZWVkYmFjayBsb29wIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzMzNzkpXFxuICB9XFxuXFxuICAmX19jYW52YXMge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB9XFxuXFxuICAmLnRoZW1lLS1kYXJrIHtcXG4gICAgLy8gVGhlIHBlcmNlbnRhZ2UgaXMgaW5zcGlyZWQgYnlcXG4gICAgLy8gaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvZGFyay10aGVtZS5odG1sI3Byb3BlcnRpZXMsIHdoaWNoXFxuICAgIC8vIHJlY29tbWVuZHMgc3VyZmFjZSBjb2xvciBvZiAjMTIxMjEyLCA5MyUgeWllbGRzICMxMTExMTEgZm9yICNGRkZcXG5cXG4gICAgY2FudmFzIHtcXG4gICAgICBmaWx0ZXI6IHZhcigtLXRoZW1lLWZpbHRlcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5GaXhlZFNpZGVDb250YWluZXIge1xcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc2F0LCAwKTtcXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc2FyLCAwKTtcXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2FsLCAwKTtcXG4gIH1cXG5cXG4gIC5wYW5lbFJvdyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIH1cXG5cXG4gIC5wYW5lbENvbHVtbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuXFxuICAgIGgzLFxcbiAgICBsZWdlbmQsXFxuICAgIC5jb250cm9sLWxhYmVsIHtcXG4gICAgICBtYXJnaW4tdG9wOiAwLjMzM3JlbTtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjMzM3JlbTtcXG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XFxuICAgICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeS1jb2xvcik7XFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgIH1cXG5cXG4gICAgLmNvbnRyb2wtbGFiZWwgaW5wdXQge1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICB9XFxuXFxuICAgIGgzOmZpcnN0LWNoaWxkLFxcbiAgICBsZWdlbmQ6Zmlyc3QtY2hpbGQsXFxuICAgIC5jb250cm9sLWxhYmVsOmZpcnN0LWNoaWxkIHtcXG4gICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICB9XFxuXFxuICAgIGxlZ2VuZCB7XFxuICAgICAgcGFkZGluZzogMDtcXG4gICAgfVxcblxcbiAgICAuaWNvblNlbGVjdExpc3Qge1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIH1cXG5cXG4gICAgLmJ1dHRvbkxpc3Qge1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG5cXG4gICAgICBsYWJlbCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgfVxcblxcbiAgICAgIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0sXFxuICAgICAgaW5wdXRbdHlwZT1cXFwiYnV0dG9uXFxcIl0ge1xcbiAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgIH1cXG5cXG4gICAgICAuaWNvblJvdyB7XFxuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICAgICAgfVxcblxcbiAgICAgIC5Ub29sSWNvbiB7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcblxcbiAgICAgICAgJjpmb2N1cyB7XFxuICAgICAgICAgIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAmOmRpc2FibGVkIHtcXG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICAgIHdpZHRoOiAyOHB4O1xcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICBmaWVsZHNldCB7XFxuICAgICAgbWFyZ2luOiAwO1xcbiAgICAgIG1hcmdpbi10b3A6IDAuMzMzcmVtO1xcbiAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgYm9yZGVyOiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGl2aWRlciB7XFxuICAgIHdpZHRoOiAxcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvYy1ncmF5LTI7XFxuICAgIG1hcmdpbjogMXB4O1xcbiAgfVxcblxcbiAgLmJ1dHRvbkxpc3QgbGFiZWw6Zm9jdXMtd2l0aGluLFxcbiAgaW5wdXQ6Zm9jdXMtdmlzaWJsZSB7XFxuICAgIG91dGxpbmU6IHRyYW5zcGFyZW50O1xcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gIH1cXG5cXG4gIGJ1dHRvbixcXG4gIC5idXR0b25MaXN0IGxhYmVsIHtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpO1xcbiAgICBtYXJnaW46IDAuMTI1cmVtIDA7XFxuICAgIHBhZGRpbmc6IDAuMjVyZW07XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIH1cXG5cXG4gICAgJjpkaXNhYmxlZCB7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmFjdGl2ZSxcXG4gIC5idXR0b25MaXN0IGxhYmVsLmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcblxcbiAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VzdCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5idXR0b25MaXN0LmJ1dHRvbkxpc3RJY29uIHtcXG4gICAgbGFiZWwge1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgc3ZnIHtcXG4gICAgICAgIHdpZHRoOiAzNXB4O1xcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xcbiAgICAgICAgcGFkZGluZzogMnB4O1xcbiAgICAgICAgb3BhY2l0eTogMC42O1xcbiAgICAgIH1cXG4gICAgICAmLmFjdGl2ZSBzdmcge1xcbiAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5BcHAtdG9wLWJhciB7XFxuICAgIHotaW5kZXg6IHZhcigtLXpJbmRleC1sYXllclVJKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIC5BcHAtYm90dG9tLWJhciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICAtLWJhci1wYWRkaW5nOiBjYWxjKDQgKiB2YXIoLS1zcGFjZS1mYWN0b3IpKTtcXG4gICAgcGFkZGluZy10b3A6ICN7XFxcIm1heCh2YXIoLS1iYXItcGFkZGluZyksIHZhcigtLXNhdCwwKSlcXFwifTtcXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc2FyLCAwKTtcXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNhYiwgMCk7XFxuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2FsLCAwKTtcXG4gICAgei1pbmRleDogNDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG5cXG4gICAgPiAuSXNsYW5kIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgICAgbWluLXdpZHRoOiAxMDAlO1xcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgbWF4LWhlaWdodDogMTAwJTtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XFxuXFxuICAgICAgLnBhbmVsQ29sdW1uIHtcXG4gICAgICAgIHBhZGRpbmc6IDhweCA4cHggMCA4cHg7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuQXBwLXRvb2xiYXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG5cXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgLmVyYXNlciB7XFxuICAgICAgJi5Ub29sSWNvbjpob3ZlciB7XFxuICAgICAgICAtLWljb24tZmlsbC1jb2xvcjogI2ZmZjtcXG4gICAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI2ZmZjtcXG4gICAgICB9XFxuICAgICAgJi5hY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuQXBwLXRvb2xiYXItY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgcGFkZGluZzogOHB4O1xcbiAgfVxcblxcbiAgLkFwcC1tb2JpbGUtbWVudSB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1iYXItcGFkZGluZyk7XFxuICB9XFxuXFxuICAuQXBwLW1lbnUge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV90b3Age1xcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWF4LWNvbnRlbnQgYXV0bztcXG4gICAgZ3JpZC1nYXA6IDRweDtcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG5cXG4gIC5sYXllci11aV9fd3JhcHBlcjpub3QoLmRpc2FibGUtcG9pbnRlckV2ZW50cykgLkFwcC1tZW51X3RvcCA+ICoge1xcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xcbiAgfVxcblxcbiAgLkFwcC1tZW51X3RvcCA+ICo6Zmlyc3QtY2hpbGQge1xcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XFxuICB9XFxuXFxuICAuQXBwLW1lbnVfdG9wID4gKjpsYXN0LWNoaWxkIHtcXG4gICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV9ib3R0b20ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW4tY29udGVudCBhdXRvIG1pbi1jb250ZW50O1xcbiAgICBncmlkLWdhcDogMTVweDtcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJsdHJcXFwiXSAmIHtcXG4gICAgICBsZWZ0OiAwLjI1cmVtO1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IDAuMjVyZW07XFxuICAgIH1cXG5cXG4gICAgJi0tdHJhbnNpdGlvbi1sZWZ0IHtcXG4gICAgICBzZWN0aW9uIHtcXG4gICAgICAgIHdpZHRoOiAxODVweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgc2VjdGlvbiB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLkFwcC1tZW51X2JvdHRvbSA+ICo6Zmlyc3QtY2hpbGQge1xcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XFxuICB9XFxuXFxuICAuQXBwLW1lbnVfYm90dG9tID4gKjpsYXN0LWNoaWxkIHtcXG4gICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV9sZWZ0IHtcXG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnIgYXV0byAxZnI7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gIH1cXG5cXG4gIC5BcHAtbWVudV9yaWdodCB7XFxuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICB9XFxuXFxuICAuQXBwLW1lbnVfX2xlZnQge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctaXNsYW5kKTtcXG4gIH1cXG5cXG4gIC5kcm9wZG93bi1zZWxlY3Qge1xcbiAgICBoZWlnaHQ6IDEuNXJlbTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNXJlbTtcXG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAxLjVyZW07XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBhcHBlYXJhbmNlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kcm9wZG93bi1pY29uKTtcXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43cmVtIHRvcCA1MCUsIDAgMDtcXG5cXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDAuN3JlbSB0b3AgNTAlLCAwIDA7XFxuICAgIH1cXG5cXG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjY1ZW0gYXV0bywgMTAwJTtcXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuekluZGV4QnV0dG9uIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogMThweDtcXG4gICAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5zY3JvbGwtYmFjay10by1jb250ZW50IHtcXG4gICAgY29sb3I6IHZhcigtLXBvcHVwLXRleHQtY29sb3IpO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgYm90dG9tOiAzMHB4O1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gIH1cXG5cXG4gIC5oZWxwLWljb24ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGZpbGw6ICRvYy1ncmF5LTY7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IDEuNXJlbTtcXG4gICAgICBoZWlnaHQ6IDEuNXJlbTtcXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAucmVzZXQtem9vbS1idXR0b24ge1xcbiAgICBwYWRkaW5nOiAwLjJlbTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICB9XFxuXFxuICAuZmluYWxpemUtYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcXG4gICAgZ2FwOiAwLjRlbTtcXG4gICAgbWFyZ2luLXRvcDogYXV0bztcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcXG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMC42ZW07XFxuICB9XFxuXFxuICAudW5kby1yZWRvLWJ1dHRvbnMsXFxuICAuZXJhc2VyLWJ1dHRvbnMge1xcbiAgICBkaXNwbGF5OiBncmlkO1xcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xcbiAgICBnYXA6IDAuNGVtO1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwLjZlbTtcXG4gIH1cXG5cXG4gIEBpbmNsdWRlIGlzTW9iaWxlIHtcXG4gICAgYXNpZGUge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIH1cXG4gICAgLnNjcm9sbC1iYWNrLXRvLWNvbnRlbnQge1xcbiAgICAgIGJvdHRvbTogY2FsYyg4MHB4ICsgdmFyKC0tc2FiLCAwKSk7XFxuICAgICAgei1pbmRleDogLTE7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5ydGwtbWlycm9yIHtcXG4gICAgOnJvb3RbZGlyPVxcXCJydGxcXFwiXSAmIHtcXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC56ZW4tbW9kZS12aXNpYmlsaXR5IHtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xcblxcbiAgICAmLnplbi1tb2RlLXZpc2liaWxpdHktLWhpZGRlbiB7XFxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgaGVpZ2h0OiAwO1xcbiAgICAgIHdpZHRoOiAwO1xcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRpc2FibGUtcG9pbnRlckV2ZW50cyB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxuXFxuICAmLmV4Y2FsaWRyYXctLXZpZXctbW9kZSB7XFxuICAgIC5BcHAtbWVudSB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIH1cXG4gIH1cXG5cXG4gIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG4gIHRleHRhcmVhOm5vdCguZXhjYWxpZHJhdy13eXNpd3lnKSB7XFxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnktY29sb3IpO1xcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7XFxuICAgIHBhZGRpbmc6IDAuNzVyZW07XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJnLWNvbG9yKTtcXG5cXG4gICAgJjpub3QoOmZvY3VzKSB7XFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1ob3Zlci1iZy1jb2xvcik7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSBwcmludCB7XFxuICAgIC5BcHAtYm90dG9tLWJhcixcXG4gICAgLkZpeGVkU2lkZUNvbnRhaW5lcixcXG4gICAgLmxheWVyLXVpX193cmFwcGVyIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAvLyB1c2UgY3VzdG9tLCBtaW5pbWFsaXN0aWMgc2Nyb2xsYmFyXFxuICAvLyAoZG9lc24ndCB3b3JrIGluIEZpcmVmb3gpXFxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcXG4gICAgd2lkdGg6IDVweDtcXG4gIH1cXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcXG4gIH1cXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gIH1cXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICB9XFxufVxcblxcbi5FcnJvclNwbGFzaC5leGNhbGlkcmF3IHtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbiAgcGFkZGluZzogMjBweCAwO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuXFxuICAuRXJyb3JTcGxhc2gtbWVzc2FnZUNvbnRhaW5lciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcblxcbiAgICBwYWRkaW5nOiA0MHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2MtcmVkLTE7XFxuICAgIGJvcmRlcjogM3B4IHNvbGlkICRvYy1yZWQtOTtcXG4gIH1cXG5cXG4gIC5FcnJvclNwbGFzaC1wYXJhZ3JhcGgge1xcbiAgICBtYXJnaW46IDE1cHggMDtcXG4gICAgbWF4LXdpZHRoOiA2MDBweDtcXG5cXG4gICAgJi5hbGlnbi1jZW50ZXIge1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmJpZ2dlcixcXG4gIC5iaWdnZXIgYnV0dG9uIHtcXG4gICAgZm9udC1zaXplOiAxLjFlbTtcXG4gIH1cXG5cXG4gIC5zbWFsbGVyLFxcbiAgLnNtYWxsZXIgYnV0dG9uIHtcXG4gICAgZm9udC1zaXplOiAwLjllbTtcXG4gIH1cXG5cXG4gIC5FcnJvclNwbGFzaC1kZXRhaWxzIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuXFxuICAgIHRleHRhcmVhIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBtYXJnaW46IDEwcHggMDtcXG4gICAgICBmb250LWZhbWlseTogXFxcIkNhc2NhZGlhXFxcIjtcXG4gICAgICBmb250LXNpemU6IDAuOGVtO1xcbiAgICB9XFxuICB9XFxufVxcblwiLFwiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcbkBpbXBvcnQgXFxcIi4vdmFyaWFibGVzLm1vZHVsZS5zY3NzXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAtLXRoZW1lLWZpbHRlcjogbm9uZTtcXG4gIC0tYnV0dG9uLWRlc3RydWN0aXZlLWJnLWNvbG9yOiAjeyRvYy1yZWQtMX07XFxuICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvcjogI3skb2MtcmVkLTl9O1xcbiAgLS1idXR0b24tZ3JheS0xOiAjeyRvYy1ncmF5LTJ9O1xcbiAgLS1idXR0b24tZ3JheS0yOiAjeyRvYy1ncmF5LTR9O1xcbiAgLS1idXR0b24tZ3JheS0zOiAjeyRvYy1ncmF5LTV9O1xcbiAgLS1idXR0b24tc3BlY2lhbC1hY3RpdmUtYmctY29sb3I6ICN7JG9jLWdyZWVuLTB9O1xcbiAgLS1kaWFsb2ctYm9yZGVyLWNvbG9yOiAjeyRvYy1ncmF5LTZ9O1xcbiAgLS1kcm9wZG93bi1pY29uOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgd2lkdGg9XFxcIjI5Mi40XFxcIiBoZWlnaHQ9XFxcIjI5Mi40XFxcIiB2aWV3Qm94PVxcXCIwIDAgMjkyIDI5MlxcXCI+PHBhdGggZD1cXFwiTTI4NyAxOTdMMTU5IDY5Yy00LTMtOC01LTEzLTVzLTkgMi0xMyA1TDUgMTk3Yy0zIDQtNSA4LTUgMTNzMiA5IDUgMTNjNCA0IDggNSAxMyA1aDI1NmM1IDAgOS0xIDEzLTVzNS04IDUtMTMtMS05LTUtMTN6XFxcIi8+PC9zdmc+Jyk7XFxuICAtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcjogI3skb2MtYmx1ZS0yfTtcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy1ncmF5LTl9O1xcbiAgLS1pY29uLWdyZWVuLWZpbGwtY29sb3I6ICN7JG9jLWdyZWVuLTl9O1xcbiAgLS1kZWZhdWx0LWJnLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAtLWlucHV0LWJnLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAtLWlucHV0LWJvcmRlci1jb2xvcjogI3skb2MtZ3JheS00fTtcXG4gIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICN7JG9jLWdyYXktMX07XFxuICAtLWlucHV0LWxhYmVsLWNvbG9yOiAjeyRvYy1ncmF5LTd9O1xcbiAgLS1pc2xhbmQtYmctY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Nik7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLWdyYXktNX07XFxuICAtLWxpbmstY29sb3I6ICN7JG9jLWJsdWUtN307XFxuICAtLW92ZXJsYXktYmctY29sb3I6ICN7dHJhbnNwYXJlbnRpemUoJG9jLXdoaXRlLCAwLjEyKX07XFxuICAtLXBvcHVwLWJnLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAtLXBvcHVwLXNlY29uZGFyeS1iZy1jb2xvcjogI3skb2MtZ3JheS0xfTtcXG4gIC0tcG9wdXAtdGV4dC1jb2xvcjogI3skb2MtYmxhY2t9O1xcbiAgLS1wb3B1cC10ZXh0LWludmVydGVkLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAtLXNhYjogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgLS1zYWw6IGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCk7XFxuICAtLXNhcjogZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCk7XFxuICAtLXNhdDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbiAgLS1zZWxlY3QtaGlnaGxpZ2h0LWNvbG9yOiAjeyRvYy1ibHVlLTV9O1xcbiAgLS1zaGFkb3ctaXNsYW5kOiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTIlKTtcXG5cXG4gIC0tc3BhY2UtZmFjdG9yOiAwLjI1cmVtO1xcbiAgLS10ZXh0LXByaW1hcnktY29sb3I6ICN7JG9jLWdyYXktOH07XFxuXFxuICAtLWNvbG9yLXByaW1hcnk6ICM2OTY1ZGI7XFxuICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNWI1N2QxO1xcbiAgLS1jb2xvci1wcmltYXJ5LWRhcmtlc3Q6ICM0YTQ3YjE7XFxuICAtLWNvbG9yLXByaW1hcnktbGlnaHQ6ICNlMmUxZmM7XFxuXFxuICAtLWJvcmRlci1yYWRpdXMtbWQ6IDAuMzc1cmVtO1xcbiAgLS1ib3JkZXItcmFkaXVzLWxnOiAwLjVyZW07XFxuXFxuICAmLnRoZW1lLS1kYXJrIHtcXG4gICAgYmFja2dyb3VuZDogJG9jLWJsYWNrO1xcblxcbiAgICAmLnRoZW1lLS1kYXJrLWJhY2tncm91bmQtbm9uZSB7XFxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi50aGVtZS0tZGFyayB7XFxuICAgIC0tdGhlbWUtZmlsdGVyOiAjeyR0aGVtZS1maWx0ZXJ9O1xcbiAgICAtLWJ1dHRvbi1kZXN0cnVjdGl2ZS1iZy1jb2xvcjogIzVhMDAwMDtcXG4gICAgLS1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3I6ICN7JG9jLXJlZC0zfTtcXG4gICAgLS1idXR0b24tZ3JheS0xOiAjMzYzNjM2O1xcbiAgICAtLWJ1dHRvbi1ncmF5LTI6ICMyNzI3Mjc7XFxuICAgIC0tYnV0dG9uLWdyYXktMzogIzIyMjtcXG4gICAgLS1idXR0b24tc3BlY2lhbC1hY3RpdmUtYmctY29sb3I6ICMyMDQ2MjQ7XFxuICAgIC0tZGlhbG9nLWJvcmRlci1jb2xvcjogI3skb2MtZ3JheS05fTtcXG4gICAgLS1kcm9wZG93bi1pY29uOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgd2lkdGg9XFxcIjI5Mi40XFxcIiBoZWlnaHQ9XFxcIjI5Mi40XFxcIiB2aWV3Qm94PVxcXCIwIDAgMjkyIDI5MlxcXCI+PHBhdGggZmlsbD1cXFwiJTIzY2VkNGRhXFxcIiBkPVxcXCJNMjg3IDE5N0wxNTkgNjljLTQtMy04LTUtMTMtNXMtOSAyLTEzIDVMNSAxOTdjLTMgNC01IDgtNSAxM3MyIDkgNSAxM2M0IDQgOCA1IDEzIDVoMjU2YzUgMCA5LTEgMTMtNXM1LTggNS0xMy0xLTktNS0xM3pcXFwiLz48L3N2Zz4nKTtcXG4gICAgLS1mb2N1cy1oaWdobGlnaHQtY29sb3I6ICN7JG9jLWJsdWUtNn07XFxuICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy1ncmF5LTR9O1xcbiAgICAtLWljb24tZ3JlZW4tZmlsbC1jb2xvcjogI3skb2MtZ3JlZW4tNH07XFxuICAgIC0tZGVmYXVsdC1iZy1jb2xvcjogIzEyMTIxMjtcXG4gICAgLS1pbnB1dC1iZy1jb2xvcjogIzEyMTIxMjtcXG4gICAgLS1pbnB1dC1ib3JkZXItY29sb3I6ICMyZTJlMmU7XFxuICAgIC0taW5wdXQtaG92ZXItYmctY29sb3I6ICMxODE4MTg7XFxuICAgIC0taW5wdXQtbGFiZWwtY29sb3I6ICN7JG9jLWdyYXktMn07XFxuICAgIC0taXNsYW5kLWJnLWNvbG9yOiByZ2JhKDMwLCAzMCwgMzAsIDAuOTgpO1xcbiAgICAtLWtleWJpbmRpbmctY29sb3I6ICN7JG9jLWdyYXktNn07XFxuICAgIC0tbGluay1jb2xvcjogI3skb2MtYmx1ZS00fTtcXG4gICAgLS1vdmVybGF5LWJnLWNvbG9yOiAje3RyYW5zcGFyZW50aXplKCRvYy1ncmF5LTgsIDAuODgpfTtcXG4gICAgLS1wb3B1cC1iZy1jb2xvcjogIzJjMmMyYztcXG4gICAgLS1wb3B1cC1zZWNvbmRhcnktYmctY29sb3I6ICMyMjI7XFxuICAgIC0tcG9wdXAtdGV4dC1jb2xvcjogI3skb2MtZ3JheS00fTtcXG4gICAgLS1wb3B1cC10ZXh0LWludmVydGVkLWNvbG9yOiAjMmMyYzJjO1xcbiAgICAtLXNlbGVjdC1oaWdobGlnaHQtY29sb3I6ICN7JG9jLWJsdWUtNH07XFxuICAgIC0tc2hhZG93LWlzbGFuZDogMXB4IDFweCA1cHggI3t0cmFuc3BhcmVudGl6ZSgkb2MtYmxhY2ssIDAuNyl9O1xcbiAgICAtLXRleHQtcHJpbWFyeS1jb2xvcjogI3skb2MtZ3JheS00fTtcXG5cXG4gICAgLS1jb2xvci1wcmltYXJ5OiAjNTY1MGYwO1xcbiAgICAtLWNvbG9yLXByaW1hcnktZGFya2VyOiAjNGI0NmQ4O1xcbiAgICAtLWNvbG9yLXByaW1hcnktZGFya2VzdDogIzNlMzliZTtcXG4gICAgLS1jb2xvci1wcmltYXJ5LWxpZ2h0OiAjM2YzZDY0O1xcbiAgfVxcbn1cXG5cIixcIi8vXFxuLy9cXG4vLyAg8J2XliDwnZeiIPCdl58g8J2XoiDwnZelXFxuLy8gIHYgMS45LjFcXG4vL1xcbi8vICDilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIFcXG5cXG5cXG4vLyAgR2VuZXJhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXG5cXG5cXG4vLyAgR3JheVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JheS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGY5ZmEsXFxuICBcXFwiMVxcXCI6ICNmMWYzZjUsXFxuICBcXFwiMlxcXCI6ICNlOWVjZWYsXFxuICBcXFwiM1xcXCI6ICNkZWUyZTYsXFxuICBcXFwiNFxcXCI6ICNjZWQ0ZGEsXFxuICBcXFwiNVxcXCI6ICNhZGI1YmQsXFxuICBcXFwiNlxcXCI6ICM4NjhlOTYsXFxuICBcXFwiN1xcXCI6ICM0OTUwNTcsXFxuICBcXFwiOFxcXCI6ICMzNDNhNDAsXFxuICBcXFwiOVxcXCI6ICMyMTI1MjlcXG4pO1xcblxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUmVkXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1yZWQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNWY1LFxcbiAgXFxcIjFcXFwiOiAjZmZlM2UzLFxcbiAgXFxcIjJcXFwiOiAjZmZjOWM5LFxcbiAgXFxcIjNcXFwiOiAjZmZhOGE4LFxcbiAgXFxcIjRcXFwiOiAjZmY4Nzg3LFxcbiAgXFxcIjVcXFwiOiAjZmY2YjZiLFxcbiAgXFxcIjZcXFwiOiAjZmE1MjUyLFxcbiAgXFxcIjdcXFwiOiAjZjAzZTNlLFxcbiAgXFxcIjhcXFwiOiAjZTAzMTMxLFxcbiAgXFxcIjlcXFwiOiAjYzkyYTJhXFxuKTtcXG5cXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBQaW5rXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1waW5rLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjBmNixcXG4gIFxcXCIxXFxcIjogI2ZmZGVlYixcXG4gIFxcXCIyXFxcIjogI2ZjYzJkNyxcXG4gIFxcXCIzXFxcIjogI2ZhYTJjMSxcXG4gIFxcXCI0XFxcIjogI2Y3ODNhYyxcXG4gIFxcXCI1XFxcIjogI2YwNjU5NSxcXG4gIFxcXCI2XFxcIjogI2U2NDk4MCxcXG4gIFxcXCI3XFxcIjogI2Q2MzM2YyxcXG4gIFxcXCI4XFxcIjogI2MyMjU1YyxcXG4gIFxcXCI5XFxcIjogI2E2MWU0ZFxcbik7XFxuXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmFwZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JhcGUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmMGZjLFxcbiAgXFxcIjFcXFwiOiAjZjNkOWZhLFxcbiAgXFxcIjJcXFwiOiAjZWViZWZhLFxcbiAgXFxcIjNcXFwiOiAjZTU5OWY3LFxcbiAgXFxcIjRcXFwiOiAjZGE3N2YyLFxcbiAgXFxcIjVcXFwiOiAjY2M1ZGU4LFxcbiAgXFxcIjZcXFwiOiAjYmU0YmRiLFxcbiAgXFxcIjdcXFwiOiAjYWUzZWM5LFxcbiAgXFxcIjhcXFwiOiAjOWMzNmI1LFxcbiAgXFxcIjlcXFwiOiAjODYyZTljXFxuKTtcXG5cXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVmlvbGV0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy12aW9sZXQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjNmMGZmLFxcbiAgXFxcIjFcXFwiOiAjZTVkYmZmLFxcbiAgXFxcIjJcXFwiOiAjZDBiZmZmLFxcbiAgXFxcIjNcXFwiOiAjYjE5N2ZjLFxcbiAgXFxcIjRcXFwiOiAjOTc3NWZhLFxcbiAgXFxcIjVcXFwiOiAjODQ1ZWY3LFxcbiAgXFxcIjZcXFwiOiAjNzk1MGYyLFxcbiAgXFxcIjdcXFwiOiAjNzA0OGU4LFxcbiAgXFxcIjhcXFwiOiAjNjc0MWQ5LFxcbiAgXFxcIjlcXFwiOiAjNWYzZGM0XFxuKTtcXG5cXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBJbmRpZ29cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWluZGlnby1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlZGYyZmYsXFxuICBcXFwiMVxcXCI6ICNkYmU0ZmYsXFxuICBcXFwiMlxcXCI6ICNiYWM4ZmYsXFxuICBcXFwiM1xcXCI6ICM5MWE3ZmYsXFxuICBcXFwiNFxcXCI6ICM3NDhmZmMsXFxuICBcXFwiNVxcXCI6ICM1YzdjZmEsXFxuICBcXFwiNlxcXCI6ICM0YzZlZjUsXFxuICBcXFwiN1xcXCI6ICM0MjYzZWIsXFxuICBcXFwiOFxcXCI6ICMzYjViZGIsXFxuICBcXFwiOVxcXCI6ICMzNjRmYzdcXG4pO1xcblxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEJsdWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWJsdWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTdmNWZmLFxcbiAgXFxcIjFcXFwiOiAjZDBlYmZmLFxcbiAgXFxcIjJcXFwiOiAjYTVkOGZmLFxcbiAgXFxcIjNcXFwiOiAjNzRjMGZjLFxcbiAgXFxcIjRcXFwiOiAjNGRhYmY3LFxcbiAgXFxcIjVcXFwiOiAjMzM5YWYwLFxcbiAgXFxcIjZcXFwiOiAjMjI4YmU2LFxcbiAgXFxcIjdcXFwiOiAjMWM3ZWQ2LFxcbiAgXFxcIjhcXFwiOiAjMTk3MWMyLFxcbiAgXFxcIjlcXFwiOiAjMTg2NGFiXFxuKTtcXG5cXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEN5YW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWN5YW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTNmYWZjLFxcbiAgXFxcIjFcXFwiOiAjYzVmNmZhLFxcbiAgXFxcIjJcXFwiOiAjOTllOWYyLFxcbiAgXFxcIjNcXFwiOiAjNjZkOWU4LFxcbiAgXFxcIjRcXFwiOiAjM2JjOWRiLFxcbiAgXFxcIjVcXFwiOiAjMjJiOGNmLFxcbiAgXFxcIjZcXFwiOiAjMTVhYWJmLFxcbiAgXFxcIjdcXFwiOiAjMTA5OGFkLFxcbiAgXFxcIjhcXFwiOiAjMGM4NTk5LFxcbiAgXFxcIjlcXFwiOiAjMGI3Mjg1XFxuKTtcXG5cXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFRlYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXRlYWwtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTZmY2Y1LFxcbiAgXFxcIjFcXFwiOiAjYzNmYWU4LFxcbiAgXFxcIjJcXFwiOiAjOTZmMmQ3LFxcbiAgXFxcIjNcXFwiOiAjNjNlNmJlLFxcbiAgXFxcIjRcXFwiOiAjMzhkOWE5LFxcbiAgXFxcIjVcXFwiOiAjMjBjOTk3LFxcbiAgXFxcIjZcXFwiOiAjMTJiODg2LFxcbiAgXFxcIjdcXFwiOiAjMGNhNjc4LFxcbiAgXFxcIjhcXFwiOiAjMDk5MjY4LFxcbiAgXFxcIjlcXFwiOiAjMDg3ZjViXFxuKTtcXG5cXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyZWVuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmVlbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlYmZiZWUsXFxuICBcXFwiMVxcXCI6ICNkM2Y5ZDgsXFxuICBcXFwiMlxcXCI6ICNiMmYyYmIsXFxuICBcXFwiM1xcXCI6ICM4Y2U5OWEsXFxuICBcXFwiNFxcXCI6ICM2OWRiN2MsXFxuICBcXFwiNVxcXCI6ICM1MWNmNjYsXFxuICBcXFwiNlxcXCI6ICM0MGMwNTcsXFxuICBcXFwiN1xcXCI6ICMzN2IyNGQsXFxuICBcXFwiOFxcXCI6ICMyZjllNDQsXFxuICBcXFwiOVxcXCI6ICMyYjhhM2VcXG4pO1xcblxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBMaW1lXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1saW1lLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y0ZmNlMyxcXG4gIFxcXCIxXFxcIjogI2U5ZmFjOCxcXG4gIFxcXCIyXFxcIjogI2Q4ZjVhMixcXG4gIFxcXCIzXFxcIjogI2MwZWI3NSxcXG4gIFxcXCI0XFxcIjogI2E5ZTM0YixcXG4gIFxcXCI1XFxcIjogIzk0ZDgyZCxcXG4gIFxcXCI2XFxcIjogIzgyYzkxZSxcXG4gIFxcXCI3XFxcIjogIzc0YjgxNixcXG4gIFxcXCI4XFxcIjogIzY2YTgwZixcXG4gIFxcXCI5XFxcIjogIzVjOTQwZFxcbik7XFxuXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBZZWxsb3dcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXllbGxvdy1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY5ZGIsXFxuICBcXFwiMVxcXCI6ICNmZmYzYmYsXFxuICBcXFwiMlxcXCI6ICNmZmVjOTksXFxuICBcXFwiM1xcXCI6ICNmZmUwNjYsXFxuICBcXFwiNFxcXCI6ICNmZmQ0M2IsXFxuICBcXFwiNVxcXCI6ICNmY2M0MTksXFxuICBcXFwiNlxcXCI6ICNmYWIwMDUsXFxuICBcXFwiN1xcXCI6ICNmNTlmMDAsXFxuICBcXFwiOFxcXCI6ICNmMDhjMDAsXFxuICBcXFwiOVxcXCI6ICNlNjc3MDBcXG4pO1xcblxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIE9yYW5nZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjRlNixcXG4gIFxcXCIxXFxcIjogI2ZmZThjYyxcXG4gIFxcXCIyXFxcIjogI2ZmZDhhOCxcXG4gIFxcXCIzXFxcIjogI2ZmYzA3OCxcXG4gIFxcXCI0XFxcIjogI2ZmYTk0ZCxcXG4gIFxcXCI1XFxcIjogI2ZmOTIyYixcXG4gIFxcXCI2XFxcIjogI2ZkN2UxNCxcXG4gIFxcXCI3XFxcIjogI2Y3NjcwNyxcXG4gIFxcXCI4XFxcIjogI2U4NTkwYyxcXG4gIFxcXCI5XFxcIjogI2Q5NDgwZlxcbik7XFxuXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ29sb3IgbGlzdFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXG5cXG4kb2MtY29sb3ItbGlzdDogKFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFwiZ3JheVxcXCIsXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcInJlZFxcXCIsXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXCJwaW5rXFxcIixcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXCJncmFwZVxcXCIsXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcInZpb2xldFxcXCIsXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcImluZGlnb1xcXCIsXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXCJibHVlXFxcIixcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcImN5YW5cXFwiLFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFwidGVhbFxcXCIsXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFwiZ3JlZW5cXFwiLFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFwibGltZVxcXCIsXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcInllbGxvd1xcXCIsXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcIm9yYW5nZVxcXCJcXG4pO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../css/styles.scss\n");
1648
1424
 
1649
1425
  /***/ }),
1650
1426
 
@@ -1798,7 +1574,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1798
1574
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1799
1575
 
1800
1576
  "use strict";
1801
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"actionChangeExportBackground\": () => (/* binding */ actionChangeExportBackground),\n/* harmony export */ \"actionChangeExportEmbedScene\": () => (/* binding */ actionChangeExportEmbedScene),\n/* harmony export */ \"actionChangeExportScale\": () => (/* binding */ actionChangeExportScale),\n/* harmony export */ \"actionChangeProjectName\": () => (/* binding */ actionChangeProjectName),\n/* harmony export */ \"actionExportWithDarkMode\": () => (/* binding */ actionExportWithDarkMode),\n/* harmony export */ \"actionLoadScene\": () => (/* binding */ actionLoadScene),\n/* harmony export */ \"actionSaveFileToDisk\": () => (/* binding */ actionSaveFileToDisk),\n/* harmony export */ \"actionSaveToActiveFile\": () => (/* binding */ actionSaveToActiveFile)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var _components_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _components_ProjectName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/ProjectName */ \"../../components/ProjectName.tsx\");\n/* harmony import */ var _components_ToolButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/ToolIcon.scss */ \"../../components/ToolIcon.scss\");\n/* harmony import */ var _components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Tooltip */ \"../../components/Tooltip.tsx\");\n/* harmony import */ var _components_DarkModeToggle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/DarkModeToggle */ \"../../components/DarkModeToggle.tsx\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data */ \"../../data/index.ts\");\n/* harmony import */ var _data_resave__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data/resave */ \"../../data/resave.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../keys */ \"../../keys.ts\");\n/* harmony import */ var _register__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./register */ \"../../actions/register.ts\");\n/* harmony import */ var _components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/CheckboxItem */ \"../../components/CheckboxItem.tsx\");\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _components_ActiveFile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../components/ActiveFile */ \"../../components/ActiveFile.tsx\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _data_filesystem__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../data/filesystem */ \"../../data/filesystem.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst actionChangeProjectName = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeProjectName\",\n trackEvent: false,\n perform: (_elements, appState, value) => {\n return { appState: Object.assign(Object.assign({}, appState), { name: value }), commitToHistory: false };\n },\n PanelComponent: ({ appState, updateData, appProps }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ProjectName__WEBPACK_IMPORTED_MODULE_2__.ProjectName, { label: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.fileTitle\"), value: appState.name || \"Unnamed\", onChange: (name) => updateData(name), isNameEditable: typeof appProps.name === \"undefined\" && !appState.viewModeEnabled })),\n});\nconst actionChangeExportScale = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportScale\",\n trackEvent: { category: \"export\", action: \"scale\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportScale: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ elements: allElements, appState, updateData }) => {\n const elements = (0,_element__WEBPACK_IMPORTED_MODULE_17__.getNonDeletedElements)(allElements);\n const exportSelected = (0,_scene__WEBPACK_IMPORTED_MODULE_16__.isSomeElementSelected)(elements, appState);\n const exportedElements = exportSelected\n ? (0,_scene__WEBPACK_IMPORTED_MODULE_16__.getSelectedElements)(elements, appState)\n : elements;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: _constants__WEBPACK_IMPORTED_MODULE_15__.EXPORT_SCALES.map((s) => {\n const [width, height] = (0,_scene_export__WEBPACK_IMPORTED_MODULE_14__.getExportSize)(exportedElements, _constants__WEBPACK_IMPORTED_MODULE_15__.DEFAULT_EXPORT_PADDING, s);\n const scaleButtonTitle = `${(0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.scale\")} ${s}x (${width}x${height})`;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { size: \"small\", type: \"radio\", icon: `${s}x`, name: \"export-canvas-scale\", title: scaleButtonTitle, \"aria-label\": scaleButtonTitle, id: \"export-canvas-scale\", checked: s === appState.exportScale, onChange: () => updateData(s) }, s));\n }) }));\n },\n});\nconst actionChangeExportBackground = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportBackground\",\n trackEvent: { category: \"export\", action: \"toggleBackground\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportBackground: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__.CheckboxItem, Object.assign({ checked: appState.exportBackground, onChange: (checked) => updateData(checked) }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.withBackground\") }))),\n});\nconst actionChangeExportEmbedScene = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportEmbedScene\",\n trackEvent: { category: \"export\", action: \"embedScene\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportEmbedScene: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__.CheckboxItem, Object.assign({ checked: appState.exportEmbedScene, onChange: (checked) => updateData(checked) }, { children: [(0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.exportEmbedScene\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_Tooltip__WEBPACK_IMPORTED_MODULE_5__.Tooltip, Object.assign({ label: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.exportEmbedScene_details\"), long: true }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"excalidraw-tooltip-icon\" }, { children: _components_icons__WEBPACK_IMPORTED_MODULE_1__.questionCircle })) }))] }))),\n});\nconst actionSaveToActiveFile = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"saveToActiveFile\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, value, app) => __awaiter(void 0, void 0, void 0, function* () {\n const fileHandleExists = !!appState.fileHandle;\n try {\n const { fileHandle } = (0,_data_blob__WEBPACK_IMPORTED_MODULE_19__.isImageFileHandle)(appState.fileHandle)\n ? yield (0,_data_resave__WEBPACK_IMPORTED_MODULE_8__.resaveAsImageWithScene)(elements, appState, app.files)\n : yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.saveAsJSON)(elements, appState, app.files);\n return {\n commitToHistory: false,\n appState: Object.assign(Object.assign({}, appState), { fileHandle, toast: fileHandleExists\n ? {\n message: (fileHandle === null || fileHandle === void 0 ? void 0 : fileHandle.name)\n ? (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"toast.fileSavedToFilename\").replace(\"{filename}\", `\"${fileHandle.name}\"`)\n : (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"toast.fileSaved\"),\n }\n : null }),\n };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) !== \"AbortError\") {\n console.error(error);\n }\n else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n }),\n keyTest: (event) => event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.S && event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD] && !event.shiftKey,\n PanelComponent: ({ updateData, appState }) => {\n var _a;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ActiveFile__WEBPACK_IMPORTED_MODULE_18__.ActiveFile, { onSave: () => updateData(null), fileName: (_a = appState.fileHandle) === null || _a === void 0 ? void 0 : _a.name }));\n },\n});\nconst actionSaveFileToDisk = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"saveFileToDisk\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, value, app) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const { fileHandle } = yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.saveAsJSON)(elements, Object.assign(Object.assign({}, appState), { fileHandle: null }), app.files);\n return { commitToHistory: false, appState: Object.assign(Object.assign({}, appState), { fileHandle }) };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) !== \"AbortError\") {\n console.error(error);\n }\n else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n }),\n keyTest: (event) => event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.S && event.shiftKey && event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD],\n PanelComponent: ({ updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { type: \"button\", icon: _components_icons__WEBPACK_IMPORTED_MODULE_1__.saveAs, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.saveAs\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.saveAs\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_10__.useDevice)().isMobile, hidden: !_data_filesystem__WEBPACK_IMPORTED_MODULE_20__.nativeFileSystemSupported, onClick: () => updateData(null), \"data-testid\": \"save-as-button\" })),\n});\nconst actionLoadScene = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"loadScene\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, _, app) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const { elements: loadedElements, appState: loadedAppState, files, } = yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.loadFromJSON)(appState, elements);\n return {\n elements: loadedElements,\n appState: loadedAppState,\n files,\n commitToHistory: true,\n };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return false;\n }\n return {\n elements,\n appState: Object.assign(Object.assign({}, appState), { errorMessage: error.message }),\n files: app.files,\n commitToHistory: false,\n };\n }\n }),\n keyTest: (event) => event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD] && event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.O,\n PanelComponent: ({ updateData, appState }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { type: \"button\", icon: _components_icons__WEBPACK_IMPORTED_MODULE_1__.load, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.load\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.load\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_10__.useDevice)().isMobile, onClick: updateData, \"data-testid\": \"load-button\" })),\n});\nconst actionExportWithDarkMode = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"exportWithDarkMode\",\n trackEvent: { category: \"export\", action: \"toggleTheme\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportWithDarkMode: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginTop: \"-45px\",\n marginBottom: \"10px\",\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_DarkModeToggle__WEBPACK_IMPORTED_MODULE_6__.DarkModeToggle, { value: appState.exportWithDarkMode ? _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.DARK : _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.LIGHT, onChange: (theme) => {\n updateData(theme === _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.DARK);\n }, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.toggleExportColorScheme\") }) }))),\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UDtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9hY3Rpb25zL2FjdGlvbkV4cG9ydC50c3g/NmYyZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2FkLCBxdWVzdGlvbkNpcmNsZSwgc2F2ZUFzIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNvbnNcIjtcbmltcG9ydCB7IFByb2plY3ROYW1lIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvUHJvamVjdE5hbWVcIjtcbmltcG9ydCB7IFRvb2xCdXR0b24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uXCI7XG5pbXBvcnQgXCIuLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3NcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Ub29sdGlwXCI7XG5pbXBvcnQgeyBEYXJrTW9kZVRvZ2dsZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL0RhcmtNb2RlVG9nZ2xlXCI7XG5pbXBvcnQgeyBsb2FkRnJvbUpTT04sIHNhdmVBc0pTT04gfSBmcm9tIFwiLi4vZGF0YVwiO1xuaW1wb3J0IHsgcmVzYXZlQXNJbWFnZVdpdGhTY2VuZSB9IGZyb20gXCIuLi9kYXRhL3Jlc2F2ZVwiO1xuaW1wb3J0IHsgdCB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyB1c2VEZXZpY2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcHBcIjtcbmltcG9ydCB7IEtFWVMgfSBmcm9tIFwiLi4va2V5c1wiO1xuaW1wb3J0IHsgcmVnaXN0ZXIgfSBmcm9tIFwiLi9yZWdpc3RlclwiO1xuaW1wb3J0IHsgQ2hlY2tib3hJdGVtIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQ2hlY2tib3hJdGVtXCI7XG5pbXBvcnQgeyBnZXRFeHBvcnRTaXplIH0gZnJvbSBcIi4uL3NjZW5lL2V4cG9ydFwiO1xuaW1wb3J0IHsgREVGQVVMVF9FWFBPUlRfUEFERElORywgRVhQT1JUX1NDQUxFUywgVEhFTUUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NvbWVFbGVtZW50U2VsZWN0ZWQgfSBmcm9tIFwiLi4vc2NlbmVcIjtcbmltcG9ydCB7IGdldE5vbkRlbGV0ZWRFbGVtZW50cyB9IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgeyBBY3RpdmVGaWxlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvQWN0aXZlRmlsZVwiO1xuaW1wb3J0IHsgaXNJbWFnZUZpbGVIYW5kbGUgfSBmcm9tIFwiLi4vZGF0YS9ibG9iXCI7XG5pbXBvcnQgeyBuYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkIH0gZnJvbSBcIi4uL2RhdGEvZmlsZXN5c3RlbVwiO1xuaW1wb3J0IHsgVGhlbWUgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uQ2hhbmdlUHJvamVjdE5hbWUgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwiY2hhbmdlUHJvamVjdE5hbWVcIixcbiAgdHJhY2tFdmVudDogZmFsc2UsXG4gIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xuICAgIHJldHVybiB7IGFwcFN0YXRlOiB7IC4uLmFwcFN0YXRlLCBuYW1lOiB2YWx1ZSB9LCBjb21taXRUb0hpc3Rvcnk6IGZhbHNlIH07XG4gIH0sXG4gIFBhbmVsQ29tcG9uZW50OiAoeyBhcHBTdGF0ZSwgdXBkYXRlRGF0YSwgYXBwUHJvcHMgfSkgPT4gKFxuICAgIDxQcm9qZWN0TmFtZVxuICAgICAgbGFiZWw9e3QoXCJsYWJlbHMuZmlsZVRpdGxlXCIpfVxuICAgICAgdmFsdWU9e2FwcFN0YXRlLm5hbWUgfHwgXCJVbm5hbWVkXCJ9XG4gICAgICBvbkNoYW5nZT17KG5hbWU6IHN0cmluZykgPT4gdXBkYXRlRGF0YShuYW1lKX1cbiAgICAgIGlzTmFtZUVkaXRhYmxlPXtcbiAgICAgICAgdHlwZW9mIGFwcFByb3BzLm5hbWUgPT09IFwidW5kZWZpbmVkXCIgJiYgIWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZFxuICAgICAgfVxuICAgIC8+XG4gICksXG59KTtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkNoYW5nZUV4cG9ydFNjYWxlID0gcmVnaXN0ZXIoe1xuICBuYW1lOiBcImNoYW5nZUV4cG9ydFNjYWxlXCIsXG4gIHRyYWNrRXZlbnQ6IHsgY2F0ZWdvcnk6IFwiZXhwb3J0XCIsIGFjdGlvbjogXCJzY2FsZVwiIH0sXG4gIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBTdGF0ZTogeyAuLi5hcHBTdGF0ZSwgZXhwb3J0U2NhbGU6IHZhbHVlIH0sXG4gICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxuICAgIH07XG4gIH0sXG4gIFBhbmVsQ29tcG9uZW50OiAoeyBlbGVtZW50czogYWxsRWxlbWVudHMsIGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGdldE5vbkRlbGV0ZWRFbGVtZW50cyhhbGxFbGVtZW50cyk7XG4gICAgY29uc3QgZXhwb3J0U2VsZWN0ZWQgPSBpc1NvbWVFbGVtZW50U2VsZWN0ZWQoZWxlbWVudHMsIGFwcFN0YXRlKTtcbiAgICBjb25zdCBleHBvcnRlZEVsZW1lbnRzID0gZXhwb3J0U2VsZWN0ZWRcbiAgICAgID8gZ2V0U2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUpXG4gICAgICA6IGVsZW1lbnRzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtFWFBPUlRfU0NBTEVTLm1hcCgocykgPT4ge1xuICAgICAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IGdldEV4cG9ydFNpemUoXG4gICAgICAgICAgICBleHBvcnRlZEVsZW1lbnRzLFxuICAgICAgICAgICAgREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICAgICAgICAgIHMsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IHNjYWxlQnV0dG9uVGl0bGUgPSBgJHt0KFxuICAgICAgICAgICAgXCJidXR0b25zLnNjYWxlXCIsXG4gICAgICAgICAgKX0gJHtzfXggKCR7d2lkdGh9eCR7aGVpZ2h0fSlgO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxUb29sQnV0dG9uXG4gICAgICAgICAgICAgIGtleT17c31cbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgaWNvbj17YCR7c314YH1cbiAgICAgICAgICAgICAgbmFtZT1cImV4cG9ydC1jYW52YXMtc2NhbGVcIlxuICAgICAgICAgICAgICB0aXRsZT17c2NhbGVCdXR0b25UaXRsZX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17c2NhbGVCdXR0b25UaXRsZX1cbiAgICAgICAgICAgICAgaWQ9XCJleHBvcnQtY2FudmFzLXNjYWxlXCJcbiAgICAgICAgICAgICAgY2hlY2tlZD17cyA9PT0gYXBwU3RhdGUuZXhwb3J0U2NhbGV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB1cGRhdGVEYXRhKHMpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkNoYW5nZUV4cG9ydEJhY2tncm91bmQgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwiY2hhbmdlRXhwb3J0QmFja2dyb3VuZFwiLFxuICB0cmFja0V2ZW50OiB7IGNhdGVnb3J5OiBcImV4cG9ydFwiLCBhY3Rpb246IFwidG9nZ2xlQmFja2dyb3VuZFwiIH0sXG4gIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBTdGF0ZTogeyAuLi5hcHBTdGF0ZSwgZXhwb3J0QmFja2dyb3VuZDogdmFsdWUgfSxcbiAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IChcbiAgICA8Q2hlY2tib3hJdGVtXG4gICAgICBjaGVja2VkPXthcHBTdGF0ZS5leHBvcnRCYWNrZ3JvdW5kfVxuICAgICAgb25DaGFuZ2U9eyhjaGVja2VkKSA9PiB1cGRhdGVEYXRhKGNoZWNrZWQpfVxuICAgID5cbiAgICAgIHt0KFwibGFiZWxzLndpdGhCYWNrZ3JvdW5kXCIpfVxuICAgIDwvQ2hlY2tib3hJdGVtPlxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25DaGFuZ2VFeHBvcnRFbWJlZFNjZW5lID0gcmVnaXN0ZXIoe1xuICBuYW1lOiBcImNoYW5nZUV4cG9ydEVtYmVkU2NlbmVcIixcbiAgdHJhY2tFdmVudDogeyBjYXRlZ29yeTogXCJleHBvcnRcIiwgYWN0aW9uOiBcImVtYmVkU2NlbmVcIiB9LFxuICBwZXJmb3JtOiAoX2VsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwU3RhdGU6IHsgLi4uYXBwU3RhdGUsIGV4cG9ydEVtYmVkU2NlbmU6IHZhbHVlIH0sXG4gICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxuICAgIH07XG4gIH0sXG4gIFBhbmVsQ29tcG9uZW50OiAoeyBhcHBTdGF0ZSwgdXBkYXRlRGF0YSB9KSA9PiAoXG4gICAgPENoZWNrYm94SXRlbVxuICAgICAgY2hlY2tlZD17YXBwU3RhdGUuZXhwb3J0RW1iZWRTY2VuZX1cbiAgICAgIG9uQ2hhbmdlPXsoY2hlY2tlZCkgPT4gdXBkYXRlRGF0YShjaGVja2VkKX1cbiAgICA+XG4gICAgICB7dChcImxhYmVscy5leHBvcnRFbWJlZFNjZW5lXCIpfVxuICAgICAgPFRvb2x0aXAgbGFiZWw9e3QoXCJsYWJlbHMuZXhwb3J0RW1iZWRTY2VuZV9kZXRhaWxzXCIpfSBsb25nPXt0cnVlfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJleGNhbGlkcmF3LXRvb2x0aXAtaWNvblwiPntxdWVzdGlvbkNpcmNsZX08L2Rpdj5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICA8L0NoZWNrYm94SXRlbT5cbiAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uU2F2ZVRvQWN0aXZlRmlsZSA9IHJlZ2lzdGVyKHtcbiAgbmFtZTogXCJzYXZlVG9BY3RpdmVGaWxlXCIsXG4gIHRyYWNrRXZlbnQ6IHsgY2F0ZWdvcnk6IFwiZXhwb3J0XCIgfSxcbiAgcGVyZm9ybTogYXN5bmMgKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUsIGFwcCkgPT4ge1xuICAgIGNvbnN0IGZpbGVIYW5kbGVFeGlzdHMgPSAhIWFwcFN0YXRlLmZpbGVIYW5kbGU7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBmaWxlSGFuZGxlIH0gPSBpc0ltYWdlRmlsZUhhbmRsZShhcHBTdGF0ZS5maWxlSGFuZGxlKVxuICAgICAgICA/IGF3YWl0IHJlc2F2ZUFzSW1hZ2VXaXRoU2NlbmUoZWxlbWVudHMsIGFwcFN0YXRlLCBhcHAuZmlsZXMpXG4gICAgICAgIDogYXdhaXQgc2F2ZUFzSlNPTihlbGVtZW50cywgYXBwU3RhdGUsIGFwcC5maWxlcyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIGFwcFN0YXRlOiB7XG4gICAgICAgICAgLi4uYXBwU3RhdGUsXG4gICAgICAgICAgZmlsZUhhbmRsZSxcbiAgICAgICAgICB0b2FzdDogZmlsZUhhbmRsZUV4aXN0c1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZmlsZUhhbmRsZT8ubmFtZVxuICAgICAgICAgICAgICAgICAgPyB0KFwidG9hc3QuZmlsZVNhdmVkVG9GaWxlbmFtZVwiKS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgIFwie2ZpbGVuYW1lfVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGBcIiR7ZmlsZUhhbmRsZS5uYW1lfVwiYCxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgOiB0KFwidG9hc3QuZmlsZVNhdmVkXCIpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvcj8ubmFtZSAhPT0gXCJBYm9ydEVycm9yXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSB9O1xuICAgIH1cbiAgfSxcbiAga2V5VGVzdDogKGV2ZW50KSA9PlxuICAgIGV2ZW50LmtleSA9PT0gS0VZUy5TICYmIGV2ZW50W0tFWVMuQ1RSTF9PUl9DTURdICYmICFldmVudC5zaGlmdEtleSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IHVwZGF0ZURhdGEsIGFwcFN0YXRlIH0pID0+IChcbiAgICA8QWN0aXZlRmlsZVxuICAgICAgb25TYXZlPXsoKSA9PiB1cGRhdGVEYXRhKG51bGwpfVxuICAgICAgZmlsZU5hbWU9e2FwcFN0YXRlLmZpbGVIYW5kbGU/Lm5hbWV9XG4gICAgLz5cbiAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uU2F2ZUZpbGVUb0Rpc2sgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwic2F2ZUZpbGVUb0Rpc2tcIixcbiAgdHJhY2tFdmVudDogeyBjYXRlZ29yeTogXCJleHBvcnRcIiB9LFxuICBwZXJmb3JtOiBhc3luYyAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSwgYXBwKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZmlsZUhhbmRsZSB9ID0gYXdhaXQgc2F2ZUFzSlNPTihcbiAgICAgICAgZWxlbWVudHMsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5hcHBTdGF0ZSxcbiAgICAgICAgICBmaWxlSGFuZGxlOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICBhcHAuZmlsZXMsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHsgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSwgYXBwU3RhdGU6IHsgLi4uYXBwU3RhdGUsIGZpbGVIYW5kbGUgfSB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvcj8ubmFtZSAhPT0gXCJBYm9ydEVycm9yXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSB9O1xuICAgIH1cbiAgfSxcbiAga2V5VGVzdDogKGV2ZW50KSA9PlxuICAgIGV2ZW50LmtleSA9PT0gS0VZUy5TICYmIGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50W0tFWVMuQ1RSTF9PUl9DTURdLFxuICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSB9KSA9PiAoXG4gICAgPFRvb2xCdXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgaWNvbj17c2F2ZUFzfVxuICAgICAgdGl0bGU9e3QoXCJidXR0b25zLnNhdmVBc1wiKX1cbiAgICAgIGFyaWEtbGFiZWw9e3QoXCJidXR0b25zLnNhdmVBc1wiKX1cbiAgICAgIHNob3dBcmlhTGFiZWw9e3VzZURldmljZSgpLmlzTW9iaWxlfVxuICAgICAgaGlkZGVuPXshbmF0aXZlRmlsZVN5c3RlbVN1cHBvcnRlZH1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHVwZGF0ZURhdGEobnVsbCl9XG4gICAgICBkYXRhLXRlc3RpZD1cInNhdmUtYXMtYnV0dG9uXCJcbiAgICAvPlxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25Mb2FkU2NlbmUgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwibG9hZFNjZW5lXCIsXG4gIHRyYWNrRXZlbnQ6IHsgY2F0ZWdvcnk6IFwiZXhwb3J0XCIgfSxcbiAgcGVyZm9ybTogYXN5bmMgKGVsZW1lbnRzLCBhcHBTdGF0ZSwgXywgYXBwKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZWxlbWVudHM6IGxvYWRlZEVsZW1lbnRzLFxuICAgICAgICBhcHBTdGF0ZTogbG9hZGVkQXBwU3RhdGUsXG4gICAgICAgIGZpbGVzLFxuICAgICAgfSA9IGF3YWl0IGxvYWRGcm9tSlNPTihhcHBTdGF0ZSwgZWxlbWVudHMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZWxlbWVudHM6IGxvYWRlZEVsZW1lbnRzLFxuICAgICAgICBhcHBTdGF0ZTogbG9hZGVkQXBwU3RhdGUsXG4gICAgICAgIGZpbGVzLFxuICAgICAgICBjb21taXRUb0hpc3Rvcnk6IHRydWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvcj8ubmFtZSA9PT0gXCJBYm9ydEVycm9yXCIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZWxlbWVudHMsXG4gICAgICAgIGFwcFN0YXRlOiB7IC4uLmFwcFN0YXRlLCBlcnJvck1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UgfSxcbiAgICAgICAgZmlsZXM6IGFwcC5maWxlcyxcbiAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuICB9LFxuICBrZXlUZXN0OiAoZXZlbnQpID0+IGV2ZW50W0tFWVMuQ1RSTF9PUl9DTURdICYmIGV2ZW50LmtleSA9PT0gS0VZUy5PLFxuICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSwgYXBwU3RhdGUgfSkgPT4gKFxuICAgIDxUb29sQnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGljb249e2xvYWR9XG4gICAgICB0aXRsZT17dChcImJ1dHRvbnMubG9hZFwiKX1cbiAgICAgIGFyaWEtbGFiZWw9e3QoXCJidXR0b25zLmxvYWRcIil9XG4gICAgICBzaG93QXJpYUxhYmVsPXt1c2VEZXZpY2UoKS5pc01vYmlsZX1cbiAgICAgIG9uQ2xpY2s9e3VwZGF0ZURhdGF9XG4gICAgICBkYXRhLXRlc3RpZD1cImxvYWQtYnV0dG9uXCJcbiAgICAvPlxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25FeHBvcnRXaXRoRGFya01vZGUgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwiZXhwb3J0V2l0aERhcmtNb2RlXCIsXG4gIHRyYWNrRXZlbnQ6IHsgY2F0ZWdvcnk6IFwiZXhwb3J0XCIsIGFjdGlvbjogXCJ0b2dnbGVUaGVtZVwiIH0sXG4gIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBTdGF0ZTogeyAuLi5hcHBTdGF0ZSwgZXhwb3J0V2l0aERhcmtNb2RlOiB2YWx1ZSB9LFxuICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcbiAgICB9O1xuICB9LFxuICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJmbGV4LWVuZFwiLFxuICAgICAgICBtYXJnaW5Ub3A6IFwiLTQ1cHhcIixcbiAgICAgICAgbWFyZ2luQm90dG9tOiBcIjEwcHhcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPERhcmtNb2RlVG9nZ2xlXG4gICAgICAgIHZhbHVlPXthcHBTdGF0ZS5leHBvcnRXaXRoRGFya01vZGUgPyBUSEVNRS5EQVJLIDogVEhFTUUuTElHSFR9XG4gICAgICAgIG9uQ2hhbmdlPXsodGhlbWU6IFRoZW1lKSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSh0aGVtZSA9PT0gVEhFTUUuREFSSyk7XG4gICAgICAgIH19XG4gICAgICAgIHRpdGxlPXt0KFwibGFiZWxzLnRvZ2dsZUV4cG9ydENvbG9yU2NoZW1lXCIpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKSxcbn0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../actions/actionExport.tsx\n");
1577
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"actionChangeExportBackground\": () => (/* binding */ actionChangeExportBackground),\n/* harmony export */ \"actionChangeExportEmbedScene\": () => (/* binding */ actionChangeExportEmbedScene),\n/* harmony export */ \"actionChangeExportScale\": () => (/* binding */ actionChangeExportScale),\n/* harmony export */ \"actionChangeProjectName\": () => (/* binding */ actionChangeProjectName),\n/* harmony export */ \"actionExportWithDarkMode\": () => (/* binding */ actionExportWithDarkMode),\n/* harmony export */ \"actionLoadScene\": () => (/* binding */ actionLoadScene),\n/* harmony export */ \"actionSaveFileToDisk\": () => (/* binding */ actionSaveFileToDisk),\n/* harmony export */ \"actionSaveToActiveFile\": () => (/* binding */ actionSaveToActiveFile)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var _components_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _components_ProjectName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/ProjectName */ \"../../components/ProjectName.tsx\");\n/* harmony import */ var _components_ToolButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/ToolIcon.scss */ \"../../components/ToolIcon.scss\");\n/* harmony import */ var _components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_components_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/Tooltip */ \"../../components/Tooltip.tsx\");\n/* harmony import */ var _components_DarkModeToggle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/DarkModeToggle */ \"../../components/DarkModeToggle.tsx\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data */ \"../../data/index.ts\");\n/* harmony import */ var _data_resave__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data/resave */ \"../../data/resave.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../keys */ \"../../keys.ts\");\n/* harmony import */ var _register__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./register */ \"../../actions/register.ts\");\n/* harmony import */ var _components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../components/CheckboxItem */ \"../../components/CheckboxItem.tsx\");\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _components_ActiveFile__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../components/ActiveFile */ \"../../components/ActiveFile.tsx\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _data_filesystem__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../data/filesystem */ \"../../data/filesystem.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst actionChangeProjectName = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeProjectName\",\n trackEvent: false,\n perform: (_elements, appState, value) => {\n return { appState: Object.assign(Object.assign({}, appState), { name: value }), commitToHistory: false };\n },\n PanelComponent: ({ appState, updateData, appProps }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ProjectName__WEBPACK_IMPORTED_MODULE_2__.ProjectName, { label: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.fileTitle\"), value: appState.name || \"Unnamed\", onChange: (name) => updateData(name), isNameEditable: typeof appProps.name === \"undefined\" && !appState.viewModeEnabled })),\n});\nconst actionChangeExportScale = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportScale\",\n trackEvent: { category: \"export\", action: \"scale\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportScale: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ elements: allElements, appState, updateData }) => {\n const elements = (0,_element__WEBPACK_IMPORTED_MODULE_17__.getNonDeletedElements)(allElements);\n const exportSelected = (0,_scene__WEBPACK_IMPORTED_MODULE_16__.isSomeElementSelected)(elements, appState);\n const exportedElements = exportSelected\n ? (0,_scene__WEBPACK_IMPORTED_MODULE_16__.getSelectedElements)(elements, appState)\n : elements;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: _constants__WEBPACK_IMPORTED_MODULE_15__.EXPORT_SCALES.map((s) => {\n const [width, height] = (0,_scene_export__WEBPACK_IMPORTED_MODULE_14__.getExportSize)(exportedElements, _constants__WEBPACK_IMPORTED_MODULE_15__.DEFAULT_EXPORT_PADDING, s);\n const scaleButtonTitle = `${(0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.scale\")} ${s}x (${width}x${height})`;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { size: \"small\", type: \"radio\", icon: `${s}x`, name: \"export-canvas-scale\", title: scaleButtonTitle, \"aria-label\": scaleButtonTitle, id: \"export-canvas-scale\", checked: s === appState.exportScale, onChange: () => updateData(s) }, s));\n }) }));\n },\n});\nconst actionChangeExportBackground = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportBackground\",\n trackEvent: { category: \"export\", action: \"toggleBackground\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportBackground: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__.CheckboxItem, Object.assign({ checked: appState.exportBackground, onChange: (checked) => updateData(checked) }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.withBackground\") }))),\n});\nconst actionChangeExportEmbedScene = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"changeExportEmbedScene\",\n trackEvent: { category: \"export\", action: \"embedScene\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportEmbedScene: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components_CheckboxItem__WEBPACK_IMPORTED_MODULE_13__.CheckboxItem, Object.assign({ checked: appState.exportEmbedScene, onChange: (checked) => updateData(checked) }, { children: [(0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.exportEmbedScene\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_Tooltip__WEBPACK_IMPORTED_MODULE_5__.Tooltip, Object.assign({ label: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.exportEmbedScene_details\"), long: true }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"excalidraw-tooltip-icon\" }, { children: _components_icons__WEBPACK_IMPORTED_MODULE_1__.questionCircle })) }))] }))),\n});\nconst actionSaveToActiveFile = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"saveToActiveFile\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, value, app) => __awaiter(void 0, void 0, void 0, function* () {\n const fileHandleExists = !!appState.fileHandle;\n try {\n const { fileHandle } = (0,_data_blob__WEBPACK_IMPORTED_MODULE_19__.isImageFileHandle)(appState.fileHandle)\n ? yield (0,_data_resave__WEBPACK_IMPORTED_MODULE_8__.resaveAsImageWithScene)(elements, appState, app.files)\n : yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.saveAsJSON)(elements, appState, app.files);\n return {\n commitToHistory: false,\n appState: Object.assign(Object.assign({}, appState), { fileHandle, toast: fileHandleExists\n ? {\n message: (fileHandle === null || fileHandle === void 0 ? void 0 : fileHandle.name)\n ? (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"toast.fileSavedToFilename\").replace(\"{filename}\", `\"${fileHandle.name}\"`)\n : (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"toast.fileSaved\"),\n }\n : null }),\n };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) !== \"AbortError\") {\n console.error(error);\n }\n else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n }),\n keyTest: (event) => event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.S && event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD] && !event.shiftKey,\n PanelComponent: ({ updateData, appState }) => {\n var _a;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ActiveFile__WEBPACK_IMPORTED_MODULE_18__.ActiveFile, { onSave: () => updateData(null), fileName: (_a = appState.fileHandle) === null || _a === void 0 ? void 0 : _a.name }));\n },\n});\nconst actionSaveFileToDisk = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"saveFileToDisk\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, value, app) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const { fileHandle } = yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.saveAsJSON)(elements, Object.assign(Object.assign({}, appState), { fileHandle: null }), app.files);\n return { commitToHistory: false, appState: Object.assign(Object.assign({}, appState), { fileHandle }) };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) !== \"AbortError\") {\n console.error(error);\n }\n else {\n console.warn(error);\n }\n return { commitToHistory: false };\n }\n }),\n keyTest: (event) => event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.S && event.shiftKey && event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD],\n PanelComponent: ({ updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { type: \"button\", icon: _components_icons__WEBPACK_IMPORTED_MODULE_1__.saveAs, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.saveAs\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.saveAs\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_10__.useDevice)().isMobile, hidden: !_data_filesystem__WEBPACK_IMPORTED_MODULE_20__.nativeFileSystemSupported, onClick: () => updateData(null), \"data-testid\": \"save-as-button\" })),\n});\nconst actionLoadScene = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"loadScene\",\n trackEvent: { category: \"export\" },\n perform: (elements, appState, _, app) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const { elements: loadedElements, appState: loadedAppState, files, } = yield (0,_data__WEBPACK_IMPORTED_MODULE_7__.loadFromJSON)(appState, elements);\n return {\n elements: loadedElements,\n appState: loadedAppState,\n files,\n commitToHistory: true,\n };\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return false;\n }\n return {\n elements,\n appState: Object.assign(Object.assign({}, appState), { errorMessage: error.message }),\n files: app.files,\n commitToHistory: false,\n };\n }\n }),\n keyTest: (event) => event[_keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.CTRL_OR_CMD] && event.key === _keys__WEBPACK_IMPORTED_MODULE_11__.KEYS.O,\n PanelComponent: ({ updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ToolButton__WEBPACK_IMPORTED_MODULE_3__.ToolButton, { type: \"button\", icon: _components_icons__WEBPACK_IMPORTED_MODULE_1__.load, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.load\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"buttons.load\"), showAriaLabel: (0,_components_App__WEBPACK_IMPORTED_MODULE_10__.useDevice)().isMobile, onClick: updateData, \"data-testid\": \"load-button\" })),\n});\nconst actionExportWithDarkMode = (0,_register__WEBPACK_IMPORTED_MODULE_12__.register)({\n name: \"exportWithDarkMode\",\n trackEvent: { category: \"export\", action: \"toggleTheme\" },\n perform: (_elements, appState, value) => {\n return {\n appState: Object.assign(Object.assign({}, appState), { exportWithDarkMode: value }),\n commitToHistory: false,\n };\n },\n PanelComponent: ({ appState, updateData }) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginTop: \"-45px\",\n marginBottom: \"10px\",\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_DarkModeToggle__WEBPACK_IMPORTED_MODULE_6__.DarkModeToggle, { value: appState.exportWithDarkMode ? _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.DARK : _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.LIGHT, onChange: (theme) => {\n updateData(theme === _constants__WEBPACK_IMPORTED_MODULE_15__.THEME.DARK);\n }, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_9__.t)(\"labels.toggleExportColorScheme\") }) }))),\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2FjdGlvbnMvYWN0aW9uRXhwb3J0LnRzeD82ZjJkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvYWQsIHF1ZXN0aW9uQ2lyY2xlLCBzYXZlQXMgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pY29uc1wiO1xuaW1wb3J0IHsgUHJvamVjdE5hbWUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Qcm9qZWN0TmFtZVwiO1xuaW1wb3J0IHsgVG9vbEJ1dHRvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1Rvb2xCdXR0b25cIjtcbmltcG9ydCBcIi4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1wiO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL1Rvb2x0aXBcIjtcbmltcG9ydCB7IERhcmtNb2RlVG9nZ2xlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCB7IGxvYWRGcm9tSlNPTiwgc2F2ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhXCI7XG5pbXBvcnQgeyByZXNhdmVBc0ltYWdlV2l0aFNjZW5lIH0gZnJvbSBcIi4uL2RhdGEvcmVzYXZlXCI7XG5pbXBvcnQgeyB0IH0gZnJvbSBcIi4uL2kxOG5cIjtcbmltcG9ydCB7IHVzZURldmljZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL0FwcFwiO1xuaW1wb3J0IHsgS0VZUyB9IGZyb20gXCIuLi9rZXlzXCI7XG5pbXBvcnQgeyByZWdpc3RlciB9IGZyb20gXCIuL3JlZ2lzdGVyXCI7XG5pbXBvcnQgeyBDaGVja2JveEl0ZW0gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9DaGVja2JveEl0ZW1cIjtcbmltcG9ydCB7IGdldEV4cG9ydFNpemUgfSBmcm9tIFwiLi4vc2NlbmUvZXhwb3J0XCI7XG5pbXBvcnQgeyBERUZBVUxUX0VYUE9SVF9QQURESU5HLCBFWFBPUlRfU0NBTEVTLCBUSEVNRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldFNlbGVjdGVkRWxlbWVudHMsIGlzU29tZUVsZW1lbnRTZWxlY3RlZCB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzIH0gZnJvbSBcIi4uL2VsZW1lbnRcIjtcbmltcG9ydCB7IEFjdGl2ZUZpbGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BY3RpdmVGaWxlXCI7XG5pbXBvcnQgeyBpc0ltYWdlRmlsZUhhbmRsZSB9IGZyb20gXCIuLi9kYXRhL2Jsb2JcIjtcbmltcG9ydCB7IG5hdGl2ZUZpbGVTeXN0ZW1TdXBwb3J0ZWQgfSBmcm9tIFwiLi4vZGF0YS9maWxlc3lzdGVtXCI7XG5pbXBvcnQgeyBUaGVtZSB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25DaGFuZ2VQcm9qZWN0TmFtZSA9IHJlZ2lzdGVyKHtcbiAgbmFtZTogXCJjaGFuZ2VQcm9qZWN0TmFtZVwiLFxuICB0cmFja0V2ZW50OiBmYWxzZSxcbiAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHsgYXBwU3RhdGU6IHsgLi4uYXBwU3RhdGUsIG5hbWU6IHZhbHVlIH0sIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UgfTtcbiAgfSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhLCBhcHBQcm9wcyB9KSA9PiAoXG4gICAgPFByb2plY3ROYW1lXG4gICAgICBsYWJlbD17dChcImxhYmVscy5maWxlVGl0bGVcIil9XG4gICAgICB2YWx1ZT17YXBwU3RhdGUubmFtZSB8fCBcIlVubmFtZWRcIn1cbiAgICAgIG9uQ2hhbmdlPXsobmFtZTogc3RyaW5nKSA9PiB1cGRhdGVEYXRhKG5hbWUpfVxuICAgICAgaXNOYW1lRWRpdGFibGU9e1xuICAgICAgICB0eXBlb2YgYXBwUHJvcHMubmFtZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiAhYXBwU3RhdGUudmlld01vZGVFbmFibGVkXG4gICAgICB9XG4gICAgLz5cbiAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uQ2hhbmdlRXhwb3J0U2NhbGUgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwiY2hhbmdlRXhwb3J0U2NhbGVcIixcbiAgdHJhY2tFdmVudDogeyBjYXRlZ29yeTogXCJleHBvcnRcIiwgYWN0aW9uOiBcInNjYWxlXCIgfSxcbiAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcFN0YXRlOiB7IC4uLmFwcFN0YXRlLCBleHBvcnRTY2FsZTogdmFsdWUgfSxcbiAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IGVsZW1lbnRzOiBhbGxFbGVtZW50cywgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKGFsbEVsZW1lbnRzKTtcbiAgICBjb25zdCBleHBvcnRTZWxlY3RlZCA9IGlzU29tZUVsZW1lbnRTZWxlY3RlZChlbGVtZW50cywgYXBwU3RhdGUpO1xuICAgIGNvbnN0IGV4cG9ydGVkRWxlbWVudHMgPSBleHBvcnRTZWxlY3RlZFxuICAgICAgPyBnZXRTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSlcbiAgICAgIDogZWxlbWVudHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge0VYUE9SVF9TQ0FMRVMubWFwKChzKSA9PiB7XG4gICAgICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gZ2V0RXhwb3J0U2l6ZShcbiAgICAgICAgICAgIGV4cG9ydGVkRWxlbWVudHMsXG4gICAgICAgICAgICBERUZBVUxUX0VYUE9SVF9QQURESU5HLFxuICAgICAgICAgICAgcyxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3Qgc2NhbGVCdXR0b25UaXRsZSA9IGAke3QoXG4gICAgICAgICAgICBcImJ1dHRvbnMuc2NhbGVcIixcbiAgICAgICAgICApfSAke3N9eCAoJHt3aWR0aH14JHtoZWlnaHR9KWA7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRvb2xCdXR0b25cbiAgICAgICAgICAgICAga2V5PXtzfVxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICBpY29uPXtgJHtzfXhgfVxuICAgICAgICAgICAgICBuYW1lPVwiZXhwb3J0LWNhbnZhcy1zY2FsZVwiXG4gICAgICAgICAgICAgIHRpdGxlPXtzY2FsZUJ1dHRvblRpdGxlfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtzY2FsZUJ1dHRvblRpdGxlfVxuICAgICAgICAgICAgICBpZD1cImV4cG9ydC1jYW52YXMtc2NhbGVcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtzID09PSBhcHBTdGF0ZS5leHBvcnRTY2FsZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IHVwZGF0ZURhdGEocyl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uQ2hhbmdlRXhwb3J0QmFja2dyb3VuZCA9IHJlZ2lzdGVyKHtcbiAgbmFtZTogXCJjaGFuZ2VFeHBvcnRCYWNrZ3JvdW5kXCIsXG4gIHRyYWNrRXZlbnQ6IHsgY2F0ZWdvcnk6IFwiZXhwb3J0XCIsIGFjdGlvbjogXCJ0b2dnbGVCYWNrZ3JvdW5kXCIgfSxcbiAgcGVyZm9ybTogKF9lbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcFN0YXRlOiB7IC4uLmFwcFN0YXRlLCBleHBvcnRCYWNrZ3JvdW5kOiB2YWx1ZSB9LFxuICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcbiAgICB9O1xuICB9LFxuICBQYW5lbENvbXBvbmVudDogKHsgYXBwU3RhdGUsIHVwZGF0ZURhdGEgfSkgPT4gKFxuICAgIDxDaGVja2JveEl0ZW1cbiAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLmV4cG9ydEJhY2tncm91bmR9XG4gICAgICBvbkNoYW5nZT17KGNoZWNrZWQpID0+IHVwZGF0ZURhdGEoY2hlY2tlZCl9XG4gICAgPlxuICAgICAge3QoXCJsYWJlbHMud2l0aEJhY2tncm91bmRcIil9XG4gICAgPC9DaGVja2JveEl0ZW0+XG4gICksXG59KTtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkNoYW5nZUV4cG9ydEVtYmVkU2NlbmUgPSByZWdpc3Rlcih7XG4gIG5hbWU6IFwiY2hhbmdlRXhwb3J0RW1iZWRTY2VuZVwiLFxuICB0cmFja0V2ZW50OiB7IGNhdGVnb3J5OiBcImV4cG9ydFwiLCBhY3Rpb246IFwiZW1iZWRTY2VuZVwiIH0sXG4gIHBlcmZvcm06IChfZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBTdGF0ZTogeyAuLi5hcHBTdGF0ZSwgZXhwb3J0RW1iZWRTY2VuZTogdmFsdWUgfSxcbiAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IChcbiAgICA8Q2hlY2tib3hJdGVtXG4gICAgICBjaGVja2VkPXthcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lfVxuICAgICAgb25DaGFuZ2U9eyhjaGVja2VkKSA9PiB1cGRhdGVEYXRhKGNoZWNrZWQpfVxuICAgID5cbiAgICAgIHt0KFwibGFiZWxzLmV4cG9ydEVtYmVkU2NlbmVcIil9XG4gICAgICA8VG9vbHRpcCBsYWJlbD17dChcImxhYmVscy5leHBvcnRFbWJlZFNjZW5lX2RldGFpbHNcIil9IGxvbmc9e3RydWV9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4Y2FsaWRyYXctdG9vbHRpcC1pY29uXCI+e3F1ZXN0aW9uQ2lyY2xlfTwvZGl2PlxuICAgICAgPC9Ub29sdGlwPlxuICAgIDwvQ2hlY2tib3hJdGVtPlxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25TYXZlVG9BY3RpdmVGaWxlID0gcmVnaXN0ZXIoe1xuICBuYW1lOiBcInNhdmVUb0FjdGl2ZUZpbGVcIixcbiAgdHJhY2tFdmVudDogeyBjYXRlZ29yeTogXCJleHBvcnRcIiB9LFxuICBwZXJmb3JtOiBhc3luYyAoZWxlbWVudHMsIGFwcFN0YXRlLCB2YWx1ZSwgYXBwKSA9PiB7XG4gICAgY29uc3QgZmlsZUhhbmRsZUV4aXN0cyA9ICEhYXBwU3RhdGUuZmlsZUhhbmRsZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGZpbGVIYW5kbGUgfSA9IGlzSW1hZ2VGaWxlSGFuZGxlKGFwcFN0YXRlLmZpbGVIYW5kbGUpXG4gICAgICAgID8gYXdhaXQgcmVzYXZlQXNJbWFnZVdpdGhTY2VuZShlbGVtZW50cywgYXBwU3RhdGUsIGFwcC5maWxlcylcbiAgICAgICAgOiBhd2FpdCBzYXZlQXNKU09OKGVsZW1lbnRzLCBhcHBTdGF0ZSwgYXBwLmZpbGVzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29tbWl0VG9IaXN0b3J5OiBmYWxzZSxcbiAgICAgICAgYXBwU3RhdGU6IHtcbiAgICAgICAgICAuLi5hcHBTdGF0ZSxcbiAgICAgICAgICBmaWxlSGFuZGxlLFxuICAgICAgICAgIHRvYXN0OiBmaWxlSGFuZGxlRXhpc3RzXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBmaWxlSGFuZGxlPy5uYW1lXG4gICAgICAgICAgICAgICAgICA/IHQoXCJ0b2FzdC5maWxlU2F2ZWRUb0ZpbGVuYW1lXCIpLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgXCJ7ZmlsZW5hbWV9XCIsXG4gICAgICAgICAgICAgICAgICAgICAgYFwiJHtmaWxlSGFuZGxlLm5hbWV9XCJgLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICA6IHQoXCJ0b2FzdC5maWxlU2F2ZWRcIiksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yPy5uYW1lICE9PSBcIkFib3J0RXJyb3JcIikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBjb21taXRUb0hpc3Rvcnk6IGZhbHNlIH07XG4gICAgfVxuICB9LFxuICBrZXlUZXN0OiAoZXZlbnQpID0+XG4gICAgZXZlbnQua2V5ID09PSBLRVlTLlMgJiYgZXZlbnRbS0VZUy5DVFJMX09SX0NNRF0gJiYgIWV2ZW50LnNoaWZ0S2V5LFxuICBQYW5lbENvbXBvbmVudDogKHsgdXBkYXRlRGF0YSwgYXBwU3RhdGUgfSkgPT4gKFxuICAgIDxBY3RpdmVGaWxlXG4gICAgICBvblNhdmU9eygpID0+IHVwZGF0ZURhdGEobnVsbCl9XG4gICAgICBmaWxlTmFtZT17YXBwU3RhdGUuZmlsZUhhbmRsZT8ubmFtZX1cbiAgICAvPlxuICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25TYXZlRmlsZVRvRGlzayA9IHJlZ2lzdGVyKHtcbiAgbmFtZTogXCJzYXZlRmlsZVRvRGlza1wiLFxuICB0cmFja0V2ZW50OiB7IGNhdGVnb3J5OiBcImV4cG9ydFwiIH0sXG4gIHBlcmZvcm06IGFzeW5jIChlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlLCBhcHApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBmaWxlSGFuZGxlIH0gPSBhd2FpdCBzYXZlQXNKU09OKFxuICAgICAgICBlbGVtZW50cyxcbiAgICAgICAge1xuICAgICAgICAgIC4uLmFwcFN0YXRlLFxuICAgICAgICAgIGZpbGVIYW5kbGU6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICAgIGFwcC5maWxlcyxcbiAgICAgICk7XG4gICAgICByZXR1cm4geyBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLCBhcHBTdGF0ZTogeyAuLi5hcHBTdGF0ZSwgZmlsZUhhbmRsZSB9IH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yPy5uYW1lICE9PSBcIkFib3J0RXJyb3JcIikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBjb21taXRUb0hpc3Rvcnk6IGZhbHNlIH07XG4gICAgfVxuICB9LFxuICBrZXlUZXN0OiAoZXZlbnQpID0+XG4gICAgZXZlbnQua2V5ID09PSBLRVlTLlMgJiYgZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnRbS0VZUy5DVFJMX09SX0NNRF0sXG4gIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhIH0pID0+IChcbiAgICA8VG9vbEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBpY29uPXtzYXZlQXN9XG4gICAgICB0aXRsZT17dChcImJ1dHRvbnMuc2F2ZUFzXCIpfVxuICAgICAgYXJpYS1sYWJlbD17dChcImJ1dHRvbnMuc2F2ZUFzXCIpfVxuICAgICAgc2hvd0FyaWFMYWJlbD17dXNlRGV2aWNlKCkuaXNNb2JpbGV9XG4gICAgICBoaWRkZW49eyFuYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkfVxuICAgICAgb25DbGljaz17KCkgPT4gdXBkYXRlRGF0YShudWxsKX1cbiAgICAgIGRhdGEtdGVzdGlkPVwic2F2ZS1hcy1idXR0b25cIlxuICAgIC8+XG4gICksXG59KTtcblxuZXhwb3J0IGNvbnN0IGFjdGlvbkxvYWRTY2VuZSA9IHJlZ2lzdGVyKHtcbiAgbmFtZTogXCJsb2FkU2NlbmVcIixcbiAgdHJhY2tFdmVudDogeyBjYXRlZ29yeTogXCJleHBvcnRcIiB9LFxuICBwZXJmb3JtOiBhc3luYyAoZWxlbWVudHMsIGFwcFN0YXRlLCBfLCBhcHApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBlbGVtZW50czogbG9hZGVkRWxlbWVudHMsXG4gICAgICAgIGFwcFN0YXRlOiBsb2FkZWRBcHBTdGF0ZSxcbiAgICAgICAgZmlsZXMsXG4gICAgICB9ID0gYXdhaXQgbG9hZEZyb21KU09OKGFwcFN0YXRlLCBlbGVtZW50cyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50czogbG9hZGVkRWxlbWVudHMsXG4gICAgICAgIGFwcFN0YXRlOiBsb2FkZWRBcHBTdGF0ZSxcbiAgICAgICAgZmlsZXMsXG4gICAgICAgIGNvbW1pdFRvSGlzdG9yeTogdHJ1ZSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yPy5uYW1lID09PSBcIkFib3J0RXJyb3JcIikge1xuICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgYXBwU3RhdGU6IHsgLi4uYXBwU3RhdGUsIGVycm9yTWVzc2FnZTogZXJyb3IubWVzc2FnZSB9LFxuICAgICAgICBmaWxlczogYXBwLmZpbGVzLFxuICAgICAgICBjb21taXRUb0hpc3Rvcnk6IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG4gIH0sXG4gIGtleVRlc3Q6IChldmVudCkgPT4gZXZlbnRbS0VZUy5DVFJMX09SX0NNRF0gJiYgZXZlbnQua2V5ID09PSBLRVlTLk8sXG4gIFBhbmVsQ29tcG9uZW50OiAoeyB1cGRhdGVEYXRhIH0pID0+IChcbiAgICA8VG9vbEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBpY29uPXtsb2FkfVxuICAgICAgdGl0bGU9e3QoXCJidXR0b25zLmxvYWRcIil9XG4gICAgICBhcmlhLWxhYmVsPXt0KFwiYnV0dG9ucy5sb2FkXCIpfVxuICAgICAgc2hvd0FyaWFMYWJlbD17dXNlRGV2aWNlKCkuaXNNb2JpbGV9XG4gICAgICBvbkNsaWNrPXt1cGRhdGVEYXRhfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJsb2FkLWJ1dHRvblwiXG4gICAgLz5cbiAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgYWN0aW9uRXhwb3J0V2l0aERhcmtNb2RlID0gcmVnaXN0ZXIoe1xuICBuYW1lOiBcImV4cG9ydFdpdGhEYXJrTW9kZVwiLFxuICB0cmFja0V2ZW50OiB7IGNhdGVnb3J5OiBcImV4cG9ydFwiLCBhY3Rpb246IFwidG9nZ2xlVGhlbWVcIiB9LFxuICBwZXJmb3JtOiAoX2VsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwU3RhdGU6IHsgLi4uYXBwU3RhdGUsIGV4cG9ydFdpdGhEYXJrTW9kZTogdmFsdWUgfSxcbiAgICAgIGNvbW1pdFRvSGlzdG9yeTogZmFsc2UsXG4gICAgfTtcbiAgfSxcbiAgUGFuZWxDb21wb25lbnQ6ICh7IGFwcFN0YXRlLCB1cGRhdGVEYXRhIH0pID0+IChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1lbmRcIixcbiAgICAgICAgbWFyZ2luVG9wOiBcIi00NXB4XCIsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCIxMHB4XCIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxEYXJrTW9kZVRvZ2dsZVxuICAgICAgICB2YWx1ZT17YXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gVEhFTUUuREFSSyA6IFRIRU1FLkxJR0hUfVxuICAgICAgICBvbkNoYW5nZT17KHRoZW1lOiBUaGVtZSkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEodGhlbWUgPT09IFRIRU1FLkRBUkspO1xuICAgICAgICB9fVxuICAgICAgICB0aXRsZT17dChcImxhYmVscy50b2dnbGVFeHBvcnRDb2xvclNjaGVtZVwiKX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICksXG59KTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../actions/actionExport.tsx\n");
1802
1578
 
1803
1579
  /***/ }),
1804
1580
 
@@ -1985,7 +1761,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1985
1761
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1986
1762
 
1987
1763
  "use strict";
1988
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ActionManager\": () => (/* binding */ ActionManager)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _analytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../analytics */ \"../../analytics.ts\");\n\n\n\n\nconst trackAction = (action, source, appState, elements, app, value) => {\n if (action.trackEvent) {\n try {\n if (typeof action.trackEvent === \"object\") {\n const shouldTrack = action.trackEvent.predicate\n ? action.trackEvent.predicate(appState, elements, value)\n : true;\n if (shouldTrack) {\n (0,_analytics__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(action.trackEvent.category, action.trackEvent.action || action.name, `${source} (${app.device.isMobile ? \"mobile\" : \"desktop\"})`);\n }\n }\n }\n catch (error) {\n console.error(\"error while logging action:\", error);\n }\n }\n};\nclass ActionManager {\n constructor(updater, getAppState, getElementsIncludingDeleted, app) {\n this.actions = {};\n /**\n * @param data additional data sent to the PanelComponent\n */\n this.renderAction = (name, data) => {\n const canvasActions = this.app.props.UIOptions.canvasActions;\n if (this.actions[name] &&\n \"PanelComponent\" in this.actions[name] &&\n (name in canvasActions\n ? canvasActions[name]\n : true)) {\n const action = this.actions[name];\n const PanelComponent = action.PanelComponent;\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const updateData = (formState) => {\n trackAction(action, \"ui\", appState, elements, this.app, formState);\n this.updater(action.perform(this.getElementsIncludingDeleted(), this.getAppState(), formState, this.app));\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PanelComponent, { elements: this.getElementsIncludingDeleted(), appState: this.getAppState(), updateData: updateData, appProps: this.app.props, data: data }));\n }\n return null;\n };\n this.updater = (actionResult) => {\n if (actionResult && \"then\" in actionResult) {\n actionResult.then((actionResult) => {\n return updater(actionResult);\n });\n }\n else {\n return updater(actionResult);\n }\n };\n this.getAppState = getAppState;\n this.getElementsIncludingDeleted = getElementsIncludingDeleted;\n this.app = app;\n }\n registerAction(action) {\n this.actions[action.name] = action;\n }\n registerAll(actions) {\n actions.forEach((action) => this.registerAction(action));\n }\n handleKeyDown(event) {\n const canvasActions = this.app.props.UIOptions.canvasActions;\n const data = Object.values(this.actions)\n .sort((a, b) => (b.keyPriority || 0) - (a.keyPriority || 0))\n .filter((action) => (action.name in canvasActions\n ? canvasActions[action.name]\n : true) &&\n action.keyTest &&\n action.keyTest(event, this.getAppState(), this.getElementsIncludingDeleted()));\n if (data.length !== 1) {\n if (data.length > 1) {\n console.warn(\"Canceling as multiple actions match this shortcut\", data);\n }\n return false;\n }\n const action = data[0];\n const { viewModeEnabled } = this.getAppState();\n if (viewModeEnabled) {\n if (!Object.values(_constants__WEBPACK_IMPORTED_MODULE_2__.MODES).includes(data[0].name)) {\n return false;\n }\n }\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const value = null;\n trackAction(action, \"keyboard\", appState, elements, this.app, null);\n event.preventDefault();\n event.stopPropagation();\n this.updater(data[0].perform(elements, appState, value, this.app));\n return true;\n }\n executeAction(action, source = \"api\") {\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const value = null;\n trackAction(action, source, appState, elements, this.app, value);\n this.updater(action.perform(elements, appState, value, this.app));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjLEVBQUUsU0FBdUIsS0FBSztRQUN4RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQTZDRiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9hY3Rpb25zL21hbmFnZXIudHN4P2RhOGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBVcGRhdGVyRm4sXG4gIEFjdGlvbk5hbWUsXG4gIEFjdGlvblJlc3VsdCxcbiAgUGFuZWxDb21wb25lbnRQcm9wcyxcbiAgQWN0aW9uU291cmNlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgQXBwQ2xhc3NQcm9wZXJ0aWVzLCBBcHBTdGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTU9ERVMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0cmFja0V2ZW50IH0gZnJvbSBcIi4uL2FuYWx5dGljc1wiO1xuXG5jb25zdCB0cmFja0FjdGlvbiA9IChcbiAgYWN0aW9uOiBBY3Rpb24sXG4gIHNvdXJjZTogQWN0aW9uU291cmNlLFxuICBhcHBTdGF0ZTogUmVhZG9ubHk8QXBwU3RhdGU+LFxuICBlbGVtZW50czogcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwOiBBcHBDbGFzc1Byb3BlcnRpZXMsXG4gIHZhbHVlOiBhbnksXG4pID0+IHtcbiAgaWYgKGFjdGlvbi50cmFja0V2ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uLnRyYWNrRXZlbnQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkVHJhY2sgPSBhY3Rpb24udHJhY2tFdmVudC5wcmVkaWNhdGVcbiAgICAgICAgICA/IGFjdGlvbi50cmFja0V2ZW50LnByZWRpY2F0ZShhcHBTdGF0ZSwgZWxlbWVudHMsIHZhbHVlKVxuICAgICAgICAgIDogdHJ1ZTtcbiAgICAgICAgaWYgKHNob3VsZFRyYWNrKSB7XG4gICAgICAgICAgdHJhY2tFdmVudChcbiAgICAgICAgICAgIGFjdGlvbi50cmFja0V2ZW50LmNhdGVnb3J5LFxuICAgICAgICAgICAgYWN0aW9uLnRyYWNrRXZlbnQuYWN0aW9uIHx8IGFjdGlvbi5uYW1lLFxuICAgICAgICAgICAgYCR7c291cmNlfSAoJHthcHAuZGV2aWNlLmlzTW9iaWxlID8gXCJtb2JpbGVcIiA6IFwiZGVza3RvcFwifSlgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIHdoaWxlIGxvZ2dpbmcgYWN0aW9uOlwiLCBlcnJvcik7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uTWFuYWdlciB7XG4gIGFjdGlvbnMgPSB7fSBhcyBSZWNvcmQ8QWN0aW9uTmFtZSwgQWN0aW9uPjtcblxuICB1cGRhdGVyOiAoYWN0aW9uUmVzdWx0OiBBY3Rpb25SZXN1bHQgfCBQcm9taXNlPEFjdGlvblJlc3VsdD4pID0+IHZvaWQ7XG5cbiAgZ2V0QXBwU3RhdGU6ICgpID0+IFJlYWRvbmx5PEFwcFN0YXRlPjtcbiAgZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkOiAoKSA9PiByZWFkb25seSBFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBhcHA6IEFwcENsYXNzUHJvcGVydGllcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB1cGRhdGVyOiBVcGRhdGVyRm4sXG4gICAgZ2V0QXBwU3RhdGU6ICgpID0+IEFwcFN0YXRlLFxuICAgIGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZDogKCkgPT4gcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgICBhcHA6IEFwcENsYXNzUHJvcGVydGllcyxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVyID0gKGFjdGlvblJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGFjdGlvblJlc3VsdCAmJiBcInRoZW5cIiBpbiBhY3Rpb25SZXN1bHQpIHtcbiAgICAgICAgYWN0aW9uUmVzdWx0LnRoZW4oKGFjdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVyKGFjdGlvblJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZXIoYWN0aW9uUmVzdWx0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZ2V0QXBwU3RhdGUgPSBnZXRBcHBTdGF0ZTtcbiAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCA9IGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZDtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgfVxuXG4gIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5hY3Rpb25zW2FjdGlvbi5uYW1lXSA9IGFjdGlvbjtcbiAgfVxuXG4gIHJlZ2lzdGVyQWxsKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKSB7XG4gICAgYWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHRoaXMucmVnaXN0ZXJBY3Rpb24oYWN0aW9uKSk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGNhbnZhc0FjdGlvbnMgPSB0aGlzLmFwcC5wcm9wcy5VSU9wdGlvbnMuY2FudmFzQWN0aW9ucztcbiAgICBjb25zdCBkYXRhID0gT2JqZWN0LnZhbHVlcyh0aGlzLmFjdGlvbnMpXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGIua2V5UHJpb3JpdHkgfHwgMCkgLSAoYS5rZXlQcmlvcml0eSB8fCAwKSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChhY3Rpb24pID0+XG4gICAgICAgICAgKGFjdGlvbi5uYW1lIGluIGNhbnZhc0FjdGlvbnNcbiAgICAgICAgICAgID8gY2FudmFzQWN0aW9uc1thY3Rpb24ubmFtZSBhcyBrZXlvZiB0eXBlb2YgY2FudmFzQWN0aW9uc11cbiAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICBhY3Rpb24ua2V5VGVzdCAmJlxuICAgICAgICAgIGFjdGlvbi5rZXlUZXN0KFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0aGlzLmdldEFwcFN0YXRlKCksXG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxuICAgICAgICAgICksXG4gICAgICApO1xuXG4gICAgaWYgKGRhdGEubGVuZ3RoICE9PSAxKSB7XG4gICAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkNhbmNlbGluZyBhcyBtdWx0aXBsZSBhY3Rpb25zIG1hdGNoIHRoaXMgc2hvcnRjdXRcIiwgZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aW9uID0gZGF0YVswXTtcblxuICAgIGNvbnN0IHsgdmlld01vZGVFbmFibGVkIH0gPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgaWYgKHZpZXdNb2RlRW5hYmxlZCkge1xuICAgICAgaWYgKCFPYmplY3QudmFsdWVzKE1PREVTKS5pbmNsdWRlcyhkYXRhWzBdLm5hbWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XG4gICAgY29uc3QgYXBwU3RhdGUgPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgY29uc3QgdmFsdWUgPSBudWxsO1xuXG4gICAgdHJhY2tBY3Rpb24oYWN0aW9uLCBcImtleWJvYXJkXCIsIGFwcFN0YXRlLCBlbGVtZW50cywgdGhpcy5hcHAsIG51bGwpO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnVwZGF0ZXIoZGF0YVswXS5wZXJmb3JtKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUsIHRoaXMuYXBwKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKGFjdGlvbjogQWN0aW9uLCBzb3VyY2U6IEFjdGlvblNvdXJjZSA9IFwiYXBpXCIpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XG4gICAgY29uc3QgYXBwU3RhdGUgPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgY29uc3QgdmFsdWUgPSBudWxsO1xuXG4gICAgdHJhY2tBY3Rpb24oYWN0aW9uLCBzb3VyY2UsIGFwcFN0YXRlLCBlbGVtZW50cywgdGhpcy5hcHAsIHZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlcihhY3Rpb24ucGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlLCB0aGlzLmFwcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBkYXRhIGFkZGl0aW9uYWwgZGF0YSBzZW50IHRvIHRoZSBQYW5lbENvbXBvbmVudFxuICAgKi9cbiAgcmVuZGVyQWN0aW9uID0gKG5hbWU6IEFjdGlvbk5hbWUsIGRhdGE/OiBQYW5lbENvbXBvbmVudFByb3BzW1wiZGF0YVwiXSkgPT4ge1xuICAgIGNvbnN0IGNhbnZhc0FjdGlvbnMgPSB0aGlzLmFwcC5wcm9wcy5VSU9wdGlvbnMuY2FudmFzQWN0aW9ucztcblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWN0aW9uc1tuYW1lXSAmJlxuICAgICAgXCJQYW5lbENvbXBvbmVudFwiIGluIHRoaXMuYWN0aW9uc1tuYW1lXSAmJlxuICAgICAgKG5hbWUgaW4gY2FudmFzQWN0aW9uc1xuICAgICAgICA/IGNhbnZhc0FjdGlvbnNbbmFtZSBhcyBrZXlvZiB0eXBlb2YgY2FudmFzQWN0aW9uc11cbiAgICAgICAgOiB0cnVlKVxuICAgICkge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zW25hbWVdO1xuICAgICAgY29uc3QgUGFuZWxDb21wb25lbnQgPSBhY3Rpb24uUGFuZWxDb21wb25lbnQhO1xuICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpO1xuICAgICAgY29uc3QgYXBwU3RhdGUgPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgICBjb25zdCB1cGRhdGVEYXRhID0gKGZvcm1TdGF0ZT86IGFueSkgPT4ge1xuICAgICAgICB0cmFja0FjdGlvbihhY3Rpb24sIFwidWlcIiwgYXBwU3RhdGUsIGVsZW1lbnRzLCB0aGlzLmFwcCwgZm9ybVN0YXRlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZXIoXG4gICAgICAgICAgYWN0aW9uLnBlcmZvcm0oXG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRBcHBTdGF0ZSgpLFxuICAgICAgICAgICAgZm9ybVN0YXRlLFxuICAgICAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQYW5lbENvbXBvbmVudFxuICAgICAgICAgIGVsZW1lbnRzPXt0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpfVxuICAgICAgICAgIGFwcFN0YXRlPXt0aGlzLmdldEFwcFN0YXRlKCl9XG4gICAgICAgICAgdXBkYXRlRGF0YT17dXBkYXRlRGF0YX1cbiAgICAgICAgICBhcHBQcm9wcz17dGhpcy5hcHAucHJvcHN9XG4gICAgICAgICAgZGF0YT17ZGF0YX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../actions/manager.tsx\n");
1764
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ActionManager\": () => (/* binding */ ActionManager)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _analytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../analytics */ \"../../analytics.ts\");\n\n\n\n\nconst trackAction = (action, source, appState, elements, app, value) => {\n if (action.trackEvent) {\n try {\n if (typeof action.trackEvent === \"object\") {\n const shouldTrack = action.trackEvent.predicate\n ? action.trackEvent.predicate(appState, elements, value)\n : true;\n if (shouldTrack) {\n (0,_analytics__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(action.trackEvent.category, action.trackEvent.action || action.name, `${source} (${app.device.isMobile ? \"mobile\" : \"desktop\"})`);\n }\n }\n }\n catch (error) {\n console.error(\"error while logging action:\", error);\n }\n }\n};\nclass ActionManager {\n constructor(updater, getAppState, getElementsIncludingDeleted, app) {\n this.actions = {};\n /**\n * @param data additional data sent to the PanelComponent\n */\n this.renderAction = (name, data) => {\n const canvasActions = this.app.props.UIOptions.canvasActions;\n if (this.actions[name] &&\n \"PanelComponent\" in this.actions[name] &&\n (name in canvasActions\n ? canvasActions[name]\n : true)) {\n const action = this.actions[name];\n const PanelComponent = action.PanelComponent;\n PanelComponent.displayName = \"PanelComponent\";\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const updateData = (formState) => {\n trackAction(action, \"ui\", appState, elements, this.app, formState);\n this.updater(action.perform(this.getElementsIncludingDeleted(), this.getAppState(), formState, this.app));\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PanelComponent, { elements: this.getElementsIncludingDeleted(), appState: this.getAppState(), updateData: updateData, appProps: this.app.props, data: data }));\n }\n return null;\n };\n this.updater = (actionResult) => {\n if (actionResult && \"then\" in actionResult) {\n actionResult.then((actionResult) => {\n return updater(actionResult);\n });\n }\n else {\n return updater(actionResult);\n }\n };\n this.getAppState = getAppState;\n this.getElementsIncludingDeleted = getElementsIncludingDeleted;\n this.app = app;\n }\n registerAction(action) {\n this.actions[action.name] = action;\n }\n registerAll(actions) {\n actions.forEach((action) => this.registerAction(action));\n }\n handleKeyDown(event) {\n const canvasActions = this.app.props.UIOptions.canvasActions;\n const data = Object.values(this.actions)\n .sort((a, b) => (b.keyPriority || 0) - (a.keyPriority || 0))\n .filter((action) => (action.name in canvasActions\n ? canvasActions[action.name]\n : true) &&\n action.keyTest &&\n action.keyTest(event, this.getAppState(), this.getElementsIncludingDeleted()));\n if (data.length !== 1) {\n if (data.length > 1) {\n console.warn(\"Canceling as multiple actions match this shortcut\", data);\n }\n return false;\n }\n const action = data[0];\n const { viewModeEnabled } = this.getAppState();\n if (viewModeEnabled) {\n if (!Object.values(_constants__WEBPACK_IMPORTED_MODULE_2__.MODES).includes(data[0].name)) {\n return false;\n }\n }\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const value = null;\n trackAction(action, \"keyboard\", appState, elements, this.app, null);\n event.preventDefault();\n event.stopPropagation();\n this.updater(data[0].perform(elements, appState, value, this.app));\n return true;\n }\n executeAction(action, source = \"api\") {\n const elements = this.getElementsIncludingDeleted();\n const appState = this.getAppState();\n const value = null;\n trackAction(action, source, appState, elements, this.app, value);\n this.updater(action.perform(elements, appState, value, this.app));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFNLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBVyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjLEVBQUUsU0FBdUIsS0FBSztRQUN4RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQThDRiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9hY3Rpb25zL21hbmFnZXIudHN4P2RhOGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBVcGRhdGVyRm4sXG4gIEFjdGlvbk5hbWUsXG4gIEFjdGlvblJlc3VsdCxcbiAgUGFuZWxDb21wb25lbnRQcm9wcyxcbiAgQWN0aW9uU291cmNlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgQXBwQ2xhc3NQcm9wZXJ0aWVzLCBBcHBTdGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTU9ERVMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0cmFja0V2ZW50IH0gZnJvbSBcIi4uL2FuYWx5dGljc1wiO1xuXG5jb25zdCB0cmFja0FjdGlvbiA9IChcbiAgYWN0aW9uOiBBY3Rpb24sXG4gIHNvdXJjZTogQWN0aW9uU291cmNlLFxuICBhcHBTdGF0ZTogUmVhZG9ubHk8QXBwU3RhdGU+LFxuICBlbGVtZW50czogcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgYXBwOiBBcHBDbGFzc1Byb3BlcnRpZXMsXG4gIHZhbHVlOiBhbnksXG4pID0+IHtcbiAgaWYgKGFjdGlvbi50cmFja0V2ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uLnRyYWNrRXZlbnQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgY29uc3Qgc2hvdWxkVHJhY2sgPSBhY3Rpb24udHJhY2tFdmVudC5wcmVkaWNhdGVcbiAgICAgICAgICA/IGFjdGlvbi50cmFja0V2ZW50LnByZWRpY2F0ZShhcHBTdGF0ZSwgZWxlbWVudHMsIHZhbHVlKVxuICAgICAgICAgIDogdHJ1ZTtcbiAgICAgICAgaWYgKHNob3VsZFRyYWNrKSB7XG4gICAgICAgICAgdHJhY2tFdmVudChcbiAgICAgICAgICAgIGFjdGlvbi50cmFja0V2ZW50LmNhdGVnb3J5LFxuICAgICAgICAgICAgYWN0aW9uLnRyYWNrRXZlbnQuYWN0aW9uIHx8IGFjdGlvbi5uYW1lLFxuICAgICAgICAgICAgYCR7c291cmNlfSAoJHthcHAuZGV2aWNlLmlzTW9iaWxlID8gXCJtb2JpbGVcIiA6IFwiZGVza3RvcFwifSlgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIHdoaWxlIGxvZ2dpbmcgYWN0aW9uOlwiLCBlcnJvcik7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uTWFuYWdlciB7XG4gIGFjdGlvbnMgPSB7fSBhcyBSZWNvcmQ8QWN0aW9uTmFtZSwgQWN0aW9uPjtcblxuICB1cGRhdGVyOiAoYWN0aW9uUmVzdWx0OiBBY3Rpb25SZXN1bHQgfCBQcm9taXNlPEFjdGlvblJlc3VsdD4pID0+IHZvaWQ7XG5cbiAgZ2V0QXBwU3RhdGU6ICgpID0+IFJlYWRvbmx5PEFwcFN0YXRlPjtcbiAgZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkOiAoKSA9PiByZWFkb25seSBFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBhcHA6IEFwcENsYXNzUHJvcGVydGllcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICB1cGRhdGVyOiBVcGRhdGVyRm4sXG4gICAgZ2V0QXBwU3RhdGU6ICgpID0+IEFwcFN0YXRlLFxuICAgIGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZDogKCkgPT4gcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgICBhcHA6IEFwcENsYXNzUHJvcGVydGllcyxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVyID0gKGFjdGlvblJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGFjdGlvblJlc3VsdCAmJiBcInRoZW5cIiBpbiBhY3Rpb25SZXN1bHQpIHtcbiAgICAgICAgYWN0aW9uUmVzdWx0LnRoZW4oKGFjdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVyKGFjdGlvblJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZXIoYWN0aW9uUmVzdWx0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZ2V0QXBwU3RhdGUgPSBnZXRBcHBTdGF0ZTtcbiAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCA9IGdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZDtcbiAgICB0aGlzLmFwcCA9IGFwcDtcbiAgfVxuXG4gIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5hY3Rpb25zW2FjdGlvbi5uYW1lXSA9IGFjdGlvbjtcbiAgfVxuXG4gIHJlZ2lzdGVyQWxsKGFjdGlvbnM6IHJlYWRvbmx5IEFjdGlvbltdKSB7XG4gICAgYWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHRoaXMucmVnaXN0ZXJBY3Rpb24oYWN0aW9uKSk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGNhbnZhc0FjdGlvbnMgPSB0aGlzLmFwcC5wcm9wcy5VSU9wdGlvbnMuY2FudmFzQWN0aW9ucztcbiAgICBjb25zdCBkYXRhID0gT2JqZWN0LnZhbHVlcyh0aGlzLmFjdGlvbnMpXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGIua2V5UHJpb3JpdHkgfHwgMCkgLSAoYS5rZXlQcmlvcml0eSB8fCAwKSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChhY3Rpb24pID0+XG4gICAgICAgICAgKGFjdGlvbi5uYW1lIGluIGNhbnZhc0FjdGlvbnNcbiAgICAgICAgICAgID8gY2FudmFzQWN0aW9uc1thY3Rpb24ubmFtZSBhcyBrZXlvZiB0eXBlb2YgY2FudmFzQWN0aW9uc11cbiAgICAgICAgICAgIDogdHJ1ZSkgJiZcbiAgICAgICAgICBhY3Rpb24ua2V5VGVzdCAmJlxuICAgICAgICAgIGFjdGlvbi5rZXlUZXN0KFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICB0aGlzLmdldEFwcFN0YXRlKCksXG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRzSW5jbHVkaW5nRGVsZXRlZCgpLFxuICAgICAgICAgICksXG4gICAgICApO1xuXG4gICAgaWYgKGRhdGEubGVuZ3RoICE9PSAxKSB7XG4gICAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkNhbmNlbGluZyBhcyBtdWx0aXBsZSBhY3Rpb25zIG1hdGNoIHRoaXMgc2hvcnRjdXRcIiwgZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aW9uID0gZGF0YVswXTtcblxuICAgIGNvbnN0IHsgdmlld01vZGVFbmFibGVkIH0gPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgaWYgKHZpZXdNb2RlRW5hYmxlZCkge1xuICAgICAgaWYgKCFPYmplY3QudmFsdWVzKE1PREVTKS5pbmNsdWRlcyhkYXRhWzBdLm5hbWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XG4gICAgY29uc3QgYXBwU3RhdGUgPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgY29uc3QgdmFsdWUgPSBudWxsO1xuXG4gICAgdHJhY2tBY3Rpb24oYWN0aW9uLCBcImtleWJvYXJkXCIsIGFwcFN0YXRlLCBlbGVtZW50cywgdGhpcy5hcHAsIG51bGwpO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnVwZGF0ZXIoZGF0YVswXS5wZXJmb3JtKGVsZW1lbnRzLCBhcHBTdGF0ZSwgdmFsdWUsIHRoaXMuYXBwKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKGFjdGlvbjogQWN0aW9uLCBzb3VyY2U6IEFjdGlvblNvdXJjZSA9IFwiYXBpXCIpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XG4gICAgY29uc3QgYXBwU3RhdGUgPSB0aGlzLmdldEFwcFN0YXRlKCk7XG4gICAgY29uc3QgdmFsdWUgPSBudWxsO1xuXG4gICAgdHJhY2tBY3Rpb24oYWN0aW9uLCBzb3VyY2UsIGFwcFN0YXRlLCBlbGVtZW50cywgdGhpcy5hcHAsIHZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlcihhY3Rpb24ucGVyZm9ybShlbGVtZW50cywgYXBwU3RhdGUsIHZhbHVlLCB0aGlzLmFwcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBkYXRhIGFkZGl0aW9uYWwgZGF0YSBzZW50IHRvIHRoZSBQYW5lbENvbXBvbmVudFxuICAgKi9cbiAgcmVuZGVyQWN0aW9uID0gKG5hbWU6IEFjdGlvbk5hbWUsIGRhdGE/OiBQYW5lbENvbXBvbmVudFByb3BzW1wiZGF0YVwiXSkgPT4ge1xuICAgIGNvbnN0IGNhbnZhc0FjdGlvbnMgPSB0aGlzLmFwcC5wcm9wcy5VSU9wdGlvbnMuY2FudmFzQWN0aW9ucztcblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWN0aW9uc1tuYW1lXSAmJlxuICAgICAgXCJQYW5lbENvbXBvbmVudFwiIGluIHRoaXMuYWN0aW9uc1tuYW1lXSAmJlxuICAgICAgKG5hbWUgaW4gY2FudmFzQWN0aW9uc1xuICAgICAgICA/IGNhbnZhc0FjdGlvbnNbbmFtZSBhcyBrZXlvZiB0eXBlb2YgY2FudmFzQWN0aW9uc11cbiAgICAgICAgOiB0cnVlKVxuICAgICkge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zW25hbWVdO1xuICAgICAgY29uc3QgUGFuZWxDb21wb25lbnQgPSBhY3Rpb24uUGFuZWxDb21wb25lbnQhO1xuICAgICAgUGFuZWxDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIlBhbmVsQ29tcG9uZW50XCI7XG4gICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCk7XG4gICAgICBjb25zdCBhcHBTdGF0ZSA9IHRoaXMuZ2V0QXBwU3RhdGUoKTtcbiAgICAgIGNvbnN0IHVwZGF0ZURhdGEgPSAoZm9ybVN0YXRlPzogYW55KSA9PiB7XG4gICAgICAgIHRyYWNrQWN0aW9uKGFjdGlvbiwgXCJ1aVwiLCBhcHBTdGF0ZSwgZWxlbWVudHMsIHRoaXMuYXBwLCBmb3JtU3RhdGUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlcihcbiAgICAgICAgICBhY3Rpb24ucGVyZm9ybShcbiAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCksXG4gICAgICAgICAgICB0aGlzLmdldEFwcFN0YXRlKCksXG4gICAgICAgICAgICBmb3JtU3RhdGUsXG4gICAgICAgICAgICB0aGlzLmFwcCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBhbmVsQ29tcG9uZW50XG4gICAgICAgICAgZWxlbWVudHM9e3RoaXMuZ2V0RWxlbWVudHNJbmNsdWRpbmdEZWxldGVkKCl9XG4gICAgICAgICAgYXBwU3RhdGU9e3RoaXMuZ2V0QXBwU3RhdGUoKX1cbiAgICAgICAgICB1cGRhdGVEYXRhPXt1cGRhdGVEYXRhfVxuICAgICAgICAgIGFwcFByb3BzPXt0aGlzLmFwcC5wcm9wc31cbiAgICAgICAgICBkYXRhPXtkYXRhfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../actions/manager.tsx\n");
1989
1765
 
1990
1766
  /***/ }),
1991
1767
 
@@ -2029,7 +1805,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2029
1805
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2030
1806
 
2031
1807
  "use strict";
2032
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9a68dbf\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.REACT_APP_GOOGLE_ANALYTICS_ID) &&\n typeof window !== \"undefined\" &&\n window.gtag\n ? (category, action, label, value) => {\n try {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n catch (error) {\n console.error(\"error logging to ga\", error);\n }\n }\n : typeof process !== \"undefined\" && ((_b = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9a68dbf\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID)\n ? (category, action, label, value) => { }\n : (category, action, label, value) => {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTSxVQUFVLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFdBQVc7S0FDOUIsaTRCQUFXLDBDQUFFLDZCQUE2QjtJQUMxQyxPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE1BQU0sQ0FBQyxJQUFJO0lBQ1QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQ25FLElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksaTRCQUFXLDBDQUFFLGNBQWM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDbkUsMkNBQTJDO1lBQzNDLGtFQUFrRTtRQUNwRSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vYW5hbHl0aWNzLnRzPzVmMGMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYWNrRXZlbnQgPVxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICBwcm9jZXNzLmVudj8uUkVBQ1RfQVBQX0dPT0dMRV9BTkFMWVRJQ1NfSUQgJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB3aW5kb3cuZ3RhZ1xuICAgID8gKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3aW5kb3cuZ3RhZyhcImV2ZW50XCIsIGFjdGlvbiwge1xuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgZXZlbnRfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIGxvZ2dpbmcgdG8gZ2FcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uSkVTVF9XT1JLRVJfSURcbiAgICA/IChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyKSA9PiB7fVxuICAgIDogKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRyYWNrIEV2ZW50XCIsIHsgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
1808
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = Object({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-a271e42\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.REACT_APP_GOOGLE_ANALYTICS_ID) &&\n typeof window !== \"undefined\" &&\n window.gtag\n ? (category, action, label, value) => {\n try {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n catch (error) {\n console.error(\"error logging to ga\", error);\n }\n }\n : typeof process !== \"undefined\" && ((_b = Object({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-a271e42\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID)\n ? (category, action, label, value) => { }\n : (category, action, label, value) => {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTSxVQUFVLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFdBQVc7S0FDOUIsdTRCQUFXLDBDQUFFLDZCQUE2QjtJQUMxQyxPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE1BQU0sQ0FBQyxJQUFJO0lBQ1QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQ25FLElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksdTRCQUFXLDBDQUFFLGNBQWM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDbkUsMkNBQTJDO1lBQzNDLGtFQUFrRTtRQUNwRSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vYW5hbHl0aWNzLnRzPzVmMGMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYWNrRXZlbnQgPVxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICBwcm9jZXNzLmVudj8uUkVBQ1RfQVBQX0dPT0dMRV9BTkFMWVRJQ1NfSUQgJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB3aW5kb3cuZ3RhZ1xuICAgID8gKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3aW5kb3cuZ3RhZyhcImV2ZW50XCIsIGFjdGlvbiwge1xuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgZXZlbnRfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIGxvZ2dpbmcgdG8gZ2FcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uSkVTVF9XT1JLRVJfSURcbiAgICA/IChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyKSA9PiB7fVxuICAgIDogKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRyYWNrIEV2ZW50XCIsIHsgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
2033
1809
 
2034
1810
  /***/ }),
2035
1811
 
@@ -2205,7 +1981,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2205
1981
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2206
1982
 
2207
1983
  "use strict";
2208
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ColorPicker\": () => (/* binding */ ColorPicker),\n/* harmony export */ \"getCustomColors\": () => (/* binding */ getCustomColors)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Popover */ \"../../components/Popover.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorPicker.scss */ \"../../components/ColorPicker.scss\");\n/* harmony import */ var _ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys */ \"../../keys.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../colors */ \"../../colors.ts\");\n\n\n\n\n\n\n\n\n\nconst MAX_CUSTOM_COLORS = 5;\nconst MAX_DEFAULT_COLORS = 15;\nconst getCustomColors = (elements, type) => {\n const customColors = [];\n const updatedElements = elements\n .filter((element) => !element.isDeleted)\n .sort((ele1, ele2) => ele2.updated - ele1.updated);\n let index = 0;\n const elementColorTypeMap = {\n elementBackground: \"backgroundColor\",\n elementStroke: \"strokeColor\",\n };\n const colorType = elementColorTypeMap[type];\n while (index < updatedElements.length &&\n customColors.length < MAX_CUSTOM_COLORS) {\n const element = updatedElements[index];\n if (customColors.length < MAX_CUSTOM_COLORS &&\n isCustomColor(element[colorType], type) &&\n !customColors.includes(element[colorType])) {\n customColors.push(element[colorType]);\n }\n index++;\n }\n return customColors;\n};\nconst isCustomColor = (color, type) => {\n return !_colors__WEBPACK_IMPORTED_MODULE_7__[\"default\"][type].includes(color);\n};\nconst isValidColor = (color) => {\n const style = new Option().style;\n style.color = color;\n return !!style.color;\n};\nconst getColor = (color) => {\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(color)) {\n return color;\n }\n return isValidColor(color)\n ? color\n : isValidColor(`#${color}`)\n ? `#${color}`\n : null;\n};\n// This is a narrow reimplementation of the awesome react-color Twitter component\n// https://github.com/casesandberg/react-color/blob/master/src/components/twitter/Twitter.js\n// Unfortunately, we can't detect keyboard layout in the browser. So this will\n// only work well for QWERTY but not AZERTY or others...\nconst keyBindings = [\n [\"1\", \"2\", \"3\", \"4\", \"5\"],\n [\"q\", \"w\", \"e\", \"r\", \"t\"],\n [\"a\", \"s\", \"d\", \"f\", \"g\"],\n [\"z\", \"x\", \"c\", \"v\", \"b\"],\n].flat();\nconst Picker = ({ colors, color, onChange, onClose, label, showInput = true, type, elements, }) => {\n const firstItem = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const activeItem = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const gallery = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const colorInput = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const [customColors] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(() => {\n if (type === \"canvasBackground\") {\n return [];\n }\n return getCustomColors(elements, type);\n });\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {\n // After the component is first mounted focus on first input\n if (activeItem.current) {\n activeItem.current.focus();\n }\n else if (colorInput.current) {\n colorInput.current.focus();\n }\n else if (gallery.current) {\n gallery.current.focus();\n }\n }, []);\n const handleKeyDown = (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n let handled = false;\n if ((0,_keys__WEBPACK_IMPORTED_MODULE_5__.isArrowKey)(event.key)) {\n handled = true;\n const { activeElement } = document;\n const isRTL = (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.getLanguage)().rtl;\n let isCustom = false;\n let index = Array.prototype.indexOf.call((_a = gallery.current.querySelector(\".color-picker-content--default\")) === null || _a === void 0 ? void 0 : _a.children, activeElement);\n if (index === -1) {\n index = Array.prototype.indexOf.call((_b = gallery.current.querySelector(\".color-picker-content--canvas-colors\")) === null || _b === void 0 ? void 0 : _b.children, activeElement);\n if (index !== -1) {\n isCustom = true;\n }\n }\n const parentElement = isCustom\n ? (_c = gallery.current) === null || _c === void 0 ? void 0 : _c.querySelector(\".color-picker-content--canvas-colors\")\n : (_d = gallery.current) === null || _d === void 0 ? void 0 : _d.querySelector(\".color-picker-content--default\");\n if (parentElement && index !== -1) {\n const length = parentElement.children.length - (showInput ? 1 : 0);\n const nextIndex = event.key === (isRTL ? _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_LEFT : _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_RIGHT)\n ? (index + 1) % length\n : event.key === (isRTL ? _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_RIGHT : _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_LEFT)\n ? (length + index - 1) % length\n : !isCustom && event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_DOWN\n ? (index + 5) % length\n : !isCustom && event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_UP\n ? (length + index - 5) % length\n : index;\n (_e = parentElement.children[nextIndex]) === null || _e === void 0 ? void 0 : _e.focus();\n }\n event.preventDefault();\n }\n else if (keyBindings.includes(event.key.toLowerCase()) &&\n !event[_keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.CTRL_OR_CMD] &&\n !event.altKey &&\n !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isWritableElement)(event.target)) {\n handled = true;\n const index = keyBindings.indexOf(event.key.toLowerCase());\n const isCustom = index >= MAX_DEFAULT_COLORS;\n const parentElement = isCustom\n ? (_f = gallery === null || gallery === void 0 ? void 0 : gallery.current) === null || _f === void 0 ? void 0 : _f.querySelector(\".color-picker-content--canvas-colors\")\n : (_g = gallery === null || gallery === void 0 ? void 0 : gallery.current) === null || _g === void 0 ? void 0 : _g.querySelector(\".color-picker-content--default\");\n const actualIndex = isCustom ? index - MAX_DEFAULT_COLORS : index;\n (_h = parentElement === null || parentElement === void 0 ? void 0 : parentElement.children[actualIndex]) === null || _h === void 0 ? void 0 : _h.focus();\n event.preventDefault();\n }\n else if (event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ESCAPE || event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ENTER) {\n handled = true;\n event.preventDefault();\n onClose();\n }\n if (handled) {\n event.nativeEvent.stopImmediatePropagation();\n event.stopPropagation();\n }\n };\n const renderColors = (colors, custom = false) => {\n return colors.map((_color, i) => {\n const _colorWithoutHash = _color.replace(\"#\", \"\");\n const keyBinding = custom\n ? keyBindings[i + MAX_DEFAULT_COLORS]\n : keyBindings[i];\n const label = custom\n ? _colorWithoutHash\n : (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(`colors.${_colorWithoutHash}`);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"button\", Object.assign({ className: \"color-picker-swatch\", onClick: (event) => {\n event.currentTarget.focus();\n onChange(_color);\n }, title: `${label}${!(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(_color) ? ` (${_color})` : \"\"} — ${keyBinding.toUpperCase()}`, \"aria-label\": label, \"aria-keyshortcuts\": keyBindings[i], style: { color: _color }, ref: (el) => {\n if (!custom && el && i === 0) {\n firstItem.current = el;\n }\n if (el && _color === color) {\n activeItem.current = el;\n }\n }, onFocus: () => {\n onChange(_color);\n } }, { children: [(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(_color) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-transparent\" })) : undefined, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"color-picker-keybinding\" }, { children: keyBinding }))] }), _color));\n });\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: `color-picker color-picker-type-${type}`, role: \"dialog\", \"aria-modal\": \"true\", \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.colorPicker\"), onKeyDown: handleKeyDown }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-triangle color-picker-triangle-shadow\" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-triangle\" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-content\", ref: (el) => {\n if (el) {\n gallery.current = el;\n }\n }, \n // to allow focusing by clicking but not by tabbing\n tabIndex: -1 }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-content--default\" }, { children: renderColors(colors) })), !!customColors.length && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-content--canvas\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"color-picker-content--canvas-title\" }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.canvasColors\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-content--canvas-colors\" }, { children: renderColors(customColors, true) }))] }))), showInput && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ColorInput, { color: color, label: label, onChange: (color) => {\n onChange(color);\n }, ref: colorInput }))] }))] })));\n};\nconst ColorInput = react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({ color, onChange, label, }, ref) => {\n const [innerValue, setInnerValue] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(color);\n const inputRef = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {\n setInnerValue(color);\n }, [color]);\n react__WEBPACK_IMPORTED_MODULE_1___default().useImperativeHandle(ref, () => inputRef.current);\n const changeColor = react__WEBPACK_IMPORTED_MODULE_1___default().useCallback((inputValue) => {\n const value = inputValue.toLowerCase();\n const color = getColor(value);\n if (color) {\n onChange(color);\n }\n setInnerValue(value);\n }, [onChange]);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"label\", Object.assign({ className: \"color-input-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-hash\" }, { children: \"#\" })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"input\", { spellCheck: false, className: \"color-picker-input\", \"aria-label\": label, onChange: (event) => changeColor(event.target.value), value: (innerValue || \"\").replace(/^#/, \"\"), onBlur: () => setInnerValue(color), ref: inputRef })] })));\n});\nconst ColorPicker = ({ type, color, onChange, label, isActive, setActive, elements, appState, }) => {\n const pickerButton = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-control-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", { className: \"color-picker-label-swatch\", \"aria-label\": label, style: color ? { \"--swatch-color\": color } : undefined, onClick: () => setActive(!isActive), ref: pickerButton }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ColorInput, { color: color, label: label, onChange: (color) => {\n onChange(color);\n } })] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((react__WEBPACK_IMPORTED_MODULE_1___default().Suspense), Object.assign({ fallback: \"\" }, { children: isActive ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Popover__WEBPACK_IMPORTED_MODULE_2__.Popover, Object.assign({ onCloseRequest: (event) => event.target !== pickerButton.current && setActive(false) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Picker, { colors: _colors__WEBPACK_IMPORTED_MODULE_7__[\"default\"][type], color: color || null, onChange: (changedColor) => {\n onChange(changedColor);\n }, onClose: () => {\n var _a;\n setActive(false);\n (_a = pickerButton.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, label: label, showInput: false, type: type, elements: elements }) }))) : null }))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Db2xvclBpY2tlci50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUEwQjtBQUNVO0FBQ0s7QUFFYjtBQUNlO0FBQ0Y7QUFDSTtBQUNkO0FBSS9CLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sZUFBZSxHQUFHLENBQzdCLFFBQXNDLEVBQ3RDLElBQTJDLEVBQzNDLEVBQUU7SUFDRixNQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7SUFDbEMsTUFBTSxlQUFlLEdBQUcsUUFBUTtTQUM3QixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUN2QyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVyRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxNQUFNLG1CQUFtQixHQUFHO1FBQzFCLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxhQUFhLEVBQUUsYUFBYTtLQUM3QixDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUV6QixDQUFDO0lBQ2xCLE9BQ0UsS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNO1FBQzlCLFlBQVksQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLEVBQ3ZDO1FBQ0EsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLElBQ0UsWUFBWSxDQUFDLE1BQU0sR0FBRyxpQkFBaUI7WUFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUM7WUFDdkMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUMxQztZQUNBLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDdkM7UUFDRCxLQUFLLEVBQUUsQ0FBQztLQUNUO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsS0FBYSxFQUNiLElBQTJDLEVBQzNDLEVBQUU7SUFDRixPQUFPLENBQUMsK0NBQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztJQUNqQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNwQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFpQixFQUFFO0lBQ2hELElBQUkscURBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRixpRkFBaUY7QUFDakYsNEZBQTRGO0FBRTVGLDhFQUE4RTtBQUM5RSx3REFBd0Q7QUFDeEQsTUFBTSxXQUFXLEdBQUc7SUFDbEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3pCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUN6QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDekIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0NBQzFCLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFVCxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEdBQUcsSUFBSSxFQUNoQixJQUFJLEVBQ0osUUFBUSxHQVVULEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLG1EQUFZLEVBQXFCLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsbURBQVksRUFBcUIsQ0FBQztJQUNyRCxNQUFNLE9BQU8sR0FBRyxtREFBWSxFQUFrQixDQUFDO0lBQy9DLE1BQU0sVUFBVSxHQUFHLG1EQUFZLEVBQW9CLENBQUM7SUFFcEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLHFEQUFjLENBQUMsR0FBRyxFQUFFO1FBQ3pDLElBQUksSUFBSSxLQUFLLGtCQUFrQixFQUFFO1lBQy9CLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxzREFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQiw0REFBNEQ7UUFDNUQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUI7YUFBTSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDN0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM1QjthQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUU7O1FBQ25ELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLGlEQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsUUFBUSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFHLGtEQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDaEMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEMsYUFBTyxDQUFDLE9BQVEsQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQUMsMENBQzVELFFBQVEsRUFDWixhQUFhLENBQ2QsQ0FBQztZQUNGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsQyxhQUFPLENBQUMsT0FBUSxDQUFDLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQywwQ0FDbEUsUUFBUSxFQUNaLGFBQWEsQ0FDZCxDQUFDO2dCQUNGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNoQixRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUNqQjthQUNGO1lBQ0QsTUFBTSxhQUFhLEdBQUcsUUFBUTtnQkFDNUIsQ0FBQyxDQUFDLGFBQU8sQ0FBQyxPQUFPLDBDQUFFLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQztnQkFDeEUsQ0FBQyxDQUFDLGFBQU8sQ0FBQyxPQUFPLDBDQUFFLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBRXJFLElBQUksYUFBYSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDakMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtEQUFlLENBQUMsQ0FBQyxDQUFDLG1EQUFnQixDQUFDO29CQUN4RCxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTTtvQkFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1EQUFnQixDQUFDLENBQUMsQ0FBQyxrREFBZSxDQUFDO3dCQUM1RCxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU07d0JBQy9CLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGtEQUFlOzRCQUM1QyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTTs0QkFDdEIsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssZ0RBQWE7Z0NBQzFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTTtnQ0FDL0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDWixNQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUE2QiwwQ0FBRSxLQUFLLEVBQUUsQ0FBQzthQUN6RTtZQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjthQUFNLElBQ0wsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLENBQUMsS0FBSyxDQUFDLG1EQUFnQixDQUFDO1lBQ3hCLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDYixDQUFDLHlEQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDaEM7WUFDQSxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDM0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxJQUFJLGtCQUFrQixDQUFDO1lBQzdDLE1BQU0sYUFBYSxHQUFHLFFBQVE7Z0JBQzVCLENBQUMsQ0FBQyxhQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTywwQ0FBRSxhQUFhLENBQzdCLHNDQUFzQyxDQUN2QztnQkFDSCxDQUFDLENBQUMsYUFBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sMENBQUUsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDdEUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNsRSxNQUNFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUNwQywwQ0FBRSxLQUFLLEVBQUUsQ0FBQztZQUVYLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjthQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyw4Q0FBVyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssNkNBQVUsRUFBRTtZQUNoRSxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLE9BQU8sRUFBRTtZQUNYLEtBQUssQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUM3QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLE1BQXFCLEVBQUUsU0FBa0IsS0FBSyxFQUFFLEVBQUU7UUFDdEUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTTtnQkFDdkIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7Z0JBQ3JDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsTUFBTTtnQkFDbEIsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDbkIsQ0FBQyxDQUFDLHdDQUFDLENBQUMsVUFBVSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7WUFDckMsT0FBTyxDQUNMLGtGQUNFLFNBQVMsRUFBQyxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2hCLEtBQUssQ0FBQyxhQUFtQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuRCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsRUFDRCxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQ2IsQ0FBQyxxREFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUM1QyxNQUFNLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxnQkFDcEIsS0FBSyx1QkFDRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2pDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFFeEIsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDNUIsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7cUJBQ3hCO29CQUNELElBQUksRUFBRSxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7d0JBQzFCLFVBQVUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO3FCQUN6QjtnQkFDSCxDQUFDLEVBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsaUJBRUEscURBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkIsZ0VBQUssU0FBUyxFQUFDLDBCQUEwQixHQUFPLENBQ2pELENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDYiwrRUFBTSxTQUFTLEVBQUMseUJBQXlCLGdCQUFFLFVBQVUsSUFBUSxNQWhCeEQsTUFBTSxDQWlCSixDQUNWLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FDTCwrRUFDRSxTQUFTLEVBQUUsa0NBQWtDLElBQUksRUFBRSxFQUNuRCxJQUFJLEVBQUMsUUFBUSxnQkFDRixNQUFNLGdCQUNMLHdDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFDbkMsU0FBUyxFQUFFLGFBQWEsaUJBRXhCLGdFQUFLLFNBQVMsRUFBQyxvREFBb0QsR0FBTyxFQUMxRSxnRUFBSyxTQUFTLEVBQUMsdUJBQXVCLEdBQU8sRUFDN0MsK0VBQ0UsU0FBUyxFQUFDLHNCQUFzQixFQUNoQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFDVixJQUFJLEVBQUUsRUFBRTt3QkFDTixPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztxQkFDdEI7Z0JBQ0gsQ0FBQztnQkFDRCxtREFBbUQ7Z0JBQ25ELFFBQVEsRUFBRSxDQUFDLENBQUMsaUJBRVosOEVBQUssU0FBUyxFQUFDLCtCQUErQixnQkFDM0MsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUNqQixFQUNMLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQ3hCLCtFQUFLLFNBQVMsRUFBQyw4QkFBOEIsaUJBQzNDLCtFQUFNLFNBQVMsRUFBQyxvQ0FBb0MsZ0JBQ2pELHdDQUFDLENBQUMscUJBQXFCLENBQUMsSUFDcEIsRUFDUCw4RUFBSyxTQUFTLEVBQUMscUNBQXFDLGdCQUNqRCxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxJQUM3QixLQUNGLENBQ1AsRUFFQSxTQUFTLElBQUksQ0FDWix1REFBQyxVQUFVLElBQ1QsS0FBSyxFQUFFLEtBQUssRUFDWixLQUFLLEVBQUUsS0FBSyxFQUNaLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFOzRCQUNsQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2xCLENBQUMsRUFDRCxHQUFHLEVBQUUsVUFBVSxHQUNmLENBQ0gsS0FDRyxLQUNGLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLHVEQUFnQixDQUNqQyxDQUNFLEVBQ0UsS0FBSyxFQUNMLFFBQVEsRUFDUixLQUFLLEdBS04sRUFDRCxHQUFHLEVBQ0gsRUFBRTtJQUNGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEdBQUcscURBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxNQUFNLFFBQVEsR0FBRyxtREFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBDLHNEQUFlLENBQUMsR0FBRyxFQUFFO1FBQ25CLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRVosZ0VBQXlCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxNQUFNLFdBQVcsR0FBRyx3REFBaUIsQ0FDbkMsQ0FBQyxVQUFrQixFQUFFLEVBQUU7UUFDckIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLEtBQUssRUFBRTtZQUNULFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQjtRQUNELGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLEVBQ0QsQ0FBQyxRQUFRLENBQUMsQ0FDWCxDQUFDO0lBRUYsT0FBTyxDQUNMLGlGQUFPLFNBQVMsRUFBQyx1QkFBdUIsaUJBQ3RDLDhFQUFLLFNBQVMsRUFBQyxtQkFBbUIsdUJBQVEsRUFDMUMsa0VBQ0UsVUFBVSxFQUFFLEtBQUssRUFDakIsU0FBUyxFQUFDLG9CQUFvQixnQkFDbEIsS0FBSyxFQUNqQixRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUNwRCxLQUFLLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFDM0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFDbEMsR0FBRyxFQUFFLFFBQVEsR0FDYixLQUNJLENBQ1QsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDO0FBRUssTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUMxQixJQUFJLEVBQ0osS0FBSyxFQUNMLFFBQVEsRUFDUixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxHQVVULEVBQUUsRUFBRTtJQUNILE1BQU0sWUFBWSxHQUFHLG1EQUFZLENBQW9CLElBQUksQ0FBQyxDQUFDO0lBRTNELE9BQU8sQ0FDTCw0RUFDRSwrRUFBSyxTQUFTLEVBQUMsZ0NBQWdDLGlCQUM3QyxtRUFDRSxTQUFTLEVBQUMsMkJBQTJCLGdCQUN6QixLQUFLLEVBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUNuQyxHQUFHLEVBQUUsWUFBWSxHQUNqQixFQUNGLHVEQUFDLFVBQVUsSUFDVCxLQUFLLEVBQUUsS0FBSyxFQUNaLEtBQUssRUFBRSxLQUFLLEVBQ1osUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2xCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbEIsQ0FBQyxHQUNELEtBQ0UsRUFDTix1REFBQyx1REFBYyxrQkFBQyxRQUFRLEVBQUMsRUFBRSxnQkFDeEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNWLHVEQUFDLDZDQUFPLGtCQUNOLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3hCLEtBQUssQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUczRCx1REFBQyxNQUFNLElBQ0wsTUFBTSxFQUFFLCtDQUFNLENBQUMsSUFBSSxDQUFDLEVBQ3BCLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxFQUNwQixRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRTs0QkFDekIsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN6QixDQUFDLEVBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTs7NEJBQ1osU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNqQixrQkFBWSxDQUFDLE9BQU8sMENBQUUsS0FBSyxFQUFFLENBQUM7d0JBQ2hDLENBQUMsRUFDRCxLQUFLLEVBQUUsS0FBSyxFQUNaLFNBQVMsRUFBRSxLQUFLLEVBQ2hCLElBQUksRUFBRSxJQUFJLEVBQ1YsUUFBUSxFQUFFLFFBQVEsR0FDbEIsSUFDTSxDQUNYLENBQUMsQ0FBQyxDQUFDLElBQUksSUFDTyxJQUNiLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnRzeD85Y2EzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tIFwiLi9Qb3BvdmVyXCI7XG5pbXBvcnQgeyBpc1RyYW5zcGFyZW50IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmltcG9ydCBcIi4vQ29sb3JQaWNrZXIuc2Nzc1wiO1xuaW1wb3J0IHsgaXNBcnJvd0tleSwgS0VZUyB9IGZyb20gXCIuLi9rZXlzXCI7XG5pbXBvcnQgeyB0LCBnZXRMYW5ndWFnZSB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyBpc1dyaXRhYmxlRWxlbWVudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IGNvbG9ycyBmcm9tIFwiLi4vY29sb3JzXCI7XG5pbXBvcnQgeyBFeGNhbGlkcmF3RWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCBNQVhfQ1VTVE9NX0NPTE9SUyA9IDU7XG5jb25zdCBNQVhfREVGQVVMVF9DT0xPUlMgPSAxNTtcblxuZXhwb3J0IGNvbnN0IGdldEN1c3RvbUNvbG9ycyA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIHR5cGU6IFwiZWxlbWVudEJhY2tncm91bmRcIiB8IFwiZWxlbWVudFN0cm9rZVwiLFxuKSA9PiB7XG4gIGNvbnN0IGN1c3RvbUNvbG9yczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgdXBkYXRlZEVsZW1lbnRzID0gZWxlbWVudHNcbiAgICAuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudC5pc0RlbGV0ZWQpXG4gICAgLnNvcnQoKGVsZTEsIGVsZTIpID0+IGVsZTIudXBkYXRlZCAtIGVsZTEudXBkYXRlZCk7XG5cbiAgbGV0IGluZGV4ID0gMDtcbiAgY29uc3QgZWxlbWVudENvbG9yVHlwZU1hcCA9IHtcbiAgICBlbGVtZW50QmFja2dyb3VuZDogXCJiYWNrZ3JvdW5kQ29sb3JcIixcbiAgICBlbGVtZW50U3Ryb2tlOiBcInN0cm9rZUNvbG9yXCIsXG4gIH07XG4gIGNvbnN0IGNvbG9yVHlwZSA9IGVsZW1lbnRDb2xvclR5cGVNYXBbdHlwZV0gYXNcbiAgICB8IFwiYmFja2dyb3VuZENvbG9yXCJcbiAgICB8IFwic3Ryb2tlQ29sb3JcIjtcbiAgd2hpbGUgKFxuICAgIGluZGV4IDwgdXBkYXRlZEVsZW1lbnRzLmxlbmd0aCAmJlxuICAgIGN1c3RvbUNvbG9ycy5sZW5ndGggPCBNQVhfQ1VTVE9NX0NPTE9SU1xuICApIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdXBkYXRlZEVsZW1lbnRzW2luZGV4XTtcblxuICAgIGlmIChcbiAgICAgIGN1c3RvbUNvbG9ycy5sZW5ndGggPCBNQVhfQ1VTVE9NX0NPTE9SUyAmJlxuICAgICAgaXNDdXN0b21Db2xvcihlbGVtZW50W2NvbG9yVHlwZV0sIHR5cGUpICYmXG4gICAgICAhY3VzdG9tQ29sb3JzLmluY2x1ZGVzKGVsZW1lbnRbY29sb3JUeXBlXSlcbiAgICApIHtcbiAgICAgIGN1c3RvbUNvbG9ycy5wdXNoKGVsZW1lbnRbY29sb3JUeXBlXSk7XG4gICAgfVxuICAgIGluZGV4Kys7XG4gIH1cbiAgcmV0dXJuIGN1c3RvbUNvbG9ycztcbn07XG5cbmNvbnN0IGlzQ3VzdG9tQ29sb3IgPSAoXG4gIGNvbG9yOiBzdHJpbmcsXG4gIHR5cGU6IFwiZWxlbWVudEJhY2tncm91bmRcIiB8IFwiZWxlbWVudFN0cm9rZVwiLFxuKSA9PiB7XG4gIHJldHVybiAhY29sb3JzW3R5cGVdLmluY2x1ZGVzKGNvbG9yKTtcbn07XG5cbmNvbnN0IGlzVmFsaWRDb2xvciA9IChjb2xvcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHN0eWxlID0gbmV3IE9wdGlvbigpLnN0eWxlO1xuICBzdHlsZS5jb2xvciA9IGNvbG9yO1xuICByZXR1cm4gISFzdHlsZS5jb2xvcjtcbn07XG5cbmNvbnN0IGdldENvbG9yID0gKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGlzVHJhbnNwYXJlbnQoY29sb3IpKSB7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG5cbiAgcmV0dXJuIGlzVmFsaWRDb2xvcihjb2xvcilcbiAgICA/IGNvbG9yXG4gICAgOiBpc1ZhbGlkQ29sb3IoYCMke2NvbG9yfWApXG4gICAgPyBgIyR7Y29sb3J9YFxuICAgIDogbnVsbDtcbn07XG5cbi8vIFRoaXMgaXMgYSBuYXJyb3cgcmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXdlc29tZSByZWFjdC1jb2xvciBUd2l0dGVyIGNvbXBvbmVudFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Nhc2VzYW5kYmVyZy9yZWFjdC1jb2xvci9ibG9iL21hc3Rlci9zcmMvY29tcG9uZW50cy90d2l0dGVyL1R3aXR0ZXIuanNcblxuLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgZGV0ZWN0IGtleWJvYXJkIGxheW91dCBpbiB0aGUgYnJvd3Nlci4gU28gdGhpcyB3aWxsXG4vLyBvbmx5IHdvcmsgd2VsbCBmb3IgUVdFUlRZIGJ1dCBub3QgQVpFUlRZIG9yIG90aGVycy4uLlxuY29uc3Qga2V5QmluZGluZ3MgPSBbXG4gIFtcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCJdLFxuICBbXCJxXCIsIFwid1wiLCBcImVcIiwgXCJyXCIsIFwidFwiXSxcbiAgW1wiYVwiLCBcInNcIiwgXCJkXCIsIFwiZlwiLCBcImdcIl0sXG4gIFtcInpcIiwgXCJ4XCIsIFwiY1wiLCBcInZcIiwgXCJiXCJdLFxuXS5mbGF0KCk7XG5cbmNvbnN0IFBpY2tlciA9ICh7XG4gIGNvbG9ycyxcbiAgY29sb3IsXG4gIG9uQ2hhbmdlLFxuICBvbkNsb3NlLFxuICBsYWJlbCxcbiAgc2hvd0lucHV0ID0gdHJ1ZSxcbiAgdHlwZSxcbiAgZWxlbWVudHMsXG59OiB7XG4gIGNvbG9yczogc3RyaW5nW107XG4gIGNvbG9yOiBzdHJpbmcgfCBudWxsO1xuICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNob3dJbnB1dDogYm9vbGVhbjtcbiAgdHlwZTogXCJjYW52YXNCYWNrZ3JvdW5kXCIgfCBcImVsZW1lbnRCYWNrZ3JvdW5kXCIgfCBcImVsZW1lbnRTdHJva2VcIjtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W107XG59KSA9PiB7XG4gIGNvbnN0IGZpcnN0SXRlbSA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcbiAgY29uc3QgYWN0aXZlSXRlbSA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcbiAgY29uc3QgZ2FsbGVyeSA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgY29uc3QgY29sb3JJbnB1dCA9IFJlYWN0LnVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PigpO1xuXG4gIGNvbnN0IFtjdXN0b21Db2xvcnNdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSBcImNhbnZhc0JhY2tncm91bmRcIikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q3VzdG9tQ29sb3JzKGVsZW1lbnRzLCB0eXBlKTtcbiAgfSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBBZnRlciB0aGUgY29tcG9uZW50IGlzIGZpcnN0IG1vdW50ZWQgZm9jdXMgb24gZmlyc3QgaW5wdXRcbiAgICBpZiAoYWN0aXZlSXRlbS5jdXJyZW50KSB7XG4gICAgICBhY3RpdmVJdGVtLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9IGVsc2UgaWYgKGNvbG9ySW5wdXQuY3VycmVudCkge1xuICAgICAgY29sb3JJbnB1dC5jdXJyZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIGlmIChnYWxsZXJ5LmN1cnJlbnQpIHtcbiAgICAgIGdhbGxlcnkuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICBsZXQgaGFuZGxlZCA9IGZhbHNlO1xuICAgIGlmIChpc0Fycm93S2V5KGV2ZW50LmtleSkpIHtcbiAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudDtcbiAgICAgIGNvbnN0IGlzUlRMID0gZ2V0TGFuZ3VhZ2UoKS5ydGw7XG4gICAgICBsZXQgaXNDdXN0b20gPSBmYWxzZTtcbiAgICAgIGxldCBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoXG4gICAgICAgIGdhbGxlcnkuY3VycmVudCEucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiKVxuICAgICAgICAgID8uY2hpbGRyZW4sXG4gICAgICAgIGFjdGl2ZUVsZW1lbnQsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoXG4gICAgICAgICAgZ2FsbGVyeS5jdXJyZW50IS5xdWVyeVNlbGVjdG9yKFwiLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzXCIpXG4gICAgICAgICAgICA/LmNoaWxkcmVuLFxuICAgICAgICAgIGFjdGl2ZUVsZW1lbnQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBpc0N1c3RvbSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0N1c3RvbVxuICAgICAgICA/IGdhbGxlcnkuY3VycmVudD8ucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9yc1wiKVxuICAgICAgICA6IGdhbGxlcnkuY3VycmVudD8ucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiKTtcblxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gKHNob3dJbnB1dCA/IDEgOiAwKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID1cbiAgICAgICAgICBldmVudC5rZXkgPT09IChpc1JUTCA/IEtFWVMuQVJST1dfTEVGVCA6IEtFWVMuQVJST1dfUklHSFQpXG4gICAgICAgICAgICA/IChpbmRleCArIDEpICUgbGVuZ3RoXG4gICAgICAgICAgICA6IGV2ZW50LmtleSA9PT0gKGlzUlRMID8gS0VZUy5BUlJPV19SSUdIVCA6IEtFWVMuQVJST1dfTEVGVClcbiAgICAgICAgICAgID8gKGxlbmd0aCArIGluZGV4IC0gMSkgJSBsZW5ndGhcbiAgICAgICAgICAgIDogIWlzQ3VzdG9tICYmIGV2ZW50LmtleSA9PT0gS0VZUy5BUlJPV19ET1dOXG4gICAgICAgICAgICA/IChpbmRleCArIDUpICUgbGVuZ3RoXG4gICAgICAgICAgICA6ICFpc0N1c3RvbSAmJiBldmVudC5rZXkgPT09IEtFWVMuQVJST1dfVVBcbiAgICAgICAgICAgID8gKGxlbmd0aCArIGluZGV4IC0gNSkgJSBsZW5ndGhcbiAgICAgICAgICAgIDogaW5kZXg7XG4gICAgICAgIChwYXJlbnRFbGVtZW50LmNoaWxkcmVuW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpPy5mb2N1cygpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAga2V5QmluZGluZ3MuaW5jbHVkZXMoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpICYmXG4gICAgICAhZXZlbnRbS0VZUy5DVFJMX09SX0NNRF0gJiZcbiAgICAgICFldmVudC5hbHRLZXkgJiZcbiAgICAgICFpc1dyaXRhYmxlRWxlbWVudChldmVudC50YXJnZXQpXG4gICAgKSB7XG4gICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGluZGV4ID0ga2V5QmluZGluZ3MuaW5kZXhPZihldmVudC5rZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBpc0N1c3RvbSA9IGluZGV4ID49IE1BWF9ERUZBVUxUX0NPTE9SUztcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0N1c3RvbVxuICAgICAgICA/IGdhbGxlcnk/LmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBcIi5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9yc1wiLFxuICAgICAgICAgIClcbiAgICAgICAgOiBnYWxsZXJ5Py5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKFwiLmNvbG9yLXBpY2tlci1jb250ZW50LS1kZWZhdWx0XCIpO1xuICAgICAgY29uc3QgYWN0dWFsSW5kZXggPSBpc0N1c3RvbSA/IGluZGV4IC0gTUFYX0RFRkFVTFRfQ09MT1JTIDogaW5kZXg7XG4gICAgICAoXG4gICAgICAgIHBhcmVudEVsZW1lbnQ/LmNoaWxkcmVuW2FjdHVhbEluZGV4XSBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICAgICAgKT8uZm9jdXMoKTtcblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZUy5FU0NBUEUgfHwgZXZlbnQua2V5ID09PSBLRVlTLkVOVEVSKSB7XG4gICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvbkNsb3NlKCk7XG4gICAgfVxuICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZW5kZXJDb2xvcnMgPSAoY29sb3JzOiBBcnJheTxzdHJpbmc+LCBjdXN0b206IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgIHJldHVybiBjb2xvcnMubWFwKChfY29sb3IsIGkpID0+IHtcbiAgICAgIGNvbnN0IF9jb2xvcldpdGhvdXRIYXNoID0gX2NvbG9yLnJlcGxhY2UoXCIjXCIsIFwiXCIpO1xuICAgICAgY29uc3Qga2V5QmluZGluZyA9IGN1c3RvbVxuICAgICAgICA/IGtleUJpbmRpbmdzW2kgKyBNQVhfREVGQVVMVF9DT0xPUlNdXG4gICAgICAgIDoga2V5QmluZGluZ3NbaV07XG4gICAgICBjb25zdCBsYWJlbCA9IGN1c3RvbVxuICAgICAgICA/IF9jb2xvcldpdGhvdXRIYXNoXG4gICAgICAgIDogdChgY29sb3JzLiR7X2NvbG9yV2l0aG91dEhhc2h9YCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXN3YXRjaFwiXG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKF9jb2xvcik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICB0aXRsZT17YCR7bGFiZWx9JHtcbiAgICAgICAgICAgICFpc1RyYW5zcGFyZW50KF9jb2xvcikgPyBgICgke19jb2xvcn0pYCA6IFwiXCJcbiAgICAgICAgICB9IOKAlCAke2tleUJpbmRpbmcudG9VcHBlckNhc2UoKX1gfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIGFyaWEta2V5c2hvcnRjdXRzPXtrZXlCaW5kaW5nc1tpXX1cbiAgICAgICAgICBzdHlsZT17eyBjb2xvcjogX2NvbG9yIH19XG4gICAgICAgICAga2V5PXtfY29sb3J9XG4gICAgICAgICAgcmVmPXsoZWwpID0+IHtcbiAgICAgICAgICAgIGlmICghY3VzdG9tICYmIGVsICYmIGkgPT09IDApIHtcbiAgICAgICAgICAgICAgZmlyc3RJdGVtLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbCAmJiBfY29sb3IgPT09IGNvbG9yKSB7XG4gICAgICAgICAgICAgIGFjdGl2ZUl0ZW0uY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UoX2NvbG9yKTtcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2lzVHJhbnNwYXJlbnQoX2NvbG9yKSA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyYW5zcGFyZW50XCI+PC9kaXY+XG4gICAgICAgICAgKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjb2xvci1waWNrZXIta2V5YmluZGluZ1wiPntrZXlCaW5kaW5nfTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgY29sb3ItcGlja2VyIGNvbG9yLXBpY2tlci10eXBlLSR7dHlwZX1gfVxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBhcmlhLWxhYmVsPXt0KFwibGFiZWxzLmNvbG9yUGlja2VyXCIpfVxuICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyaWFuZ2xlIGNvbG9yLXBpY2tlci10cmlhbmdsZS1zaGFkb3dcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyaWFuZ2xlXCI+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1jb250ZW50XCJcbiAgICAgICAgcmVmPXsoZWwpID0+IHtcbiAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgIGdhbGxlcnkuY3VycmVudCA9IGVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gdG8gYWxsb3cgZm9jdXNpbmcgYnkgY2xpY2tpbmcgYnV0IG5vdCBieSB0YWJiaW5nXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiPlxuICAgICAgICAgIHtyZW5kZXJDb2xvcnMoY29sb3JzKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHshIWN1c3RvbUNvbG9ycy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLWNvbnRlbnQtLWNhbnZhc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLWNvbnRlbnQtLWNhbnZhcy10aXRsZVwiPlxuICAgICAgICAgICAgICB7dChcImxhYmVscy5jYW52YXNDb2xvcnNcIil9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzXCI+XG4gICAgICAgICAgICAgIHtyZW5kZXJDb2xvcnMoY3VzdG9tQ29sb3JzLCB0cnVlKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuXG4gICAgICAgIHtzaG93SW5wdXQgJiYgKFxuICAgICAgICAgIDxDb2xvcklucHV0XG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGNvbG9yKSA9PiB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByZWY9e2NvbG9ySW5wdXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgQ29sb3JJbnB1dCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjb2xvcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgbGFiZWwsXG4gICAgfToge1xuICAgICAgY29sb3I6IHN0cmluZyB8IG51bGw7XG4gICAgICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgIH0sXG4gICAgcmVmLFxuICApID0+IHtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShjb2xvcik7XG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgc2V0SW5uZXJWYWx1ZShjb2xvcik7XG4gICAgfSwgW2NvbG9yXSk7XG5cbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5wdXRSZWYuY3VycmVudCk7XG5cbiAgICBjb25zdCBjaGFuZ2VDb2xvciA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKGlucHV0VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcih2YWx1ZSk7XG4gICAgICAgIGlmIChjb2xvcikge1xuICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRJbm5lclZhbHVlKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBbb25DaGFuZ2VdLFxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImNvbG9yLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1oYXNoXCI+IzwvZGl2PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBzcGVsbENoZWNrPXtmYWxzZX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItaW5wdXRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IGNoYW5nZUNvbG9yKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgdmFsdWU9eyhpbm5lclZhbHVlIHx8IFwiXCIpLnJlcGxhY2UoL14jLywgXCJcIil9XG4gICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJbm5lclZhbHVlKGNvbG9yKX1cbiAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAvPlxuICAgICAgPC9sYWJlbD5cbiAgICApO1xuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IENvbG9yUGlja2VyID0gKHtcbiAgdHlwZSxcbiAgY29sb3IsXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgaXNBY3RpdmUsXG4gIHNldEFjdGl2ZSxcbiAgZWxlbWVudHMsXG4gIGFwcFN0YXRlLFxufToge1xuICB0eXBlOiBcImNhbnZhc0JhY2tncm91bmRcIiB8IFwiZWxlbWVudEJhY2tncm91bmRcIiB8IFwiZWxlbWVudFN0cm9rZVwiO1xuICBjb2xvcjogc3RyaW5nIHwgbnVsbDtcbiAgb25DaGFuZ2U6IChjb2xvcjogc3RyaW5nKSA9PiB2b2lkO1xuICBsYWJlbDogc3RyaW5nO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgc2V0QWN0aXZlOiAoYWN0aXZlOiBib29sZWFuKSA9PiB2b2lkO1xuICBlbGVtZW50czogcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXTtcbiAgYXBwU3RhdGU6IEFwcFN0YXRlO1xufSkgPT4ge1xuICBjb25zdCBwaWNrZXJCdXR0b24gPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLWNvbnRyb2wtY29udGFpbmVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItbGFiZWwtc3dhdGNoXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgICAgICBzdHlsZT17Y29sb3IgPyB7IFwiLS1zd2F0Y2gtY29sb3JcIjogY29sb3IgfSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmUoIWlzQWN0aXZlKX1cbiAgICAgICAgICByZWY9e3BpY2tlckJ1dHRvbn1cbiAgICAgICAgLz5cbiAgICAgICAgPENvbG9ySW5wdXRcbiAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoY29sb3IpID0+IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8UmVhY3QuU3VzcGVuc2UgZmFsbGJhY2s9XCJcIj5cbiAgICAgICAge2lzQWN0aXZlID8gKFxuICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICBvbkNsb3NlUmVxdWVzdD17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBpY2tlckJ1dHRvbi5jdXJyZW50ICYmIHNldEFjdGl2ZShmYWxzZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UGlja2VyXG4gICAgICAgICAgICAgIGNvbG9ycz17Y29sb3JzW3R5cGVdfVxuICAgICAgICAgICAgICBjb2xvcj17Y29sb3IgfHwgbnVsbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhjaGFuZ2VkQ29sb3IpID0+IHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZShjaGFuZ2VkQ29sb3IpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBwaWNrZXJCdXR0b24uY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICBzaG93SW5wdXQ9e2ZhbHNlfVxuICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvUG9wb3Zlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/ColorPicker.tsx\n");
1984
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ColorPicker\": () => (/* binding */ ColorPicker),\n/* harmony export */ \"getCustomColors\": () => (/* binding */ getCustomColors)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Popover */ \"../../components/Popover.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColorPicker.scss */ \"../../components/ColorPicker.scss\");\n/* harmony import */ var _ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ColorPicker_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../keys */ \"../../keys.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../colors */ \"../../colors.ts\");\n\n\n\n\n\n\n\n\n\nconst MAX_CUSTOM_COLORS = 5;\nconst MAX_DEFAULT_COLORS = 15;\nconst getCustomColors = (elements, type) => {\n const customColors = [];\n const updatedElements = elements\n .filter((element) => !element.isDeleted)\n .sort((ele1, ele2) => ele2.updated - ele1.updated);\n let index = 0;\n const elementColorTypeMap = {\n elementBackground: \"backgroundColor\",\n elementStroke: \"strokeColor\",\n };\n const colorType = elementColorTypeMap[type];\n while (index < updatedElements.length &&\n customColors.length < MAX_CUSTOM_COLORS) {\n const element = updatedElements[index];\n if (customColors.length < MAX_CUSTOM_COLORS &&\n isCustomColor(element[colorType], type) &&\n !customColors.includes(element[colorType])) {\n customColors.push(element[colorType]);\n }\n index++;\n }\n return customColors;\n};\nconst isCustomColor = (color, type) => {\n return !_colors__WEBPACK_IMPORTED_MODULE_7__[\"default\"][type].includes(color);\n};\nconst isValidColor = (color) => {\n const style = new Option().style;\n style.color = color;\n return !!style.color;\n};\nconst getColor = (color) => {\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(color)) {\n return color;\n }\n return isValidColor(color)\n ? color\n : isValidColor(`#${color}`)\n ? `#${color}`\n : null;\n};\n// This is a narrow reimplementation of the awesome react-color Twitter component\n// https://github.com/casesandberg/react-color/blob/master/src/components/twitter/Twitter.js\n// Unfortunately, we can't detect keyboard layout in the browser. So this will\n// only work well for QWERTY but not AZERTY or others...\nconst keyBindings = [\n [\"1\", \"2\", \"3\", \"4\", \"5\"],\n [\"q\", \"w\", \"e\", \"r\", \"t\"],\n [\"a\", \"s\", \"d\", \"f\", \"g\"],\n [\"z\", \"x\", \"c\", \"v\", \"b\"],\n].flat();\nconst Picker = ({ colors, color, onChange, onClose, label, showInput = true, type, elements, }) => {\n const firstItem = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const activeItem = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const gallery = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const colorInput = react__WEBPACK_IMPORTED_MODULE_1___default().useRef();\n const [customColors] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(() => {\n if (type === \"canvasBackground\") {\n return [];\n }\n return getCustomColors(elements, type);\n });\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {\n // After the component is first mounted focus on first input\n if (activeItem.current) {\n activeItem.current.focus();\n }\n else if (colorInput.current) {\n colorInput.current.focus();\n }\n else if (gallery.current) {\n gallery.current.focus();\n }\n }, []);\n const handleKeyDown = (event) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n let handled = false;\n if ((0,_keys__WEBPACK_IMPORTED_MODULE_5__.isArrowKey)(event.key)) {\n handled = true;\n const { activeElement } = document;\n const isRTL = (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.getLanguage)().rtl;\n let isCustom = false;\n let index = Array.prototype.indexOf.call((_a = gallery.current.querySelector(\".color-picker-content--default\")) === null || _a === void 0 ? void 0 : _a.children, activeElement);\n if (index === -1) {\n index = Array.prototype.indexOf.call((_b = gallery.current.querySelector(\".color-picker-content--canvas-colors\")) === null || _b === void 0 ? void 0 : _b.children, activeElement);\n if (index !== -1) {\n isCustom = true;\n }\n }\n const parentElement = isCustom\n ? (_c = gallery.current) === null || _c === void 0 ? void 0 : _c.querySelector(\".color-picker-content--canvas-colors\")\n : (_d = gallery.current) === null || _d === void 0 ? void 0 : _d.querySelector(\".color-picker-content--default\");\n if (parentElement && index !== -1) {\n const length = parentElement.children.length - (showInput ? 1 : 0);\n const nextIndex = event.key === (isRTL ? _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_LEFT : _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_RIGHT)\n ? (index + 1) % length\n : event.key === (isRTL ? _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_RIGHT : _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_LEFT)\n ? (length + index - 1) % length\n : !isCustom && event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_DOWN\n ? (index + 5) % length\n : !isCustom && event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ARROW_UP\n ? (length + index - 5) % length\n : index;\n (_e = parentElement.children[nextIndex]) === null || _e === void 0 ? void 0 : _e.focus();\n }\n event.preventDefault();\n }\n else if (keyBindings.includes(event.key.toLowerCase()) &&\n !event[_keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.CTRL_OR_CMD] &&\n !event.altKey &&\n !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isWritableElement)(event.target)) {\n handled = true;\n const index = keyBindings.indexOf(event.key.toLowerCase());\n const isCustom = index >= MAX_DEFAULT_COLORS;\n const parentElement = isCustom\n ? (_f = gallery === null || gallery === void 0 ? void 0 : gallery.current) === null || _f === void 0 ? void 0 : _f.querySelector(\".color-picker-content--canvas-colors\")\n : (_g = gallery === null || gallery === void 0 ? void 0 : gallery.current) === null || _g === void 0 ? void 0 : _g.querySelector(\".color-picker-content--default\");\n const actualIndex = isCustom ? index - MAX_DEFAULT_COLORS : index;\n (_h = parentElement === null || parentElement === void 0 ? void 0 : parentElement.children[actualIndex]) === null || _h === void 0 ? void 0 : _h.focus();\n event.preventDefault();\n }\n else if (event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ESCAPE || event.key === _keys__WEBPACK_IMPORTED_MODULE_5__.KEYS.ENTER) {\n handled = true;\n event.preventDefault();\n onClose();\n }\n if (handled) {\n event.nativeEvent.stopImmediatePropagation();\n event.stopPropagation();\n }\n };\n const renderColors = (colors, custom = false) => {\n return colors.map((_color, i) => {\n const _colorWithoutHash = _color.replace(\"#\", \"\");\n const keyBinding = custom\n ? keyBindings[i + MAX_DEFAULT_COLORS]\n : keyBindings[i];\n const label = custom\n ? _colorWithoutHash\n : (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(`colors.${_colorWithoutHash}`);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"button\", Object.assign({ className: \"color-picker-swatch\", onClick: (event) => {\n event.currentTarget.focus();\n onChange(_color);\n }, title: `${label}${!(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(_color) ? ` (${_color})` : \"\"} — ${keyBinding.toUpperCase()}`, \"aria-label\": label, \"aria-keyshortcuts\": keyBindings[i], style: { color: _color }, ref: (el) => {\n if (!custom && el && i === 0) {\n firstItem.current = el;\n }\n if (el && _color === color) {\n activeItem.current = el;\n }\n }, onFocus: () => {\n onChange(_color);\n } }, { children: [(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isTransparent)(_color) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-transparent\" })) : undefined, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"color-picker-keybinding\" }, { children: keyBinding }))] }), _color));\n });\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: `color-picker color-picker-type-${type}`, role: \"dialog\", \"aria-modal\": \"true\", \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.colorPicker\"), onKeyDown: handleKeyDown }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-triangle color-picker-triangle-shadow\" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"color-picker-triangle\" }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-content\", ref: (el) => {\n if (el) {\n gallery.current = el;\n }\n }, \n // to allow focusing by clicking but not by tabbing\n tabIndex: -1 }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-content--default\" }, { children: renderColors(colors) })), !!customColors.length && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-content--canvas\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"color-picker-content--canvas-title\" }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.canvasColors\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-content--canvas-colors\" }, { children: renderColors(customColors, true) }))] }))), showInput && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ColorInput, { color: color, label: label, onChange: (color) => {\n onChange(color);\n }, ref: colorInput }))] }))] })));\n};\nconst ColorInput = react__WEBPACK_IMPORTED_MODULE_1___default().forwardRef(({ color, onChange, label, }, ref) => {\n const [innerValue, setInnerValue] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(color);\n const inputRef = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(() => {\n setInnerValue(color);\n }, [color]);\n react__WEBPACK_IMPORTED_MODULE_1___default().useImperativeHandle(ref, () => inputRef.current);\n const changeColor = react__WEBPACK_IMPORTED_MODULE_1___default().useCallback((inputValue) => {\n const value = inputValue.toLowerCase();\n const color = getColor(value);\n if (color) {\n onChange(color);\n }\n setInnerValue(value);\n }, [onChange]);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"label\", Object.assign({ className: \"color-input-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"color-picker-hash\" }, { children: \"#\" })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"input\", { spellCheck: false, className: \"color-picker-input\", \"aria-label\": label, onChange: (event) => changeColor(event.target.value), value: (innerValue || \"\").replace(/^#/, \"\"), onBlur: () => setInnerValue(color), ref: inputRef })] })));\n});\nColorInput.displayName = \"ColorInput\";\nconst ColorPicker = ({ type, color, onChange, label, isActive, setActive, elements, appState, }) => {\n const pickerButton = react__WEBPACK_IMPORTED_MODULE_1___default().useRef(null);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"color-picker-control-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", { className: \"color-picker-label-swatch\", \"aria-label\": label, style: color ? { \"--swatch-color\": color } : undefined, onClick: () => setActive(!isActive), ref: pickerButton }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ColorInput, { color: color, label: label, onChange: (color) => {\n onChange(color);\n } })] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((react__WEBPACK_IMPORTED_MODULE_1___default().Suspense), Object.assign({ fallback: \"\" }, { children: isActive ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Popover__WEBPACK_IMPORTED_MODULE_2__.Popover, Object.assign({ onCloseRequest: (event) => event.target !== pickerButton.current && setActive(false) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Picker, { colors: _colors__WEBPACK_IMPORTED_MODULE_7__[\"default\"][type], color: color || null, onChange: (changedColor) => {\n onChange(changedColor);\n }, onClose: () => {\n var _a;\n setActive(false);\n (_a = pickerButton.current) === null || _a === void 0 ? void 0 : _a.focus();\n }, label: label, showInput: false, type: type, elements: elements }) }))) : null }))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVUsSUFDVCxLQUFLLEVBQUUsS0FBSyxFQUNaLEtBQUssRUFBRSxLQUFLLEVBQ1osUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2xCLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbEIsQ0FBQyxHQUNELEtBQ0UsRUFDTix1REFBQyx1REFBYyxrQkFBQyxRQUFRLEVBQUMsRUFBRSxnQkFDeEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNWLHVEQUFDLDZDQUFPLGtCQUNOLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3hCLEtBQUssQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUczRCx1REFBQyxNQUFNLElBQ0wsTUFBTSxFQUFFLCtDQUFNLENBQUMsSUFBSSxDQUFDLEVBQ3BCLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxFQUNwQixRQUFRLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRTs0QkFDekIsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN6QixDQUFDLEVBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTs7NEJBQ1osU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNqQixrQkFBWSxDQUFDLE9BQU8sMENBQUUsS0FBSyxFQUFFLENBQUM7d0JBQ2hDLENBQUMsRUFDRCxLQUFLLEVBQUUsS0FBSyxFQUNaLFNBQVMsRUFBRSxLQUFLLEVBQ2hCLElBQUksRUFBRSxJQUFJLEVBQ1YsUUFBUSxFQUFFLFFBQVEsR0FDbEIsSUFDTSxDQUNYLENBQUMsQ0FBQyxDQUFDLElBQUksSUFDTyxJQUNiLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0NvbG9yUGlja2VyLnRzeD85Y2EzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tIFwiLi9Qb3BvdmVyXCI7XG5pbXBvcnQgeyBpc1RyYW5zcGFyZW50IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmltcG9ydCBcIi4vQ29sb3JQaWNrZXIuc2Nzc1wiO1xuaW1wb3J0IHsgaXNBcnJvd0tleSwgS0VZUyB9IGZyb20gXCIuLi9rZXlzXCI7XG5pbXBvcnQgeyB0LCBnZXRMYW5ndWFnZSB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyBpc1dyaXRhYmxlRWxlbWVudCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IGNvbG9ycyBmcm9tIFwiLi4vY29sb3JzXCI7XG5pbXBvcnQgeyBFeGNhbGlkcmF3RWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCBNQVhfQ1VTVE9NX0NPTE9SUyA9IDU7XG5jb25zdCBNQVhfREVGQVVMVF9DT0xPUlMgPSAxNTtcblxuZXhwb3J0IGNvbnN0IGdldEN1c3RvbUNvbG9ycyA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIHR5cGU6IFwiZWxlbWVudEJhY2tncm91bmRcIiB8IFwiZWxlbWVudFN0cm9rZVwiLFxuKSA9PiB7XG4gIGNvbnN0IGN1c3RvbUNvbG9yczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgdXBkYXRlZEVsZW1lbnRzID0gZWxlbWVudHNcbiAgICAuZmlsdGVyKChlbGVtZW50KSA9PiAhZWxlbWVudC5pc0RlbGV0ZWQpXG4gICAgLnNvcnQoKGVsZTEsIGVsZTIpID0+IGVsZTIudXBkYXRlZCAtIGVsZTEudXBkYXRlZCk7XG5cbiAgbGV0IGluZGV4ID0gMDtcbiAgY29uc3QgZWxlbWVudENvbG9yVHlwZU1hcCA9IHtcbiAgICBlbGVtZW50QmFja2dyb3VuZDogXCJiYWNrZ3JvdW5kQ29sb3JcIixcbiAgICBlbGVtZW50U3Ryb2tlOiBcInN0cm9rZUNvbG9yXCIsXG4gIH07XG4gIGNvbnN0IGNvbG9yVHlwZSA9IGVsZW1lbnRDb2xvclR5cGVNYXBbdHlwZV0gYXNcbiAgICB8IFwiYmFja2dyb3VuZENvbG9yXCJcbiAgICB8IFwic3Ryb2tlQ29sb3JcIjtcbiAgd2hpbGUgKFxuICAgIGluZGV4IDwgdXBkYXRlZEVsZW1lbnRzLmxlbmd0aCAmJlxuICAgIGN1c3RvbUNvbG9ycy5sZW5ndGggPCBNQVhfQ1VTVE9NX0NPTE9SU1xuICApIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdXBkYXRlZEVsZW1lbnRzW2luZGV4XTtcblxuICAgIGlmIChcbiAgICAgIGN1c3RvbUNvbG9ycy5sZW5ndGggPCBNQVhfQ1VTVE9NX0NPTE9SUyAmJlxuICAgICAgaXNDdXN0b21Db2xvcihlbGVtZW50W2NvbG9yVHlwZV0sIHR5cGUpICYmXG4gICAgICAhY3VzdG9tQ29sb3JzLmluY2x1ZGVzKGVsZW1lbnRbY29sb3JUeXBlXSlcbiAgICApIHtcbiAgICAgIGN1c3RvbUNvbG9ycy5wdXNoKGVsZW1lbnRbY29sb3JUeXBlXSk7XG4gICAgfVxuICAgIGluZGV4Kys7XG4gIH1cbiAgcmV0dXJuIGN1c3RvbUNvbG9ycztcbn07XG5cbmNvbnN0IGlzQ3VzdG9tQ29sb3IgPSAoXG4gIGNvbG9yOiBzdHJpbmcsXG4gIHR5cGU6IFwiZWxlbWVudEJhY2tncm91bmRcIiB8IFwiZWxlbWVudFN0cm9rZVwiLFxuKSA9PiB7XG4gIHJldHVybiAhY29sb3JzW3R5cGVdLmluY2x1ZGVzKGNvbG9yKTtcbn07XG5cbmNvbnN0IGlzVmFsaWRDb2xvciA9IChjb2xvcjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHN0eWxlID0gbmV3IE9wdGlvbigpLnN0eWxlO1xuICBzdHlsZS5jb2xvciA9IGNvbG9yO1xuICByZXR1cm4gISFzdHlsZS5jb2xvcjtcbn07XG5cbmNvbnN0IGdldENvbG9yID0gKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgaWYgKGlzVHJhbnNwYXJlbnQoY29sb3IpKSB7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG5cbiAgcmV0dXJuIGlzVmFsaWRDb2xvcihjb2xvcilcbiAgICA/IGNvbG9yXG4gICAgOiBpc1ZhbGlkQ29sb3IoYCMke2NvbG9yfWApXG4gICAgPyBgIyR7Y29sb3J9YFxuICAgIDogbnVsbDtcbn07XG5cbi8vIFRoaXMgaXMgYSBuYXJyb3cgcmVpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXdlc29tZSByZWFjdC1jb2xvciBUd2l0dGVyIGNvbXBvbmVudFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Nhc2VzYW5kYmVyZy9yZWFjdC1jb2xvci9ibG9iL21hc3Rlci9zcmMvY29tcG9uZW50cy90d2l0dGVyL1R3aXR0ZXIuanNcblxuLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgZGV0ZWN0IGtleWJvYXJkIGxheW91dCBpbiB0aGUgYnJvd3Nlci4gU28gdGhpcyB3aWxsXG4vLyBvbmx5IHdvcmsgd2VsbCBmb3IgUVdFUlRZIGJ1dCBub3QgQVpFUlRZIG9yIG90aGVycy4uLlxuY29uc3Qga2V5QmluZGluZ3MgPSBbXG4gIFtcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIiwgXCI1XCJdLFxuICBbXCJxXCIsIFwid1wiLCBcImVcIiwgXCJyXCIsIFwidFwiXSxcbiAgW1wiYVwiLCBcInNcIiwgXCJkXCIsIFwiZlwiLCBcImdcIl0sXG4gIFtcInpcIiwgXCJ4XCIsIFwiY1wiLCBcInZcIiwgXCJiXCJdLFxuXS5mbGF0KCk7XG5cbmNvbnN0IFBpY2tlciA9ICh7XG4gIGNvbG9ycyxcbiAgY29sb3IsXG4gIG9uQ2hhbmdlLFxuICBvbkNsb3NlLFxuICBsYWJlbCxcbiAgc2hvd0lucHV0ID0gdHJ1ZSxcbiAgdHlwZSxcbiAgZWxlbWVudHMsXG59OiB7XG4gIGNvbG9yczogc3RyaW5nW107XG4gIGNvbG9yOiBzdHJpbmcgfCBudWxsO1xuICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNob3dJbnB1dDogYm9vbGVhbjtcbiAgdHlwZTogXCJjYW52YXNCYWNrZ3JvdW5kXCIgfCBcImVsZW1lbnRCYWNrZ3JvdW5kXCIgfCBcImVsZW1lbnRTdHJva2VcIjtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W107XG59KSA9PiB7XG4gIGNvbnN0IGZpcnN0SXRlbSA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcbiAgY29uc3QgYWN0aXZlSXRlbSA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcbiAgY29uc3QgZ2FsbGVyeSA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgY29uc3QgY29sb3JJbnB1dCA9IFJlYWN0LnVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PigpO1xuXG4gIGNvbnN0IFtjdXN0b21Db2xvcnNdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSBcImNhbnZhc0JhY2tncm91bmRcIikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q3VzdG9tQ29sb3JzKGVsZW1lbnRzLCB0eXBlKTtcbiAgfSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBBZnRlciB0aGUgY29tcG9uZW50IGlzIGZpcnN0IG1vdW50ZWQgZm9jdXMgb24gZmlyc3QgaW5wdXRcbiAgICBpZiAoYWN0aXZlSXRlbS5jdXJyZW50KSB7XG4gICAgICBhY3RpdmVJdGVtLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9IGVsc2UgaWYgKGNvbG9ySW5wdXQuY3VycmVudCkge1xuICAgICAgY29sb3JJbnB1dC5jdXJyZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIGlmIChnYWxsZXJ5LmN1cnJlbnQpIHtcbiAgICAgIGdhbGxlcnkuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICBsZXQgaGFuZGxlZCA9IGZhbHNlO1xuICAgIGlmIChpc0Fycm93S2V5KGV2ZW50LmtleSkpIHtcbiAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudDtcbiAgICAgIGNvbnN0IGlzUlRMID0gZ2V0TGFuZ3VhZ2UoKS5ydGw7XG4gICAgICBsZXQgaXNDdXN0b20gPSBmYWxzZTtcbiAgICAgIGxldCBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoXG4gICAgICAgIGdhbGxlcnkuY3VycmVudCEucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiKVxuICAgICAgICAgID8uY2hpbGRyZW4sXG4gICAgICAgIGFjdGl2ZUVsZW1lbnQsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBpbmRleCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoXG4gICAgICAgICAgZ2FsbGVyeS5jdXJyZW50IS5xdWVyeVNlbGVjdG9yKFwiLmNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzXCIpXG4gICAgICAgICAgICA/LmNoaWxkcmVuLFxuICAgICAgICAgIGFjdGl2ZUVsZW1lbnQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBpc0N1c3RvbSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0N1c3RvbVxuICAgICAgICA/IGdhbGxlcnkuY3VycmVudD8ucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9yc1wiKVxuICAgICAgICA6IGdhbGxlcnkuY3VycmVudD8ucXVlcnlTZWxlY3RvcihcIi5jb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiKTtcblxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gKHNob3dJbnB1dCA/IDEgOiAwKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID1cbiAgICAgICAgICBldmVudC5rZXkgPT09IChpc1JUTCA/IEtFWVMuQVJST1dfTEVGVCA6IEtFWVMuQVJST1dfUklHSFQpXG4gICAgICAgICAgICA/IChpbmRleCArIDEpICUgbGVuZ3RoXG4gICAgICAgICAgICA6IGV2ZW50LmtleSA9PT0gKGlzUlRMID8gS0VZUy5BUlJPV19SSUdIVCA6IEtFWVMuQVJST1dfTEVGVClcbiAgICAgICAgICAgID8gKGxlbmd0aCArIGluZGV4IC0gMSkgJSBsZW5ndGhcbiAgICAgICAgICAgIDogIWlzQ3VzdG9tICYmIGV2ZW50LmtleSA9PT0gS0VZUy5BUlJPV19ET1dOXG4gICAgICAgICAgICA/IChpbmRleCArIDUpICUgbGVuZ3RoXG4gICAgICAgICAgICA6ICFpc0N1c3RvbSAmJiBldmVudC5rZXkgPT09IEtFWVMuQVJST1dfVVBcbiAgICAgICAgICAgID8gKGxlbmd0aCArIGluZGV4IC0gNSkgJSBsZW5ndGhcbiAgICAgICAgICAgIDogaW5kZXg7XG4gICAgICAgIChwYXJlbnRFbGVtZW50LmNoaWxkcmVuW25leHRJbmRleF0gYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpPy5mb2N1cygpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAga2V5QmluZGluZ3MuaW5jbHVkZXMoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpICYmXG4gICAgICAhZXZlbnRbS0VZUy5DVFJMX09SX0NNRF0gJiZcbiAgICAgICFldmVudC5hbHRLZXkgJiZcbiAgICAgICFpc1dyaXRhYmxlRWxlbWVudChldmVudC50YXJnZXQpXG4gICAgKSB7XG4gICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGluZGV4ID0ga2V5QmluZGluZ3MuaW5kZXhPZihldmVudC5rZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBpc0N1c3RvbSA9IGluZGV4ID49IE1BWF9ERUZBVUxUX0NPTE9SUztcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0N1c3RvbVxuICAgICAgICA/IGdhbGxlcnk/LmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBcIi5jb2xvci1waWNrZXItY29udGVudC0tY2FudmFzLWNvbG9yc1wiLFxuICAgICAgICAgIClcbiAgICAgICAgOiBnYWxsZXJ5Py5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKFwiLmNvbG9yLXBpY2tlci1jb250ZW50LS1kZWZhdWx0XCIpO1xuICAgICAgY29uc3QgYWN0dWFsSW5kZXggPSBpc0N1c3RvbSA/IGluZGV4IC0gTUFYX0RFRkFVTFRfQ09MT1JTIDogaW5kZXg7XG4gICAgICAoXG4gICAgICAgIHBhcmVudEVsZW1lbnQ/LmNoaWxkcmVuW2FjdHVhbEluZGV4XSBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICAgICAgKT8uZm9jdXMoKTtcblxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gS0VZUy5FU0NBUEUgfHwgZXZlbnQua2V5ID09PSBLRVlTLkVOVEVSKSB7XG4gICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvbkNsb3NlKCk7XG4gICAgfVxuICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZW5kZXJDb2xvcnMgPSAoY29sb3JzOiBBcnJheTxzdHJpbmc+LCBjdXN0b206IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgIHJldHVybiBjb2xvcnMubWFwKChfY29sb3IsIGkpID0+IHtcbiAgICAgIGNvbnN0IF9jb2xvcldpdGhvdXRIYXNoID0gX2NvbG9yLnJlcGxhY2UoXCIjXCIsIFwiXCIpO1xuICAgICAgY29uc3Qga2V5QmluZGluZyA9IGN1c3RvbVxuICAgICAgICA/IGtleUJpbmRpbmdzW2kgKyBNQVhfREVGQVVMVF9DT0xPUlNdXG4gICAgICAgIDoga2V5QmluZGluZ3NbaV07XG4gICAgICBjb25zdCBsYWJlbCA9IGN1c3RvbVxuICAgICAgICA/IF9jb2xvcldpdGhvdXRIYXNoXG4gICAgICAgIDogdChgY29sb3JzLiR7X2NvbG9yV2l0aG91dEhhc2h9YCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXN3YXRjaFwiXG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MQnV0dG9uRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKF9jb2xvcik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICB0aXRsZT17YCR7bGFiZWx9JHtcbiAgICAgICAgICAgICFpc1RyYW5zcGFyZW50KF9jb2xvcikgPyBgICgke19jb2xvcn0pYCA6IFwiXCJcbiAgICAgICAgICB9IOKAlCAke2tleUJpbmRpbmcudG9VcHBlckNhc2UoKX1gfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIGFyaWEta2V5c2hvcnRjdXRzPXtrZXlCaW5kaW5nc1tpXX1cbiAgICAgICAgICBzdHlsZT17eyBjb2xvcjogX2NvbG9yIH19XG4gICAgICAgICAga2V5PXtfY29sb3J9XG4gICAgICAgICAgcmVmPXsoZWwpID0+IHtcbiAgICAgICAgICAgIGlmICghY3VzdG9tICYmIGVsICYmIGkgPT09IDApIHtcbiAgICAgICAgICAgICAgZmlyc3RJdGVtLmN1cnJlbnQgPSBlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbCAmJiBfY29sb3IgPT09IGNvbG9yKSB7XG4gICAgICAgICAgICAgIGFjdGl2ZUl0ZW0uY3VycmVudCA9IGVsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UoX2NvbG9yKTtcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2lzVHJhbnNwYXJlbnQoX2NvbG9yKSA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyYW5zcGFyZW50XCI+PC9kaXY+XG4gICAgICAgICAgKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjb2xvci1waWNrZXIta2V5YmluZGluZ1wiPntrZXlCaW5kaW5nfTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgY29sb3ItcGlja2VyIGNvbG9yLXBpY2tlci10eXBlLSR7dHlwZX1gfVxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBhcmlhLWxhYmVsPXt0KFwibGFiZWxzLmNvbG9yUGlja2VyXCIpfVxuICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyaWFuZ2xlIGNvbG9yLXBpY2tlci10cmlhbmdsZS1zaGFkb3dcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLXRyaWFuZ2xlXCI+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1jb250ZW50XCJcbiAgICAgICAgcmVmPXsoZWwpID0+IHtcbiAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgIGdhbGxlcnkuY3VycmVudCA9IGVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gdG8gYWxsb3cgZm9jdXNpbmcgYnkgY2xpY2tpbmcgYnV0IG5vdCBieSB0YWJiaW5nXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItY29udGVudC0tZGVmYXVsdFwiPlxuICAgICAgICAgIHtyZW5kZXJDb2xvcnMoY29sb3JzKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHshIWN1c3RvbUNvbG9ycy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLWNvbnRlbnQtLWNhbnZhc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sb3ItcGlja2VyLWNvbnRlbnQtLWNhbnZhcy10aXRsZVwiPlxuICAgICAgICAgICAgICB7dChcImxhYmVscy5jYW52YXNDb2xvcnNcIil9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1jb250ZW50LS1jYW52YXMtY29sb3JzXCI+XG4gICAgICAgICAgICAgIHtyZW5kZXJDb2xvcnMoY3VzdG9tQ29sb3JzLCB0cnVlKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuXG4gICAgICAgIHtzaG93SW5wdXQgJiYgKFxuICAgICAgICAgIDxDb2xvcklucHV0XG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGNvbG9yKSA9PiB7XG4gICAgICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICByZWY9e2NvbG9ySW5wdXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgQ29sb3JJbnB1dCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjb2xvcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgbGFiZWwsXG4gICAgfToge1xuICAgICAgY29sb3I6IHN0cmluZyB8IG51bGw7XG4gICAgICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgIH0sXG4gICAgcmVmLFxuICApID0+IHtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShjb2xvcik7XG4gICAgY29uc3QgaW5wdXRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgc2V0SW5uZXJWYWx1ZShjb2xvcik7XG4gICAgfSwgW2NvbG9yXSk7XG5cbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5wdXRSZWYuY3VycmVudCk7XG5cbiAgICBjb25zdCBjaGFuZ2VDb2xvciA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKGlucHV0VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0VmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcih2YWx1ZSk7XG4gICAgICAgIGlmIChjb2xvcikge1xuICAgICAgICAgIG9uQ2hhbmdlKGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRJbm5lclZhbHVlKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBbb25DaGFuZ2VdLFxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImNvbG9yLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1oYXNoXCI+IzwvZGl2PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBzcGVsbENoZWNrPXtmYWxzZX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItaW5wdXRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IGNoYW5nZUNvbG9yKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgdmFsdWU9eyhpbm5lclZhbHVlIHx8IFwiXCIpLnJlcGxhY2UoL14jLywgXCJcIil9XG4gICAgICAgICAgb25CbHVyPXsoKSA9PiBzZXRJbm5lclZhbHVlKGNvbG9yKX1cbiAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAvPlxuICAgICAgPC9sYWJlbD5cbiAgICApO1xuICB9LFxuKTtcblxuQ29sb3JJbnB1dC5kaXNwbGF5TmFtZSA9IFwiQ29sb3JJbnB1dFwiO1xuXG5leHBvcnQgY29uc3QgQ29sb3JQaWNrZXIgPSAoe1xuICB0eXBlLFxuICBjb2xvcixcbiAgb25DaGFuZ2UsXG4gIGxhYmVsLFxuICBpc0FjdGl2ZSxcbiAgc2V0QWN0aXZlLFxuICBlbGVtZW50cyxcbiAgYXBwU3RhdGUsXG59OiB7XG4gIHR5cGU6IFwiY2FudmFzQmFja2dyb3VuZFwiIHwgXCJlbGVtZW50QmFja2dyb3VuZFwiIHwgXCJlbGVtZW50U3Ryb2tlXCI7XG4gIGNvbG9yOiBzdHJpbmcgfCBudWxsO1xuICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBzZXRBY3RpdmU6IChhY3RpdmU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIGVsZW1lbnRzOiByZWFkb25seSBFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG59KSA9PiB7XG4gIGNvbnN0IHBpY2tlckJ1dHRvbiA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1waWNrZXItY29udHJvbC1jb250YWluZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzTmFtZT1cImNvbG9yLXBpY2tlci1sYWJlbC1zd2F0Y2hcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIHN0eWxlPXtjb2xvciA/IHsgXCItLXN3YXRjaC1jb2xvclwiOiBjb2xvciB9IDogdW5kZWZpbmVkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZSghaXNBY3RpdmUpfVxuICAgICAgICAgIHJlZj17cGlja2VyQnV0dG9ufVxuICAgICAgICAvPlxuICAgICAgICA8Q29sb3JJbnB1dFxuICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgb25DaGFuZ2U9eyhjb2xvcikgPT4ge1xuICAgICAgICAgICAgb25DaGFuZ2UoY29sb3IpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxSZWFjdC5TdXNwZW5zZSBmYWxsYmFjaz1cIlwiPlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgIG9uQ2xvc2VSZXF1ZXN0PXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgIGV2ZW50LnRhcmdldCAhPT0gcGlja2VyQnV0dG9uLmN1cnJlbnQgJiYgc2V0QWN0aXZlKGZhbHNlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQaWNrZXJcbiAgICAgICAgICAgICAgY29sb3JzPXtjb2xvcnNbdHlwZV19XG4gICAgICAgICAgICAgIGNvbG9yPXtjb2xvciB8fCBudWxsfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGNoYW5nZWRDb2xvcikgPT4ge1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlKGNoYW5nZWRDb2xvcik7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHBpY2tlckJ1dHRvbi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgIHNob3dJbnB1dD17ZmFsc2V9XG4gICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgIGVsZW1lbnRzPXtlbGVtZW50c31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvUmVhY3QuU3VzcGVuc2U+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/ColorPicker.tsx\n");
2209
1985
 
2210
1986
  /***/ }),
2211
1987
 
@@ -2282,7 +2058,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2282
2058
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2283
2059
 
2284
2060
  "use strict";
2285
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n\n\n\n\n\n\n\nconst Footer = ({ appState, actionManager, renderCustomFooter, showExitZenModeBtn, }) => {\n const device = (0,_App__WEBPACK_IMPORTED_MODULE_3__.useDevice)();\n const showFinalize = !appState.viewModeEnabled && appState.multiElement && device.isTouchScreen;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ role: \"contentinfo\", className: \"layer-ui__wrapper__footer App-menu App-menu_bottom\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__footer-left zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Col, Object.assign({ gap: 2 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Section__WEBPACK_IMPORTED_MODULE_5__.Section, Object.assign({ heading: \"canvasActions\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_4__.Island, Object.assign({ padding: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.ZoomActions, { renderAction: actionManager.renderAction, zoom: appState.zoom }) })), !appState.viewModeEnabled && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.UndoRedoActions, { renderAction: actionManager.renderAction, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-bottom\": appState.zenModeEnabled,\n }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"eraser-buttons zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }, { children: actionManager.renderAction(\"eraser\", { size: \"small\" }) }))] })), showFinalize && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.FinalizeAction, { renderAction: actionManager.renderAction, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }))] })) })) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__footer-center zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-bottom\": appState.zenModeEnabled,\n }) }, { children: renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(false, appState) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.ExitZenModeAction, { executeAction: actionManager.executeAction, showExitZenModeBtn: showExitZenModeBtn })] })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Footer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF3QjtBQVFMO0FBQ2U7QUFDQTtBQUNFO0FBQ1I7QUFFNUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUNkLFFBQVEsRUFDUixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGtCQUFrQixHQU1uQixFQUFFLEVBQUU7SUFDSCxNQUFNLE1BQU0sR0FBRywrQ0FBUyxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQ2hCLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDN0UsT0FBTyxDQUNMLGtGQUNFLElBQUksRUFBQyxhQUFhLEVBQ2xCLFNBQVMsRUFBQyxvREFBb0QsaUJBRTlELDhFQUNFLFNBQVMsRUFBRSxnREFBSSxDQUFDLG9EQUFvRCxFQUFFO29CQUNwRSxpREFBaUQsRUFDL0MsUUFBUSxDQUFDLGNBQWM7aUJBQzFCLENBQUMsZ0JBRUYsdURBQUMsa0RBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQ2Ysd0RBQUMsNkNBQU8sa0JBQUMsT0FBTyxFQUFDLGVBQWUsaUJBQzlCLHVEQUFDLDJDQUFNLGtCQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUNoQix1REFBQyxpREFBVyxJQUNWLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksR0FDbkIsSUFDSyxFQUNSLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUM1Qiw4SEFDRSx1REFBQyxxREFBZSxJQUNkLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxTQUFTLEVBQUUsZ0RBQUksQ0FBQyxxQkFBcUIsRUFBRTs0Q0FDckMsbURBQW1ELEVBQ2pELFFBQVEsQ0FBQyxjQUFjO3lDQUMxQixDQUFDLEdBQ0YsRUFFRiw4RUFDRSxTQUFTLEVBQUUsZ0RBQUksQ0FBQyxvQ0FBb0MsRUFBRTs0Q0FDcEQsaURBQWlELEVBQy9DLFFBQVEsQ0FBQyxjQUFjO3lDQUMxQixDQUFDLGdCQUVELGFBQWEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQ3BELElBQ0wsQ0FDSixFQUNBLFlBQVksSUFBSSxDQUNmLHVEQUFDLG9EQUFjLElBQ2IsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZLEVBQ3hDLFNBQVMsRUFBRSxnREFBSSxDQUFDLHFCQUFxQixFQUFFO29DQUNyQyxpREFBaUQsRUFDL0MsUUFBUSxDQUFDLGNBQWM7aUNBQzFCLENBQUMsR0FDRixDQUNILEtBQ08sSUFDQSxJQUNSLEVBQ04sOEVBQ0UsU0FBUyxFQUFFLGdEQUFJLENBQ2Isc0RBQXNELEVBQ3REO29CQUNFLG1EQUFtRCxFQUNqRCxRQUFRLENBQUMsY0FBYztpQkFDMUIsQ0FDRixnQkFFQSxrQkFBa0IsYUFBbEIsa0JBQWtCLHVCQUFsQixrQkFBa0IsQ0FBRyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQ2xDLEVBQ04sdURBQUMsdURBQWlCLElBQ2hCLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYSxFQUMxQyxrQkFBa0IsRUFBRSxrQkFBa0IsR0FDdEMsS0FDSyxDQUNWLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixpRUFBZSxNQUFNLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Gb290ZXIudHN4PzFmY2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsc3ggZnJvbSBcImNsc3hcIjtcbmltcG9ydCB7IEFjdGlvbk1hbmFnZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9tYW5hZ2VyXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgRXhjYWxpZHJhd1Byb3BzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQge1xuICBFeGl0WmVuTW9kZUFjdGlvbixcbiAgRmluYWxpemVBY3Rpb24sXG4gIFVuZG9SZWRvQWN0aW9ucyxcbiAgWm9vbUFjdGlvbnMsXG59IGZyb20gXCIuL0FjdGlvbnNcIjtcbmltcG9ydCB7IHVzZURldmljZSB9IGZyb20gXCIuL0FwcFwiO1xuaW1wb3J0IHsgSXNsYW5kIH0gZnJvbSBcIi4vSXNsYW5kXCI7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSBcIi4vU2VjdGlvblwiO1xuaW1wb3J0IFN0YWNrIGZyb20gXCIuL1N0YWNrXCI7XG5cbmNvbnN0IEZvb3RlciA9ICh7XG4gIGFwcFN0YXRlLFxuICBhY3Rpb25NYW5hZ2VyLFxuICByZW5kZXJDdXN0b21Gb290ZXIsXG4gIHNob3dFeGl0WmVuTW9kZUJ0bixcbn06IHtcbiAgYXBwU3RhdGU6IEFwcFN0YXRlO1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICByZW5kZXJDdXN0b21Gb290ZXI/OiBFeGNhbGlkcmF3UHJvcHNbXCJyZW5kZXJGb290ZXJcIl07XG4gIHNob3dFeGl0WmVuTW9kZUJ0bjogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgZGV2aWNlID0gdXNlRGV2aWNlKCk7XG4gIGNvbnN0IHNob3dGaW5hbGl6ZSA9XG4gICAgIWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCAmJiBhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgJiYgZGV2aWNlLmlzVG91Y2hTY3JlZW47XG4gIHJldHVybiAoXG4gICAgPGZvb3RlclxuICAgICAgcm9sZT1cImNvbnRlbnRpbmZvXCJcbiAgICAgIGNsYXNzTmFtZT1cImxheWVyLXVpX193cmFwcGVyX19mb290ZXIgQXBwLW1lbnUgQXBwLW1lbnVfYm90dG9tXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdCB6ZW4tbW9kZS10cmFuc2l0aW9uXCIsIHtcbiAgICAgICAgICBcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1sZWZ0XCI6XG4gICAgICAgICAgICBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgIDxTdGFjay5Db2wgZ2FwPXsyfT5cbiAgICAgICAgICA8U2VjdGlvbiBoZWFkaW5nPVwiY2FudmFzQWN0aW9uc1wiPlxuICAgICAgICAgICAgPElzbGFuZCBwYWRkaW5nPXsxfT5cbiAgICAgICAgICAgICAgPFpvb21BY3Rpb25zXG4gICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgICAgICAgICB6b29tPXthcHBTdGF0ZS56b29tfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Jc2xhbmQ+XG4gICAgICAgICAgICB7IWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFVuZG9SZWRvQWN0aW9uc1xuICAgICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgICAgICAgICAgICBcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1ib3R0b21cIjpcbiAgICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXCJlcmFzZXItYnV0dG9ucyB6ZW4tbW9kZS10cmFuc2l0aW9uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQtLXRyYW5zaXRpb24tbGVmdFwiOlxuICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiZXJhc2VyXCIsIHsgc2l6ZTogXCJzbWFsbFwiIH0pfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2hvd0ZpbmFsaXplICYmIChcbiAgICAgICAgICAgICAgPEZpbmFsaXplQWN0aW9uXG4gICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXCJ6ZW4tbW9kZS10cmFuc2l0aW9uXCIsIHtcbiAgICAgICAgICAgICAgICAgIFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWxlZnRcIjpcbiAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGUuemVuTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9TdGFjay5Db2w+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFxuICAgICAgICAgIFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1jZW50ZXIgemVuLW1vZGUtdHJhbnNpdGlvblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWJvdHRvbVwiOlxuICAgICAgICAgICAgICBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICB9LFxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7cmVuZGVyQ3VzdG9tRm9vdGVyPy4oZmFsc2UsIGFwcFN0YXRlKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPEV4aXRaZW5Nb2RlQWN0aW9uXG4gICAgICAgIGV4ZWN1dGVBY3Rpb249e2FjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbn1cbiAgICAgICAgc2hvd0V4aXRaZW5Nb2RlQnRuPXtzaG93RXhpdFplbk1vZGVCdG59XG4gICAgICAvPlxuICAgIDwvZm9vdGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/Footer.tsx\n");
2061
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n\n\n\n\n\n\n\nconst Footer = ({ appState, actionManager, renderCustomFooter, showExitZenModeBtn, }) => {\n const device = (0,_App__WEBPACK_IMPORTED_MODULE_3__.useDevice)();\n const showFinalize = !appState.viewModeEnabled && appState.multiElement && device.isTouchScreen;\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ role: \"contentinfo\", className: \"layer-ui__wrapper__footer App-menu App-menu_bottom\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__footer-left zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Col, Object.assign({ gap: 2 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Section__WEBPACK_IMPORTED_MODULE_5__.Section, Object.assign({ heading: \"canvasActions\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_4__.Island, Object.assign({ padding: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.ZoomActions, { renderAction: actionManager.renderAction, zoom: appState.zoom }) })), !appState.viewModeEnabled && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.UndoRedoActions, { renderAction: actionManager.renderAction, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-bottom\": appState.zenModeEnabled,\n }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"eraser-buttons zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }, { children: actionManager.renderAction(\"eraser\", { size: \"small\" }) }))] })), showFinalize && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.FinalizeAction, { renderAction: actionManager.renderAction, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-left\": appState.zenModeEnabled,\n }) }))] })) })) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__footer-center zen-mode-transition\", {\n \"layer-ui__wrapper__footer-left--transition-bottom\": appState.zenModeEnabled,\n }) }, { children: renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(false, appState) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__footer-right zen-mode-transition\", {\n \"transition-right disable-pointerEvents\": appState.zenModeEnabled,\n }) }, { children: actionManager.renderAction(\"toggleShortcuts\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_2__.ExitZenModeAction, { executeAction: actionManager.executeAction, showExitZenModeBtn: showExitZenModeBtn })] })));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Footer);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9Gb290ZXIudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF3QjtBQVFMO0FBQ2U7QUFDQTtBQUNFO0FBQ1I7QUFFNUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUNkLFFBQVEsRUFDUixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGtCQUFrQixHQU1uQixFQUFFLEVBQUU7SUFDSCxNQUFNLE1BQU0sR0FBRywrQ0FBUyxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQ2hCLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDN0UsT0FBTyxDQUNMLGtGQUNFLElBQUksRUFBQyxhQUFhLEVBQ2xCLFNBQVMsRUFBQyxvREFBb0QsaUJBRTlELDhFQUNFLFNBQVMsRUFBRSxnREFBSSxDQUFDLG9EQUFvRCxFQUFFO29CQUNwRSxpREFBaUQsRUFDL0MsUUFBUSxDQUFDLGNBQWM7aUJBQzFCLENBQUMsZ0JBRUYsdURBQUMsa0RBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQ2Ysd0RBQUMsNkNBQU8sa0JBQUMsT0FBTyxFQUFDLGVBQWUsaUJBQzlCLHVEQUFDLDJDQUFNLGtCQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUNoQix1REFBQyxpREFBVyxJQUNWLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksR0FDbkIsSUFDSyxFQUNSLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUM1Qiw4SEFDRSx1REFBQyxxREFBZSxJQUNkLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxTQUFTLEVBQUUsZ0RBQUksQ0FBQyxxQkFBcUIsRUFBRTs0Q0FDckMsbURBQW1ELEVBQ2pELFFBQVEsQ0FBQyxjQUFjO3lDQUMxQixDQUFDLEdBQ0YsRUFFRiw4RUFDRSxTQUFTLEVBQUUsZ0RBQUksQ0FBQyxvQ0FBb0MsRUFBRTs0Q0FDcEQsaURBQWlELEVBQy9DLFFBQVEsQ0FBQyxjQUFjO3lDQUMxQixDQUFDLGdCQUVELGFBQWEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQ3BELElBQ0wsQ0FDSixFQUNBLFlBQVksSUFBSSxDQUNmLHVEQUFDLG9EQUFjLElBQ2IsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUFZLEVBQ3hDLFNBQVMsRUFBRSxnREFBSSxDQUFDLHFCQUFxQixFQUFFO29DQUNyQyxpREFBaUQsRUFDL0MsUUFBUSxDQUFDLGNBQWM7aUNBQzFCLENBQUMsR0FDRixDQUNILEtBQ08sSUFDQSxJQUNSLEVBQ04sOEVBQ0UsU0FBUyxFQUFFLGdEQUFJLENBQ2Isc0RBQXNELEVBQ3REO29CQUNFLG1EQUFtRCxFQUNqRCxRQUFRLENBQUMsY0FBYztpQkFDMUIsQ0FDRixnQkFFQSxrQkFBa0IsYUFBbEIsa0JBQWtCLHVCQUFsQixrQkFBa0IsQ0FBRyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQ2xDLEVBQ04sOEVBQ0UsU0FBUyxFQUFFLGdEQUFJLENBQUMscURBQXFELEVBQUU7b0JBQ3JFLHdDQUF3QyxFQUFFLFFBQVEsQ0FBQyxjQUFjO2lCQUNsRSxDQUFDLGdCQUVELGFBQWEsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFDMUMsRUFDTix1REFBQyx1REFBaUIsSUFDaEIsYUFBYSxFQUFFLGFBQWEsQ0FBQyxhQUFhLEVBQzFDLGtCQUFrQixFQUFFLGtCQUFrQixHQUN0QyxLQUNLLENBQ1YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGlFQUFlLE1BQU0sRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0Zvb3Rlci50c3g/MWZjYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBFeGNhbGlkcmF3UHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIEV4aXRaZW5Nb2RlQWN0aW9uLFxuICBGaW5hbGl6ZUFjdGlvbixcbiAgVW5kb1JlZG9BY3Rpb25zLFxuICBab29tQWN0aW9ucyxcbn0gZnJvbSBcIi4vQWN0aW9uc1wiO1xuaW1wb3J0IHsgdXNlRGV2aWNlIH0gZnJvbSBcIi4vQXBwXCI7XG5pbXBvcnQgeyBJc2xhbmQgfSBmcm9tIFwiLi9Jc2xhbmRcIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9TZWN0aW9uXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcblxuY29uc3QgRm9vdGVyID0gKHtcbiAgYXBwU3RhdGUsXG4gIGFjdGlvbk1hbmFnZXIsXG4gIHJlbmRlckN1c3RvbUZvb3RlcixcbiAgc2hvd0V4aXRaZW5Nb2RlQnRuLFxufToge1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGFjdGlvbk1hbmFnZXI6IEFjdGlvbk1hbmFnZXI7XG4gIHJlbmRlckN1c3RvbUZvb3Rlcj86IEV4Y2FsaWRyYXdQcm9wc1tcInJlbmRlckZvb3RlclwiXTtcbiAgc2hvd0V4aXRaZW5Nb2RlQnRuOiBib29sZWFuO1xufSkgPT4ge1xuICBjb25zdCBkZXZpY2UgPSB1c2VEZXZpY2UoKTtcbiAgY29uc3Qgc2hvd0ZpbmFsaXplID1cbiAgICAhYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmIGFwcFN0YXRlLm11bHRpRWxlbWVudCAmJiBkZXZpY2UuaXNUb3VjaFNjcmVlbjtcbiAgcmV0dXJuIChcbiAgICA8Zm9vdGVyXG4gICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgY2xhc3NOYW1lPVwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3RlciBBcHAtbWVudSBBcHAtbWVudV9ib3R0b21cIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0IHplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgIFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWxlZnRcIjpcbiAgICAgICAgICAgIGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezJ9PlxuICAgICAgICAgIDxTZWN0aW9uIGhlYWRpbmc9XCJjYW52YXNBY3Rpb25zXCI+XG4gICAgICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezF9PlxuICAgICAgICAgICAgICA8Wm9vbUFjdGlvbnNcbiAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb249e2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9ufVxuICAgICAgICAgICAgICAgIHpvb209e2FwcFN0YXRlLnpvb219XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0lzbGFuZD5cbiAgICAgICAgICAgIHshYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8VW5kb1JlZG9BY3Rpb25zXG4gICAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb249e2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFwiemVuLW1vZGUtdHJhbnNpdGlvblwiLCB7XG4gICAgICAgICAgICAgICAgICAgIFwibGF5ZXItdWlfX3dyYXBwZXJfX2Zvb3Rlci1sZWZ0LS10cmFuc2l0aW9uLWJvdHRvbVwiOlxuICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcImVyYXNlci1idXR0b25zIHplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgICAgICAgICAgICBcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItbGVmdC0tdHJhbnNpdGlvbi1sZWZ0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGUuemVuTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJlcmFzZXJcIiwgeyBzaXplOiBcInNtYWxsXCIgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzaG93RmluYWxpemUgJiYgKFxuICAgICAgICAgICAgICA8RmluYWxpemVBY3Rpb25cbiAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb249e2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQtLXRyYW5zaXRpb24tbGVmdFwiOlxuICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWNlbnRlciB6ZW4tbW9kZS10cmFuc2l0aW9uXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fZm9vdGVyLWxlZnQtLXRyYW5zaXRpb24tYm90dG9tXCI6XG4gICAgICAgICAgICAgIGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICAgIH0sXG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIHtyZW5kZXJDdXN0b21Gb290ZXI/LihmYWxzZSwgYXBwU3RhdGUpfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcImxheWVyLXVpX193cmFwcGVyX19mb290ZXItcmlnaHQgemVuLW1vZGUtdHJhbnNpdGlvblwiLCB7XG4gICAgICAgICAgXCJ0cmFuc2l0aW9uLXJpZ2h0IGRpc2FibGUtcG9pbnRlckV2ZW50c1wiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZVNob3J0Y3V0c1wiKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPEV4aXRaZW5Nb2RlQWN0aW9uXG4gICAgICAgIGV4ZWN1dGVBY3Rpb249e2FjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbn1cbiAgICAgICAgc2hvd0V4aXRaZW5Nb2RlQnRuPXtzaG93RXhpdFplbk1vZGVCdG59XG4gICAgICAvPlxuICAgIDwvZm9vdGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/Footer.tsx\n");
2286
2062
 
2287
2063
  /***/ }),
2288
2064
 
@@ -2381,7 +2157,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2381
2157
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2382
2158
 
2383
2159
  "use strict";
2384
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data */ \"../../data/index.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _ErrorDialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ErrorDialog */ \"../../components/ErrorDialog.tsx\");\n/* harmony import */ var _ImageExportDialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ImageExportDialog */ \"../../components/ImageExportDialog.tsx\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _HintViewer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./HintViewer */ \"../../components/HintViewer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _LoadingMessage__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./LoadingMessage */ \"../../components/LoadingMessage.tsx\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _MobileMenu__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./MobileMenu */ \"../../components/MobileMenu.tsx\");\n/* harmony import */ var _PasteChartDialog__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./PasteChartDialog */ \"../../components/PasteChartDialog.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _HelpDialog__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./HelpDialog */ \"../../components/HelpDialog.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../data/library */ \"../../data/library.ts\");\n/* harmony import */ var _JSONExportDialog__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./JSONExportDialog */ \"../../components/JSONExportDialog.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _LibraryMenu__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./LibraryMenu */ \"../../components/LibraryMenu.tsx\");\n/* harmony import */ var _LayerUI_scss__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./LayerUI.scss */ \"../../components/LayerUI.scss\");\n/* harmony import */ var _LayerUI_scss__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_LayerUI_scss__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var _Toolbar_scss__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Toolbar.scss */ \"../../components/Toolbar.scss\");\n/* harmony import */ var _Toolbar_scss__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_Toolbar_scss__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n/* harmony import */ var _analytics__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../analytics */ \"../../analytics.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _Stats__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Stats */ \"../../components/Stats.tsx\");\n/* harmony import */ var _actions_actionToggleStats__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../actions/actionToggleStats */ \"../../actions/actionToggleStats.tsx\");\n/* harmony import */ var _Footer__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Footer */ \"../../components/Footer.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst LayerUI = ({ actionManager, appState, files, setAppState, elements, canvas, onCollabButtonClick, onLockToggle, onPenModeToggle, onInsertElements, showExitZenModeBtn, showThemeBtn, isCollaborating, renderTopRightUI, renderCustomFooter, renderCustomStats, libraryReturnUrl, UIOptions, focusContainer, library, id, onImageAction, }) => {\n const device = (0,_components_App__WEBPACK_IMPORTED_MODULE_34__.useDevice)();\n const renderJSONExportDialog = () => {\n if (!UIOptions.canvasActions.export) {\n return null;\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_JSONExportDialog__WEBPACK_IMPORTED_MODULE_26__.JSONExportDialog, { elements: elements, appState: appState, files: files, actionManager: actionManager, exportOpts: UIOptions.canvasActions.export, canvas: canvas }));\n };\n const renderImageExportDialog = () => {\n if (!UIOptions.canvasActions.saveAsImage) {\n return null;\n }\n const createExporter = (type) => (exportedElements) => __awaiter(void 0, void 0, void 0, function* () {\n (0,_analytics__WEBPACK_IMPORTED_MODULE_33__.trackEvent)(\"export\", type, \"ui\");\n const fileHandle = yield (0,_data__WEBPACK_IMPORTED_MODULE_4__.exportCanvas)(type, exportedElements, appState, files, {\n exportBackground: appState.exportBackground,\n name: appState.name,\n viewBackgroundColor: appState.viewBackgroundColor,\n })\n .catch(_utils__WEBPACK_IMPORTED_MODULE_8__.muteFSAbortError)\n .catch((error) => {\n console.error(error);\n setAppState({ errorMessage: error.message });\n });\n if (appState.exportEmbedScene &&\n fileHandle &&\n (0,_data_blob__WEBPACK_IMPORTED_MODULE_28__.isImageFileHandle)(fileHandle)) {\n setAppState({ fileHandle });\n }\n });\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageExportDialog__WEBPACK_IMPORTED_MODULE_13__.ImageExportDialog, { elements: elements, appState: appState, files: files, actionManager: actionManager, onExportToPng: createExporter(\"png\"), onExportToSvg: createExporter(\"svg\"), onExportToClipboard: createExporter(\"clipboard\") }));\n };\n const Separator = () => {\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { style: { width: \".625em\" } });\n };\n const renderViewModeCanvasActions = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"canvasActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 2, style: { zIndex: 1 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, justifyContent: \"space-between\" }, { children: [renderJSONExportDialog(), renderImageExportDialog()] })) })) })) })));\n };\n const renderCanvasActions = () => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"canvasActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 2, style: { zIndex: 1 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, justifyContent: \"space-between\" }, { children: [actionManager.renderAction(\"clearCanvas\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Separator, {}), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Separator, {}), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_11__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_10__.BackgroundPickerAndDarkModeToggle, { appState: appState, actionManager: actionManager, setAppState: setAppState, showThemeBtn: showThemeBtn }), appState.fileHandle && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: actionManager.renderAction(\"saveToActiveFile\") }))] })) })) })));\n const renderSelectedShapeActions = () => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"selectedShapeActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ className: _constants__WEBPACK_IMPORTED_MODULE_3__.CLASSES.SHAPE_ACTIONS_MENU, padding: 2, style: {\n // we want to make sure this doesn't overflow so subtracting 200\n // which is approximately height of zoom footer and top left menu items with some buffer\n // if active file name is displayed, subtracting 248 to account for its height\n maxHeight: `${appState.height - (appState.fileHandle ? 248 : 200)}px`,\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction }) })) })));\n const closeLibrary = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {\n const isDialogOpen = !!document.querySelector(\".Dialog\");\n // Prevent closing if any dialog is open\n if (isDialogOpen) {\n return;\n }\n setAppState({ isLibraryOpen: false });\n }, [setAppState]);\n const deselectItems = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {\n setAppState({\n selectedElementIds: {},\n selectedGroupIds: {},\n });\n }, [setAppState]);\n const libraryMenu = appState.isLibraryOpen ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryMenu__WEBPACK_IMPORTED_MODULE_29__.LibraryMenu, { pendingElements: (0,_scene__WEBPACK_IMPORTED_MODULE_7__.getSelectedElements)(elements, appState, true), onClose: closeLibrary, onInsertLibraryItems: (libraryItems) => {\n onInsertElements((0,_data_library__WEBPACK_IMPORTED_MODULE_25__.distributeLibraryItemsOnSquareGrid)(libraryItems));\n }, onAddToLibrary: deselectItems, setAppState: setAppState, libraryReturnUrl: libraryReturnUrl, focusContainer: focusContainer, library: library, files: files, id: id, appState: appState })) : null;\n const renderFixedSideContainer = () => {\n const shouldRenderSelectedShapeActions = (0,_element__WEBPACK_IMPORTED_MODULE_5__.showSelectedShapeActions)(appState, elements);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_14__.FixedSideContainer, Object.assign({ side: \"top\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-menu App-menu_top\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n \"disable-pointerEvents\": appState.zenModeEnabled,\n }) }, { children: [appState.viewModeEnabled\n ? renderViewModeCanvasActions()\n : renderCanvasActions(), shouldRenderSelectedShapeActions && renderSelectedShapeActions()] })), !appState.viewModeEnabled && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4, align: \"start\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"App-toolbar-container\", {\n \"zen-mode\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_32__.PenModeButton, { zenModeEnabled: appState.zenModeEnabled, checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"toolBar.penMode\"), penDetected: appState.penDetected }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_18__.LockButton, { zenModeEnabled: appState.zenModeEnabled, checked: appState.activeTool.locked, onChange: () => onLockToggle(), title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"toolBar.lock\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 1, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"App-toolbar\", {\n \"zen-mode\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HintViewer__WEBPACK_IMPORTED_MODULE_15__.HintViewer, { appState: appState, elements: elements, isMobile: device.isMobile }), heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.ShapesSwitcher, { appState: appState, canvas: canvas, activeTool: appState.activeTool, setAppState: setAppState, onImageAction: ({ pointerType }) => {\n onImageAction({\n insertOnCanvasDirectly: pointerType !== \"mouse\",\n });\n } }) }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_27__.LibraryButton, { appState: appState, setAppState: setAppState })] })) }))) }))), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__top-right zen-mode-transition\", {\n \"transition-right\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_24__.UserList, { collaborators: appState.collaborators, actionManager: actionManager }), renderTopRightUI === null || renderTopRightUI === void 0 ? void 0 : renderTopRightUI(device.isMobile, appState)] }))] })) })));\n };\n const dialogs = ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [appState.isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LoadingMessage__WEBPACK_IMPORTED_MODULE_17__.LoadingMessage, { delay: 250 }), appState.errorMessage && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ErrorDialog__WEBPACK_IMPORTED_MODULE_12__.ErrorDialog, { message: appState.errorMessage, onClose: () => setAppState({ errorMessage: null }) })), appState.showHelpDialog && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HelpDialog__WEBPACK_IMPORTED_MODULE_22__.HelpDialog, { onClose: () => {\n setAppState({ showHelpDialog: false });\n } })), appState.pasteDialog.shown && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PasteChartDialog__WEBPACK_IMPORTED_MODULE_20__.PasteChartDialog, { setAppState: setAppState, appState: appState, onInsertChart: onInsertElements, onClose: () => setAppState({\n pasteDialog: { shown: false, data: null },\n }) }))] }));\n return device.isMobile ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [dialogs, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MobileMenu__WEBPACK_IMPORTED_MODULE_19__.MobileMenu, { appState: appState, elements: elements, actionManager: actionManager, libraryMenu: libraryMenu, renderJSONExportDialog: renderJSONExportDialog, renderImageExportDialog: renderImageExportDialog, setAppState: setAppState, onCollabButtonClick: onCollabButtonClick, onLockToggle: () => onLockToggle(), onPenModeToggle: onPenModeToggle, canvas: canvas, isCollaborating: isCollaborating, renderCustomFooter: renderCustomFooter, showThemeBtn: showThemeBtn, onImageAction: onImageAction, renderTopRightUI: renderTopRightUI, renderCustomStats: renderCustomStats })] })) : ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper\", {\n \"disable-pointerEvents\": appState.draggingElement ||\n appState.resizingElement ||\n (appState.editingElement &&\n !(0,_element__WEBPACK_IMPORTED_MODULE_5__.isTextElement)(appState.editingElement)),\n }), style: appState.isLibraryOpen &&\n appState.isLibraryMenuDocked &&\n device.canDeviceFitSidebar\n ? { width: `calc(100% - ${_constants__WEBPACK_IMPORTED_MODULE_3__.LIBRARY_SIDEBAR_WIDTH}px)` }\n : {} }, { children: [dialogs, renderFixedSideContainer(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Footer__WEBPACK_IMPORTED_MODULE_37__[\"default\"], { appState: appState, actionManager: actionManager, renderCustomFooter: renderCustomFooter, showExitZenModeBtn: showExitZenModeBtn }), appState.showStats && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stats__WEBPACK_IMPORTED_MODULE_35__.Stats, { appState: appState, setAppState: setAppState, elements: elements, onClose: () => {\n actionManager.executeAction(_actions_actionToggleStats__WEBPACK_IMPORTED_MODULE_36__.actionToggleStats);\n }, renderCustomStats: renderCustomStats })), appState.scrolledOutside && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_7__.calculateScrollCenter)(elements, appState, canvas)));\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.scrollBackToContent\") })))] })), appState.isLibraryOpen && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"layer-ui__sidebar\" }, { children: libraryMenu })))] }));\n};\nconst areEqual = (prev, next) => {\n const getNecessaryObj = (appState) => {\n const { suggestedBindings, startBoundElement: boundElement } = appState, ret = __rest(appState, [\"suggestedBindings\", \"startBoundElement\"]);\n return ret;\n };\n const prevAppState = getNecessaryObj(prev.appState);\n const nextAppState = getNecessaryObj(next.appState);\n const keys = Object.keys(prevAppState);\n return (prev.renderCustomFooter === next.renderCustomFooter &&\n prev.langCode === next.langCode &&\n prev.elements === next.elements &&\n prev.files === next.files &&\n keys.every((key) => prevAppState[key] === nextAppState[key]));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (react__WEBPACK_IMPORTED_MODULE_2___default().memo(LayerUI, areEqual));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0lBQ2IsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFnQyxDQUFDO0lBQ3RFLE9BQU8sQ0FDTCxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLGtCQUFrQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRO1FBQy9CLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVE7UUFDL0IsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixpRUFBZSxpREFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0xheWVyVUkudHN4PzA4NzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsc3ggZnJvbSBcImNsc3hcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcbmltcG9ydCB7IENMQVNTRVMsIExJQlJBUllfU0lERUJBUl9XSURUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGV4cG9ydENhbnZhcyB9IGZyb20gXCIuLi9kYXRhXCI7XG5pbXBvcnQgeyBpc1RleHRFbGVtZW50LCBzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IExhbmd1YWdlLCB0IH0gZnJvbSBcIi4uL2kxOG5cIjtcbmltcG9ydCB7IGNhbGN1bGF0ZVNjcm9sbENlbnRlciwgZ2V0U2VsZWN0ZWRFbGVtZW50cyB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgRXhwb3J0VHlwZSB9IGZyb20gXCIuLi9zY2VuZS90eXBlc1wiO1xuaW1wb3J0IHsgQXBwUHJvcHMsIEFwcFN0YXRlLCBFeGNhbGlkcmF3UHJvcHMsIEJpbmFyeUZpbGVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBtdXRlRlNBYm9ydEVycm9yIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZFNoYXBlQWN0aW9ucywgU2hhcGVzU3dpdGNoZXIgfSBmcm9tIFwiLi9BY3Rpb25zXCI7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgfSBmcm9tIFwiLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCBDb2xsYWJCdXR0b24gZnJvbSBcIi4vQ29sbGFiQnV0dG9uXCI7XG5pbXBvcnQgeyBFcnJvckRpYWxvZyB9IGZyb20gXCIuL0Vycm9yRGlhbG9nXCI7XG5pbXBvcnQgeyBFeHBvcnRDQiwgSW1hZ2VFeHBvcnREaWFsb2cgfSBmcm9tIFwiLi9JbWFnZUV4cG9ydERpYWxvZ1wiO1xuaW1wb3J0IHsgRml4ZWRTaWRlQ29udGFpbmVyIH0gZnJvbSBcIi4vRml4ZWRTaWRlQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBIaW50Vmlld2VyIH0gZnJvbSBcIi4vSGludFZpZXdlclwiO1xuaW1wb3J0IHsgSXNsYW5kIH0gZnJvbSBcIi4vSXNsYW5kXCI7XG5pbXBvcnQgeyBMb2FkaW5nTWVzc2FnZSB9IGZyb20gXCIuL0xvYWRpbmdNZXNzYWdlXCI7XG5pbXBvcnQgeyBMb2NrQnV0dG9uIH0gZnJvbSBcIi4vTG9ja0J1dHRvblwiO1xuaW1wb3J0IHsgTW9iaWxlTWVudSB9IGZyb20gXCIuL01vYmlsZU1lbnVcIjtcbmltcG9ydCB7IFBhc3RlQ2hhcnREaWFsb2cgfSBmcm9tIFwiLi9QYXN0ZUNoYXJ0RGlhbG9nXCI7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSBcIi4vU2VjdGlvblwiO1xuaW1wb3J0IHsgSGVscERpYWxvZyB9IGZyb20gXCIuL0hlbHBEaWFsb2dcIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiLi9TdGFja1wiO1xuaW1wb3J0IHsgVXNlckxpc3QgfSBmcm9tIFwiLi9Vc2VyTGlzdFwiO1xuaW1wb3J0IExpYnJhcnksIHsgZGlzdHJpYnV0ZUxpYnJhcnlJdGVtc09uU3F1YXJlR3JpZCB9IGZyb20gXCIuLi9kYXRhL2xpYnJhcnlcIjtcbmltcG9ydCB7IEpTT05FeHBvcnREaWFsb2cgfSBmcm9tIFwiLi9KU09ORXhwb3J0RGlhbG9nXCI7XG5pbXBvcnQgeyBMaWJyYXJ5QnV0dG9uIH0gZnJvbSBcIi4vTGlicmFyeUJ1dHRvblwiO1xuaW1wb3J0IHsgaXNJbWFnZUZpbGVIYW5kbGUgfSBmcm9tIFwiLi4vZGF0YS9ibG9iXCI7XG5pbXBvcnQgeyBMaWJyYXJ5TWVudSB9IGZyb20gXCIuL0xpYnJhcnlNZW51XCI7XG5cbmltcG9ydCBcIi4vTGF5ZXJVSS5zY3NzXCI7XG5pbXBvcnQgXCIuL1Rvb2xiYXIuc2Nzc1wiO1xuaW1wb3J0IHsgUGVuTW9kZUJ1dHRvbiB9IGZyb20gXCIuL1Blbk1vZGVCdXR0b25cIjtcbmltcG9ydCB7IHRyYWNrRXZlbnQgfSBmcm9tIFwiLi4vYW5hbHl0aWNzXCI7XG5pbXBvcnQgeyB1c2VEZXZpY2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcHBcIjtcbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcIi4vU3RhdHNcIjtcbmltcG9ydCB7IGFjdGlvblRvZ2dsZVN0YXRzIH0gZnJvbSBcIi4uL2FjdGlvbnMvYWN0aW9uVG9nZ2xlU3RhdHNcIjtcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4vRm9vdGVyXCI7XG5cbmludGVyZmFjZSBMYXllclVJUHJvcHMge1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGZpbGVzOiBCaW5hcnlGaWxlcztcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIHNldEFwcFN0YXRlOiBSZWFjdC5Db21wb25lbnQ8YW55LCBBcHBTdGF0ZT5bXCJzZXRTdGF0ZVwiXTtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBvbkNvbGxhYkJ1dHRvbkNsaWNrPzogKCkgPT4gdm9pZDtcbiAgb25Mb2NrVG9nZ2xlOiAoKSA9PiB2b2lkO1xuICBvblBlbk1vZGVUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIG9uSW5zZXJ0RWxlbWVudHM6IChlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10pID0+IHZvaWQ7XG4gIHNob3dFeGl0WmVuTW9kZUJ0bjogYm9vbGVhbjtcbiAgc2hvd1RoZW1lQnRuOiBib29sZWFuO1xuICBsYW5nQ29kZTogTGFuZ3VhZ2VbXCJjb2RlXCJdO1xuICBpc0NvbGxhYm9yYXRpbmc6IGJvb2xlYW47XG4gIHJlbmRlclRvcFJpZ2h0VUk/OiBFeGNhbGlkcmF3UHJvcHNbXCJyZW5kZXJUb3BSaWdodFVJXCJdO1xuICByZW5kZXJDdXN0b21Gb290ZXI/OiBFeGNhbGlkcmF3UHJvcHNbXCJyZW5kZXJGb290ZXJcIl07XG4gIHJlbmRlckN1c3RvbVN0YXRzPzogRXhjYWxpZHJhd1Byb3BzW1wicmVuZGVyQ3VzdG9tU3RhdHNcIl07XG4gIGxpYnJhcnlSZXR1cm5Vcmw6IEV4Y2FsaWRyYXdQcm9wc1tcImxpYnJhcnlSZXR1cm5VcmxcIl07XG4gIFVJT3B0aW9uczogQXBwUHJvcHNbXCJVSU9wdGlvbnNcIl07XG4gIGZvY3VzQ29udGFpbmVyOiAoKSA9PiB2b2lkO1xuICBsaWJyYXJ5OiBMaWJyYXJ5O1xuICBpZDogc3RyaW5nO1xuICBvbkltYWdlQWN0aW9uOiAoZGF0YTogeyBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5OiBib29sZWFuIH0pID0+IHZvaWQ7XG59XG5jb25zdCBMYXllclVJID0gKHtcbiAgYWN0aW9uTWFuYWdlcixcbiAgYXBwU3RhdGUsXG4gIGZpbGVzLFxuICBzZXRBcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIGNhbnZhcyxcbiAgb25Db2xsYWJCdXR0b25DbGljayxcbiAgb25Mb2NrVG9nZ2xlLFxuICBvblBlbk1vZGVUb2dnbGUsXG4gIG9uSW5zZXJ0RWxlbWVudHMsXG4gIHNob3dFeGl0WmVuTW9kZUJ0bixcbiAgc2hvd1RoZW1lQnRuLFxuICBpc0NvbGxhYm9yYXRpbmcsXG4gIHJlbmRlclRvcFJpZ2h0VUksXG4gIHJlbmRlckN1c3RvbUZvb3RlcixcbiAgcmVuZGVyQ3VzdG9tU3RhdHMsXG4gIGxpYnJhcnlSZXR1cm5VcmwsXG4gIFVJT3B0aW9ucyxcbiAgZm9jdXNDb250YWluZXIsXG4gIGxpYnJhcnksXG4gIGlkLFxuICBvbkltYWdlQWN0aW9uLFxufTogTGF5ZXJVSVByb3BzKSA9PiB7XG4gIGNvbnN0IGRldmljZSA9IHVzZURldmljZSgpO1xuXG4gIGNvbnN0IHJlbmRlckpTT05FeHBvcnREaWFsb2cgPSAoKSA9PiB7XG4gICAgaWYgKCFVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8SlNPTkV4cG9ydERpYWxvZ1xuICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICBleHBvcnRPcHRzPXtVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnR9XG4gICAgICAgIGNhbnZhcz17Y2FudmFzfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckltYWdlRXhwb3J0RGlhbG9nID0gKCkgPT4ge1xuICAgIGlmICghVUlPcHRpb25zLmNhbnZhc0FjdGlvbnMuc2F2ZUFzSW1hZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWF0ZUV4cG9ydGVyID1cbiAgICAgICh0eXBlOiBFeHBvcnRUeXBlKTogRXhwb3J0Q0IgPT5cbiAgICAgIGFzeW5jIChleHBvcnRlZEVsZW1lbnRzKSA9PiB7XG4gICAgICAgIHRyYWNrRXZlbnQoXCJleHBvcnRcIiwgdHlwZSwgXCJ1aVwiKTtcbiAgICAgICAgY29uc3QgZmlsZUhhbmRsZSA9IGF3YWl0IGV4cG9ydENhbnZhcyhcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGV4cG9ydGVkRWxlbWVudHMsXG4gICAgICAgICAgYXBwU3RhdGUsXG4gICAgICAgICAgZmlsZXMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZXhwb3J0QmFja2dyb3VuZDogYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCxcbiAgICAgICAgICAgIG5hbWU6IGFwcFN0YXRlLm5hbWUsXG4gICAgICAgICAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBhcHBTdGF0ZS52aWV3QmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgICAuY2F0Y2gobXV0ZUZTQWJvcnRFcnJvcilcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lICYmXG4gICAgICAgICAgZmlsZUhhbmRsZSAmJlxuICAgICAgICAgIGlzSW1hZ2VGaWxlSGFuZGxlKGZpbGVIYW5kbGUpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldEFwcFN0YXRlKHsgZmlsZUhhbmRsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8SW1hZ2VFeHBvcnREaWFsb2dcbiAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgIGZpbGVzPXtmaWxlc31cbiAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgb25FeHBvcnRUb1BuZz17Y3JlYXRlRXhwb3J0ZXIoXCJwbmdcIil9XG4gICAgICAgIG9uRXhwb3J0VG9Tdmc9e2NyZWF0ZUV4cG9ydGVyKFwic3ZnXCIpfVxuICAgICAgICBvbkV4cG9ydFRvQ2xpcGJvYXJkPXtjcmVhdGVFeHBvcnRlcihcImNsaXBib2FyZFwiKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBTZXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgcmV0dXJuIDxkaXYgc3R5bGU9e3sgd2lkdGg6IFwiLjYyNWVtXCIgfX0gLz47XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVmlld01vZGVDYW52YXNBY3Rpb25zID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U2VjdGlvblxuICAgICAgICBoZWFkaW5nPVwiY2FudmFzQWN0aW9uc1wiXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgIFwidHJhbnNpdGlvbi1sZWZ0XCI6IGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgey8qIHRoZSB6SW5kZXggZW5zdXJlcyB0aGlzIG1lbnUgaGFzIGhpZ2hlciBzdGFja2luZyBvcmRlcixcbiAgICAgICAgIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpZHJhdy9leGNhbGlkcmF3L3B1bGwvMTQ0NSAqL31cbiAgICAgICAgPElzbGFuZCBwYWRkaW5nPXsyfSBzdHlsZT17eyB6SW5kZXg6IDEgfX0+XG4gICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9PlxuICAgICAgICAgICAgPFN0YWNrLlJvdyBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiPlxuICAgICAgICAgICAgICB7cmVuZGVySlNPTkV4cG9ydERpYWxvZygpfVxuICAgICAgICAgICAgICB7cmVuZGVySW1hZ2VFeHBvcnREaWFsb2coKX1cbiAgICAgICAgICAgIDwvU3RhY2suUm93PlxuICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICA8L0lzbGFuZD5cbiAgICAgIDwvU2VjdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckNhbnZhc0FjdGlvbnMgPSAoKSA9PiAoXG4gICAgPFNlY3Rpb25cbiAgICAgIGhlYWRpbmc9XCJjYW52YXNBY3Rpb25zXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICBcInRyYW5zaXRpb24tbGVmdFwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIHsvKiB0aGUgekluZGV4IGVuc3VyZXMgdGhpcyBtZW51IGhhcyBoaWdoZXIgc3RhY2tpbmcgb3JkZXIsXG4gICAgICAgICBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzE0NDUgKi99XG4gICAgICA8SXNsYW5kIHBhZGRpbmc9ezJ9IHN0eWxlPXt7IHpJbmRleDogMSB9fT5cbiAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9PlxuICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImNsZWFyQ2FudmFzXCIpfVxuICAgICAgICAgICAgPFNlcGFyYXRvciAvPlxuICAgICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwibG9hZFNjZW5lXCIpfVxuICAgICAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAgICAgIHtyZW5kZXJJbWFnZUV4cG9ydERpYWxvZygpfVxuICAgICAgICAgICAgPFNlcGFyYXRvciAvPlxuICAgICAgICAgICAge29uQ29sbGFiQnV0dG9uQ2xpY2sgJiYgKFxuICAgICAgICAgICAgICA8Q29sbGFiQnV0dG9uXG4gICAgICAgICAgICAgICAgaXNDb2xsYWJvcmF0aW5nPXtpc0NvbGxhYm9yYXRpbmd9XG4gICAgICAgICAgICAgICAgY29sbGFib3JhdG9yQ291bnQ9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNvbGxhYkJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICA8QmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlXG4gICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgc2hvd1RoZW1lQnRuPXtzaG93VGhlbWVCdG59XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7YXBwU3RhdGUuZmlsZUhhbmRsZSAmJiAoXG4gICAgICAgICAgICA8PnthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInNhdmVUb0FjdGl2ZUZpbGVcIil9PC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdGFjay5Db2w+XG4gICAgICA8L0lzbGFuZD5cbiAgICA8L1NlY3Rpb24+XG4gICk7XG5cbiAgY29uc3QgcmVuZGVyU2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoKSA9PiAoXG4gICAgPFNlY3Rpb25cbiAgICAgIGhlYWRpbmc9XCJzZWxlY3RlZFNoYXBlQWN0aW9uc1wiXG4gICAgICBjbGFzc05hbWU9e2Nsc3goXCJ6ZW4tbW9kZS10cmFuc2l0aW9uXCIsIHtcbiAgICAgICAgXCJ0cmFuc2l0aW9uLWxlZnRcIjogYXBwU3RhdGUuemVuTW9kZUVuYWJsZWQsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8SXNsYW5kXG4gICAgICAgIGNsYXNzTmFtZT17Q0xBU1NFUy5TSEFQRV9BQ1RJT05TX01FTlV9XG4gICAgICAgIHBhZGRpbmc9ezJ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLy8gd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhpcyBkb2Vzbid0IG92ZXJmbG93IHNvIHN1YnRyYWN0aW5nIDIwMFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGFwcHJveGltYXRlbHkgaGVpZ2h0IG9mIHpvb20gZm9vdGVyIGFuZCB0b3AgbGVmdCBtZW51IGl0ZW1zIHdpdGggc29tZSBidWZmZXJcbiAgICAgICAgICAvLyBpZiBhY3RpdmUgZmlsZSBuYW1lIGlzIGRpc3BsYXllZCwgc3VidHJhY3RpbmcgMjQ4IHRvIGFjY291bnQgZm9yIGl0cyBoZWlnaHRcbiAgICAgICAgICBtYXhIZWlnaHQ6IGAke2FwcFN0YXRlLmhlaWdodCAtIChhcHBTdGF0ZS5maWxlSGFuZGxlID8gMjQ4IDogMjAwKX1weGAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RlZFNoYXBlQWN0aW9uc1xuICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgLz5cbiAgICAgIDwvSXNsYW5kPlxuICAgIDwvU2VjdGlvbj5cbiAgKTtcblxuICBjb25zdCBjbG9zZUxpYnJhcnkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgaXNEaWFsb2dPcGVuID0gISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLkRpYWxvZ1wiKTtcblxuICAgIC8vIFByZXZlbnQgY2xvc2luZyBpZiBhbnkgZGlhbG9nIGlzIG9wZW5cbiAgICBpZiAoaXNEaWFsb2dPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldEFwcFN0YXRlKHsgaXNMaWJyYXJ5T3BlbjogZmFsc2UgfSk7XG4gIH0sIFtzZXRBcHBTdGF0ZV0pO1xuXG4gIGNvbnN0IGRlc2VsZWN0SXRlbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QXBwU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgIHNlbGVjdGVkR3JvdXBJZHM6IHt9LFxuICAgIH0pO1xuICB9LCBbc2V0QXBwU3RhdGVdKTtcblxuICBjb25zdCBsaWJyYXJ5TWVudSA9IGFwcFN0YXRlLmlzTGlicmFyeU9wZW4gPyAoXG4gICAgPExpYnJhcnlNZW51XG4gICAgICBwZW5kaW5nRWxlbWVudHM9e2dldFNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKX1cbiAgICAgIG9uQ2xvc2U9e2Nsb3NlTGlicmFyeX1cbiAgICAgIG9uSW5zZXJ0TGlicmFyeUl0ZW1zPXsobGlicmFyeUl0ZW1zKSA9PiB7XG4gICAgICAgIG9uSW5zZXJ0RWxlbWVudHMoZGlzdHJpYnV0ZUxpYnJhcnlJdGVtc09uU3F1YXJlR3JpZChsaWJyYXJ5SXRlbXMpKTtcbiAgICAgIH19XG4gICAgICBvbkFkZFRvTGlicmFyeT17ZGVzZWxlY3RJdGVtc31cbiAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgIGxpYnJhcnlSZXR1cm5Vcmw9e2xpYnJhcnlSZXR1cm5Vcmx9XG4gICAgICBmb2N1c0NvbnRhaW5lcj17Zm9jdXNDb250YWluZXJ9XG4gICAgICBsaWJyYXJ5PXtsaWJyYXJ5fVxuICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgaWQ9e2lkfVxuICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgIC8+XG4gICkgOiBudWxsO1xuXG4gIGNvbnN0IHJlbmRlckZpeGVkU2lkZUNvbnRhaW5lciA9ICgpID0+IHtcbiAgICBjb25zdCBzaG91bGRSZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucyA9IHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyhcbiAgICAgIGFwcFN0YXRlLFxuICAgICAgZWxlbWVudHMsXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Rml4ZWRTaWRlQ29udGFpbmVyIHNpZGU9XCJ0b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHAtbWVudSBBcHAtbWVudV90b3BcIj5cbiAgICAgICAgICA8U3RhY2suQ29sXG4gICAgICAgICAgICBnYXA9ezR9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goe1xuICAgICAgICAgICAgICBcImRpc2FibGUtcG9pbnRlckV2ZW50c1wiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHthcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWRcbiAgICAgICAgICAgICAgPyByZW5kZXJWaWV3TW9kZUNhbnZhc0FjdGlvbnMoKVxuICAgICAgICAgICAgICA6IHJlbmRlckNhbnZhc0FjdGlvbnMoKX1cbiAgICAgICAgICAgIHtzaG91bGRSZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucyAmJiByZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucygpfVxuICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICAgIHshYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIGhlYWRpbmc9XCJzaGFwZXNcIj5cbiAgICAgICAgICAgICAgeyhoZWFkaW5nOiBSZWFjdC5SZWFjdE5vZGUpID0+IChcbiAgICAgICAgICAgICAgICA8U3RhY2suQ29sIGdhcD17NH0gYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPFN0YWNrLlJvd1xuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcIkFwcC10b29sYmFyLWNvbnRhaW5lclwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ6ZW4tbW9kZVwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQZW5Nb2RlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgemVuTW9kZUVuYWJsZWQ9e2FwcFN0YXRlLnplbk1vZGVFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLnBlbk1vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uUGVuTW9kZVRvZ2dsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIucGVuTW9kZVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICBwZW5EZXRlY3RlZD17YXBwU3RhdGUucGVuRGV0ZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxMb2NrQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgemVuTW9kZUVuYWJsZWQ9e2FwcFN0YXRlLnplbk1vZGVFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLmFjdGl2ZVRvb2wubG9ja2VkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBvbkxvY2tUb2dnbGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIubG9ja1wiKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPElzbGFuZFxuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFwiQXBwLXRvb2xiYXJcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ6ZW4tbW9kZVwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaW50Vmlld2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vYmlsZT17ZGV2aWNlLmlzTW9iaWxlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0YWNrLlJvdyBnYXA9ezF9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNoYXBlc1N3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzPXtjYW52YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2w9e2FwcFN0YXRlLmFjdGl2ZVRvb2x9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbWFnZUFjdGlvbj17KHsgcG9pbnRlclR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW1hZ2VBY3Rpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogcG9pbnRlclR5cGUgIT09IFwibW91c2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdGFjay5Sb3c+XG4gICAgICAgICAgICAgICAgICAgIDwvSXNsYW5kPlxuICAgICAgICAgICAgICAgICAgICA8TGlicmFyeUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fdG9wLXJpZ2h0IHplbi1tb2RlLXRyYW5zaXRpb25cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwidHJhbnNpdGlvbi1yaWdodFwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFVzZXJMaXN0XG4gICAgICAgICAgICAgIGNvbGxhYm9yYXRvcnM9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnN9XG4gICAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3JlbmRlclRvcFJpZ2h0VUk/LihkZXZpY2UuaXNNb2JpbGUsIGFwcFN0YXRlKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0ZpeGVkU2lkZUNvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGRpYWxvZ3MgPSAoXG4gICAgPD5cbiAgICAgIHthcHBTdGF0ZS5pc0xvYWRpbmcgJiYgPExvYWRpbmdNZXNzYWdlIGRlbGF5PXsyNTB9IC8+fVxuICAgICAge2FwcFN0YXRlLmVycm9yTWVzc2FnZSAmJiAoXG4gICAgICAgIDxFcnJvckRpYWxvZ1xuICAgICAgICAgIG1lc3NhZ2U9e2FwcFN0YXRlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBcHBTdGF0ZSh7IGVycm9yTWVzc2FnZTogbnVsbCB9KX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7YXBwU3RhdGUuc2hvd0hlbHBEaWFsb2cgJiYgKFxuICAgICAgICA8SGVscERpYWxvZ1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgc2hvd0hlbHBEaWFsb2c6IGZhbHNlIH0pO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge2FwcFN0YXRlLnBhc3RlRGlhbG9nLnNob3duICYmIChcbiAgICAgICAgPFBhc3RlQ2hhcnREaWFsb2dcbiAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgIG9uSW5zZXJ0Q2hhcnQ9e29uSW5zZXJ0RWxlbWVudHN9XG4gICAgICAgICAgb25DbG9zZT17KCkgPT5cbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHtcbiAgICAgICAgICAgICAgcGFzdGVEaWFsb2c6IHsgc2hvd246IGZhbHNlLCBkYXRhOiBudWxsIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG5cbiAgcmV0dXJuIGRldmljZS5pc01vYmlsZSA/IChcbiAgICA8PlxuICAgICAge2RpYWxvZ3N9XG4gICAgICA8TW9iaWxlTWVudVxuICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgIGVsZW1lbnRzPXtlbGVtZW50c31cbiAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgbGlicmFyeU1lbnU9e2xpYnJhcnlNZW51fVxuICAgICAgICByZW5kZXJKU09ORXhwb3J0RGlhbG9nPXtyZW5kZXJKU09ORXhwb3J0RGlhbG9nfVxuICAgICAgICByZW5kZXJJbWFnZUV4cG9ydERpYWxvZz17cmVuZGVySW1hZ2VFeHBvcnREaWFsb2d9XG4gICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgb25Db2xsYWJCdXR0b25DbGljaz17b25Db2xsYWJCdXR0b25DbGlja31cbiAgICAgICAgb25Mb2NrVG9nZ2xlPXsoKSA9PiBvbkxvY2tUb2dnbGUoKX1cbiAgICAgICAgb25QZW5Nb2RlVG9nZ2xlPXtvblBlbk1vZGVUb2dnbGV9XG4gICAgICAgIGNhbnZhcz17Y2FudmFzfVxuICAgICAgICBpc0NvbGxhYm9yYXRpbmc9e2lzQ29sbGFib3JhdGluZ31cbiAgICAgICAgcmVuZGVyQ3VzdG9tRm9vdGVyPXtyZW5kZXJDdXN0b21Gb290ZXJ9XG4gICAgICAgIHNob3dUaGVtZUJ0bj17c2hvd1RoZW1lQnRufVxuICAgICAgICBvbkltYWdlQWN0aW9uPXtvbkltYWdlQWN0aW9ufVxuICAgICAgICByZW5kZXJUb3BSaWdodFVJPXtyZW5kZXJUb3BSaWdodFVJfVxuICAgICAgICByZW5kZXJDdXN0b21TdGF0cz17cmVuZGVyQ3VzdG9tU3RhdHN9XG4gICAgICAvPlxuICAgIDwvPlxuICApIDogKFxuICAgIDw+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcImxheWVyLXVpX193cmFwcGVyXCIsIHtcbiAgICAgICAgICBcImRpc2FibGUtcG9pbnRlckV2ZW50c1wiOlxuICAgICAgICAgICAgYXBwU3RhdGUuZHJhZ2dpbmdFbGVtZW50IHx8XG4gICAgICAgICAgICBhcHBTdGF0ZS5yZXNpemluZ0VsZW1lbnQgfHxcbiAgICAgICAgICAgIChhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudCAmJlxuICAgICAgICAgICAgICAhaXNUZXh0RWxlbWVudChhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudCkpLFxuICAgICAgICB9KX1cbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIGFwcFN0YXRlLmlzTGlicmFyeU9wZW4gJiZcbiAgICAgICAgICBhcHBTdGF0ZS5pc0xpYnJhcnlNZW51RG9ja2VkICYmXG4gICAgICAgICAgZGV2aWNlLmNhbkRldmljZUZpdFNpZGViYXJcbiAgICAgICAgICAgID8geyB3aWR0aDogYGNhbGMoMTAwJSAtICR7TElCUkFSWV9TSURFQkFSX1dJRFRIfXB4KWAgfVxuICAgICAgICAgICAgOiB7fVxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHtkaWFsb2dzfVxuICAgICAgICB7cmVuZGVyRml4ZWRTaWRlQ29udGFpbmVyKCl9XG4gICAgICAgIDxGb290ZXJcbiAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgICByZW5kZXJDdXN0b21Gb290ZXI9e3JlbmRlckN1c3RvbUZvb3Rlcn1cbiAgICAgICAgICBzaG93RXhpdFplbk1vZGVCdG49e3Nob3dFeGl0WmVuTW9kZUJ0bn1cbiAgICAgICAgLz5cbiAgICAgICAge2FwcFN0YXRlLnNob3dTdGF0cyAmJiAoXG4gICAgICAgICAgPFN0YXRzXG4gICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGFjdGlvbk1hbmFnZXIuZXhlY3V0ZUFjdGlvbihhY3Rpb25Ub2dnbGVTdGF0cyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcmVuZGVyQ3VzdG9tU3RhdHM9e3JlbmRlckN1c3RvbVN0YXRzfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHthcHBTdGF0ZS5zY3JvbGxlZE91dHNpZGUgJiYgKFxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInNjcm9sbC1iYWNrLXRvLWNvbnRlbnRcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBzZXRBcHBTdGF0ZSh7XG4gICAgICAgICAgICAgICAgLi4uY2FsY3VsYXRlU2Nyb2xsQ2VudGVyKGVsZW1lbnRzLCBhcHBTdGF0ZSwgY2FudmFzKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KFwiYnV0dG9ucy5zY3JvbGxCYWNrVG9Db250ZW50XCIpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICB7YXBwU3RhdGUuaXNMaWJyYXJ5T3BlbiAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXItdWlfX3NpZGViYXJcIj57bGlicmFyeU1lbnV9PC9kaXY+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuY29uc3QgYXJlRXF1YWwgPSAocHJldjogTGF5ZXJVSVByb3BzLCBuZXh0OiBMYXllclVJUHJvcHMpID0+IHtcbiAgY29uc3QgZ2V0TmVjZXNzYXJ5T2JqID0gKGFwcFN0YXRlOiBBcHBTdGF0ZSk6IFBhcnRpYWw8QXBwU3RhdGU+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzdWdnZXN0ZWRCaW5kaW5ncyxcbiAgICAgIHN0YXJ0Qm91bmRFbGVtZW50OiBib3VuZEVsZW1lbnQsXG4gICAgICAuLi5yZXRcbiAgICB9ID0gYXBwU3RhdGU7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbiAgY29uc3QgcHJldkFwcFN0YXRlID0gZ2V0TmVjZXNzYXJ5T2JqKHByZXYuYXBwU3RhdGUpO1xuICBjb25zdCBuZXh0QXBwU3RhdGUgPSBnZXROZWNlc3NhcnlPYmoobmV4dC5hcHBTdGF0ZSk7XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByZXZBcHBTdGF0ZSkgYXMgKGtleW9mIFBhcnRpYWw8QXBwU3RhdGU+KVtdO1xuICByZXR1cm4gKFxuICAgIHByZXYucmVuZGVyQ3VzdG9tRm9vdGVyID09PSBuZXh0LnJlbmRlckN1c3RvbUZvb3RlciAmJlxuICAgIHByZXYubGFuZ0NvZGUgPT09IG5leHQubGFuZ0NvZGUgJiZcbiAgICBwcmV2LmVsZW1lbnRzID09PSBuZXh0LmVsZW1lbnRzICYmXG4gICAgcHJldi5maWxlcyA9PT0gbmV4dC5maWxlcyAmJlxuICAgIGtleXMuZXZlcnkoKGtleSkgPT4gcHJldkFwcFN0YXRlW2tleV0gPT09IG5leHRBcHBTdGF0ZVtrZXldKVxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QubWVtbyhMYXllclVJLCBhcmVFcXVhbCk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../components/LayerUI.tsx\n");
2160
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data */ \"../../data/index.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _ErrorDialog__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ErrorDialog */ \"../../components/ErrorDialog.tsx\");\n/* harmony import */ var _ImageExportDialog__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ImageExportDialog */ \"../../components/ImageExportDialog.tsx\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _HintViewer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./HintViewer */ \"../../components/HintViewer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _LoadingMessage__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./LoadingMessage */ \"../../components/LoadingMessage.tsx\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _MobileMenu__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./MobileMenu */ \"../../components/MobileMenu.tsx\");\n/* harmony import */ var _PasteChartDialog__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./PasteChartDialog */ \"../../components/PasteChartDialog.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _HelpDialog__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./HelpDialog */ \"../../components/HelpDialog.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../data/library */ \"../../data/library.ts\");\n/* harmony import */ var _JSONExportDialog__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./JSONExportDialog */ \"../../components/JSONExportDialog.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _LibraryMenu__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./LibraryMenu */ \"../../components/LibraryMenu.tsx\");\n/* harmony import */ var _LayerUI_scss__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./LayerUI.scss */ \"../../components/LayerUI.scss\");\n/* harmony import */ var _LayerUI_scss__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_LayerUI_scss__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var _Toolbar_scss__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Toolbar.scss */ \"../../components/Toolbar.scss\");\n/* harmony import */ var _Toolbar_scss__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_Toolbar_scss__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n/* harmony import */ var _analytics__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../analytics */ \"../../analytics.ts\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _Stats__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Stats */ \"../../components/Stats.tsx\");\n/* harmony import */ var _actions_actionToggleStats__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../actions/actionToggleStats */ \"../../actions/actionToggleStats.tsx\");\n/* harmony import */ var _Footer__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Footer */ \"../../components/Footer.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst LayerUI = ({ actionManager, appState, files, setAppState, elements, canvas, onCollabButtonClick, onLockToggle, onPenModeToggle, onInsertElements, showExitZenModeBtn, showThemeBtn, isCollaborating, renderTopRightUI, renderCustomFooter, renderCustomStats, libraryReturnUrl, UIOptions, focusContainer, library, id, onImageAction, }) => {\n const device = (0,_components_App__WEBPACK_IMPORTED_MODULE_34__.useDevice)();\n const renderJSONExportDialog = () => {\n if (!UIOptions.canvasActions.export) {\n return null;\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_JSONExportDialog__WEBPACK_IMPORTED_MODULE_26__.JSONExportDialog, { elements: elements, appState: appState, files: files, actionManager: actionManager, exportOpts: UIOptions.canvasActions.export, canvas: canvas }));\n };\n const renderImageExportDialog = () => {\n if (!UIOptions.canvasActions.saveAsImage) {\n return null;\n }\n const createExporter = (type) => (exportedElements) => __awaiter(void 0, void 0, void 0, function* () {\n (0,_analytics__WEBPACK_IMPORTED_MODULE_33__.trackEvent)(\"export\", type, \"ui\");\n const fileHandle = yield (0,_data__WEBPACK_IMPORTED_MODULE_4__.exportCanvas)(type, exportedElements, appState, files, {\n exportBackground: appState.exportBackground,\n name: appState.name,\n viewBackgroundColor: appState.viewBackgroundColor,\n })\n .catch(_utils__WEBPACK_IMPORTED_MODULE_8__.muteFSAbortError)\n .catch((error) => {\n console.error(error);\n setAppState({ errorMessage: error.message });\n });\n if (appState.exportEmbedScene &&\n fileHandle &&\n (0,_data_blob__WEBPACK_IMPORTED_MODULE_28__.isImageFileHandle)(fileHandle)) {\n setAppState({ fileHandle });\n }\n });\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageExportDialog__WEBPACK_IMPORTED_MODULE_13__.ImageExportDialog, { elements: elements, appState: appState, files: files, actionManager: actionManager, onExportToPng: createExporter(\"png\"), onExportToSvg: createExporter(\"svg\"), onExportToClipboard: createExporter(\"clipboard\") }));\n };\n const Separator = () => {\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { style: { width: \".625em\" } });\n };\n const renderViewModeCanvasActions = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"canvasActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 2, style: { zIndex: 1 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, justifyContent: \"space-between\" }, { children: [renderJSONExportDialog(), renderImageExportDialog()] })) })) })) })));\n };\n const renderCanvasActions = () => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"canvasActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 2, style: { zIndex: 1 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, justifyContent: \"space-between\" }, { children: [actionManager.renderAction(\"clearCanvas\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Separator, {}), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Separator, {}), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_11__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_10__.BackgroundPickerAndDarkModeToggle, { appState: appState, actionManager: actionManager, setAppState: setAppState, showThemeBtn: showThemeBtn }), appState.fileHandle && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: actionManager.renderAction(\"saveToActiveFile\") }))] })) })) })));\n const renderSelectedShapeActions = () => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"selectedShapeActions\", className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"zen-mode-transition\", {\n \"transition-left\": appState.zenModeEnabled,\n }) }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ className: _constants__WEBPACK_IMPORTED_MODULE_3__.CLASSES.SHAPE_ACTIONS_MENU, padding: 2, style: {\n // we want to make sure this doesn't overflow so subtracting 200\n // which is approximately height of zoom footer and top left menu items with some buffer\n // if active file name is displayed, subtracting 248 to account for its height\n maxHeight: `${appState.height - (appState.fileHandle ? 248 : 200)}px`,\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction }) })) })));\n const closeLibrary = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {\n const isDialogOpen = !!document.querySelector(\".Dialog\");\n // Prevent closing if any dialog is open\n if (isDialogOpen) {\n return;\n }\n setAppState({ isLibraryOpen: false });\n }, [setAppState]);\n const deselectItems = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {\n setAppState({\n selectedElementIds: {},\n selectedGroupIds: {},\n });\n }, [setAppState]);\n const libraryMenu = appState.isLibraryOpen ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryMenu__WEBPACK_IMPORTED_MODULE_29__.LibraryMenu, { pendingElements: (0,_scene__WEBPACK_IMPORTED_MODULE_7__.getSelectedElements)(elements, appState, true), onClose: closeLibrary, onInsertLibraryItems: (libraryItems) => {\n onInsertElements((0,_data_library__WEBPACK_IMPORTED_MODULE_25__.distributeLibraryItemsOnSquareGrid)(libraryItems));\n }, onAddToLibrary: deselectItems, setAppState: setAppState, libraryReturnUrl: libraryReturnUrl, focusContainer: focusContainer, library: library, files: files, id: id, appState: appState })) : null;\n const renderFixedSideContainer = () => {\n const shouldRenderSelectedShapeActions = (0,_element__WEBPACK_IMPORTED_MODULE_5__.showSelectedShapeActions)(appState, elements);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_14__.FixedSideContainer, Object.assign({ side: \"top\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-menu App-menu_top\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n \"disable-pointerEvents\": appState.zenModeEnabled,\n }) }, { children: [appState.viewModeEnabled\n ? renderViewModeCanvasActions()\n : renderCanvasActions(), shouldRenderSelectedShapeActions && renderSelectedShapeActions()] })), !appState.viewModeEnabled && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_21__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Col, Object.assign({ gap: 4, align: \"start\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"App-toolbar-container\", {\n \"zen-mode\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_32__.PenModeButton, { zenModeEnabled: appState.zenModeEnabled, checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"toolBar.penMode\"), penDetected: appState.penDetected }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_18__.LockButton, { zenModeEnabled: appState.zenModeEnabled, checked: appState.activeTool.locked, onChange: () => onLockToggle(), title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"toolBar.lock\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_16__.Island, Object.assign({ padding: 1, className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"App-toolbar\", {\n \"zen-mode\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HintViewer__WEBPACK_IMPORTED_MODULE_15__.HintViewer, { appState: appState, elements: elements, isMobile: device.isMobile }), heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_23__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.ShapesSwitcher, { appState: appState, canvas: canvas, activeTool: appState.activeTool, setAppState: setAppState, onImageAction: ({ pointerType }) => {\n onImageAction({\n insertOnCanvasDirectly: pointerType !== \"mouse\",\n });\n } }) }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_27__.LibraryButton, { appState: appState, setAppState: setAppState })] })) }))) }))), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper__top-right zen-mode-transition\", {\n \"transition-right\": appState.zenModeEnabled,\n }) }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_24__.UserList, { collaborators: appState.collaborators, actionManager: actionManager }), renderTopRightUI === null || renderTopRightUI === void 0 ? void 0 : renderTopRightUI(device.isMobile, appState)] }))] })) })));\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [appState.isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LoadingMessage__WEBPACK_IMPORTED_MODULE_17__.LoadingMessage, { delay: 250 }), appState.errorMessage && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ErrorDialog__WEBPACK_IMPORTED_MODULE_12__.ErrorDialog, { message: appState.errorMessage, onClose: () => setAppState({ errorMessage: null }) })), appState.showHelpDialog && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HelpDialog__WEBPACK_IMPORTED_MODULE_22__.HelpDialog, { onClose: () => {\n setAppState({ showHelpDialog: false });\n } })), appState.pasteDialog.shown && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PasteChartDialog__WEBPACK_IMPORTED_MODULE_20__.PasteChartDialog, { setAppState: setAppState, appState: appState, onInsertChart: onInsertElements, onClose: () => setAppState({\n pasteDialog: { shown: false, data: null },\n }) })), device.isMobile && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_MobileMenu__WEBPACK_IMPORTED_MODULE_19__.MobileMenu, { appState: appState, elements: elements, actionManager: actionManager, libraryMenu: libraryMenu, renderJSONExportDialog: renderJSONExportDialog, renderImageExportDialog: renderImageExportDialog, setAppState: setAppState, onCollabButtonClick: onCollabButtonClick, onLockToggle: () => onLockToggle(), onPenModeToggle: onPenModeToggle, canvas: canvas, isCollaborating: isCollaborating, renderCustomFooter: renderCustomFooter, showThemeBtn: showThemeBtn, onImageAction: onImageAction, renderTopRightUI: renderTopRightUI, renderCustomStats: renderCustomStats })), !device.isMobile && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(\"layer-ui__wrapper\", {\n \"disable-pointerEvents\": appState.draggingElement ||\n appState.resizingElement ||\n (appState.editingElement &&\n !(0,_element__WEBPACK_IMPORTED_MODULE_5__.isTextElement)(appState.editingElement)),\n }), style: appState.isLibraryOpen &&\n appState.isLibraryMenuDocked &&\n device.canDeviceFitSidebar\n ? { width: `calc(100% - ${_constants__WEBPACK_IMPORTED_MODULE_3__.LIBRARY_SIDEBAR_WIDTH}px)` }\n : {} }, { children: [renderFixedSideContainer(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Footer__WEBPACK_IMPORTED_MODULE_37__[\"default\"], { appState: appState, actionManager: actionManager, renderCustomFooter: renderCustomFooter, showExitZenModeBtn: showExitZenModeBtn }), appState.showStats && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stats__WEBPACK_IMPORTED_MODULE_35__.Stats, { appState: appState, setAppState: setAppState, elements: elements, onClose: () => {\n actionManager.executeAction(_actions_actionToggleStats__WEBPACK_IMPORTED_MODULE_36__.actionToggleStats);\n }, renderCustomStats: renderCustomStats })), appState.scrolledOutside && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_7__.calculateScrollCenter)(elements, appState, canvas)));\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.scrollBackToContent\") })))] })), appState.isLibraryOpen && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"layer-ui__sidebar\" }, { children: libraryMenu })))] }))] }));\n};\nconst areEqual = (prev, next) => {\n const getNecessaryObj = (appState) => {\n const { suggestedBindings, startBoundElement: boundElement } = appState, ret = __rest(appState, [\"suggestedBindings\", \"startBoundElement\"]);\n return ret;\n };\n const prevAppState = getNecessaryObj(prev.appState);\n const nextAppState = getNecessaryObj(next.appState);\n const keys = Object.keys(prevAppState);\n return (prev.renderCustomFooter === next.renderCustomFooter &&\n prev.langCode === next.langCode &&\n prev.elements === next.elements &&\n prev.files === next.files &&\n keys.every((key) => prevAppState[key] === nextAppState[key]));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (react__WEBPACK_IMPORTED_MODULE_2___default().memo(LayerUI, areEqual));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9MYXllclVJLnRzeC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBd0I7QUFDbUI7QUFFbUI7QUFDdkI7QUFDOEI7QUFFL0I7QUFDZ0M7QUFHMUI7QUFDcUI7QUFDdUI7QUFDOUM7QUFDRTtBQUNzQjtBQUNSO0FBQ2hCO0FBQ1I7QUFDZ0I7QUFDUjtBQUNBO0FBQ1k7QUFDbEI7QUFDTTtBQUNkO0FBQ1U7QUFDd0M7QUFDeEI7QUFDTjtBQUNDO0FBQ0w7QUFFcEI7QUFDQTtBQUN3QjtBQUNOO0FBQ0k7QUFDZDtBQUNpQztBQUNuQztBQTJCOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUNmLGFBQWEsRUFDYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGNBQWMsRUFDZCxPQUFPLEVBQ1AsRUFBRSxFQUNGLGFBQWEsR0FDQSxFQUFFLEVBQUU7SUFDakIsTUFBTSxNQUFNLEdBQUcsMkRBQVMsRUFBRSxDQUFDO0lBRTNCLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxFQUFFO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxDQUNMLHVEQUFDLGdFQUFnQixJQUNmLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUMxQyxNQUFNLEVBQUUsTUFBTSxHQUNkLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxjQUFjLEdBQ2xCLENBQUMsSUFBZ0IsRUFBWSxFQUFFLENBQy9CLENBQU8sZ0JBQWdCLEVBQUUsRUFBRTtZQUN6Qix1REFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsTUFBTSxVQUFVLEdBQUcsTUFBTSxtREFBWSxDQUNuQyxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixLQUFLLEVBQ0w7Z0JBQ0UsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtnQkFDM0MsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUNuQixtQkFBbUIsRUFBRSxRQUFRLENBQUMsbUJBQW1CO2FBQ2xELENBQ0Y7aUJBQ0UsS0FBSyxDQUFDLG9EQUFnQixDQUFDO2lCQUN2QixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixXQUFXLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUNFLFFBQVEsQ0FBQyxnQkFBZ0I7Z0JBQ3pCLFVBQVU7Z0JBQ1YsOERBQWlCLENBQUMsVUFBVSxDQUFDLEVBQzdCO2dCQUNBLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLEVBQUM7UUFFSixPQUFPLENBQ0wsdURBQUMsa0VBQWlCLElBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFDcEMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFDcEMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxHQUNoRCxDQUNILENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDckIsT0FBTyxnRUFBSyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUksQ0FBQztJQUM3QyxDQUFDLENBQUM7SUFFRixNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRTtRQUN2QyxPQUFPLENBQ0wsdURBQUMsOENBQU8sa0JBQ04sT0FBTyxFQUFDLGVBQWUsRUFDdkIsU0FBUyxFQUFFLGdEQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3JDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxjQUFjO2FBQzNDLENBQUMsZ0JBSUYsdURBQUMsNENBQU0sa0JBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUN0Qyx1REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxnQkFDZix3REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBQyxlQUFlLGlCQUM5QyxzQkFBc0IsRUFBRSxFQUN4Qix1QkFBdUIsRUFBRSxLQUNoQixJQUNGLElBQ0wsSUFDRCxDQUNYLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQ2hDLHVEQUFDLDhDQUFPLGtCQUNOLE9BQU8sRUFBQyxlQUFlLEVBQ3ZCLFNBQVMsRUFBRSxnREFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3JDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxjQUFjO1NBQzNDLENBQUMsZ0JBSUYsdURBQUMsNENBQU0sa0JBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLGdCQUN0Qyx3REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxpQkFDZix3REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBQyxlQUFlLGlCQUM5QyxhQUFhLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUMxQyx1REFBQyxTQUFTLEtBQUcsRUFDWixhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUN2QyxzQkFBc0IsRUFBRSxFQUN4Qix1QkFBdUIsRUFBRSxFQUMxQix1REFBQyxTQUFTLEtBQUcsRUFDWixtQkFBbUIsSUFBSSxDQUN0Qix1REFBQyxzREFBWSxJQUNYLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEdBQzVCLENBQ0gsS0FDUyxFQUNaLHVEQUFDLGtHQUFpQyxJQUNoQyxRQUFRLEVBQUUsUUFBUSxFQUNsQixhQUFhLEVBQUUsYUFBYSxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixZQUFZLEVBQUUsWUFBWSxHQUMxQixFQUNELFFBQVEsQ0FBQyxVQUFVLElBQUksQ0FDdEIsNEhBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFJLENBQ3RELEtBQ1MsSUFDTCxJQUNELENBQ1gsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FDdkMsdURBQUMsOENBQU8sa0JBQ04sT0FBTyxFQUFDLHNCQUFzQixFQUM5QixTQUFTLEVBQUUsZ0RBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUNyQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsY0FBYztTQUMzQyxDQUFDLGdCQUVGLHVEQUFDLDRDQUFNLGtCQUNMLFNBQVMsRUFBRSxrRUFBMEIsRUFDckMsT0FBTyxFQUFFLENBQUMsRUFDVixLQUFLLEVBQUU7Z0JBQ0wsZ0VBQWdFO2dCQUNoRSx3RkFBd0Y7Z0JBQ3hGLDhFQUE4RTtnQkFDOUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7YUFDdEUsZ0JBRUQsdURBQUMsMERBQW9CLElBQ25CLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxHQUN4QyxJQUNLLElBQ0QsQ0FDWCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsa0RBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDcEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekQsd0NBQXdDO1FBQ3hDLElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUNELFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbEIsTUFBTSxhQUFhLEdBQUcsa0RBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDckMsV0FBVyxDQUFDO1lBQ1Ysa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FDM0MsdURBQUMsc0RBQVcsSUFDVixlQUFlLEVBQUUsMkRBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFDOUQsT0FBTyxFQUFFLFlBQVksRUFDckIsb0JBQW9CLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNyQyxnQkFBZ0IsQ0FBQyxrRkFBa0MsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsRUFDRCxjQUFjLEVBQUUsYUFBYSxFQUM3QixXQUFXLEVBQUUsV0FBVyxFQUN4QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsY0FBYyxFQUFFLGNBQWMsRUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsS0FBSyxFQUFFLEtBQUssRUFDWixFQUFFLEVBQUUsRUFBRSxFQUNOLFFBQVEsRUFBRSxRQUFRLEdBQ2xCLENBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRVQsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLEVBQUU7UUFDcEMsTUFBTSxnQ0FBZ0MsR0FBRyxrRUFBd0IsQ0FDL0QsUUFBUSxFQUNSLFFBQVEsQ0FDVCxDQUFDO1FBRUYsT0FBTyxDQUNMLHVEQUFDLG9FQUFrQixrQkFBQyxJQUFJLEVBQUMsS0FBSyxnQkFDNUIsK0VBQUssU0FBUyxFQUFDLHVCQUF1QixpQkFDcEMsd0RBQUMsbURBQVMsa0JBQ1IsR0FBRyxFQUFFLENBQUMsRUFDTixTQUFTLEVBQUUsZ0RBQUksQ0FBQzs0QkFDZCx1QkFBdUIsRUFBRSxRQUFRLENBQUMsY0FBYzt5QkFDakQsQ0FBQyxpQkFFRCxRQUFRLENBQUMsZUFBZTtnQ0FDdkIsQ0FBQyxDQUFDLDJCQUEyQixFQUFFO2dDQUMvQixDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFDeEIsZ0NBQWdDLElBQUksMEJBQTBCLEVBQUUsS0FDdkQsRUFDWCxDQUFDLFFBQVEsQ0FBQyxlQUFlLElBQUksQ0FDNUIsdURBQUMsOENBQU8sa0JBQUMsT0FBTyxFQUFDLFFBQVEsZ0JBQ3RCLENBQUMsT0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FDN0IsdURBQUMsbURBQVMsa0JBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUMsT0FBTyxnQkFDOUIsd0RBQUMsbURBQVMsa0JBQ1IsR0FBRyxFQUFFLENBQUMsRUFDTixTQUFTLEVBQUUsZ0RBQUksQ0FBQyx1QkFBdUIsRUFBRTtvQ0FDdkMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxjQUFjO2lDQUNwQyxDQUFDLGlCQUVGLHVEQUFDLDBEQUFhLElBQ1osY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQ3ZDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxFQUN6QixRQUFRLEVBQUUsZUFBZSxFQUN6QixLQUFLLEVBQUUsd0NBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUMzQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsR0FDakMsRUFDRix1REFBQyxvREFBVSxJQUNULGNBQWMsRUFBRSxRQUFRLENBQUMsY0FBYyxFQUN2QyxPQUFPLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQ25DLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFDOUIsS0FBSyxFQUFFLHdDQUFDLENBQUMsY0FBYyxDQUFDLEdBQ3hCLEVBQ0Ysd0RBQUMsNENBQU0sa0JBQ0wsT0FBTyxFQUFFLENBQUMsRUFDVixTQUFTLEVBQUUsZ0RBQUksQ0FBQyxhQUFhLEVBQUU7NENBQzdCLFVBQVUsRUFBRSxRQUFRLENBQUMsY0FBYzt5Q0FDcEMsQ0FBQyxpQkFFRix1REFBQyxvREFBVSxJQUNULFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxHQUN6QixFQUNELE9BQU8sRUFDUix1REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxnQkFDZix1REFBQyxvREFBYyxJQUNiLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQy9CLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLGFBQWEsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTt3REFDakMsYUFBYSxDQUFDOzREQUNaLHNCQUFzQixFQUFFLFdBQVcsS0FBSyxPQUFPO3lEQUNoRCxDQUFDLENBQUM7b0RBQ0wsQ0FBQyxHQUNELElBQ1EsS0FDTCxFQUNULHVEQUFDLDBEQUFhLElBQ1osUUFBUSxFQUFFLFFBQVEsRUFDbEIsV0FBVyxFQUFFLFdBQVcsR0FDeEIsS0FDUSxJQUNGLENBQ2IsSUFDTyxDQUNYLEVBQ0QsK0VBQ0UsU0FBUyxFQUFFLGdEQUFJLENBQ2Isa0RBQWtELEVBQ2xEOzRCQUNFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxjQUFjO3lCQUM1QyxDQUNGLGlCQUVELHVEQUFDLGdEQUFRLElBQ1AsYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQ3JDLGFBQWEsRUFBRSxhQUFhLEdBQzVCLEVBQ0QsZ0JBQWdCLGFBQWhCLGdCQUFnQix1QkFBaEIsZ0JBQWdCLENBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FDMUMsS0FDRixJQUNhLENBQ3RCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsOEhBQ0csUUFBUSxDQUFDLFNBQVMsSUFBSSx1REFBQyw0REFBYyxJQUFDLEtBQUssRUFBRSxHQUFHLEdBQUksRUFDcEQsUUFBUSxDQUFDLFlBQVksSUFBSSxDQUN4Qix1REFBQyxzREFBVyxJQUNWLE9BQU8sRUFBRSxRQUFRLENBQUMsWUFBWSxFQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQ2xELENBQ0gsRUFDQSxRQUFRLENBQUMsY0FBYyxJQUFJLENBQzFCLHVEQUFDLG9EQUFVLElBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDekMsQ0FBQyxHQUNELENBQ0gsRUFDQSxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUM3Qix1REFBQyxnRUFBZ0IsSUFDZixXQUFXLEVBQUUsV0FBVyxFQUN4QixRQUFRLEVBQUUsUUFBUSxFQUNsQixhQUFhLEVBQUUsZ0JBQWdCLEVBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWixXQUFXLENBQUM7b0JBQ1YsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2lCQUMxQyxDQUFDLEdBRUosQ0FDSCxFQUNBLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FDbEIsdURBQUMsb0RBQVUsSUFDVCxRQUFRLEVBQUUsUUFBUSxFQUNsQixRQUFRLEVBQUUsUUFBUSxFQUNsQixhQUFhLEVBQUUsYUFBYSxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQ2hELFdBQVcsRUFBRSxXQUFXLEVBQ3hCLG1CQUFtQixFQUFFLG1CQUFtQixFQUN4QyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLEVBQ2xDLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLE1BQU0sRUFBRSxNQUFNLEVBQ2QsZUFBZSxFQUFFLGVBQWUsRUFDaEMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RDLFlBQVksRUFBRSxZQUFZLEVBQzFCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxpQkFBaUIsRUFBRSxpQkFBaUIsR0FDcEMsQ0FDSCxFQUVBLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNuQiw4SEFDRSwrRUFDRSxTQUFTLEVBQUUsZ0RBQUksQ0FBQyxtQkFBbUIsRUFBRTs0QkFDbkMsdUJBQXVCLEVBQ3JCLFFBQVEsQ0FBQyxlQUFlO2dDQUN4QixRQUFRLENBQUMsZUFBZTtnQ0FDeEIsQ0FBQyxRQUFRLENBQUMsY0FBYztvQ0FDdEIsQ0FBQyx1REFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQzt5QkFDN0MsQ0FBQyxFQUNGLEtBQUssRUFDSCxRQUFRLENBQUMsYUFBYTs0QkFDdEIsUUFBUSxDQUFDLG1CQUFtQjs0QkFDNUIsTUFBTSxDQUFDLG1CQUFtQjs0QkFDeEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsNkRBQXFCLEtBQUssRUFBRTs0QkFDdEQsQ0FBQyxDQUFDLEVBQUUsaUJBR1Asd0JBQXdCLEVBQUUsRUFDM0IsdURBQUMsZ0RBQU0sSUFDTCxRQUFRLEVBQUUsUUFBUSxFQUNsQixhQUFhLEVBQUUsYUFBYSxFQUM1QixrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEMsa0JBQWtCLEVBQUUsa0JBQWtCLEdBQ3RDLEVBQ0QsUUFBUSxDQUFDLFNBQVMsSUFBSSxDQUNyQix1REFBQywwQ0FBSyxJQUNKLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7b0NBQ1osYUFBYSxDQUFDLGFBQWEsQ0FBQywwRUFBaUIsQ0FBQyxDQUFDO2dDQUNqRCxDQUFDLEVBQ0QsaUJBQWlCLEVBQUUsaUJBQWlCLEdBQ3BDLENBQ0gsRUFDQSxRQUFRLENBQUMsZUFBZSxJQUFJLENBQzNCLGlGQUNFLFNBQVMsRUFBQyx3QkFBd0IsRUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQ0FDWixXQUFXLG1CQUNOLDZEQUFxQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQ3BELENBQUM7Z0NBQ0wsQ0FBQyxnQkFFQSx3Q0FBQyxDQUFDLDZCQUE2QixDQUFDLElBQzFCLENBQ1YsS0FDRyxFQUNMLFFBQVEsQ0FBQyxhQUFhLElBQUksQ0FDekIsOEVBQUssU0FBUyxFQUFDLG1CQUFtQixnQkFBRSxXQUFXLElBQU8sQ0FDdkQsSUFDQSxDQUNKLElBQ0EsQ0FDSixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFrQixFQUFFLElBQWtCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQXFCLEVBQUU7UUFDaEUsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixpQkFBaUIsRUFBRSxZQUFZLEtBRTdCLFFBQVEsRUFEUCxHQUFHLFVBQ0osUUFBUSxFQUpOLDBDQUlMLENBQVcsQ0FBQztRQUNiLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFnQyxDQUFDO0lBQ3RFLE9BQU8sQ0FDTCxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLGtCQUFrQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRO1FBQy9CLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVE7UUFDL0IsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixpRUFBZSxpREFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0xheWVyVUkudHN4PzA4NzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsc3ggZnJvbSBcImNsc3hcIjtcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcbmltcG9ydCB7IENMQVNTRVMsIExJQlJBUllfU0lERUJBUl9XSURUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGV4cG9ydENhbnZhcyB9IGZyb20gXCIuLi9kYXRhXCI7XG5pbXBvcnQgeyBpc1RleHRFbGVtZW50LCBzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IExhbmd1YWdlLCB0IH0gZnJvbSBcIi4uL2kxOG5cIjtcbmltcG9ydCB7IGNhbGN1bGF0ZVNjcm9sbENlbnRlciwgZ2V0U2VsZWN0ZWRFbGVtZW50cyB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgRXhwb3J0VHlwZSB9IGZyb20gXCIuLi9zY2VuZS90eXBlc1wiO1xuaW1wb3J0IHsgQXBwUHJvcHMsIEFwcFN0YXRlLCBFeGNhbGlkcmF3UHJvcHMsIEJpbmFyeUZpbGVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBtdXRlRlNBYm9ydEVycm9yIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZFNoYXBlQWN0aW9ucywgU2hhcGVzU3dpdGNoZXIgfSBmcm9tIFwiLi9BY3Rpb25zXCI7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgfSBmcm9tIFwiLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCBDb2xsYWJCdXR0b24gZnJvbSBcIi4vQ29sbGFiQnV0dG9uXCI7XG5pbXBvcnQgeyBFcnJvckRpYWxvZyB9IGZyb20gXCIuL0Vycm9yRGlhbG9nXCI7XG5pbXBvcnQgeyBFeHBvcnRDQiwgSW1hZ2VFeHBvcnREaWFsb2cgfSBmcm9tIFwiLi9JbWFnZUV4cG9ydERpYWxvZ1wiO1xuaW1wb3J0IHsgRml4ZWRTaWRlQ29udGFpbmVyIH0gZnJvbSBcIi4vRml4ZWRTaWRlQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBIaW50Vmlld2VyIH0gZnJvbSBcIi4vSGludFZpZXdlclwiO1xuaW1wb3J0IHsgSXNsYW5kIH0gZnJvbSBcIi4vSXNsYW5kXCI7XG5pbXBvcnQgeyBMb2FkaW5nTWVzc2FnZSB9IGZyb20gXCIuL0xvYWRpbmdNZXNzYWdlXCI7XG5pbXBvcnQgeyBMb2NrQnV0dG9uIH0gZnJvbSBcIi4vTG9ja0J1dHRvblwiO1xuaW1wb3J0IHsgTW9iaWxlTWVudSB9IGZyb20gXCIuL01vYmlsZU1lbnVcIjtcbmltcG9ydCB7IFBhc3RlQ2hhcnREaWFsb2cgfSBmcm9tIFwiLi9QYXN0ZUNoYXJ0RGlhbG9nXCI7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSBcIi4vU2VjdGlvblwiO1xuaW1wb3J0IHsgSGVscERpYWxvZyB9IGZyb20gXCIuL0hlbHBEaWFsb2dcIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiLi9TdGFja1wiO1xuaW1wb3J0IHsgVXNlckxpc3QgfSBmcm9tIFwiLi9Vc2VyTGlzdFwiO1xuaW1wb3J0IExpYnJhcnksIHsgZGlzdHJpYnV0ZUxpYnJhcnlJdGVtc09uU3F1YXJlR3JpZCB9IGZyb20gXCIuLi9kYXRhL2xpYnJhcnlcIjtcbmltcG9ydCB7IEpTT05FeHBvcnREaWFsb2cgfSBmcm9tIFwiLi9KU09ORXhwb3J0RGlhbG9nXCI7XG5pbXBvcnQgeyBMaWJyYXJ5QnV0dG9uIH0gZnJvbSBcIi4vTGlicmFyeUJ1dHRvblwiO1xuaW1wb3J0IHsgaXNJbWFnZUZpbGVIYW5kbGUgfSBmcm9tIFwiLi4vZGF0YS9ibG9iXCI7XG5pbXBvcnQgeyBMaWJyYXJ5TWVudSB9IGZyb20gXCIuL0xpYnJhcnlNZW51XCI7XG5cbmltcG9ydCBcIi4vTGF5ZXJVSS5zY3NzXCI7XG5pbXBvcnQgXCIuL1Rvb2xiYXIuc2Nzc1wiO1xuaW1wb3J0IHsgUGVuTW9kZUJ1dHRvbiB9IGZyb20gXCIuL1Blbk1vZGVCdXR0b25cIjtcbmltcG9ydCB7IHRyYWNrRXZlbnQgfSBmcm9tIFwiLi4vYW5hbHl0aWNzXCI7XG5pbXBvcnQgeyB1c2VEZXZpY2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9BcHBcIjtcbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcIi4vU3RhdHNcIjtcbmltcG9ydCB7IGFjdGlvblRvZ2dsZVN0YXRzIH0gZnJvbSBcIi4uL2FjdGlvbnMvYWN0aW9uVG9nZ2xlU3RhdHNcIjtcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4vRm9vdGVyXCI7XG5cbmludGVyZmFjZSBMYXllclVJUHJvcHMge1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGZpbGVzOiBCaW5hcnlGaWxlcztcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIHNldEFwcFN0YXRlOiBSZWFjdC5Db21wb25lbnQ8YW55LCBBcHBTdGF0ZT5bXCJzZXRTdGF0ZVwiXTtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBvbkNvbGxhYkJ1dHRvbkNsaWNrPzogKCkgPT4gdm9pZDtcbiAgb25Mb2NrVG9nZ2xlOiAoKSA9PiB2b2lkO1xuICBvblBlbk1vZGVUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIG9uSW5zZXJ0RWxlbWVudHM6IChlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10pID0+IHZvaWQ7XG4gIHNob3dFeGl0WmVuTW9kZUJ0bjogYm9vbGVhbjtcbiAgc2hvd1RoZW1lQnRuOiBib29sZWFuO1xuICBsYW5nQ29kZTogTGFuZ3VhZ2VbXCJjb2RlXCJdO1xuICBpc0NvbGxhYm9yYXRpbmc6IGJvb2xlYW47XG4gIHJlbmRlclRvcFJpZ2h0VUk/OiBFeGNhbGlkcmF3UHJvcHNbXCJyZW5kZXJUb3BSaWdodFVJXCJdO1xuICByZW5kZXJDdXN0b21Gb290ZXI/OiBFeGNhbGlkcmF3UHJvcHNbXCJyZW5kZXJGb290ZXJcIl07XG4gIHJlbmRlckN1c3RvbVN0YXRzPzogRXhjYWxpZHJhd1Byb3BzW1wicmVuZGVyQ3VzdG9tU3RhdHNcIl07XG4gIGxpYnJhcnlSZXR1cm5Vcmw6IEV4Y2FsaWRyYXdQcm9wc1tcImxpYnJhcnlSZXR1cm5VcmxcIl07XG4gIFVJT3B0aW9uczogQXBwUHJvcHNbXCJVSU9wdGlvbnNcIl07XG4gIGZvY3VzQ29udGFpbmVyOiAoKSA9PiB2b2lkO1xuICBsaWJyYXJ5OiBMaWJyYXJ5O1xuICBpZDogc3RyaW5nO1xuICBvbkltYWdlQWN0aW9uOiAoZGF0YTogeyBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5OiBib29sZWFuIH0pID0+IHZvaWQ7XG59XG5jb25zdCBMYXllclVJID0gKHtcbiAgYWN0aW9uTWFuYWdlcixcbiAgYXBwU3RhdGUsXG4gIGZpbGVzLFxuICBzZXRBcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIGNhbnZhcyxcbiAgb25Db2xsYWJCdXR0b25DbGljayxcbiAgb25Mb2NrVG9nZ2xlLFxuICBvblBlbk1vZGVUb2dnbGUsXG4gIG9uSW5zZXJ0RWxlbWVudHMsXG4gIHNob3dFeGl0WmVuTW9kZUJ0bixcbiAgc2hvd1RoZW1lQnRuLFxuICBpc0NvbGxhYm9yYXRpbmcsXG4gIHJlbmRlclRvcFJpZ2h0VUksXG4gIHJlbmRlckN1c3RvbUZvb3RlcixcbiAgcmVuZGVyQ3VzdG9tU3RhdHMsXG4gIGxpYnJhcnlSZXR1cm5VcmwsXG4gIFVJT3B0aW9ucyxcbiAgZm9jdXNDb250YWluZXIsXG4gIGxpYnJhcnksXG4gIGlkLFxuICBvbkltYWdlQWN0aW9uLFxufTogTGF5ZXJVSVByb3BzKSA9PiB7XG4gIGNvbnN0IGRldmljZSA9IHVzZURldmljZSgpO1xuXG4gIGNvbnN0IHJlbmRlckpTT05FeHBvcnREaWFsb2cgPSAoKSA9PiB7XG4gICAgaWYgKCFVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8SlNPTkV4cG9ydERpYWxvZ1xuICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICBleHBvcnRPcHRzPXtVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnR9XG4gICAgICAgIGNhbnZhcz17Y2FudmFzfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckltYWdlRXhwb3J0RGlhbG9nID0gKCkgPT4ge1xuICAgIGlmICghVUlPcHRpb25zLmNhbnZhc0FjdGlvbnMuc2F2ZUFzSW1hZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNyZWF0ZUV4cG9ydGVyID1cbiAgICAgICh0eXBlOiBFeHBvcnRUeXBlKTogRXhwb3J0Q0IgPT5cbiAgICAgIGFzeW5jIChleHBvcnRlZEVsZW1lbnRzKSA9PiB7XG4gICAgICAgIHRyYWNrRXZlbnQoXCJleHBvcnRcIiwgdHlwZSwgXCJ1aVwiKTtcbiAgICAgICAgY29uc3QgZmlsZUhhbmRsZSA9IGF3YWl0IGV4cG9ydENhbnZhcyhcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGV4cG9ydGVkRWxlbWVudHMsXG4gICAgICAgICAgYXBwU3RhdGUsXG4gICAgICAgICAgZmlsZXMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZXhwb3J0QmFja2dyb3VuZDogYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCxcbiAgICAgICAgICAgIG5hbWU6IGFwcFN0YXRlLm5hbWUsXG4gICAgICAgICAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBhcHBTdGF0ZS52aWV3QmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgICAuY2F0Y2gobXV0ZUZTQWJvcnRFcnJvcilcbiAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgZXJyb3JNZXNzYWdlOiBlcnJvci5tZXNzYWdlIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBhcHBTdGF0ZS5leHBvcnRFbWJlZFNjZW5lICYmXG4gICAgICAgICAgZmlsZUhhbmRsZSAmJlxuICAgICAgICAgIGlzSW1hZ2VGaWxlSGFuZGxlKGZpbGVIYW5kbGUpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldEFwcFN0YXRlKHsgZmlsZUhhbmRsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8SW1hZ2VFeHBvcnREaWFsb2dcbiAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgIGZpbGVzPXtmaWxlc31cbiAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgb25FeHBvcnRUb1BuZz17Y3JlYXRlRXhwb3J0ZXIoXCJwbmdcIil9XG4gICAgICAgIG9uRXhwb3J0VG9Tdmc9e2NyZWF0ZUV4cG9ydGVyKFwic3ZnXCIpfVxuICAgICAgICBvbkV4cG9ydFRvQ2xpcGJvYXJkPXtjcmVhdGVFeHBvcnRlcihcImNsaXBib2FyZFwiKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBTZXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgcmV0dXJuIDxkaXYgc3R5bGU9e3sgd2lkdGg6IFwiLjYyNWVtXCIgfX0gLz47XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyVmlld01vZGVDYW52YXNBY3Rpb25zID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U2VjdGlvblxuICAgICAgICBoZWFkaW5nPVwiY2FudmFzQWN0aW9uc1wiXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICAgIFwidHJhbnNpdGlvbi1sZWZ0XCI6IGFwcFN0YXRlLnplbk1vZGVFbmFibGVkLFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAgey8qIHRoZSB6SW5kZXggZW5zdXJlcyB0aGlzIG1lbnUgaGFzIGhpZ2hlciBzdGFja2luZyBvcmRlcixcbiAgICAgICAgIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXhjYWxpZHJhdy9leGNhbGlkcmF3L3B1bGwvMTQ0NSAqL31cbiAgICAgICAgPElzbGFuZCBwYWRkaW5nPXsyfSBzdHlsZT17eyB6SW5kZXg6IDEgfX0+XG4gICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9PlxuICAgICAgICAgICAgPFN0YWNrLlJvdyBnYXA9ezF9IGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiPlxuICAgICAgICAgICAgICB7cmVuZGVySlNPTkV4cG9ydERpYWxvZygpfVxuICAgICAgICAgICAgICB7cmVuZGVySW1hZ2VFeHBvcnREaWFsb2coKX1cbiAgICAgICAgICAgIDwvU3RhY2suUm93PlxuICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICA8L0lzbGFuZD5cbiAgICAgIDwvU2VjdGlvbj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckNhbnZhc0FjdGlvbnMgPSAoKSA9PiAoXG4gICAgPFNlY3Rpb25cbiAgICAgIGhlYWRpbmc9XCJjYW52YXNBY3Rpb25zXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xzeChcInplbi1tb2RlLXRyYW5zaXRpb25cIiwge1xuICAgICAgICBcInRyYW5zaXRpb24tbGVmdFwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIHsvKiB0aGUgekluZGV4IGVuc3VyZXMgdGhpcyBtZW51IGhhcyBoaWdoZXIgc3RhY2tpbmcgb3JkZXIsXG4gICAgICAgICBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2V4Y2FsaWRyYXcvZXhjYWxpZHJhdy9wdWxsLzE0NDUgKi99XG4gICAgICA8SXNsYW5kIHBhZGRpbmc9ezJ9IHN0eWxlPXt7IHpJbmRleDogMSB9fT5cbiAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9PlxuICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfSBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImNsZWFyQ2FudmFzXCIpfVxuICAgICAgICAgICAgPFNlcGFyYXRvciAvPlxuICAgICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwibG9hZFNjZW5lXCIpfVxuICAgICAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAgICAgIHtyZW5kZXJJbWFnZUV4cG9ydERpYWxvZygpfVxuICAgICAgICAgICAgPFNlcGFyYXRvciAvPlxuICAgICAgICAgICAge29uQ29sbGFiQnV0dG9uQ2xpY2sgJiYgKFxuICAgICAgICAgICAgICA8Q29sbGFiQnV0dG9uXG4gICAgICAgICAgICAgICAgaXNDb2xsYWJvcmF0aW5nPXtpc0NvbGxhYm9yYXRpbmd9XG4gICAgICAgICAgICAgICAgY29sbGFib3JhdG9yQ291bnQ9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkNvbGxhYkJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICA8QmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlXG4gICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgc2hvd1RoZW1lQnRuPXtzaG93VGhlbWVCdG59XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7YXBwU3RhdGUuZmlsZUhhbmRsZSAmJiAoXG4gICAgICAgICAgICA8PnthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInNhdmVUb0FjdGl2ZUZpbGVcIil9PC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdGFjay5Db2w+XG4gICAgICA8L0lzbGFuZD5cbiAgICA8L1NlY3Rpb24+XG4gICk7XG5cbiAgY29uc3QgcmVuZGVyU2VsZWN0ZWRTaGFwZUFjdGlvbnMgPSAoKSA9PiAoXG4gICAgPFNlY3Rpb25cbiAgICAgIGhlYWRpbmc9XCJzZWxlY3RlZFNoYXBlQWN0aW9uc1wiXG4gICAgICBjbGFzc05hbWU9e2Nsc3goXCJ6ZW4tbW9kZS10cmFuc2l0aW9uXCIsIHtcbiAgICAgICAgXCJ0cmFuc2l0aW9uLWxlZnRcIjogYXBwU3RhdGUuemVuTW9kZUVuYWJsZWQsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8SXNsYW5kXG4gICAgICAgIGNsYXNzTmFtZT17Q0xBU1NFUy5TSEFQRV9BQ1RJT05TX01FTlV9XG4gICAgICAgIHBhZGRpbmc9ezJ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLy8gd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhpcyBkb2Vzbid0IG92ZXJmbG93IHNvIHN1YnRyYWN0aW5nIDIwMFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGFwcHJveGltYXRlbHkgaGVpZ2h0IG9mIHpvb20gZm9vdGVyIGFuZCB0b3AgbGVmdCBtZW51IGl0ZW1zIHdpdGggc29tZSBidWZmZXJcbiAgICAgICAgICAvLyBpZiBhY3RpdmUgZmlsZSBuYW1lIGlzIGRpc3BsYXllZCwgc3VidHJhY3RpbmcgMjQ4IHRvIGFjY291bnQgZm9yIGl0cyBoZWlnaHRcbiAgICAgICAgICBtYXhIZWlnaHQ6IGAke2FwcFN0YXRlLmhlaWdodCAtIChhcHBTdGF0ZS5maWxlSGFuZGxlID8gMjQ4IDogMjAwKX1weGAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RlZFNoYXBlQWN0aW9uc1xuICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgcmVuZGVyQWN0aW9uPXthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbn1cbiAgICAgICAgLz5cbiAgICAgIDwvSXNsYW5kPlxuICAgIDwvU2VjdGlvbj5cbiAgKTtcblxuICBjb25zdCBjbG9zZUxpYnJhcnkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgaXNEaWFsb2dPcGVuID0gISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLkRpYWxvZ1wiKTtcblxuICAgIC8vIFByZXZlbnQgY2xvc2luZyBpZiBhbnkgZGlhbG9nIGlzIG9wZW5cbiAgICBpZiAoaXNEaWFsb2dPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldEFwcFN0YXRlKHsgaXNMaWJyYXJ5T3BlbjogZmFsc2UgfSk7XG4gIH0sIFtzZXRBcHBTdGF0ZV0pO1xuXG4gIGNvbnN0IGRlc2VsZWN0SXRlbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0QXBwU3RhdGUoe1xuICAgICAgc2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICAgIHNlbGVjdGVkR3JvdXBJZHM6IHt9LFxuICAgIH0pO1xuICB9LCBbc2V0QXBwU3RhdGVdKTtcblxuICBjb25zdCBsaWJyYXJ5TWVudSA9IGFwcFN0YXRlLmlzTGlicmFyeU9wZW4gPyAoXG4gICAgPExpYnJhcnlNZW51XG4gICAgICBwZW5kaW5nRWxlbWVudHM9e2dldFNlbGVjdGVkRWxlbWVudHMoZWxlbWVudHMsIGFwcFN0YXRlLCB0cnVlKX1cbiAgICAgIG9uQ2xvc2U9e2Nsb3NlTGlicmFyeX1cbiAgICAgIG9uSW5zZXJ0TGlicmFyeUl0ZW1zPXsobGlicmFyeUl0ZW1zKSA9PiB7XG4gICAgICAgIG9uSW5zZXJ0RWxlbWVudHMoZGlzdHJpYnV0ZUxpYnJhcnlJdGVtc09uU3F1YXJlR3JpZChsaWJyYXJ5SXRlbXMpKTtcbiAgICAgIH19XG4gICAgICBvbkFkZFRvTGlicmFyeT17ZGVzZWxlY3RJdGVtc31cbiAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgIGxpYnJhcnlSZXR1cm5Vcmw9e2xpYnJhcnlSZXR1cm5Vcmx9XG4gICAgICBmb2N1c0NvbnRhaW5lcj17Zm9jdXNDb250YWluZXJ9XG4gICAgICBsaWJyYXJ5PXtsaWJyYXJ5fVxuICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgaWQ9e2lkfVxuICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgIC8+XG4gICkgOiBudWxsO1xuXG4gIGNvbnN0IHJlbmRlckZpeGVkU2lkZUNvbnRhaW5lciA9ICgpID0+IHtcbiAgICBjb25zdCBzaG91bGRSZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucyA9IHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyhcbiAgICAgIGFwcFN0YXRlLFxuICAgICAgZWxlbWVudHMsXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Rml4ZWRTaWRlQ29udGFpbmVyIHNpZGU9XCJ0b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHAtbWVudSBBcHAtbWVudV90b3BcIj5cbiAgICAgICAgICA8U3RhY2suQ29sXG4gICAgICAgICAgICBnYXA9ezR9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goe1xuICAgICAgICAgICAgICBcImRpc2FibGUtcG9pbnRlckV2ZW50c1wiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHthcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWRcbiAgICAgICAgICAgICAgPyByZW5kZXJWaWV3TW9kZUNhbnZhc0FjdGlvbnMoKVxuICAgICAgICAgICAgICA6IHJlbmRlckNhbnZhc0FjdGlvbnMoKX1cbiAgICAgICAgICAgIHtzaG91bGRSZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucyAmJiByZW5kZXJTZWxlY3RlZFNoYXBlQWN0aW9ucygpfVxuICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICAgIHshYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIGhlYWRpbmc9XCJzaGFwZXNcIj5cbiAgICAgICAgICAgICAgeyhoZWFkaW5nOiBSZWFjdC5SZWFjdE5vZGUpID0+IChcbiAgICAgICAgICAgICAgICA8U3RhY2suQ29sIGdhcD17NH0gYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPFN0YWNrLlJvd1xuICAgICAgICAgICAgICAgICAgICBnYXA9ezF9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcIkFwcC10b29sYmFyLWNvbnRhaW5lclwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ6ZW4tbW9kZVwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQZW5Nb2RlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgemVuTW9kZUVuYWJsZWQ9e2FwcFN0YXRlLnplbk1vZGVFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLnBlbk1vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uUGVuTW9kZVRvZ2dsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIucGVuTW9kZVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICBwZW5EZXRlY3RlZD17YXBwU3RhdGUucGVuRGV0ZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxMb2NrQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgemVuTW9kZUVuYWJsZWQ9e2FwcFN0YXRlLnplbk1vZGVFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FwcFN0YXRlLmFjdGl2ZVRvb2wubG9ja2VkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBvbkxvY2tUb2dnbGUoKX1cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIubG9ja1wiKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPElzbGFuZFxuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHN4KFwiQXBwLXRvb2xiYXJcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ6ZW4tbW9kZVwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxIaW50Vmlld2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50cz17ZWxlbWVudHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vYmlsZT17ZGV2aWNlLmlzTW9iaWxlfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0YWNrLlJvdyBnYXA9ezF9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNoYXBlc1N3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzPXtjYW52YXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2w9e2FwcFN0YXRlLmFjdGl2ZVRvb2x9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbWFnZUFjdGlvbj17KHsgcG9pbnRlclR5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW1hZ2VBY3Rpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogcG9pbnRlclR5cGUgIT09IFwibW91c2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdGFjay5Sb3c+XG4gICAgICAgICAgICAgICAgICAgIDwvSXNsYW5kPlxuICAgICAgICAgICAgICAgICAgICA8TGlicmFyeUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAgICA8L1N0YWNrLkNvbD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICAgICAgXCJsYXllci11aV9fd3JhcHBlcl9fdG9wLXJpZ2h0IHplbi1tb2RlLXRyYW5zaXRpb25cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwidHJhbnNpdGlvbi1yaWdodFwiOiBhcHBTdGF0ZS56ZW5Nb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFVzZXJMaXN0XG4gICAgICAgICAgICAgIGNvbGxhYm9yYXRvcnM9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnN9XG4gICAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3JlbmRlclRvcFJpZ2h0VUk/LihkZXZpY2UuaXNNb2JpbGUsIGFwcFN0YXRlKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0ZpeGVkU2lkZUNvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthcHBTdGF0ZS5pc0xvYWRpbmcgJiYgPExvYWRpbmdNZXNzYWdlIGRlbGF5PXsyNTB9IC8+fVxuICAgICAge2FwcFN0YXRlLmVycm9yTWVzc2FnZSAmJiAoXG4gICAgICAgIDxFcnJvckRpYWxvZ1xuICAgICAgICAgIG1lc3NhZ2U9e2FwcFN0YXRlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRBcHBTdGF0ZSh7IGVycm9yTWVzc2FnZTogbnVsbCB9KX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7YXBwU3RhdGUuc2hvd0hlbHBEaWFsb2cgJiYgKFxuICAgICAgICA8SGVscERpYWxvZ1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHsgc2hvd0hlbHBEaWFsb2c6IGZhbHNlIH0pO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge2FwcFN0YXRlLnBhc3RlRGlhbG9nLnNob3duICYmIChcbiAgICAgICAgPFBhc3RlQ2hhcnREaWFsb2dcbiAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgIG9uSW5zZXJ0Q2hhcnQ9e29uSW5zZXJ0RWxlbWVudHN9XG4gICAgICAgICAgb25DbG9zZT17KCkgPT5cbiAgICAgICAgICAgIHNldEFwcFN0YXRlKHtcbiAgICAgICAgICAgICAgcGFzdGVEaWFsb2c6IHsgc2hvd246IGZhbHNlLCBkYXRhOiBudWxsIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7ZGV2aWNlLmlzTW9iaWxlICYmIChcbiAgICAgICAgPE1vYmlsZU1lbnVcbiAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgbGlicmFyeU1lbnU9e2xpYnJhcnlNZW51fVxuICAgICAgICAgIHJlbmRlckpTT05FeHBvcnREaWFsb2c9e3JlbmRlckpTT05FeHBvcnREaWFsb2d9XG4gICAgICAgICAgcmVuZGVySW1hZ2VFeHBvcnREaWFsb2c9e3JlbmRlckltYWdlRXhwb3J0RGlhbG9nfVxuICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICBvbkNvbGxhYkJ1dHRvbkNsaWNrPXtvbkNvbGxhYkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIG9uTG9ja1RvZ2dsZT17KCkgPT4gb25Mb2NrVG9nZ2xlKCl9XG4gICAgICAgICAgb25QZW5Nb2RlVG9nZ2xlPXtvblBlbk1vZGVUb2dnbGV9XG4gICAgICAgICAgY2FudmFzPXtjYW52YXN9XG4gICAgICAgICAgaXNDb2xsYWJvcmF0aW5nPXtpc0NvbGxhYm9yYXRpbmd9XG4gICAgICAgICAgcmVuZGVyQ3VzdG9tRm9vdGVyPXtyZW5kZXJDdXN0b21Gb290ZXJ9XG4gICAgICAgICAgc2hvd1RoZW1lQnRuPXtzaG93VGhlbWVCdG59XG4gICAgICAgICAgb25JbWFnZUFjdGlvbj17b25JbWFnZUFjdGlvbn1cbiAgICAgICAgICByZW5kZXJUb3BSaWdodFVJPXtyZW5kZXJUb3BSaWdodFVJfVxuICAgICAgICAgIHJlbmRlckN1c3RvbVN0YXRzPXtyZW5kZXJDdXN0b21TdGF0c31cbiAgICAgICAgLz5cbiAgICAgICl9XG5cbiAgICAgIHshZGV2aWNlLmlzTW9iaWxlICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2Nsc3goXCJsYXllci11aV9fd3JhcHBlclwiLCB7XG4gICAgICAgICAgICAgIFwiZGlzYWJsZS1wb2ludGVyRXZlbnRzXCI6XG4gICAgICAgICAgICAgICAgYXBwU3RhdGUuZHJhZ2dpbmdFbGVtZW50IHx8XG4gICAgICAgICAgICAgICAgYXBwU3RhdGUucmVzaXppbmdFbGVtZW50IHx8XG4gICAgICAgICAgICAgICAgKGFwcFN0YXRlLmVkaXRpbmdFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgICAhaXNUZXh0RWxlbWVudChhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudCkpLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIGFwcFN0YXRlLmlzTGlicmFyeU9wZW4gJiZcbiAgICAgICAgICAgICAgYXBwU3RhdGUuaXNMaWJyYXJ5TWVudURvY2tlZCAmJlxuICAgICAgICAgICAgICBkZXZpY2UuY2FuRGV2aWNlRml0U2lkZWJhclxuICAgICAgICAgICAgICAgID8geyB3aWR0aDogYGNhbGMoMTAwJSAtICR7TElCUkFSWV9TSURFQkFSX1dJRFRIfXB4KWAgfVxuICAgICAgICAgICAgICAgIDoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVuZGVyRml4ZWRTaWRlQ29udGFpbmVyKCl9XG4gICAgICAgICAgICA8Rm9vdGVyXG4gICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgYWN0aW9uTWFuYWdlcj17YWN0aW9uTWFuYWdlcn1cbiAgICAgICAgICAgICAgcmVuZGVyQ3VzdG9tRm9vdGVyPXtyZW5kZXJDdXN0b21Gb290ZXJ9XG4gICAgICAgICAgICAgIHNob3dFeGl0WmVuTW9kZUJ0bj17c2hvd0V4aXRaZW5Nb2RlQnRufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHthcHBTdGF0ZS5zaG93U3RhdHMgJiYgKFxuICAgICAgICAgICAgICA8U3RhdHNcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgICAgIGVsZW1lbnRzPXtlbGVtZW50c31cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyLmV4ZWN1dGVBY3Rpb24oYWN0aW9uVG9nZ2xlU3RhdHMpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVuZGVyQ3VzdG9tU3RhdHM9e3JlbmRlckN1c3RvbVN0YXRzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHthcHBTdGF0ZS5zY3JvbGxlZE91dHNpZGUgJiYgKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2Nyb2xsLWJhY2stdG8tY29udGVudFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWxjdWxhdGVTY3JvbGxDZW50ZXIoZWxlbWVudHMsIGFwcFN0YXRlLCBjYW52YXMpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KFwiYnV0dG9ucy5zY3JvbGxCYWNrVG9Db250ZW50XCIpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge2FwcFN0YXRlLmlzTGlicmFyeU9wZW4gJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci11aV9fc2lkZWJhclwiPntsaWJyYXJ5TWVudX08L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5jb25zdCBhcmVFcXVhbCA9IChwcmV2OiBMYXllclVJUHJvcHMsIG5leHQ6IExheWVyVUlQcm9wcykgPT4ge1xuICBjb25zdCBnZXROZWNlc3NhcnlPYmogPSAoYXBwU3RhdGU6IEFwcFN0YXRlKTogUGFydGlhbDxBcHBTdGF0ZT4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHN1Z2dlc3RlZEJpbmRpbmdzLFxuICAgICAgc3RhcnRCb3VuZEVsZW1lbnQ6IGJvdW5kRWxlbWVudCxcbiAgICAgIC4uLnJldFxuICAgIH0gPSBhcHBTdGF0ZTtcbiAgICByZXR1cm4gcmV0O1xuICB9O1xuICBjb25zdCBwcmV2QXBwU3RhdGUgPSBnZXROZWNlc3NhcnlPYmoocHJldi5hcHBTdGF0ZSk7XG4gIGNvbnN0IG5leHRBcHBTdGF0ZSA9IGdldE5lY2Vzc2FyeU9iaihuZXh0LmFwcFN0YXRlKTtcblxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocHJldkFwcFN0YXRlKSBhcyAoa2V5b2YgUGFydGlhbDxBcHBTdGF0ZT4pW107XG4gIHJldHVybiAoXG4gICAgcHJldi5yZW5kZXJDdXN0b21Gb290ZXIgPT09IG5leHQucmVuZGVyQ3VzdG9tRm9vdGVyICYmXG4gICAgcHJldi5sYW5nQ29kZSA9PT0gbmV4dC5sYW5nQ29kZSAmJlxuICAgIHByZXYuZWxlbWVudHMgPT09IG5leHQuZWxlbWVudHMgJiZcbiAgICBwcmV2LmZpbGVzID09PSBuZXh0LmZpbGVzICYmXG4gICAga2V5cy5ldmVyeSgoa2V5KSA9PiBwcmV2QXBwU3RhdGVba2V5XSA9PT0gbmV4dEFwcFN0YXRlW2tleV0pXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSZWFjdC5tZW1vKExheWVyVUksIGFyZUVxdWFsKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/LayerUI.tsx\n");
2385
2161
 
2386
2162
  /***/ }),
2387
2163
 
@@ -2612,7 +2388,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2612
2388
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2613
2389
 
2614
2390
  "use strict";
2615
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ToolButton\": () => (/* binding */ ToolButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var _ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ToolIcon.scss */ \"../../components/ToolIcon.scss\");\n/* harmony import */ var _ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../errors */ \"../../errors.ts\");\n/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Spinner */ \"../../components/Spinner.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\nconst ToolButton = react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n const { id: excalId } = (0,_App__WEBPACK_IMPORTED_MODULE_4__.useExcalidrawContainer)();\n const innerRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_2___default().useImperativeHandle(ref, () => innerRef.current);\n const sizeCn = `ToolIcon_size_${props.size}`;\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const isMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(true);\n const onClick = (event) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const ret = \"onClick\" in props && ((_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, event));\n if (ret && \"then\" in ret) {\n try {\n setIsLoading(true);\n yield ret;\n }\n catch (error) {\n if (!(error instanceof _errors__WEBPACK_IMPORTED_MODULE_5__.AbortError)) {\n throw error;\n }\n else {\n console.warn(error);\n }\n }\n finally {\n if (isMountedRef.current) {\n setIsLoading(false);\n }\n }\n }\n });\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => () => {\n isMountedRef.current = false;\n }, []);\n const lastPointerTypeRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n if (props.type === \"button\" ||\n props.type === \"icon\" ||\n props.type === \"submit\") {\n const type = (props.type === \"icon\" ? \"button\" : props.type);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"button\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"ToolIcon_type_button\", sizeCn, props.className, props.visible && !props.hidden\n ? \"ToolIcon_type_button--show\"\n : \"ToolIcon_type_button--hide\", {\n ToolIcon: !props.hidden,\n \"ToolIcon--selected\": props.selected,\n \"ToolIcon--plain\": props.type === \"icon\",\n }), \"data-testid\": props[\"data-testid\"], hidden: props.hidden, title: props.title, \"aria-label\": props[\"aria-label\"], type: type, onClick: onClick, ref: innerRef, disabled: isLoading || props.isLoading }, { children: [(props.icon || props.label) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__icon\", \"aria-hidden\": \"true\" }, { children: [props.icon || props.label, props.keyBindingLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"ToolIcon__keybinding\" }, { children: props.keyBindingLabel }))), props.isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Spinner__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {})] }))), props.showAriaLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__label\" }, { children: [props[\"aria-label\"], \" \", isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Spinner__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {})] }))), props.children] })));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"label\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"ToolIcon\", props.className), title: props.title, onPointerDown: (event) => {\n var _a;\n lastPointerTypeRef.current = event.pointerType || null;\n (_a = props.onPointerDown) === null || _a === void 0 ? void 0 : _a.call(props, { pointerType: event.pointerType || null });\n }, onPointerUp: () => {\n requestAnimationFrame(() => {\n lastPointerTypeRef.current = null;\n });\n } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"input\", { className: `ToolIcon_type_radio ${sizeCn}`, type: \"radio\", name: props.name, \"aria-label\": props[\"aria-label\"], \"aria-keyshortcuts\": props[\"aria-keyshortcuts\"], \"data-testid\": props[\"data-testid\"], id: `${excalId}-${props.id}`, onChange: () => {\n var _a;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, { pointerType: lastPointerTypeRef.current });\n }, checked: props.checked, ref: innerRef }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__icon\" }, { children: [props.icon, props.keyBindingLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"ToolIcon__keybinding\" }, { children: props.keyBindingLabel })))] }))] })));\n});\nToolButton.defaultProps = {\n visible: true,\n className: \"\",\n size: \"medium\",\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ekIsa0JBQWtCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsaUJBRUQsa0VBQ0UsU0FBUyxFQUFFLHVCQUF1QixNQUFNLEVBQUUsRUFDMUMsSUFBSSxFQUFDLE9BQU8sRUFDWixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksZ0JBQ0osS0FBSyxDQUFDLFlBQVksQ0FBQyx1QkFDWixLQUFLLENBQUMsbUJBQW1CLENBQUMsaUJBQ2hDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFDakMsRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFDNUIsUUFBUSxFQUFFLEdBQUcsRUFBRTs7b0JBQ2IsV0FBSyxDQUFDLFFBQVEsc0RBQUcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDaEUsQ0FBQyxFQUNELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUN0QixHQUFHLEVBQUUsUUFBUSxHQUNiLEVBQ0YsK0VBQUssU0FBUyxFQUFDLGdCQUFnQixpQkFDNUIsS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLENBQUMsZUFBZSxJQUFJLENBQ3hCLCtFQUFNLFNBQVMsRUFBQyxzQkFBc0IsZ0JBQUUsS0FBSyxDQUFDLGVBQWUsSUFBUSxDQUN0RSxLQUNHLEtBQ0EsQ0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxVQUFVLENBQUMsWUFBWSxHQUFHO0lBQ3hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLEVBQUU7SUFDYixJQUFJLEVBQUUsUUFBUTtDQUNmLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub29sQnV0dG9uLnRzeD84ZTYyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vVG9vbEljb24uc2Nzc1wiO1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgdXNlRXhjYWxpZHJhd0NvbnRhaW5lciB9IGZyb20gXCIuL0FwcFwiO1xuaW1wb3J0IHsgQWJvcnRFcnJvciB9IGZyb20gXCIuLi9lcnJvcnNcIjtcbmltcG9ydCBTcGlubmVyIGZyb20gXCIuL1NwaW5uZXJcIjtcbmltcG9ydCB7IFBvaW50ZXJUeXBlIH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgVG9vbEJ1dHRvblNpemUgPSBcInNtYWxsXCIgfCBcIm1lZGl1bVwiO1xuXG50eXBlIFRvb2xCdXR0b25CYXNlUHJvcHMgPSB7XG4gIGljb24/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIFwiYXJpYS1sYWJlbFwiOiBzdHJpbmc7XG4gIFwiYXJpYS1rZXlzaG9ydGN1dHNcIj86IHN0cmluZztcbiAgXCJkYXRhLXRlc3RpZFwiPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBzaXplPzogVG9vbEJ1dHRvblNpemU7XG4gIGtleUJpbmRpbmdMYWJlbD86IHN0cmluZztcbiAgc2hvd0FyaWFMYWJlbD86IGJvb2xlYW47XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIHZpc2libGU/OiBib29sZWFuO1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgVG9vbEJ1dHRvblByb3BzID1cbiAgfCAoVG9vbEJ1dHRvbkJhc2VQcm9wcyAmIHtcbiAgICAgIHR5cGU6IFwiYnV0dG9uXCI7XG4gICAgICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICAgIG9uQ2xpY2s/KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KTogdm9pZDtcbiAgICB9KVxuICB8IChUb29sQnV0dG9uQmFzZVByb3BzICYge1xuICAgICAgdHlwZTogXCJzdWJtaXRcIjtcbiAgICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAgICAgb25DbGljaz8oZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIH0pXG4gIHwgKFRvb2xCdXR0b25CYXNlUHJvcHMgJiB7XG4gICAgICB0eXBlOiBcImljb25cIjtcbiAgICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAgICAgb25DbGljaz8oKTogdm9pZDtcbiAgICB9KVxuICB8IChUb29sQnV0dG9uQmFzZVByb3BzICYge1xuICAgICAgdHlwZTogXCJyYWRpb1wiO1xuICAgICAgY2hlY2tlZDogYm9vbGVhbjtcbiAgICAgIG9uQ2hhbmdlPyhkYXRhOiB7IHBvaW50ZXJUeXBlOiBQb2ludGVyVHlwZSB8IG51bGwgfSk6IHZvaWQ7XG4gICAgICBvblBvaW50ZXJEb3duPyhkYXRhOiB7IHBvaW50ZXJUeXBlOiBQb2ludGVyVHlwZSB9KTogdm9pZDtcbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IFRvb2xCdXR0b24gPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wczogVG9vbEJ1dHRvblByb3BzLCByZWYpID0+IHtcbiAgY29uc3QgeyBpZDogZXhjYWxJZCB9ID0gdXNlRXhjYWxpZHJhd0NvbnRhaW5lcigpO1xuICBjb25zdCBpbm5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUmVmLmN1cnJlbnQpO1xuICBjb25zdCBzaXplQ24gPSBgVG9vbEljb25fc2l6ZV8ke3Byb3BzLnNpemV9YDtcblxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuICBjb25zdCBvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgcmV0ID0gXCJvbkNsaWNrXCIgaW4gcHJvcHMgJiYgcHJvcHMub25DbGljaz8uKGV2ZW50KTtcblxuICAgIGlmIChyZXQgJiYgXCJ0aGVuXCIgaW4gcmV0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIGF3YWl0IHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBBYm9ydEVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+ICgpID0+IHtcbiAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBsYXN0UG9pbnRlclR5cGVSZWYgPSB1c2VSZWY8UG9pbnRlclR5cGUgfCBudWxsPihudWxsKTtcblxuICBpZiAoXG4gICAgcHJvcHMudHlwZSA9PT0gXCJidXR0b25cIiB8fFxuICAgIHByb3BzLnR5cGUgPT09IFwiaWNvblwiIHx8XG4gICAgcHJvcHMudHlwZSA9PT0gXCJzdWJtaXRcIlxuICApIHtcbiAgICBjb25zdCB0eXBlID0gKHByb3BzLnR5cGUgPT09IFwiaWNvblwiID8gXCJidXR0b25cIiA6IHByb3BzLnR5cGUpIGFzXG4gICAgICB8IFwiYnV0dG9uXCJcbiAgICAgIHwgXCJzdWJtaXRcIjtcbiAgICByZXR1cm4gKFxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e2Nsc3goXG4gICAgICAgICAgXCJUb29sSWNvbl90eXBlX2J1dHRvblwiLFxuICAgICAgICAgIHNpemVDbixcbiAgICAgICAgICBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgcHJvcHMudmlzaWJsZSAmJiAhcHJvcHMuaGlkZGVuXG4gICAgICAgICAgICA/IFwiVG9vbEljb25fdHlwZV9idXR0b24tLXNob3dcIlxuICAgICAgICAgICAgOiBcIlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgVG9vbEljb246ICFwcm9wcy5oaWRkZW4sXG4gICAgICAgICAgICBcIlRvb2xJY29uLS1zZWxlY3RlZFwiOiBwcm9wcy5zZWxlY3RlZCxcbiAgICAgICAgICAgIFwiVG9vbEljb24tLXBsYWluXCI6IHByb3BzLnR5cGUgPT09IFwiaWNvblwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICl9XG4gICAgICAgIGRhdGEtdGVzdGlkPXtwcm9wc1tcImRhdGEtdGVzdGlkXCJdfVxuICAgICAgICBoaWRkZW49e3Byb3BzLmhpZGRlbn1cbiAgICAgICAgdGl0bGU9e3Byb3BzLnRpdGxlfVxuICAgICAgICBhcmlhLWxhYmVsPXtwcm9wc1tcImFyaWEtbGFiZWxcIl19XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgIHJlZj17aW5uZXJSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmcgfHwgcHJvcHMuaXNMb2FkaW5nfVxuICAgICAgPlxuICAgICAgICB7KHByb3BzLmljb24gfHwgcHJvcHMubGFiZWwpICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIlRvb2xJY29uX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICB7cHJvcHMuaWNvbiB8fCBwcm9wcy5sYWJlbH1cbiAgICAgICAgICAgIHtwcm9wcy5rZXlCaW5kaW5nTGFiZWwgJiYgKFxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJUb29sSWNvbl9fa2V5YmluZGluZ1wiPlxuICAgICAgICAgICAgICAgIHtwcm9wcy5rZXlCaW5kaW5nTGFiZWx9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7cHJvcHMuaXNMb2FkaW5nICYmIDxTcGlubmVyIC8+fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvcHMuc2hvd0FyaWFMYWJlbCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJUb29sSWNvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHtwcm9wc1tcImFyaWEtbGFiZWxcIl19IHtpc0xvYWRpbmcgJiYgPFNwaW5uZXIgLz59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxsYWJlbFxuICAgICAgY2xhc3NOYW1lPXtjbHN4KFwiVG9vbEljb25cIiwgcHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgIHRpdGxlPXtwcm9wcy50aXRsZX1cbiAgICAgIG9uUG9pbnRlckRvd249eyhldmVudCkgPT4ge1xuICAgICAgICBsYXN0UG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlIHx8IG51bGw7XG4gICAgICAgIHByb3BzLm9uUG9pbnRlckRvd24/Lih7IHBvaW50ZXJUeXBlOiBldmVudC5wb2ludGVyVHlwZSB8fCBudWxsIH0pO1xuICAgICAgfX1cbiAgICAgIG9uUG9pbnRlclVwPXsoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgbGFzdFBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzTmFtZT17YFRvb2xJY29uX3R5cGVfcmFkaW8gJHtzaXplQ259YH1cbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgbmFtZT17cHJvcHMubmFtZX1cbiAgICAgICAgYXJpYS1sYWJlbD17cHJvcHNbXCJhcmlhLWxhYmVsXCJdfVxuICAgICAgICBhcmlhLWtleXNob3J0Y3V0cz17cHJvcHNbXCJhcmlhLWtleXNob3J0Y3V0c1wiXX1cbiAgICAgICAgZGF0YS10ZXN0aWQ9e3Byb3BzW1wiZGF0YS10ZXN0aWRcIl19XG4gICAgICAgIGlkPXtgJHtleGNhbElkfS0ke3Byb3BzLmlkfWB9XG4gICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB7XG4gICAgICAgICAgcHJvcHMub25DaGFuZ2U/Lih7IHBvaW50ZXJUeXBlOiBsYXN0UG9pbnRlclR5cGVSZWYuY3VycmVudCB9KTtcbiAgICAgICAgfX1cbiAgICAgICAgY2hlY2tlZD17cHJvcHMuY2hlY2tlZH1cbiAgICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIlRvb2xJY29uX19pY29uXCI+XG4gICAgICAgIHtwcm9wcy5pY29ufVxuICAgICAgICB7cHJvcHMua2V5QmluZGluZ0xhYmVsICYmIChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJUb29sSWNvbl9fa2V5YmluZGluZ1wiPntwcm9wcy5rZXlCaW5kaW5nTGFiZWx9PC9zcGFuPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbiAgKTtcbn0pO1xuXG5Ub29sQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBzaXplOiBcIm1lZGl1bVwiLFxufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/ToolButton.tsx\n");
2391
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ToolButton\": () => (/* binding */ ToolButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var _ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ToolIcon.scss */ \"../../components/ToolIcon.scss\");\n/* harmony import */ var _ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ToolIcon_scss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ \"../../../node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../errors */ \"../../errors.ts\");\n/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Spinner */ \"../../components/Spinner.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\nconst ToolButton = react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n const { id: excalId } = (0,_App__WEBPACK_IMPORTED_MODULE_4__.useExcalidrawContainer)();\n const innerRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null);\n react__WEBPACK_IMPORTED_MODULE_2___default().useImperativeHandle(ref, () => innerRef.current);\n const sizeCn = `ToolIcon_size_${props.size}`;\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const isMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(true);\n const onClick = (event) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n const ret = \"onClick\" in props && ((_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, event));\n if (ret && \"then\" in ret) {\n try {\n setIsLoading(true);\n yield ret;\n }\n catch (error) {\n if (!(error instanceof _errors__WEBPACK_IMPORTED_MODULE_5__.AbortError)) {\n throw error;\n }\n else {\n console.warn(error);\n }\n }\n finally {\n if (isMountedRef.current) {\n setIsLoading(false);\n }\n }\n }\n });\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => () => {\n isMountedRef.current = false;\n }, []);\n const lastPointerTypeRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n if (props.type === \"button\" ||\n props.type === \"icon\" ||\n props.type === \"submit\") {\n const type = (props.type === \"icon\" ? \"button\" : props.type);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"button\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"ToolIcon_type_button\", sizeCn, props.className, props.visible && !props.hidden\n ? \"ToolIcon_type_button--show\"\n : \"ToolIcon_type_button--hide\", {\n ToolIcon: !props.hidden,\n \"ToolIcon--selected\": props.selected,\n \"ToolIcon--plain\": props.type === \"icon\",\n }), \"data-testid\": props[\"data-testid\"], hidden: props.hidden, title: props.title, \"aria-label\": props[\"aria-label\"], type: type, onClick: onClick, ref: innerRef, disabled: isLoading || props.isLoading }, { children: [(props.icon || props.label) && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__icon\", \"aria-hidden\": \"true\" }, { children: [props.icon || props.label, props.keyBindingLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"ToolIcon__keybinding\" }, { children: props.keyBindingLabel }))), props.isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Spinner__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {})] }))), props.showAriaLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__label\" }, { children: [props[\"aria-label\"], \" \", isLoading && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Spinner__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {})] }))), props.children] })));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"label\", Object.assign({ className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\"ToolIcon\", props.className), title: props.title, onPointerDown: (event) => {\n var _a;\n lastPointerTypeRef.current = event.pointerType || null;\n (_a = props.onPointerDown) === null || _a === void 0 ? void 0 : _a.call(props, { pointerType: event.pointerType || null });\n }, onPointerUp: () => {\n requestAnimationFrame(() => {\n lastPointerTypeRef.current = null;\n });\n } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"input\", { className: `ToolIcon_type_radio ${sizeCn}`, type: \"radio\", name: props.name, \"aria-label\": props[\"aria-label\"], \"aria-keyshortcuts\": props[\"aria-keyshortcuts\"], \"data-testid\": props[\"data-testid\"], id: `${excalId}-${props.id}`, onChange: () => {\n var _a;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, { pointerType: lastPointerTypeRef.current });\n }, checked: props.checked, ref: innerRef }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ToolIcon__icon\" }, { children: [props.icon, props.keyBindingLabel && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", Object.assign({ className: \"ToolIcon__keybinding\" }, { children: props.keyBindingLabel })))] }))] })));\n});\nToolButton.defaultProps = {\n visible: true,\n className: \"\",\n size: \"medium\",\n};\nToolButton.displayName = \"ToolButton\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ekIsa0JBQWtCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsaUJBRUQsa0VBQ0UsU0FBUyxFQUFFLHVCQUF1QixNQUFNLEVBQUUsRUFDMUMsSUFBSSxFQUFDLE9BQU8sRUFDWixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksZ0JBQ0osS0FBSyxDQUFDLFlBQVksQ0FBQyx1QkFDWixLQUFLLENBQUMsbUJBQW1CLENBQUMsaUJBQ2hDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFDakMsRUFBRSxFQUFFLEdBQUcsT0FBTyxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFDNUIsUUFBUSxFQUFFLEdBQUcsRUFBRTs7b0JBQ2IsV0FBSyxDQUFDLFFBQVEsc0RBQUcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDaEUsQ0FBQyxFQUNELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUN0QixHQUFHLEVBQUUsUUFBUSxHQUNiLEVBQ0YsK0VBQUssU0FBUyxFQUFDLGdCQUFnQixpQkFDNUIsS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLENBQUMsZUFBZSxJQUFJLENBQ3hCLCtFQUFNLFNBQVMsRUFBQyxzQkFBc0IsZ0JBQUUsS0FBSyxDQUFDLGVBQWUsSUFBUSxDQUN0RSxLQUNHLEtBQ0EsQ0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxVQUFVLENBQUMsWUFBWSxHQUFHO0lBQ3hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLEVBQUU7SUFDYixJQUFJLEVBQUUsUUFBUTtDQUNmLENBQUM7QUFFRixVQUFVLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL1Rvb2xCdXR0b24udHN4PzhlNjIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi9Ub29sSWNvbi5zY3NzXCI7XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XG5pbXBvcnQgeyB1c2VFeGNhbGlkcmF3Q29udGFpbmVyIH0gZnJvbSBcIi4vQXBwXCI7XG5pbXBvcnQgeyBBYm9ydEVycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSBcIi4vU3Bpbm5lclwiO1xuaW1wb3J0IHsgUG9pbnRlclR5cGUgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUb29sQnV0dG9uU2l6ZSA9IFwic21hbGxcIiB8IFwibWVkaXVtXCI7XG5cbnR5cGUgVG9vbEJ1dHRvbkJhc2VQcm9wcyA9IHtcbiAgaWNvbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgXCJhcmlhLWxhYmVsXCI6IHN0cmluZztcbiAgXCJhcmlhLWtleXNob3J0Y3V0c1wiPzogc3RyaW5nO1xuICBcImRhdGEtdGVzdGlkXCI/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNpemU/OiBUb29sQnV0dG9uU2l6ZTtcbiAga2V5QmluZGluZ0xhYmVsPzogc3RyaW5nO1xuICBzaG93QXJpYUxhYmVsPzogYm9vbGVhbjtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xufTtcblxudHlwZSBUb29sQnV0dG9uUHJvcHMgPVxuICB8IChUb29sQnV0dG9uQmFzZVByb3BzICYge1xuICAgICAgdHlwZTogXCJidXR0b25cIjtcbiAgICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAgICAgb25DbGljaz8oZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIH0pXG4gIHwgKFRvb2xCdXR0b25CYXNlUHJvcHMgJiB7XG4gICAgICB0eXBlOiBcInN1Ym1pdFwiO1xuICAgICAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgICBvbkNsaWNrPyhldmVudDogUmVhY3QuTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgfSlcbiAgfCAoVG9vbEJ1dHRvbkJhc2VQcm9wcyAmIHtcbiAgICAgIHR5cGU6IFwiaWNvblwiO1xuICAgICAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgICBvbkNsaWNrPygpOiB2b2lkO1xuICAgIH0pXG4gIHwgKFRvb2xCdXR0b25CYXNlUHJvcHMgJiB7XG4gICAgICB0eXBlOiBcInJhZGlvXCI7XG4gICAgICBjaGVja2VkOiBib29sZWFuO1xuICAgICAgb25DaGFuZ2U/KGRhdGE6IHsgcG9pbnRlclR5cGU6IFBvaW50ZXJUeXBlIHwgbnVsbCB9KTogdm9pZDtcbiAgICAgIG9uUG9pbnRlckRvd24/KGRhdGE6IHsgcG9pbnRlclR5cGU6IFBvaW50ZXJUeXBlIH0pOiB2b2lkO1xuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgVG9vbEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzOiBUb29sQnV0dG9uUHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7IGlkOiBleGNhbElkIH0gPSB1c2VFeGNhbGlkcmF3Q29udGFpbmVyKCk7XG4gIGNvbnN0IGlubmVyUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gaW5uZXJSZWYuY3VycmVudCk7XG4gIGNvbnN0IHNpemVDbiA9IGBUb29sSWNvbl9zaXplXyR7cHJvcHMuc2l6ZX1gO1xuXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG4gIGNvbnN0IG9uQ2xpY2sgPSBhc3luYyAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCByZXQgPSBcIm9uQ2xpY2tcIiBpbiBwcm9wcyAmJiBwcm9wcy5vbkNsaWNrPy4oZXZlbnQpO1xuXG4gICAgaWYgKHJldCAmJiBcInRoZW5cIiBpbiByZXQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgYXdhaXQgcmV0O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEFib3J0RXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIGNvbnN0IGxhc3RQb2ludGVyVHlwZVJlZiA9IHVzZVJlZjxQb2ludGVyVHlwZSB8IG51bGw+KG51bGwpO1xuXG4gIGlmIChcbiAgICBwcm9wcy50eXBlID09PSBcImJ1dHRvblwiIHx8XG4gICAgcHJvcHMudHlwZSA9PT0gXCJpY29uXCIgfHxcbiAgICBwcm9wcy50eXBlID09PSBcInN1Ym1pdFwiXG4gICkge1xuICAgIGNvbnN0IHR5cGUgPSAocHJvcHMudHlwZSA9PT0gXCJpY29uXCIgPyBcImJ1dHRvblwiIDogcHJvcHMudHlwZSkgYXNcbiAgICAgIHwgXCJidXR0b25cIlxuICAgICAgfCBcInN1Ym1pdFwiO1xuICAgIHJldHVybiAoXG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChcbiAgICAgICAgICBcIlRvb2xJY29uX3R5cGVfYnV0dG9uXCIsXG4gICAgICAgICAgc2l6ZUNuLFxuICAgICAgICAgIHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBwcm9wcy52aXNpYmxlICYmICFwcm9wcy5oaWRkZW5cbiAgICAgICAgICAgID8gXCJUb29sSWNvbl90eXBlX2J1dHRvbi0tc2hvd1wiXG4gICAgICAgICAgICA6IFwiVG9vbEljb25fdHlwZV9idXR0b24tLWhpZGVcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBUb29sSWNvbjogIXByb3BzLmhpZGRlbixcbiAgICAgICAgICAgIFwiVG9vbEljb24tLXNlbGVjdGVkXCI6IHByb3BzLnNlbGVjdGVkLFxuICAgICAgICAgICAgXCJUb29sSWNvbi0tcGxhaW5cIjogcHJvcHMudHlwZSA9PT0gXCJpY29uXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKX1cbiAgICAgICAgZGF0YS10ZXN0aWQ9e3Byb3BzW1wiZGF0YS10ZXN0aWRcIl19XG4gICAgICAgIGhpZGRlbj17cHJvcHMuaGlkZGVufVxuICAgICAgICB0aXRsZT17cHJvcHMudGl0bGV9XG4gICAgICAgIGFyaWEtbGFiZWw9e3Byb3BzW1wiYXJpYS1sYWJlbFwiXX1cbiAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2lzTG9hZGluZyB8fCBwcm9wcy5pc0xvYWRpbmd9XG4gICAgICA+XG4gICAgICAgIHsocHJvcHMuaWNvbiB8fCBwcm9wcy5sYWJlbCkgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiVG9vbEljb25fX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIHtwcm9wcy5pY29uIHx8IHByb3BzLmxhYmVsfVxuICAgICAgICAgICAge3Byb3BzLmtleUJpbmRpbmdMYWJlbCAmJiAoXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlRvb2xJY29uX19rZXliaW5kaW5nXCI+XG4gICAgICAgICAgICAgICAge3Byb3BzLmtleUJpbmRpbmdMYWJlbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtwcm9wcy5pc0xvYWRpbmcgJiYgPFNwaW5uZXIgLz59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5zaG93QXJpYUxhYmVsICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIlRvb2xJY29uX19sYWJlbFwiPlxuICAgICAgICAgICAge3Byb3BzW1wiYXJpYS1sYWJlbFwiXX0ge2lzTG9hZGluZyAmJiA8U3Bpbm5lciAvPn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9idXR0b24+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGxhYmVsXG4gICAgICBjbGFzc05hbWU9e2Nsc3goXCJUb29sSWNvblwiLCBwcm9wcy5jbGFzc05hbWUpfVxuICAgICAgdGl0bGU9e3Byb3BzLnRpdGxlfVxuICAgICAgb25Qb2ludGVyRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgIGxhc3RQb2ludGVyVHlwZVJlZi5jdXJyZW50ID0gZXZlbnQucG9pbnRlclR5cGUgfHwgbnVsbDtcbiAgICAgICAgcHJvcHMub25Qb2ludGVyRG93bj8uKHsgcG9pbnRlclR5cGU6IGV2ZW50LnBvaW50ZXJUeXBlIHx8IG51bGwgfSk7XG4gICAgICB9fVxuICAgICAgb25Qb2ludGVyVXA9eygpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBsYXN0UG9pbnRlclR5cGVSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3NOYW1lPXtgVG9vbEljb25fdHlwZV9yYWRpbyAke3NpemVDbn1gfVxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBuYW1lPXtwcm9wcy5uYW1lfVxuICAgICAgICBhcmlhLWxhYmVsPXtwcm9wc1tcImFyaWEtbGFiZWxcIl19XG4gICAgICAgIGFyaWEta2V5c2hvcnRjdXRzPXtwcm9wc1tcImFyaWEta2V5c2hvcnRjdXRzXCJdfVxuICAgICAgICBkYXRhLXRlc3RpZD17cHJvcHNbXCJkYXRhLXRlc3RpZFwiXX1cbiAgICAgICAgaWQ9e2Ake2V4Y2FsSWR9LSR7cHJvcHMuaWR9YH1cbiAgICAgICAgb25DaGFuZ2U9eygpID0+IHtcbiAgICAgICAgICBwcm9wcy5vbkNoYW5nZT8uKHsgcG9pbnRlclR5cGU6IGxhc3RQb2ludGVyVHlwZVJlZi5jdXJyZW50IH0pO1xuICAgICAgICB9fVxuICAgICAgICBjaGVja2VkPXtwcm9wcy5jaGVja2VkfVxuICAgICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiVG9vbEljb25fX2ljb25cIj5cbiAgICAgICAge3Byb3BzLmljb259XG4gICAgICAgIHtwcm9wcy5rZXlCaW5kaW5nTGFiZWwgJiYgKFxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlRvb2xJY29uX19rZXliaW5kaW5nXCI+e3Byb3BzLmtleUJpbmRpbmdMYWJlbH08L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2xhYmVsPlxuICApO1xufSk7XG5cblRvb2xCdXR0b24uZGVmYXVsdFByb3BzID0ge1xuICB2aXNpYmxlOiB0cnVlLFxuICBjbGFzc05hbWU6IFwiXCIsXG4gIHNpemU6IFwibWVkaXVtXCIsXG59O1xuXG5Ub29sQnV0dG9uLmRpc3BsYXlOYW1lID0gXCJUb29sQnV0dG9uXCI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../components/ToolButton.tsx\n");
2616
2392
 
2617
2393
  /***/ }),
2618
2394
 
@@ -2810,7 +2586,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2810
2586
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2811
2587
 
2812
2588
  "use strict";
2813
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getArrowheadPoints\": () => (/* binding */ getArrowheadPoints),\n/* harmony export */ \"getClosestElementBounds\": () => (/* binding */ getClosestElementBounds),\n/* harmony export */ \"getCommonBoundingBox\": () => (/* binding */ getCommonBoundingBox),\n/* harmony export */ \"getCommonBounds\": () => (/* binding */ getCommonBounds),\n/* harmony export */ \"getCurvePathOps\": () => (/* binding */ getCurvePathOps),\n/* harmony export */ \"getDiamondPoints\": () => (/* binding */ getDiamondPoints),\n/* harmony export */ \"getElementAbsoluteCoords\": () => (/* binding */ getElementAbsoluteCoords),\n/* harmony export */ \"getElementBounds\": () => (/* binding */ getElementBounds),\n/* harmony export */ \"getElementPointsCoords\": () => (/* binding */ getElementPointsCoords),\n/* harmony export */ \"getResizedElementAbsoluteCoords\": () => (/* binding */ getResizedElementAbsoluteCoords),\n/* harmony export */ \"pointRelativeTo\": () => (/* binding */ pointRelativeTo)\n/* harmony export */ });\n/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ \"../../math.ts\");\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderElement */ \"../../renderer/renderElement.ts\");\n/* harmony import */ var _typeChecks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./typeChecks */ \"../../element/typeChecks.ts\");\n/* harmony import */ var _points__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../points */ \"../../points.ts\");\n\n\n\n\n\n// If the element is created from right to left, the width is going to be negative\n// This set of functions retrieves the absolute position of the 4 points.\nconst getElementAbsoluteCoords = (element) => {\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n return getFreeDrawElementAbsoluteCoords(element);\n }\n else if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element)) {\n return getLinearElementAbsoluteCoords(element);\n }\n return [\n element.x,\n element.y,\n element.x + element.width,\n element.y + element.height,\n ];\n};\nconst pointRelativeTo = (element, absoluteCoords) => {\n return [absoluteCoords[0] - element.x, absoluteCoords[1] - element.y];\n};\nconst getDiamondPoints = (element) => {\n // Here we add +1 to avoid these numbers to be 0\n // otherwise rough.js will throw an error complaining about it\n const topX = Math.floor(element.width / 2) + 1;\n const topY = 0;\n const rightX = element.width;\n const rightY = Math.floor(element.height / 2) + 1;\n const bottomX = topX;\n const bottomY = element.height;\n const leftX = 0;\n const leftY = rightY;\n return [topX, topY, rightX, rightY, bottomX, bottomY, leftX, leftY];\n};\nconst getCurvePathOps = (shape) => {\n for (const set of shape.sets) {\n if (set.type === \"path\") {\n return set.ops;\n }\n }\n return shape.sets[0].ops;\n};\n// reference: https://eliot-jones.com/2019/12/cubic-bezier-curve-bounding-boxes\nconst getBezierValueForT = (t, p0, p1, p2, p3) => {\n const oneMinusT = 1 - t;\n return (Math.pow(oneMinusT, 3) * p0 +\n 3 * Math.pow(oneMinusT, 2) * t * p1 +\n 3 * oneMinusT * Math.pow(t, 2) * p2 +\n Math.pow(t, 3) * p3);\n};\nconst solveQuadratic = (p0, p1, p2, p3) => {\n const i = p1 - p0;\n const j = p2 - p1;\n const k = p3 - p2;\n const a = 3 * i - 6 * j + 3 * k;\n const b = 6 * j - 6 * i;\n const c = 3 * i;\n const sqrtPart = b * b - 4 * a * c;\n const hasSolution = sqrtPart >= 0;\n if (!hasSolution) {\n return false;\n }\n const t1 = (-b + Math.sqrt(sqrtPart)) / (2 * a);\n const t2 = (-b - Math.sqrt(sqrtPart)) / (2 * a);\n let s1 = null;\n let s2 = null;\n if (t1 >= 0 && t1 <= 1) {\n s1 = getBezierValueForT(t1, p0, p1, p2, p3);\n }\n if (t2 >= 0 && t2 <= 1) {\n s2 = getBezierValueForT(t2, p0, p1, p2, p3);\n }\n return [s1, s2];\n};\nconst getCubicBezierCurveBound = (p0, p1, p2, p3) => {\n const solX = solveQuadratic(p0[0], p1[0], p2[0], p3[0]);\n const solY = solveQuadratic(p0[1], p1[1], p2[1], p3[1]);\n let minX = Math.min(p0[0], p3[0]);\n let maxX = Math.max(p0[0], p3[0]);\n if (solX) {\n const xs = solX.filter((x) => x !== null);\n minX = Math.min(minX, ...xs);\n maxX = Math.max(maxX, ...xs);\n }\n let minY = Math.min(p0[1], p3[1]);\n let maxY = Math.max(p0[1], p3[1]);\n if (solY) {\n const ys = solY.filter((y) => y !== null);\n minY = Math.min(minY, ...ys);\n maxY = Math.max(maxY, ...ys);\n }\n return [minX, minY, maxX, maxY];\n};\nconst getMinMaxXYFromCurvePathOps = (ops, transformXY) => {\n let currentP = [0, 0];\n const { minX, minY, maxX, maxY } = ops.reduce((limits, { op, data }) => {\n // There are only four operation types:\n // move, bcurveTo, lineTo, and curveTo\n if (op === \"move\") {\n // change starting point\n currentP = data;\n // move operation does not draw anything; so, it always\n // returns false\n }\n else if (op === \"bcurveTo\") {\n const _p1 = [data[0], data[1]];\n const _p2 = [data[2], data[3]];\n const _p3 = [data[4], data[5]];\n const p1 = transformXY ? transformXY(..._p1) : _p1;\n const p2 = transformXY ? transformXY(..._p2) : _p2;\n const p3 = transformXY ? transformXY(..._p3) : _p3;\n const p0 = transformXY ? transformXY(...currentP) : currentP;\n currentP = _p3;\n const [minX, minY, maxX, maxY] = getCubicBezierCurveBound(p0, p1, p2, p3);\n limits.minX = Math.min(limits.minX, minX);\n limits.minY = Math.min(limits.minY, minY);\n limits.maxX = Math.max(limits.maxX, maxX);\n limits.maxY = Math.max(limits.maxY, maxY);\n }\n else if (op === \"lineTo\") {\n // TODO: Implement this\n }\n else if (op === \"qcurveTo\") {\n // TODO: Implement this\n }\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n return [minX, minY, maxX, maxY];\n};\nconst getBoundsFromPoints = (points) => {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const [x, y] of points) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n return [minX, minY, maxX, maxY];\n};\nconst getFreeDrawElementAbsoluteCoords = (element) => {\n const [minX, minY, maxX, maxY] = getBoundsFromPoints(element.points);\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getLinearElementAbsoluteCoords = (element) => {\n let coords;\n if (element.points.length < 2 || !(0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element)) {\n // XXX this is just a poor estimate and not very useful\n const { minX, minY, maxX, maxY } = element.points.reduce((limits, [x, y]) => {\n limits.minY = Math.min(limits.minY, y);\n limits.minX = Math.min(limits.minX, x);\n limits.maxX = Math.max(limits.maxX, x);\n limits.maxY = Math.max(limits.maxY, y);\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n coords = [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n else {\n const shape = (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element);\n // first element is always the curve\n const ops = getCurvePathOps(shape[0]);\n const [minX, minY, maxX, maxY] = getMinMaxXYFromCurvePathOps(ops);\n coords = [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n return coords;\n};\nconst getArrowheadPoints = (element, shape, position, arrowhead) => {\n const ops = getCurvePathOps(shape[0]);\n if (ops.length < 1) {\n return null;\n }\n // The index of the bCurve operation to examine.\n const index = position === \"start\" ? 1 : ops.length - 1;\n const data = ops[index].data;\n const p3 = [data[4], data[5]];\n const p2 = [data[2], data[3]];\n const p1 = [data[0], data[1]];\n // We need to find p0 of the bezier curve.\n // It is typically the last point of the previous\n // curve; it can also be the position of moveTo operation.\n const prevOp = ops[index - 1];\n let p0 = [0, 0];\n if (prevOp.op === \"move\") {\n p0 = prevOp.data;\n }\n else if (prevOp.op === \"bcurveTo\") {\n p0 = [prevOp.data[4], prevOp.data[5]];\n }\n // B(t) = p0 * (1-t)^3 + 3p1 * t * (1-t)^2 + 3p2 * t^2 * (1-t) + p3 * t^3\n const equation = (t, idx) => Math.pow(1 - t, 3) * p3[idx] +\n 3 * t * Math.pow(1 - t, 2) * p2[idx] +\n 3 * Math.pow(t, 2) * (1 - t) * p1[idx] +\n p0[idx] * Math.pow(t, 3);\n // Ee know the last point of the arrow (or the first, if start arrowhead).\n const [x2, y2] = position === \"start\" ? p0 : p3;\n // By using cubic bezier equation (B(t)) and the given parameters,\n // we calculate a point that is closer to the last point.\n // The value 0.3 is chosen arbitrarily and it works best for all\n // the tested cases.\n const [x1, y1] = [equation(0.3, 0), equation(0.3, 1)];\n // Find the normalized direction vector based on the\n // previously calculated points.\n const distance = Math.hypot(x2 - x1, y2 - y1);\n const nx = (x2 - x1) / distance;\n const ny = (y2 - y1) / distance;\n const size = {\n arrow: 30,\n bar: 15,\n dot: 15,\n triangle: 15,\n }[arrowhead]; // pixels (will differ for each arrowhead)\n let length = 0;\n if (arrowhead === \"arrow\") {\n // Length for -> arrows is based on the length of the last section\n const [cx, cy] = element.points[element.points.length - 1];\n const [px, py] = element.points.length > 1\n ? element.points[element.points.length - 2]\n : [0, 0];\n length = Math.hypot(cx - px, cy - py);\n }\n else {\n // Length for other arrowhead types is based on the total length of the line\n for (let i = 0; i < element.points.length; i++) {\n const [px, py] = element.points[i - 1] || [0, 0];\n const [cx, cy] = element.points[i];\n length += Math.hypot(cx - px, cy - py);\n }\n }\n // Scale down the arrowhead until we hit a certain size so that it doesn't look weird.\n // This value is selected by minimizing a minimum size with the last segment of the arrowhead\n const minSize = Math.min(size, length / 2);\n const xs = x2 - nx * minSize;\n const ys = y2 - ny * minSize;\n if (arrowhead === \"dot\") {\n const r = Math.hypot(ys - y2, xs - x2) + element.strokeWidth;\n return [x2, y2, r];\n }\n const angle = {\n arrow: 20,\n bar: 90,\n triangle: 25,\n }[arrowhead]; // degrees\n // Return points\n const [x3, y3] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(xs, ys, x2, y2, (-angle * Math.PI) / 180);\n const [x4, y4] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(xs, ys, x2, y2, (angle * Math.PI) / 180);\n return [x2, y2, x3, y3, x4, y4];\n};\nconst getLinearElementRotatedBounds = (element, cx, cy) => {\n if (element.points.length < 2 || !(0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element)) {\n // XXX this is just a poor estimate and not very useful\n const { minX, minY, maxX, maxY } = element.points.reduce((limits, [x, y]) => {\n [x, y] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(element.x + x, element.y + y, cx, cy, element.angle);\n limits.minY = Math.min(limits.minY, y);\n limits.minX = Math.min(limits.minX, x);\n limits.maxX = Math.max(limits.maxX, x);\n limits.maxY = Math.max(limits.maxY, y);\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n return [minX, minY, maxX, maxY];\n }\n const shape = (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element);\n // first element is always the curve\n const ops = getCurvePathOps(shape[0]);\n const transformXY = (x, y) => (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(element.x + x, element.y + y, cx, cy, element.angle);\n return getMinMaxXYFromCurvePathOps(ops, transformXY);\n};\n// We could cache this stuff\nconst getElementBounds = (element) => {\n let bounds;\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n const [minX, minY, maxX, maxY] = getBoundsFromPoints(element.points.map(([x, y]) => (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x, y, cx - element.x, cy - element.y, element.angle)));\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n else if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element)) {\n bounds = getLinearElementRotatedBounds(element, cx, cy);\n }\n else if (element.type === \"diamond\") {\n const [x11, y11] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(cx, y1, cx, cy, element.angle);\n const [x12, y12] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(cx, y2, cx, cy, element.angle);\n const [x22, y22] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, cy, cx, cy, element.angle);\n const [x21, y21] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, cy, cx, cy, element.angle);\n const minX = Math.min(x11, x12, x22, x21);\n const minY = Math.min(y11, y12, y22, y21);\n const maxX = Math.max(x11, x12, x22, x21);\n const maxY = Math.max(y11, y12, y22, y21);\n bounds = [minX, minY, maxX, maxY];\n }\n else if (element.type === \"ellipse\") {\n const w = (x2 - x1) / 2;\n const h = (y2 - y1) / 2;\n const cos = Math.cos(element.angle);\n const sin = Math.sin(element.angle);\n const ww = Math.hypot(w * cos, h * sin);\n const hh = Math.hypot(h * cos, w * sin);\n bounds = [cx - ww, cy - hh, cx + ww, cy + hh];\n }\n else {\n const [x11, y11] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, y1, cx, cy, element.angle);\n const [x12, y12] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, y2, cx, cy, element.angle);\n const [x22, y22] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, y2, cx, cy, element.angle);\n const [x21, y21] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, y1, cx, cy, element.angle);\n const minX = Math.min(x11, x12, x22, x21);\n const minY = Math.min(y11, y12, y22, y21);\n const maxX = Math.max(x11, x12, x22, x21);\n const maxY = Math.max(y11, y12, y22, y21);\n bounds = [minX, minY, maxX, maxY];\n }\n return bounds;\n};\nconst getCommonBounds = (elements) => {\n if (!elements.length) {\n return [0, 0, 0, 0];\n }\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n elements.forEach((element) => {\n const [x1, y1, x2, y2] = getElementBounds(element);\n minX = Math.min(minX, x1);\n minY = Math.min(minY, y1);\n maxX = Math.max(maxX, x2);\n maxY = Math.max(maxY, y2);\n });\n return [minX, minY, maxX, maxY];\n};\nconst getResizedElementAbsoluteCoords = (element, nextWidth, nextHeight, normalizePoints) => {\n if (!((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element) || (0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element))) {\n return [\n element.x,\n element.y,\n element.x + nextWidth,\n element.y + nextHeight,\n ];\n }\n const points = (0,_points__WEBPACK_IMPORTED_MODULE_4__.rescalePoints)(0, nextWidth, (0,_points__WEBPACK_IMPORTED_MODULE_4__.rescalePoints)(1, nextHeight, element.points, normalizePoints), normalizePoints);\n let bounds;\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n // Free Draw\n bounds = getBoundsFromPoints(points);\n }\n else {\n // Line\n const gen = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generator();\n const curve = element.strokeSharpness === \"sharp\"\n ? gen.linearPath(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element))\n : gen.curve(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element));\n const ops = getCurvePathOps(curve);\n bounds = getMinMaxXYFromCurvePathOps(ops);\n }\n const [minX, minY, maxX, maxY] = bounds;\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getElementPointsCoords = (element, points, sharpness) => {\n // This might be computationally heavey\n const gen = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generator();\n const curve = sharpness === \"sharp\"\n ? gen.linearPath(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element))\n : gen.curve(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element));\n const ops = getCurvePathOps(curve);\n const [minX, minY, maxX, maxY] = getMinMaxXYFromCurvePathOps(ops);\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getClosestElementBounds = (elements, from) => {\n if (!elements.length) {\n return [0, 0, 0, 0];\n }\n let minDistance = Infinity;\n let closestElement = elements[0];\n elements.forEach((element) => {\n const [x1, y1, x2, y2] = getElementBounds(element);\n const distance = (0,_math__WEBPACK_IMPORTED_MODULE_0__.distance2d)((x1 + x2) / 2, (y1 + y2) / 2, from.x, from.y);\n if (distance < minDistance) {\n minDistance = distance;\n closestElement = element;\n }\n });\n return getElementBounds(closestElement);\n};\nconst getCommonBoundingBox = (elements) => {\n const [minX, minY, maxX, maxY] = getCommonBounds(elements);\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n midX: (minX + maxX) / 2,\n midY: (minY + maxY) / 2,\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQyxDQUFDO0lBRWxDLElBQUksSUFBSSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBYSxDQUFDO1FBQ3RELElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBRUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxJQUFJLEVBQUU7UUFDUixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFhLENBQUM7UUFDdEQsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSwyQkFBMkIsR0FBRyxDQUNsQyxHQUFTLEVBQ1QsV0FBd0QsRUFDdEIsRUFBRTtJQUNwQyxJQUFJLFFBQVEsR0FBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU3QixNQUFNLEVBQUUsSUFB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QUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3pEO1NBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNyQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ25DO1NBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDL0M7U0FBTTtRQUNMLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsNkNBQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsNkNBQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFD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QUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFFLElBQUksUUFBUSxHQUFHLFdBQVcsRUFBRTtZQUMxQixXQUFXLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLGNBQWMsR0FBRyxPQUFPLENBQUM7U0FDMUI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDO0FBYUssTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxRQUF3RSxFQUNuRSxFQUFFO0lBQ1AsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLEtBQUssRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUNsQixNQUFNLEVBQUUsSUFBSSxHQUFHLElBQUk7UUFDbkIsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9lbGVtZW50L2JvdW5kcy50cz84YmUyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4Y2FsaWRyYXdFbGVtZW50LFxuICBFeGNhbGlkcmF3TGluZWFyRWxlbWVudCxcbiAgQXJyb3doZWFkLFxuICBFeGNhbGlkcmF3RnJlZURyYXdFbGVtZW50LFxuICBOb25EZWxldGVkLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgZGlzdGFuY2UyZCwgcm90YXRlIH0gZnJvbSBcIi4uL21hdGhcIjtcbmltcG9ydCByb3VnaCBmcm9tIFwicm91Z2hqcy9iaW4vcm91Z2hcIjtcbmltcG9ydCB7IERyYXdhYmxlLCBPcCB9IGZyb20gXCJyb3VnaGpzL2Jpbi9jb3JlXCI7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0U2hhcGVGb3JFbGVtZW50LFxuICBnZW5lcmF0ZVJvdWdoT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnRcIjtcbmltcG9ydCB7IGlzRnJlZURyYXdFbGVtZW50LCBpc0xpbmVhckVsZW1lbnQgfSBmcm9tIFwiLi90eXBlQ2hlY2tzXCI7XG5pbXBvcnQgeyByZXNjYWxlUG9pbnRzIH0gZnJvbSBcIi4uL3BvaW50c1wiO1xuXG4vLyB4IGFuZCB5IHBvc2l0aW9uIG9mIHRvcCBsZWZ0IGNvcm5lciwgeCBhbmQgeSBwb3NpdGlvbiBvZiBib3R0b20gcmlnaHQgY29ybmVyXG5leHBvcnQgdHlwZSBCb3VuZHMgPSByZWFkb25seSBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbnR5cGUgTWF5YmVRdWFkcmF0aWNTb2x1dGlvbiA9IFtudW1iZXIgfCBudWxsLCBudW1iZXIgfCBudWxsXSB8IGZhbHNlO1xuXG4vLyBJZiB0aGUgZWxlbWVudCBpcyBjcmVhdGVkIGZyb20gcmlnaHQgdG8gbGVmdCwgdGhlIHdpZHRoIGlzIGdvaW5nIHRvIGJlIG5lZ2F0aXZlXG4vLyBUaGlzIHNldCBvZiBmdW5jdGlvbnMgcmV0cmlldmVzIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgNCBwb2ludHMuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3RWxlbWVudCxcbik6IEJvdW5kcyA9PiB7XG4gIGlmIChpc0ZyZWVEcmF3RWxlbWVudChlbGVtZW50KSkge1xuICAgIHJldHVybiBnZXRGcmVlRHJhd0VsZW1lbnRBYnNvbHV0ZUNvb3JkcyhlbGVtZW50KTtcbiAgfSBlbHNlIGlmIChpc0xpbmVhckVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gZ2V0TGluZWFyRWxlbWVudEFic29sdXRlQ29vcmRzKGVsZW1lbnQpO1xuICB9XG4gIHJldHVybiBbXG4gICAgZWxlbWVudC54LFxuICAgIGVsZW1lbnQueSxcbiAgICBlbGVtZW50LnggKyBlbGVtZW50LndpZHRoLFxuICAgIGVsZW1lbnQueSArIGVsZW1lbnQuaGVpZ2h0LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UmVsYXRpdmVUbyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0VsZW1lbnQsXG4gIGFic29sdXRlQ29vcmRzOiBQb2ludCxcbik6IFBvaW50ID0+IHtcbiAgcmV0dXJuIFthYnNvbHV0ZUNvb3Jkc1swXSAtIGVsZW1lbnQueCwgYWJzb2x1dGVDb29yZHNbMV0gLSBlbGVtZW50LnldO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpYW1vbmRQb2ludHMgPSAoZWxlbWVudDogRXhjYWxpZHJhd0VsZW1lbnQpID0+IHtcbiAgLy8gSGVyZSB3ZSBhZGQgKzEgdG8gYXZvaWQgdGhlc2UgbnVtYmVycyB0byBiZSAwXG4gIC8vIG90aGVyd2lzZSByb3VnaC5qcyB3aWxsIHRocm93IGFuIGVycm9yIGNvbXBsYWluaW5nIGFib3V0IGl0XG4gIGNvbnN0IHRvcFggPSBNYXRoLmZsb29yKGVsZW1lbnQud2lkdGggLyAyKSArIDE7XG4gIGNvbnN0IHRvcFkgPSAwO1xuICBjb25zdCByaWdodFggPSBlbGVtZW50LndpZHRoO1xuICBjb25zdCByaWdodFkgPSBNYXRoLmZsb29yKGVsZW1lbnQuaGVpZ2h0IC8gMikgKyAxO1xuICBjb25zdCBib3R0b21YID0gdG9wWDtcbiAgY29uc3QgYm90dG9tWSA9IGVsZW1lbnQuaGVpZ2h0O1xuICBjb25zdCBsZWZ0WCA9IDA7XG4gIGNvbnN0IGxlZnRZID0gcmlnaHRZO1xuXG4gIHJldHVybiBbdG9wWCwgdG9wWSwgcmlnaHRYLCByaWdodFksIGJvdHRvbVgsIGJvdHRvbVksIGxlZnRYLCBsZWZ0WV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q3VydmVQYXRoT3BzID0gKHNoYXBlOiBEcmF3YWJsZSk6IE9wW10gPT4ge1xuICBmb3IgKGNvbnN0IHNldCBvZiBzaGFwZS5zZXRzKSB7XG4gICAgaWYgKHNldC50eXBlID09PSBcInBhdGhcIikge1xuICAgICAgcmV0dXJuIHNldC5vcHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBzaGFwZS5zZXRzWzBdLm9wcztcbn07XG5cbi8vIHJlZmVyZW5jZTogaHR0cHM6Ly9lbGlvdC1qb25lcy5jb20vMjAxOS8xMi9jdWJpYy1iZXppZXItY3VydmUtYm91bmRpbmctYm94ZXNcbmNvbnN0IGdldEJlemllclZhbHVlRm9yVCA9IChcbiAgdDogbnVtYmVyLFxuICBwMDogbnVtYmVyLFxuICBwMTogbnVtYmVyLFxuICBwMjogbnVtYmVyLFxuICBwMzogbnVtYmVyLFxuKSA9PiB7XG4gIGNvbnN0IG9uZU1pbnVzVCA9IDEgLSB0O1xuICByZXR1cm4gKFxuICAgIE1hdGgucG93KG9uZU1pbnVzVCwgMykgKiBwMCArXG4gICAgMyAqIE1hdGgucG93KG9uZU1pbnVzVCwgMikgKiB0ICogcDEgK1xuICAgIDMgKiBvbmVNaW51c1QgKiBNYXRoLnBvdyh0LCAyKSAqIHAyICtcbiAgICBNYXRoLnBvdyh0LCAzKSAqIHAzXG4gICk7XG59O1xuXG5jb25zdCBzb2x2ZVF1YWRyYXRpYyA9IChcbiAgcDA6IG51bWJlcixcbiAgcDE6IG51bWJlcixcbiAgcDI6IG51bWJlcixcbiAgcDM6IG51bWJlcixcbik6IE1heWJlUXVhZHJhdGljU29sdXRpb24gPT4ge1xuICBjb25zdCBpID0gcDEgLSBwMDtcbiAgY29uc3QgaiA9IHAyIC0gcDE7XG4gIGNvbnN0IGsgPSBwMyAtIHAyO1xuXG4gIGNvbnN0IGEgPSAzICogaSAtIDYgKiBqICsgMyAqIGs7XG4gIGNvbnN0IGIgPSA2ICogaiAtIDYgKiBpO1xuICBjb25zdCBjID0gMyAqIGk7XG5cbiAgY29uc3Qgc3FydFBhcnQgPSBiICogYiAtIDQgKiBhICogYztcbiAgY29uc3QgaGFzU29sdXRpb24gPSBzcXJ0UGFydCA+PSAwO1xuXG4gIGlmICghaGFzU29sdXRpb24pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB0MSA9ICgtYiArIE1hdGguc3FydChzcXJ0UGFydCkpIC8gKDIgKiBhKTtcbiAgY29uc3QgdDIgPSAoLWIgLSBNYXRoLnNxcnQoc3FydFBhcnQpKSAvICgyICogYSk7XG5cbiAgbGV0IHMxID0gbnVsbDtcbiAgbGV0IHMyID0gbnVsbDtcblxuICBpZiAodDEgPj0gMCAmJiB0MSA8PSAxKSB7XG4gICAgczEgPSBnZXRCZXppZXJWYWx1ZUZvclQodDEsIHAwLCBwMSwgcDIsIHAzKTtcbiAgfVxuXG4gIGlmICh0MiA+PSAwICYmIHQyIDw9IDEpIHtcbiAgICBzMiA9IGdldEJlemllclZhbHVlRm9yVCh0MiwgcDAsIHAxLCBwMiwgcDMpO1xuICB9XG5cbiAgcmV0dXJuIFtzMSwgczJdO1xufTtcblxuY29uc3QgZ2V0Q3ViaWNCZXppZXJDdXJ2ZUJvdW5kID0gKFxuICBwMDogUG9pbnQsXG4gIHAxOiBQb2ludCxcbiAgcDI6IFBvaW50LFxuICBwMzogUG9pbnQsXG4pOiBCb3VuZHMgPT4ge1xuICBjb25zdCBzb2xYID0gc29sdmVRdWFkcmF0aWMocDBbMF0sIHAxWzBdLCBwMlswXSwgcDNbMF0pO1xuICBjb25zdCBzb2xZID0gc29sdmVRdWFkcmF0aWMocDBbMV0sIHAxWzFdLCBwMlsxXSwgcDNbMV0pO1xuXG4gIGxldCBtaW5YID0gTWF0aC5taW4ocDBbMF0sIHAzWzBdKTtcbiAgbGV0IG1heFggPSBNYXRoLm1heChwMFswXSwgcDNbMF0pO1xuXG4gIGlmIChzb2xYKSB7XG4gICAgY29uc3QgeHMgPSBzb2xYLmZpbHRlcigoeCkgPT4geCAhPT0gbnVsbCkgYXMgbnVtYmVyW107XG4gICAgbWluWCA9IE1hdGgubWluKG1pblgsIC4uLnhzKTtcbiAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgLi4ueHMpO1xuICB9XG5cbiAgbGV0IG1pblkgPSBNYXRoLm1pbihwMFsxXSwgcDNbMV0pO1xuICBsZXQgbWF4WSA9IE1hdGgubWF4KHAwWzFdLCBwM1sxXSk7XG4gIGlmIChzb2xZKSB7XG4gICAgY29uc3QgeXMgPSBzb2xZLmZpbHRlcigoeSkgPT4geSAhPT0gbnVsbCkgYXMgbnVtYmVyW107XG4gICAgbWluWSA9IE1hdGgubWluKG1pblksIC4uLnlzKTtcbiAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgLi4ueXMpO1xuICB9XG4gIHJldHVybiBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XG59O1xuXG5jb25zdCBnZXRNaW5NYXhYWUZyb21DdXJ2ZVBhdGhPcHMgPSAoXG4gIG9wczogT3BbXSxcbiAgdHJhbnNmb3JtWFk/OiAoeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IFtudW1iZXIsIG51bWJlcl0sXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGxldCBjdXJyZW50UDogUG9pbnQgPSBbMCwgMF07XG5cbiAgY29uc3QgeyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIH0gPSBvcHMucmVkdWNlKFxuICAgIChsaW1pdHMsIHsgb3AsIGRhdGEgfSkgPT4ge1xuICAgICAgLy8gVGhlcmUgYXJlIG9ubHkgZm91ciBvcGVyYXRpb24gdHlwZXM6XG4gICAgICAvLyBtb3ZlLCBiY3VydmVUbywgbGluZVRvLCBhbmQgY3VydmVUb1xuICAgICAgaWYgKG9wID09PSBcIm1vdmVcIikge1xuICAgICAgICAvLyBjaGFuZ2Ugc3RhcnRpbmcgcG9pbnRcbiAgICAgICAgY3VycmVudFAgPSBkYXRhIGFzIHVua25vd24gYXMgUG9pbnQ7XG4gICAgICAgIC8vIG1vdmUgb3BlcmF0aW9uIGRvZXMgbm90IGRyYXcgYW55dGhpbmc7IHNvLCBpdCBhbHdheXNcbiAgICAgICAgLy8gcmV0dXJucyBmYWxzZVxuICAgICAgfSBlbHNlIGlmIChvcCA9PT0gXCJiY3VydmVUb1wiKSB7XG4gICAgICAgIGNvbnN0IF9wMSA9IFtkYXRhWzBdLCBkYXRhWzFdXSBhcyBQb2ludDtcbiAgICAgICAgY29uc3QgX3AyID0gW2RhdGFbMl0sIGRhdGFbM11dIGFzIFBvaW50O1xuICAgICAgICBjb25zdCBfcDMgPSBbZGF0YVs0XSwgZGF0YVs1XV0gYXMgUG9pbnQ7XG5cbiAgICAgICAgY29uc3QgcDEgPSB0cmFuc2Zvcm1YWSA/IHRyYW5zZm9ybVhZKC4uLl9wMSkgOiBfcDE7XG4gICAgICAgIGNvbnN0IHAyID0gdHJhbnNmb3JtWFkgPyB0cmFuc2Zvcm1YWSguLi5fcDIpIDogX3AyO1xuICAgICAgICBjb25zdCBwMyA9IHRyYW5zZm9ybVhZID8gdHJhbnNmb3JtWFkoLi4uX3AzKSA6IF9wMztcblxuICAgICAgICBjb25zdCBwMCA9IHRyYW5zZm9ybVhZID8gdHJhbnNmb3JtWFkoLi4uY3VycmVudFApIDogY3VycmVudFA7XG4gICAgICAgIGN1cnJlbnRQID0gX3AzO1xuXG4gICAgICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldEN1YmljQmV6aWVyQ3VydmVCb3VuZChcbiAgICAgICAgICBwMCxcbiAgICAgICAgICBwMSxcbiAgICAgICAgICBwMixcbiAgICAgICAgICBwMyxcbiAgICAgICAgKTtcblxuICAgICAgICBsaW1pdHMubWluWCA9IE1hdGgubWluKGxpbWl0cy5taW5YLCBtaW5YKTtcbiAgICAgICAgbGltaXRzLm1pblkgPSBNYXRoLm1pbihsaW1pdHMubWluWSwgbWluWSk7XG5cbiAgICAgICAgbGltaXRzLm1heFggPSBNYXRoLm1heChsaW1pdHMubWF4WCwgbWF4WCk7XG4gICAgICAgIGxpbWl0cy5tYXhZID0gTWF0aC5tYXgobGltaXRzLm1heFksIG1heFkpO1xuICAgICAgfSBlbHNlIGlmIChvcCA9PT0gXCJsaW5lVG9cIikge1xuICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgdGhpc1xuICAgICAgfSBlbHNlIGlmIChvcCA9PT0gXCJxY3VydmVUb1wiKSB7XG4gICAgICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGlzXG4gICAgICB9XG4gICAgICByZXR1cm4gbGltaXRzO1xuICAgIH0sXG4gICAgeyBtaW5YOiBJbmZpbml0eSwgbWluWTogSW5maW5pdHksIG1heFg6IC1JbmZpbml0eSwgbWF4WTogLUluZmluaXR5IH0sXG4gICk7XG4gIHJldHVybiBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XG59O1xuXG5jb25zdCBnZXRCb3VuZHNGcm9tUG9pbnRzID0gKFxuICBwb2ludHM6IEV4Y2FsaWRyYXdGcmVlRHJhd0VsZW1lbnRbXCJwb2ludHNcIl0sXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGxldCBtaW5YID0gSW5maW5pdHk7XG4gIGxldCBtaW5ZID0gSW5maW5pdHk7XG4gIGxldCBtYXhYID0gLUluZmluaXR5O1xuICBsZXQgbWF4WSA9IC1JbmZpbml0eTtcblxuICBmb3IgKGNvbnN0IFt4LCB5XSBvZiBwb2ludHMpIHtcbiAgICBtaW5YID0gTWF0aC5taW4obWluWCwgeCk7XG4gICAgbWluWSA9IE1hdGgubWluKG1pblksIHkpO1xuICAgIG1heFggPSBNYXRoLm1heChtYXhYLCB4KTtcbiAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgeSk7XG4gIH1cblxuICByZXR1cm4gW21pblgsIG1pblksIG1heFgsIG1heFldO1xufTtcblxuY29uc3QgZ2V0RnJlZURyYXdFbGVtZW50QWJzb2x1dGVDb29yZHMgPSAoXG4gIGVsZW1lbnQ6IEV4Y2FsaWRyYXdGcmVlRHJhd0VsZW1lbnQsXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldEJvdW5kc0Zyb21Qb2ludHMoZWxlbWVudC5wb2ludHMpO1xuXG4gIHJldHVybiBbXG4gICAgbWluWCArIGVsZW1lbnQueCxcbiAgICBtaW5ZICsgZWxlbWVudC55LFxuICAgIG1heFggKyBlbGVtZW50LngsXG4gICAgbWF4WSArIGVsZW1lbnQueSxcbiAgXTtcbn07XG5cbmNvbnN0IGdldExpbmVhckVsZW1lbnRBYnNvbHV0ZUNvb3JkcyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGxldCBjb29yZHM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG4gIGlmIChlbGVtZW50LnBvaW50cy5sZW5ndGggPCAyIHx8ICFnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAvLyBYWFggdGhpcyBpcyBqdXN0IGEgcG9vciBlc3RpbWF0ZSBhbmQgbm90IHZlcnkgdXNlZnVsXG4gICAgY29uc3QgeyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIH0gPSBlbGVtZW50LnBvaW50cy5yZWR1Y2UoXG4gICAgICAobGltaXRzLCBbeCwgeV0pID0+IHtcbiAgICAgICAgbGltaXRzLm1pblkgPSBNYXRoLm1pbihsaW1pdHMubWluWSwgeSk7XG4gICAgICAgIGxpbWl0cy5taW5YID0gTWF0aC5taW4obGltaXRzLm1pblgsIHgpO1xuXG4gICAgICAgIGxpbWl0cy5tYXhYID0gTWF0aC5tYXgobGltaXRzLm1heFgsIHgpO1xuICAgICAgICBsaW1pdHMubWF4WSA9IE1hdGgubWF4KGxpbWl0cy5tYXhZLCB5KTtcblxuICAgICAgICByZXR1cm4gbGltaXRzO1xuICAgICAgfSxcbiAgICAgIHsgbWluWDogSW5maW5pdHksIG1pblk6IEluZmluaXR5LCBtYXhYOiAtSW5maW5pdHksIG1heFk6IC1JbmZpbml0eSB9LFxuICAgICk7XG4gICAgY29vcmRzID0gW1xuICAgICAgbWluWCArIGVsZW1lbnQueCxcbiAgICAgIG1pblkgKyBlbGVtZW50LnksXG4gICAgICBtYXhYICsgZWxlbWVudC54LFxuICAgICAgbWF4WSArIGVsZW1lbnQueSxcbiAgICBdO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNoYXBlID0gZ2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQpITtcblxuICAgIC8vIGZpcnN0IGVsZW1lbnQgaXMgYWx3YXlzIHRoZSBjdXJ2ZVxuICAgIGNvbnN0IG9wcyA9IGdldEN1cnZlUGF0aE9wcyhzaGFwZVswXSk7XG5cbiAgICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBnZXRNaW5NYXhYWUZyb21DdXJ2ZVBhdGhPcHMob3BzKTtcblxuICAgIGNvb3JkcyA9IFtcbiAgICAgIG1pblggKyBlbGVtZW50LngsXG4gICAgICBtaW5ZICsgZWxlbWVudC55LFxuICAgICAgbWF4WCArIGVsZW1lbnQueCxcbiAgICAgIG1heFkgKyBlbGVtZW50LnksXG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiBjb29yZHM7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXJyb3doZWFkUG9pbnRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3TGluZWFyRWxlbWVudCxcbiAgc2hhcGU6IERyYXdhYmxlW10sXG4gIHBvc2l0aW9uOiBcInN0YXJ0XCIgfCBcImVuZFwiLFxuICBhcnJvd2hlYWQ6IEFycm93aGVhZCxcbikgPT4ge1xuICBjb25zdCBvcHMgPSBnZXRDdXJ2ZVBhdGhPcHMoc2hhcGVbMF0pO1xuICBpZiAob3BzLmxlbmd0aCA8IDEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFRoZSBpbmRleCBvZiB0aGUgYkN1cnZlIG9wZXJhdGlvbiB0byBleGFtaW5lLlxuICBjb25zdCBpbmRleCA9IHBvc2l0aW9uID09PSBcInN0YXJ0XCIgPyAxIDogb3BzLmxlbmd0aCAtIDE7XG5cbiAgY29uc3QgZGF0YSA9IG9wc1tpbmRleF0uZGF0YTtcbiAgY29uc3QgcDMgPSBbZGF0YVs0XSwgZGF0YVs1XV0gYXMgUG9pbnQ7XG4gIGNvbnN0IHAyID0gW2RhdGFbMl0sIGRhdGFbM11dIGFzIFBvaW50O1xuICBjb25zdCBwMSA9IFtkYXRhWzBdLCBkYXRhWzFdXSBhcyBQb2ludDtcblxuICAvLyBXZSBuZWVkIHRvIGZpbmQgcDAgb2YgdGhlIGJlemllciBjdXJ2ZS5cbiAgLy8gSXQgaXMgdHlwaWNhbGx5IHRoZSBsYXN0IHBvaW50IG9mIHRoZSBwcmV2aW91c1xuICAvLyBjdXJ2ZTsgaXQgY2FuIGFsc28gYmUgdGhlIHBvc2l0aW9uIG9mIG1vdmVUbyBvcGVyYXRpb24uXG4gIGNvbnN0IHByZXZPcCA9IG9wc1tpbmRleCAtIDFdO1xuICBsZXQgcDA6IFBvaW50ID0gWzAsIDBdO1xuICBpZiAocHJldk9wLm9wID09PSBcIm1vdmVcIikge1xuICAgIHAwID0gcHJldk9wLmRhdGEgYXMgdW5rbm93biBhcyBQb2ludDtcbiAgfSBlbHNlIGlmIChwcmV2T3Aub3AgPT09IFwiYmN1cnZlVG9cIikge1xuICAgIHAwID0gW3ByZXZPcC5kYXRhWzRdLCBwcmV2T3AuZGF0YVs1XV07XG4gIH1cblxuICAvLyBCKHQpID0gcDAgKiAoMS10KV4zICsgM3AxICogdCAqICgxLXQpXjIgKyAzcDIgKiB0XjIgKiAoMS10KSArIHAzICogdF4zXG4gIGNvbnN0IGVxdWF0aW9uID0gKHQ6IG51bWJlciwgaWR4OiBudW1iZXIpID0+XG4gICAgTWF0aC5wb3coMSAtIHQsIDMpICogcDNbaWR4XSArXG4gICAgMyAqIHQgKiBNYXRoLnBvdygxIC0gdCwgMikgKiBwMltpZHhdICtcbiAgICAzICogTWF0aC5wb3codCwgMikgKiAoMSAtIHQpICogcDFbaWR4XSArXG4gICAgcDBbaWR4XSAqIE1hdGgucG93KHQsIDMpO1xuXG4gIC8vIEVlIGtub3cgdGhlIGxhc3QgcG9pbnQgb2YgdGhlIGFycm93IChvciB0aGUgZmlyc3QsIGlmIHN0YXJ0IGFycm93aGVhZCkuXG4gIGNvbnN0IFt4MiwgeTJdID0gcG9zaXRpb24gPT09IFwic3RhcnRcIiA/IHAwIDogcDM7XG5cbiAgLy8gQnkgdXNpbmcgY3ViaWMgYmV6aWVyIGVxdWF0aW9uIChCKHQpKSBhbmQgdGhlIGdpdmVuIHBhcmFtZXRlcnMsXG4gIC8vIHdlIGNhbGN1bGF0ZSBhIHBvaW50IHRoYXQgaXMgY2xvc2VyIHRvIHRoZSBsYXN0IHBvaW50LlxuICAvLyBUaGUgdmFsdWUgMC4zIGlzIGNob3NlbiBhcmJpdHJhcmlseSBhbmQgaXQgd29ya3MgYmVzdCBmb3IgYWxsXG4gIC8vIHRoZSB0ZXN0ZWQgY2FzZXMuXG4gIGNvbnN0IFt4MSwgeTFdID0gW2VxdWF0aW9uKDAuMywgMCksIGVxdWF0aW9uKDAuMywgMSldO1xuXG4gIC8vIEZpbmQgdGhlIG5vcm1hbGl6ZWQgZGlyZWN0aW9uIHZlY3RvciBiYXNlZCBvbiB0aGVcbiAgLy8gcHJldmlvdXNseSBjYWxjdWxhdGVkIHBvaW50cy5cbiAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmh5cG90KHgyIC0geDEsIHkyIC0geTEpO1xuICBjb25zdCBueCA9ICh4MiAtIHgxKSAvIGRpc3RhbmNlO1xuICBjb25zdCBueSA9ICh5MiAtIHkxKSAvIGRpc3RhbmNlO1xuXG4gIGNvbnN0IHNpemUgPSB7XG4gICAgYXJyb3c6IDMwLFxuICAgIGJhcjogMTUsXG4gICAgZG90OiAxNSxcbiAgICB0cmlhbmdsZTogMTUsXG4gIH1bYXJyb3doZWFkXTsgLy8gcGl4ZWxzICh3aWxsIGRpZmZlciBmb3IgZWFjaCBhcnJvd2hlYWQpXG5cbiAgbGV0IGxlbmd0aCA9IDA7XG5cbiAgaWYgKGFycm93aGVhZCA9PT0gXCJhcnJvd1wiKSB7XG4gICAgLy8gTGVuZ3RoIGZvciAtPiBhcnJvd3MgaXMgYmFzZWQgb24gdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCBzZWN0aW9uXG4gICAgY29uc3QgW2N4LCBjeV0gPSBlbGVtZW50LnBvaW50c1tlbGVtZW50LnBvaW50cy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBbcHgsIHB5XSA9XG4gICAgICBlbGVtZW50LnBvaW50cy5sZW5ndGggPiAxXG4gICAgICAgID8gZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMl1cbiAgICAgICAgOiBbMCwgMF07XG5cbiAgICBsZW5ndGggPSBNYXRoLmh5cG90KGN4IC0gcHgsIGN5IC0gcHkpO1xuICB9IGVsc2Uge1xuICAgIC8vIExlbmd0aCBmb3Igb3RoZXIgYXJyb3doZWFkIHR5cGVzIGlzIGJhc2VkIG9uIHRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIGxpbmVcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQucG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBbcHgsIHB5XSA9IGVsZW1lbnQucG9pbnRzW2kgLSAxXSB8fCBbMCwgMF07XG4gICAgICBjb25zdCBbY3gsIGN5XSA9IGVsZW1lbnQucG9pbnRzW2ldO1xuICAgICAgbGVuZ3RoICs9IE1hdGguaHlwb3QoY3ggLSBweCwgY3kgLSBweSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2NhbGUgZG93biB0aGUgYXJyb3doZWFkIHVudGlsIHdlIGhpdCBhIGNlcnRhaW4gc2l6ZSBzbyB0aGF0IGl0IGRvZXNuJ3QgbG9vayB3ZWlyZC5cbiAgLy8gVGhpcyB2YWx1ZSBpcyBzZWxlY3RlZCBieSBtaW5pbWl6aW5nIGEgbWluaW11bSBzaXplIHdpdGggdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgYXJyb3doZWFkXG4gIGNvbnN0IG1pblNpemUgPSBNYXRoLm1pbihzaXplLCBsZW5ndGggLyAyKTtcbiAgY29uc3QgeHMgPSB4MiAtIG54ICogbWluU2l6ZTtcbiAgY29uc3QgeXMgPSB5MiAtIG55ICogbWluU2l6ZTtcblxuICBpZiAoYXJyb3doZWFkID09PSBcImRvdFwiKSB7XG4gICAgY29uc3QgciA9IE1hdGguaHlwb3QoeXMgLSB5MiwgeHMgLSB4MikgKyBlbGVtZW50LnN0cm9rZVdpZHRoO1xuICAgIHJldHVybiBbeDIsIHkyLCByXTtcbiAgfVxuXG4gIGNvbnN0IGFuZ2xlID0ge1xuICAgIGFycm93OiAyMCxcbiAgICBiYXI6IDkwLFxuICAgIHRyaWFuZ2xlOiAyNSxcbiAgfVthcnJvd2hlYWRdOyAvLyBkZWdyZWVzXG5cbiAgLy8gUmV0dXJuIHBvaW50c1xuICBjb25zdCBbeDMsIHkzXSA9IHJvdGF0ZSh4cywgeXMsIHgyLCB5MiwgKC1hbmdsZSAqIE1hdGguUEkpIC8gMTgwKTtcbiAgY29uc3QgW3g0LCB5NF0gPSByb3RhdGUoeHMsIHlzLCB4MiwgeTIsIChhbmdsZSAqIE1hdGguUEkpIC8gMTgwKTtcbiAgcmV0dXJuIFt4MiwgeTIsIHgzLCB5MywgeDQsIHk0XTtcbn07XG5cbmNvbnN0IGdldExpbmVhckVsZW1lbnRSb3RhdGVkQm91bmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3TGluZWFyRWxlbWVudCxcbiAgY3g6IG51bWJlcixcbiAgY3k6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgaWYgKGVsZW1lbnQucG9pbnRzLmxlbmd0aCA8IDIgfHwgIWdldFNoYXBlRm9yRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIFhYWCB0aGlzIGlzIGp1c3QgYSBwb29yIGVzdGltYXRlIGFuZCBub3QgdmVyeSB1c2VmdWxcbiAgICBjb25zdCB7IG1pblgsIG1pblksIG1heFgsIG1heFkgfSA9IGVsZW1lbnQucG9pbnRzLnJlZHVjZShcbiAgICAgIChsaW1pdHMsIFt4LCB5XSkgPT4ge1xuICAgICAgICBbeCwgeV0gPSByb3RhdGUoZWxlbWVudC54ICsgeCwgZWxlbWVudC55ICsgeSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgbGltaXRzLm1pblkgPSBNYXRoLm1pbihsaW1pdHMubWluWSwgeSk7XG4gICAgICAgIGxpbWl0cy5taW5YID0gTWF0aC5taW4obGltaXRzLm1pblgsIHgpO1xuICAgICAgICBsaW1pdHMubWF4WCA9IE1hdGgubWF4KGxpbWl0cy5tYXhYLCB4KTtcbiAgICAgICAgbGltaXRzLm1heFkgPSBNYXRoLm1heChsaW1pdHMubWF4WSwgeSk7XG4gICAgICAgIHJldHVybiBsaW1pdHM7XG4gICAgICB9LFxuICAgICAgeyBtaW5YOiBJbmZpbml0eSwgbWluWTogSW5maW5pdHksIG1heFg6IC1JbmZpbml0eSwgbWF4WTogLUluZmluaXR5IH0sXG4gICAgKTtcbiAgICByZXR1cm4gW21pblgsIG1pblksIG1heFgsIG1heFldO1xuICB9XG5cbiAgY29uc3Qgc2hhcGUgPSBnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCkhO1xuXG4gIC8vIGZpcnN0IGVsZW1lbnQgaXMgYWx3YXlzIHRoZSBjdXJ2ZVxuICBjb25zdCBvcHMgPSBnZXRDdXJ2ZVBhdGhPcHMoc2hhcGVbMF0pO1xuXG4gIGNvbnN0IHRyYW5zZm9ybVhZID0gKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PlxuICAgIHJvdGF0ZShlbGVtZW50LnggKyB4LCBlbGVtZW50LnkgKyB5LCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xuICByZXR1cm4gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcywgdHJhbnNmb3JtWFkpO1xufTtcblxuLy8gV2UgY291bGQgY2FjaGUgdGhpcyBzdHVmZlxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRCb3VuZHMgPSAoXG4gIGVsZW1lbnQ6IEV4Y2FsaWRyYXdFbGVtZW50LFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBsZXQgYm91bmRzOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gZ2V0RWxlbWVudEFic29sdXRlQ29vcmRzKGVsZW1lbnQpO1xuICBjb25zdCBjeCA9ICh4MSArIHgyKSAvIDI7XG4gIGNvbnN0IGN5ID0gKHkxICsgeTIpIC8gMjtcbiAgaWYgKGlzRnJlZURyYXdFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Qm91bmRzRnJvbVBvaW50cyhcbiAgICAgIGVsZW1lbnQucG9pbnRzLm1hcCgoW3gsIHldKSA9PlxuICAgICAgICByb3RhdGUoeCwgeSwgY3ggLSBlbGVtZW50LngsIGN5IC0gZWxlbWVudC55LCBlbGVtZW50LmFuZ2xlKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICBtaW5YICsgZWxlbWVudC54LFxuICAgICAgbWluWSArIGVsZW1lbnQueSxcbiAgICAgIG1heFggKyBlbGVtZW50LngsXG4gICAgICBtYXhZICsgZWxlbWVudC55LFxuICAgIF07XG4gIH0gZWxzZSBpZiAoaXNMaW5lYXJFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgYm91bmRzID0gZ2V0TGluZWFyRWxlbWVudFJvdGF0ZWRCb3VuZHMoZWxlbWVudCwgY3gsIGN5KTtcbiAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09IFwiZGlhbW9uZFwiKSB7XG4gICAgY29uc3QgW3gxMSwgeTExXSA9IHJvdGF0ZShjeCwgeTEsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gxMiwgeTEyXSA9IHJvdGF0ZShjeCwgeTIsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gyMiwgeTIyXSA9IHJvdGF0ZSh4MSwgY3ksIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gyMSwgeTIxXSA9IHJvdGF0ZSh4MiwgY3ksIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgbWluWCA9IE1hdGgubWluKHgxMSwgeDEyLCB4MjIsIHgyMSk7XG4gICAgY29uc3QgbWluWSA9IE1hdGgubWluKHkxMSwgeTEyLCB5MjIsIHkyMSk7XG4gICAgY29uc3QgbWF4WCA9IE1hdGgubWF4KHgxMSwgeDEyLCB4MjIsIHgyMSk7XG4gICAgY29uc3QgbWF4WSA9IE1hdGgubWF4KHkxMSwgeTEyLCB5MjIsIHkyMSk7XG4gICAgYm91bmRzID0gW21pblgsIG1pblksIG1heFgsIG1heFldO1xuICB9IGVsc2UgaWYgKGVsZW1lbnQudHlwZSA9PT0gXCJlbGxpcHNlXCIpIHtcbiAgICBjb25zdCB3ID0gKHgyIC0geDEpIC8gMjtcbiAgICBjb25zdCBoID0gKHkyIC0geTEpIC8gMjtcbiAgICBjb25zdCBjb3MgPSBNYXRoLmNvcyhlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCBzaW4gPSBNYXRoLnNpbihlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCB3dyA9IE1hdGguaHlwb3QodyAqIGNvcywgaCAqIHNpbik7XG4gICAgY29uc3QgaGggPSBNYXRoLmh5cG90KGggKiBjb3MsIHcgKiBzaW4pO1xuICAgIGJvdW5kcyA9IFtjeCAtIHd3LCBjeSAtIGhoLCBjeCArIHd3LCBjeSArIGhoXTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBbeDExLCB5MTFdID0gcm90YXRlKHgxLCB5MSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCBbeDEyLCB5MTJdID0gcm90YXRlKHgxLCB5MiwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCBbeDIyLCB5MjJdID0gcm90YXRlKHgyLCB5MiwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCBbeDIxLCB5MjFdID0gcm90YXRlKHgyLCB5MSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgICBjb25zdCBtaW5YID0gTWF0aC5taW4oeDExLCB4MTIsIHgyMiwgeDIxKTtcbiAgICBjb25zdCBtaW5ZID0gTWF0aC5taW4oeTExLCB5MTIsIHkyMiwgeTIxKTtcbiAgICBjb25zdCBtYXhYID0gTWF0aC5tYXgoeDExLCB4MTIsIHgyMiwgeDIxKTtcbiAgICBjb25zdCBtYXhZID0gTWF0aC5tYXgoeTExLCB5MTIsIHkyMiwgeTIxKTtcbiAgICBib3VuZHMgPSBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XG4gIH1cblxuICByZXR1cm4gYm91bmRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbW1vbkJvdW5kcyA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W10sXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFswLCAwLCAwLCAwXTtcbiAgfVxuXG4gIGxldCBtaW5YID0gSW5maW5pdHk7XG4gIGxldCBtYXhYID0gLUluZmluaXR5O1xuICBsZXQgbWluWSA9IEluZmluaXR5O1xuICBsZXQgbWF4WSA9IC1JbmZpbml0eTtcblxuICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGdldEVsZW1lbnRCb3VuZHMoZWxlbWVudCk7XG4gICAgbWluWCA9IE1hdGgubWluKG1pblgsIHgxKTtcbiAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgeTEpO1xuICAgIG1heFggPSBNYXRoLm1heChtYXhYLCB4Mik7XG4gICAgbWF4WSA9IE1hdGgubWF4KG1heFksIHkyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVkRWxlbWVudEFic29sdXRlQ29vcmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3RWxlbWVudCxcbiAgbmV4dFdpZHRoOiBudW1iZXIsXG4gIG5leHRIZWlnaHQ6IG51bWJlcixcbiAgbm9ybWFsaXplUG9pbnRzOiBib29sZWFuLFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBpZiAoIShpc0xpbmVhckVsZW1lbnQoZWxlbWVudCkgfHwgaXNGcmVlRHJhd0VsZW1lbnQoZWxlbWVudCkpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVsZW1lbnQueCxcbiAgICAgIGVsZW1lbnQueSxcbiAgICAgIGVsZW1lbnQueCArIG5leHRXaWR0aCxcbiAgICAgIGVsZW1lbnQueSArIG5leHRIZWlnaHQsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0IHBvaW50cyA9IHJlc2NhbGVQb2ludHMoXG4gICAgMCxcbiAgICBuZXh0V2lkdGgsXG4gICAgcmVzY2FsZVBvaW50cygxLCBuZXh0SGVpZ2h0LCBlbGVtZW50LnBvaW50cywgbm9ybWFsaXplUG9pbnRzKSxcbiAgICBub3JtYWxpemVQb2ludHMsXG4gICk7XG5cbiAgbGV0IGJvdW5kczogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbiAgaWYgKGlzRnJlZURyYXdFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgLy8gRnJlZSBEcmF3XG4gICAgYm91bmRzID0gZ2V0Qm91bmRzRnJvbVBvaW50cyhwb2ludHMpO1xuICB9IGVsc2Uge1xuICAgIC8vIExpbmVcbiAgICBjb25zdCBnZW4gPSByb3VnaC5nZW5lcmF0b3IoKTtcbiAgICBjb25zdCBjdXJ2ZSA9XG4gICAgICBlbGVtZW50LnN0cm9rZVNoYXJwbmVzcyA9PT0gXCJzaGFycFwiXG4gICAgICAgID8gZ2VuLmxpbmVhclBhdGgoXG4gICAgICAgICAgICBwb2ludHMgYXMgW251bWJlciwgbnVtYmVyXVtdLFxuICAgICAgICAgICAgZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCksXG4gICAgICAgICAgKVxuICAgICAgICA6IGdlbi5jdXJ2ZShcbiAgICAgICAgICAgIHBvaW50cyBhcyBbbnVtYmVyLCBudW1iZXJdW10sXG4gICAgICAgICAgICBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50KSxcbiAgICAgICAgICApO1xuICAgIGNvbnN0IG9wcyA9IGdldEN1cnZlUGF0aE9wcyhjdXJ2ZSk7XG4gICAgYm91bmRzID0gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcyk7XG4gIH1cblxuICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBib3VuZHM7XG4gIHJldHVybiBbXG4gICAgbWluWCArIGVsZW1lbnQueCxcbiAgICBtaW5ZICsgZWxlbWVudC55LFxuICAgIG1heFggKyBlbGVtZW50LngsXG4gICAgbWF4WSArIGVsZW1lbnQueSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50UG9pbnRzQ29vcmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3TGluZWFyRWxlbWVudCxcbiAgcG9pbnRzOiByZWFkb25seSAocmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSlbXSxcbiAgc2hhcnBuZXNzOiBFeGNhbGlkcmF3RWxlbWVudFtcInN0cm9rZVNoYXJwbmVzc1wiXSxcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgLy8gVGhpcyBtaWdodCBiZSBjb21wdXRhdGlvbmFsbHkgaGVhdmV5XG4gIGNvbnN0IGdlbiA9IHJvdWdoLmdlbmVyYXRvcigpO1xuICBjb25zdCBjdXJ2ZSA9XG4gICAgc2hhcnBuZXNzID09PSBcInNoYXJwXCJcbiAgICAgID8gZ2VuLmxpbmVhclBhdGgoXG4gICAgICAgICAgcG9pbnRzIGFzIFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICAgICAgICBnZW5lcmF0ZVJvdWdoT3B0aW9ucyhlbGVtZW50KSxcbiAgICAgICAgKVxuICAgICAgOiBnZW4uY3VydmUocG9pbnRzIGFzIFtudW1iZXIsIG51bWJlcl1bXSwgZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCkpO1xuICBjb25zdCBvcHMgPSBnZXRDdXJ2ZVBhdGhPcHMoY3VydmUpO1xuICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBnZXRNaW5NYXhYWUZyb21DdXJ2ZVBhdGhPcHMob3BzKTtcbiAgcmV0dXJuIFtcbiAgICBtaW5YICsgZWxlbWVudC54LFxuICAgIG1pblkgKyBlbGVtZW50LnksXG4gICAgbWF4WCArIGVsZW1lbnQueCxcbiAgICBtYXhZICsgZWxlbWVudC55LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENsb3Nlc3RFbGVtZW50Qm91bmRzID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgRXhjYWxpZHJhd0VsZW1lbnRbXSxcbiAgZnJvbTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBbMCwgMCwgMCwgMF07XG4gIH1cblxuICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgbGV0IGNsb3Nlc3RFbGVtZW50ID0gZWxlbWVudHNbMF07XG5cbiAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSBnZXRFbGVtZW50Qm91bmRzKGVsZW1lbnQpO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2UyZCgoeDEgKyB4MikgLyAyLCAoeTEgKyB5MikgLyAyLCBmcm9tLngsIGZyb20ueSk7XG5cbiAgICBpZiAoZGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xuICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgIGNsb3Nlc3RFbGVtZW50ID0gZWxlbWVudDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBnZXRFbGVtZW50Qm91bmRzKGNsb3Nlc3RFbGVtZW50KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm94IHtcbiAgbWluWDogbnVtYmVyO1xuICBtaW5ZOiBudW1iZXI7XG4gIG1heFg6IG51bWJlcjtcbiAgbWF4WTogbnVtYmVyO1xuICBtaWRYOiBudW1iZXI7XG4gIG1pZFk6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRDb21tb25Cb3VuZGluZ0JveCA9IChcbiAgZWxlbWVudHM6IEV4Y2FsaWRyYXdFbGVtZW50W10gfCByZWFkb25seSBOb25EZWxldGVkPEV4Y2FsaWRyYXdFbGVtZW50PltdLFxuKTogQm94ID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgcmV0dXJuIHtcbiAgICBtaW5YLFxuICAgIG1pblksXG4gICAgbWF4WCxcbiAgICBtYXhZLFxuICAgIHdpZHRoOiBtYXhYIC0gbWluWCxcbiAgICBoZWlnaHQ6IG1heFkgLSBtaW5ZLFxuICAgIG1pZFg6IChtaW5YICsgbWF4WCkgLyAyLFxuICAgIG1pZFk6IChtaW5ZICsgbWF4WSkgLyAyLFxuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../element/bounds.ts\n");
2589
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getArrowheadPoints\": () => (/* binding */ getArrowheadPoints),\n/* harmony export */ \"getClosestElementBounds\": () => (/* binding */ getClosestElementBounds),\n/* harmony export */ \"getCommonBoundingBox\": () => (/* binding */ getCommonBoundingBox),\n/* harmony export */ \"getCommonBounds\": () => (/* binding */ getCommonBounds),\n/* harmony export */ \"getCurvePathOps\": () => (/* binding */ getCurvePathOps),\n/* harmony export */ \"getDiamondPoints\": () => (/* binding */ getDiamondPoints),\n/* harmony export */ \"getElementAbsoluteCoords\": () => (/* binding */ getElementAbsoluteCoords),\n/* harmony export */ \"getElementBounds\": () => (/* binding */ getElementBounds),\n/* harmony export */ \"getElementPointsCoords\": () => (/* binding */ getElementPointsCoords),\n/* harmony export */ \"getResizedElementAbsoluteCoords\": () => (/* binding */ getResizedElementAbsoluteCoords),\n/* harmony export */ \"pointRelativeTo\": () => (/* binding */ pointRelativeTo)\n/* harmony export */ });\n/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math */ \"../../math.ts\");\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderElement */ \"../../renderer/renderElement.ts\");\n/* harmony import */ var _typeChecks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./typeChecks */ \"../../element/typeChecks.ts\");\n/* harmony import */ var _points__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../points */ \"../../points.ts\");\n\n\n\n\n\n// If the element is created from right to left, the width is going to be negative\n// This set of functions retrieves the absolute position of the 4 points.\nconst getElementAbsoluteCoords = (element) => {\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n return getFreeDrawElementAbsoluteCoords(element);\n }\n else if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element)) {\n return getLinearElementAbsoluteCoords(element);\n }\n return [\n element.x,\n element.y,\n element.x + element.width,\n element.y + element.height,\n ];\n};\nconst pointRelativeTo = (element, absoluteCoords) => {\n return [absoluteCoords[0] - element.x, absoluteCoords[1] - element.y];\n};\nconst getDiamondPoints = (element) => {\n // Here we add +1 to avoid these numbers to be 0\n // otherwise rough.js will throw an error complaining about it\n const topX = Math.floor(element.width / 2) + 1;\n const topY = 0;\n const rightX = element.width;\n const rightY = Math.floor(element.height / 2) + 1;\n const bottomX = topX;\n const bottomY = element.height;\n const leftX = 0;\n const leftY = rightY;\n return [topX, topY, rightX, rightY, bottomX, bottomY, leftX, leftY];\n};\nconst getCurvePathOps = (shape) => {\n for (const set of shape.sets) {\n if (set.type === \"path\") {\n return set.ops;\n }\n }\n return shape.sets[0].ops;\n};\n// reference: https://eliot-jones.com/2019/12/cubic-bezier-curve-bounding-boxes\nconst getBezierValueForT = (t, p0, p1, p2, p3) => {\n const oneMinusT = 1 - t;\n return (Math.pow(oneMinusT, 3) * p0 +\n 3 * Math.pow(oneMinusT, 2) * t * p1 +\n 3 * oneMinusT * Math.pow(t, 2) * p2 +\n Math.pow(t, 3) * p3);\n};\nconst solveQuadratic = (p0, p1, p2, p3) => {\n const i = p1 - p0;\n const j = p2 - p1;\n const k = p3 - p2;\n const a = 3 * i - 6 * j + 3 * k;\n const b = 6 * j - 6 * i;\n const c = 3 * i;\n const sqrtPart = b * b - 4 * a * c;\n const hasSolution = sqrtPart >= 0;\n if (!hasSolution) {\n return false;\n }\n let s1 = null;\n let s2 = null;\n let t1 = Infinity;\n let t2 = Infinity;\n if (a === 0) {\n t1 = t2 = -c / b;\n }\n else {\n t1 = (-b + Math.sqrt(sqrtPart)) / (2 * a);\n t2 = (-b - Math.sqrt(sqrtPart)) / (2 * a);\n }\n if (t1 >= 0 && t1 <= 1) {\n s1 = getBezierValueForT(t1, p0, p1, p2, p3);\n }\n if (t2 >= 0 && t2 <= 1) {\n s2 = getBezierValueForT(t2, p0, p1, p2, p3);\n }\n return [s1, s2];\n};\nconst getCubicBezierCurveBound = (p0, p1, p2, p3) => {\n const solX = solveQuadratic(p0[0], p1[0], p2[0], p3[0]);\n const solY = solveQuadratic(p0[1], p1[1], p2[1], p3[1]);\n let minX = Math.min(p0[0], p3[0]);\n let maxX = Math.max(p0[0], p3[0]);\n if (solX) {\n const xs = solX.filter((x) => x !== null);\n minX = Math.min(minX, ...xs);\n maxX = Math.max(maxX, ...xs);\n }\n let minY = Math.min(p0[1], p3[1]);\n let maxY = Math.max(p0[1], p3[1]);\n if (solY) {\n const ys = solY.filter((y) => y !== null);\n minY = Math.min(minY, ...ys);\n maxY = Math.max(maxY, ...ys);\n }\n return [minX, minY, maxX, maxY];\n};\nconst getMinMaxXYFromCurvePathOps = (ops, transformXY) => {\n let currentP = [0, 0];\n const { minX, minY, maxX, maxY } = ops.reduce((limits, { op, data }) => {\n // There are only four operation types:\n // move, bcurveTo, lineTo, and curveTo\n if (op === \"move\") {\n // change starting point\n currentP = data;\n // move operation does not draw anything; so, it always\n // returns false\n }\n else if (op === \"bcurveTo\") {\n const _p1 = [data[0], data[1]];\n const _p2 = [data[2], data[3]];\n const _p3 = [data[4], data[5]];\n const p1 = transformXY ? transformXY(..._p1) : _p1;\n const p2 = transformXY ? transformXY(..._p2) : _p2;\n const p3 = transformXY ? transformXY(..._p3) : _p3;\n const p0 = transformXY ? transformXY(...currentP) : currentP;\n currentP = _p3;\n const [minX, minY, maxX, maxY] = getCubicBezierCurveBound(p0, p1, p2, p3);\n limits.minX = Math.min(limits.minX, minX);\n limits.minY = Math.min(limits.minY, minY);\n limits.maxX = Math.max(limits.maxX, maxX);\n limits.maxY = Math.max(limits.maxY, maxY);\n }\n else if (op === \"lineTo\") {\n // TODO: Implement this\n }\n else if (op === \"qcurveTo\") {\n // TODO: Implement this\n }\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n return [minX, minY, maxX, maxY];\n};\nconst getBoundsFromPoints = (points) => {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const [x, y] of points) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n return [minX, minY, maxX, maxY];\n};\nconst getFreeDrawElementAbsoluteCoords = (element) => {\n const [minX, minY, maxX, maxY] = getBoundsFromPoints(element.points);\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getLinearElementAbsoluteCoords = (element) => {\n let coords;\n if (element.points.length < 2 || !(0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element)) {\n // XXX this is just a poor estimate and not very useful\n const { minX, minY, maxX, maxY } = element.points.reduce((limits, [x, y]) => {\n limits.minY = Math.min(limits.minY, y);\n limits.minX = Math.min(limits.minX, x);\n limits.maxX = Math.max(limits.maxX, x);\n limits.maxY = Math.max(limits.maxY, y);\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n coords = [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n else {\n const shape = (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element);\n // first element is always the curve\n const ops = getCurvePathOps(shape[0]);\n const [minX, minY, maxX, maxY] = getMinMaxXYFromCurvePathOps(ops);\n coords = [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n return coords;\n};\nconst getArrowheadPoints = (element, shape, position, arrowhead) => {\n const ops = getCurvePathOps(shape[0]);\n if (ops.length < 1) {\n return null;\n }\n // The index of the bCurve operation to examine.\n const index = position === \"start\" ? 1 : ops.length - 1;\n const data = ops[index].data;\n const p3 = [data[4], data[5]];\n const p2 = [data[2], data[3]];\n const p1 = [data[0], data[1]];\n // We need to find p0 of the bezier curve.\n // It is typically the last point of the previous\n // curve; it can also be the position of moveTo operation.\n const prevOp = ops[index - 1];\n let p0 = [0, 0];\n if (prevOp.op === \"move\") {\n p0 = prevOp.data;\n }\n else if (prevOp.op === \"bcurveTo\") {\n p0 = [prevOp.data[4], prevOp.data[5]];\n }\n // B(t) = p0 * (1-t)^3 + 3p1 * t * (1-t)^2 + 3p2 * t^2 * (1-t) + p3 * t^3\n const equation = (t, idx) => Math.pow(1 - t, 3) * p3[idx] +\n 3 * t * Math.pow(1 - t, 2) * p2[idx] +\n 3 * Math.pow(t, 2) * (1 - t) * p1[idx] +\n p0[idx] * Math.pow(t, 3);\n // Ee know the last point of the arrow (or the first, if start arrowhead).\n const [x2, y2] = position === \"start\" ? p0 : p3;\n // By using cubic bezier equation (B(t)) and the given parameters,\n // we calculate a point that is closer to the last point.\n // The value 0.3 is chosen arbitrarily and it works best for all\n // the tested cases.\n const [x1, y1] = [equation(0.3, 0), equation(0.3, 1)];\n // Find the normalized direction vector based on the\n // previously calculated points.\n const distance = Math.hypot(x2 - x1, y2 - y1);\n const nx = (x2 - x1) / distance;\n const ny = (y2 - y1) / distance;\n const size = {\n arrow: 30,\n bar: 15,\n dot: 15,\n triangle: 15,\n }[arrowhead]; // pixels (will differ for each arrowhead)\n let length = 0;\n if (arrowhead === \"arrow\") {\n // Length for -> arrows is based on the length of the last section\n const [cx, cy] = element.points[element.points.length - 1];\n const [px, py] = element.points.length > 1\n ? element.points[element.points.length - 2]\n : [0, 0];\n length = Math.hypot(cx - px, cy - py);\n }\n else {\n // Length for other arrowhead types is based on the total length of the line\n for (let i = 0; i < element.points.length; i++) {\n const [px, py] = element.points[i - 1] || [0, 0];\n const [cx, cy] = element.points[i];\n length += Math.hypot(cx - px, cy - py);\n }\n }\n // Scale down the arrowhead until we hit a certain size so that it doesn't look weird.\n // This value is selected by minimizing a minimum size with the last segment of the arrowhead\n const minSize = Math.min(size, length / 2);\n const xs = x2 - nx * minSize;\n const ys = y2 - ny * minSize;\n if (arrowhead === \"dot\") {\n const r = Math.hypot(ys - y2, xs - x2) + element.strokeWidth;\n return [x2, y2, r];\n }\n const angle = {\n arrow: 20,\n bar: 90,\n triangle: 25,\n }[arrowhead]; // degrees\n // Return points\n const [x3, y3] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(xs, ys, x2, y2, (-angle * Math.PI) / 180);\n const [x4, y4] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(xs, ys, x2, y2, (angle * Math.PI) / 180);\n return [x2, y2, x3, y3, x4, y4];\n};\nconst getLinearElementRotatedBounds = (element, cx, cy) => {\n if (element.points.length < 2 || !(0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element)) {\n // XXX this is just a poor estimate and not very useful\n const { minX, minY, maxX, maxY } = element.points.reduce((limits, [x, y]) => {\n [x, y] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(element.x + x, element.y + y, cx, cy, element.angle);\n limits.minY = Math.min(limits.minY, y);\n limits.minX = Math.min(limits.minX, x);\n limits.maxX = Math.max(limits.maxX, x);\n limits.maxY = Math.max(limits.maxY, y);\n return limits;\n }, { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity });\n return [minX, minY, maxX, maxY];\n }\n const shape = (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.getShapeForElement)(element);\n // first element is always the curve\n const ops = getCurvePathOps(shape[0]);\n const transformXY = (x, y) => (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(element.x + x, element.y + y, cx, cy, element.angle);\n return getMinMaxXYFromCurvePathOps(ops, transformXY);\n};\n// We could cache this stuff\nconst getElementBounds = (element) => {\n let bounds;\n const [x1, y1, x2, y2] = getElementAbsoluteCoords(element);\n const cx = (x1 + x2) / 2;\n const cy = (y1 + y2) / 2;\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n const [minX, minY, maxX, maxY] = getBoundsFromPoints(element.points.map(([x, y]) => (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x, y, cx - element.x, cy - element.y, element.angle)));\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n }\n else if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element)) {\n bounds = getLinearElementRotatedBounds(element, cx, cy);\n }\n else if (element.type === \"diamond\") {\n const [x11, y11] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(cx, y1, cx, cy, element.angle);\n const [x12, y12] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(cx, y2, cx, cy, element.angle);\n const [x22, y22] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, cy, cx, cy, element.angle);\n const [x21, y21] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, cy, cx, cy, element.angle);\n const minX = Math.min(x11, x12, x22, x21);\n const minY = Math.min(y11, y12, y22, y21);\n const maxX = Math.max(x11, x12, x22, x21);\n const maxY = Math.max(y11, y12, y22, y21);\n bounds = [minX, minY, maxX, maxY];\n }\n else if (element.type === \"ellipse\") {\n const w = (x2 - x1) / 2;\n const h = (y2 - y1) / 2;\n const cos = Math.cos(element.angle);\n const sin = Math.sin(element.angle);\n const ww = Math.hypot(w * cos, h * sin);\n const hh = Math.hypot(h * cos, w * sin);\n bounds = [cx - ww, cy - hh, cx + ww, cy + hh];\n }\n else {\n const [x11, y11] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, y1, cx, cy, element.angle);\n const [x12, y12] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x1, y2, cx, cy, element.angle);\n const [x22, y22] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, y2, cx, cy, element.angle);\n const [x21, y21] = (0,_math__WEBPACK_IMPORTED_MODULE_0__.rotate)(x2, y1, cx, cy, element.angle);\n const minX = Math.min(x11, x12, x22, x21);\n const minY = Math.min(y11, y12, y22, y21);\n const maxX = Math.max(x11, x12, x22, x21);\n const maxY = Math.max(y11, y12, y22, y21);\n bounds = [minX, minY, maxX, maxY];\n }\n return bounds;\n};\nconst getCommonBounds = (elements) => {\n if (!elements.length) {\n return [0, 0, 0, 0];\n }\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n elements.forEach((element) => {\n const [x1, y1, x2, y2] = getElementBounds(element);\n minX = Math.min(minX, x1);\n minY = Math.min(minY, y1);\n maxX = Math.max(maxX, x2);\n maxY = Math.max(maxY, y2);\n });\n return [minX, minY, maxX, maxY];\n};\nconst getResizedElementAbsoluteCoords = (element, nextWidth, nextHeight, normalizePoints) => {\n if (!((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isLinearElement)(element) || (0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element))) {\n return [\n element.x,\n element.y,\n element.x + nextWidth,\n element.y + nextHeight,\n ];\n }\n const points = (0,_points__WEBPACK_IMPORTED_MODULE_4__.rescalePoints)(0, nextWidth, (0,_points__WEBPACK_IMPORTED_MODULE_4__.rescalePoints)(1, nextHeight, element.points, normalizePoints), normalizePoints);\n let bounds;\n if ((0,_typeChecks__WEBPACK_IMPORTED_MODULE_3__.isFreeDrawElement)(element)) {\n // Free Draw\n bounds = getBoundsFromPoints(points);\n }\n else {\n // Line\n const gen = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generator();\n const curve = element.strokeSharpness === \"sharp\"\n ? gen.linearPath(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element))\n : gen.curve(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element));\n const ops = getCurvePathOps(curve);\n bounds = getMinMaxXYFromCurvePathOps(ops);\n }\n const [minX, minY, maxX, maxY] = bounds;\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getElementPointsCoords = (element, points, sharpness) => {\n // This might be computationally heavey\n const gen = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_1__[\"default\"].generator();\n const curve = sharpness === \"sharp\"\n ? gen.linearPath(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element))\n : gen.curve(points, (0,_renderer_renderElement__WEBPACK_IMPORTED_MODULE_2__.generateRoughOptions)(element));\n const ops = getCurvePathOps(curve);\n const [minX, minY, maxX, maxY] = getMinMaxXYFromCurvePathOps(ops);\n return [\n minX + element.x,\n minY + element.y,\n maxX + element.x,\n maxY + element.y,\n ];\n};\nconst getClosestElementBounds = (elements, from) => {\n if (!elements.length) {\n return [0, 0, 0, 0];\n }\n let minDistance = Infinity;\n let closestElement = elements[0];\n elements.forEach((element) => {\n const [x1, y1, x2, y2] = getElementBounds(element);\n const distance = (0,_math__WEBPACK_IMPORTED_MODULE_0__.distance2d)((x1 + x2) / 2, (y1 + y2) / 2, from.x, from.y);\n if (distance < minDistance) {\n minDistance = distance;\n closestElement = element;\n }\n });\n return getElementBounds(closestElement);\n};\nconst getCommonBoundingBox = (elements) => {\n const [minX, minY, maxX, maxY] = getCommonBounds(elements);\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n midX: (minX + maxX) / 2,\n midY: (minY + maxY) / 2,\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsQyxJQUFJLElBQUksRUFBRTtRQUNSLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQWEsQ0FBQztRQUN0RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQUksSUFBSSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBYSxDQUFDO1FBQ3RELElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FB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RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLDZDQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUssTUFBTSxlQUFlLEdBQUcsQ0FDN0IsUUFBc0MsRUFDSixFQUFFO0lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNyQjtJQUVELElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUNwQixJQUFJLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNyQixJQUFJLElBQUksR0FBRyxRQUFRLENBQUM7SUFDcEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFFckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUssTUFBTSwrQkFBK0IsR0FBRyxDQUM3QyxPQUEwQixFQUMxQixTQUFpQixFQUNqQixVQUFrQixFQUNsQixlQUF3QixFQUNVLEVBQUU7SUFDcEMsSUFBSSxDQUFDLENBQUMsNERBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSw4REFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQzdELE9BQU87WUFDTCxPQUFPLENBQUMsQ0FBQztZQUNULE9BQU8sQ0FBQyxDQUFDO1lBQ1QsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTO1lBQ3JCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsVUFBVTtTQUN2QixDQUFDO0tBQ0g7SUFFRCxNQUFNLE1BQU0sR0FBRyxzREFBYSxDQUMxQixDQUFDLEVBQ0QsU0FBUyxFQUNULHNEQUFhLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUM3RCxlQUFlLENBQ2hCLENBQUM7SUFFRixJQUFJLE1BQXdDLENBQUM7SUFFN0MsSUFBSSw4REFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM5QixZQUFZO1FBQ1osTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3RDO1NBQU07UUFDTCxPQUFPO1FBQ1AsTUFBTSxHQUFHLEdBQUcsbUVBQWUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUNULE9BQU8sQ0FBQyxlQUFlLEtBQUssT0FBTztZQUNqQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FDWixNQUE0QixFQUM1Qiw2RUFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FDOUI7WUFDSCxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FDUCxNQUE0QixFQUM1Qiw2RUFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FDOUIsQ0FBQztRQUNSLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxNQUFNLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDM0M7SUFFRCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLE9BQU87UUFDTCxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDaEIsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNoQixJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7S0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVLLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsT0FBZ0MsRUFDaEMsTUFBOEMsRUFDOUMsU0FBK0MsRUFDYixFQUFFO0lBQ3BDLHVDQUF1QztJQUN2QyxNQUFNLEdBQUcsR0FBRyxtRUFBZSxFQUFFLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQ1QsU0FBUyxLQUFLLE9BQU87UUFDbkIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQ1osTUFBNEIsRUFDNUIsNkVBQW9CLENBQUMsT0FBTyxDQUFDLENBQzlCO1FBQ0gsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBNEIsRUFBRSw2RUFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEUsT0FBTztRQUNMLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNoQixJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDaEIsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQztLQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxRQUFzQyxFQUN0QyxJQUE4QixFQUNJLEVBQUU7SUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDcEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3JCO0lBRUQsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQzNCLElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDM0IsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLGlEQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUxRSxJQUFJLFFBQVEsR0FBRyxXQUFXLEVBQUU7WUFDMUIsV0FBVyxHQUFHLFFBQVEsQ0FBQztZQUN2QixjQUFjLEdBQUcsT0FBTyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztBQWFLLE1BQU0sb0JBQW9CLEdBQUcsQ0FDbEMsUUFBd0UsRUFDbkUsRUFBRTtJQUNQLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsT0FBTztRQUNMLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixLQUFLLEVBQUUsSUFBSSxHQUFHLElBQUk7UUFDbEIsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJO1FBQ25CLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ3hCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vZWxlbWVudC9ib3VuZHMudHM/OGJlMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeGNhbGlkcmF3RWxlbWVudCxcbiAgRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4gIEFycm93aGVhZCxcbiAgRXhjYWxpZHJhd0ZyZWVEcmF3RWxlbWVudCxcbiAgTm9uRGVsZXRlZCxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGRpc3RhbmNlMmQsIHJvdGF0ZSB9IGZyb20gXCIuLi9tYXRoXCI7XG5pbXBvcnQgcm91Z2ggZnJvbSBcInJvdWdoanMvYmluL3JvdWdoXCI7XG5pbXBvcnQgeyBEcmF3YWJsZSwgT3AgfSBmcm9tIFwicm91Z2hqcy9iaW4vY29yZVwiO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIGdldFNoYXBlRm9yRWxlbWVudCxcbiAgZ2VuZXJhdGVSb3VnaE9wdGlvbnMsXG59IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJFbGVtZW50XCI7XG5pbXBvcnQgeyBpc0ZyZWVEcmF3RWxlbWVudCwgaXNMaW5lYXJFbGVtZW50IH0gZnJvbSBcIi4vdHlwZUNoZWNrc1wiO1xuaW1wb3J0IHsgcmVzY2FsZVBvaW50cyB9IGZyb20gXCIuLi9wb2ludHNcIjtcblxuLy8geCBhbmQgeSBwb3NpdGlvbiBvZiB0b3AgbGVmdCBjb3JuZXIsIHggYW5kIHkgcG9zaXRpb24gb2YgYm90dG9tIHJpZ2h0IGNvcm5lclxuZXhwb3J0IHR5cGUgQm91bmRzID0gcmVhZG9ubHkgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG50eXBlIE1heWJlUXVhZHJhdGljU29sdXRpb24gPSBbbnVtYmVyIHwgbnVsbCwgbnVtYmVyIHwgbnVsbF0gfCBmYWxzZTtcblxuLy8gSWYgdGhlIGVsZW1lbnQgaXMgY3JlYXRlZCBmcm9tIHJpZ2h0IHRvIGxlZnQsIHRoZSB3aWR0aCBpcyBnb2luZyB0byBiZSBuZWdhdGl2ZVxuLy8gVGhpcyBzZXQgb2YgZnVuY3Rpb25zIHJldHJpZXZlcyB0aGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIDQgcG9pbnRzLlxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0VsZW1lbnQsXG4pOiBCb3VuZHMgPT4ge1xuICBpZiAoaXNGcmVlRHJhd0VsZW1lbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gZ2V0RnJlZURyYXdFbGVtZW50QWJzb2x1dGVDb29yZHMoZWxlbWVudCk7XG4gIH0gZWxzZSBpZiAoaXNMaW5lYXJFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGdldExpbmVhckVsZW1lbnRBYnNvbHV0ZUNvb3JkcyhlbGVtZW50KTtcbiAgfVxuICByZXR1cm4gW1xuICAgIGVsZW1lbnQueCxcbiAgICBlbGVtZW50LnksXG4gICAgZWxlbWVudC54ICsgZWxlbWVudC53aWR0aCxcbiAgICBlbGVtZW50LnkgKyBlbGVtZW50LmhlaWdodCxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludFJlbGF0aXZlVG8gPSAoXG4gIGVsZW1lbnQ6IEV4Y2FsaWRyYXdFbGVtZW50LFxuICBhYnNvbHV0ZUNvb3JkczogUG9pbnQsXG4pOiBQb2ludCA9PiB7XG4gIHJldHVybiBbYWJzb2x1dGVDb29yZHNbMF0gLSBlbGVtZW50LngsIGFic29sdXRlQ29vcmRzWzFdIC0gZWxlbWVudC55XTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaWFtb25kUG9pbnRzID0gKGVsZW1lbnQ6IEV4Y2FsaWRyYXdFbGVtZW50KSA9PiB7XG4gIC8vIEhlcmUgd2UgYWRkICsxIHRvIGF2b2lkIHRoZXNlIG51bWJlcnMgdG8gYmUgMFxuICAvLyBvdGhlcndpc2Ugcm91Z2guanMgd2lsbCB0aHJvdyBhbiBlcnJvciBjb21wbGFpbmluZyBhYm91dCBpdFxuICBjb25zdCB0b3BYID0gTWF0aC5mbG9vcihlbGVtZW50LndpZHRoIC8gMikgKyAxO1xuICBjb25zdCB0b3BZID0gMDtcbiAgY29uc3QgcmlnaHRYID0gZWxlbWVudC53aWR0aDtcbiAgY29uc3QgcmlnaHRZID0gTWF0aC5mbG9vcihlbGVtZW50LmhlaWdodCAvIDIpICsgMTtcbiAgY29uc3QgYm90dG9tWCA9IHRvcFg7XG4gIGNvbnN0IGJvdHRvbVkgPSBlbGVtZW50LmhlaWdodDtcbiAgY29uc3QgbGVmdFggPSAwO1xuICBjb25zdCBsZWZ0WSA9IHJpZ2h0WTtcblxuICByZXR1cm4gW3RvcFgsIHRvcFksIHJpZ2h0WCwgcmlnaHRZLCBib3R0b21YLCBib3R0b21ZLCBsZWZ0WCwgbGVmdFldO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEN1cnZlUGF0aE9wcyA9IChzaGFwZTogRHJhd2FibGUpOiBPcFtdID0+IHtcbiAgZm9yIChjb25zdCBzZXQgb2Ygc2hhcGUuc2V0cykge1xuICAgIGlmIChzZXQudHlwZSA9PT0gXCJwYXRoXCIpIHtcbiAgICAgIHJldHVybiBzZXQub3BzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2hhcGUuc2V0c1swXS5vcHM7XG59O1xuXG4vLyByZWZlcmVuY2U6IGh0dHBzOi8vZWxpb3Qtam9uZXMuY29tLzIwMTkvMTIvY3ViaWMtYmV6aWVyLWN1cnZlLWJvdW5kaW5nLWJveGVzXG5jb25zdCBnZXRCZXppZXJWYWx1ZUZvclQgPSAoXG4gIHQ6IG51bWJlcixcbiAgcDA6IG51bWJlcixcbiAgcDE6IG51bWJlcixcbiAgcDI6IG51bWJlcixcbiAgcDM6IG51bWJlcixcbikgPT4ge1xuICBjb25zdCBvbmVNaW51c1QgPSAxIC0gdDtcbiAgcmV0dXJuIChcbiAgICBNYXRoLnBvdyhvbmVNaW51c1QsIDMpICogcDAgK1xuICAgIDMgKiBNYXRoLnBvdyhvbmVNaW51c1QsIDIpICogdCAqIHAxICtcbiAgICAzICogb25lTWludXNUICogTWF0aC5wb3codCwgMikgKiBwMiArXG4gICAgTWF0aC5wb3codCwgMykgKiBwM1xuICApO1xufTtcblxuY29uc3Qgc29sdmVRdWFkcmF0aWMgPSAoXG4gIHAwOiBudW1iZXIsXG4gIHAxOiBudW1iZXIsXG4gIHAyOiBudW1iZXIsXG4gIHAzOiBudW1iZXIsXG4pOiBNYXliZVF1YWRyYXRpY1NvbHV0aW9uID0+IHtcbiAgY29uc3QgaSA9IHAxIC0gcDA7XG4gIGNvbnN0IGogPSBwMiAtIHAxO1xuICBjb25zdCBrID0gcDMgLSBwMjtcblxuICBjb25zdCBhID0gMyAqIGkgLSA2ICogaiArIDMgKiBrO1xuICBjb25zdCBiID0gNiAqIGogLSA2ICogaTtcbiAgY29uc3QgYyA9IDMgKiBpO1xuXG4gIGNvbnN0IHNxcnRQYXJ0ID0gYiAqIGIgLSA0ICogYSAqIGM7XG4gIGNvbnN0IGhhc1NvbHV0aW9uID0gc3FydFBhcnQgPj0gMDtcblxuICBpZiAoIWhhc1NvbHV0aW9uKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IHMxID0gbnVsbDtcbiAgbGV0IHMyID0gbnVsbDtcblxuICBsZXQgdDEgPSBJbmZpbml0eTtcbiAgbGV0IHQyID0gSW5maW5pdHk7XG5cbiAgaWYgKGEgPT09IDApIHtcbiAgICB0MSA9IHQyID0gLWMgLyBiO1xuICB9IGVsc2Uge1xuICAgIHQxID0gKC1iICsgTWF0aC5zcXJ0KHNxcnRQYXJ0KSkgLyAoMiAqIGEpO1xuICAgIHQyID0gKC1iIC0gTWF0aC5zcXJ0KHNxcnRQYXJ0KSkgLyAoMiAqIGEpO1xuICB9XG5cbiAgaWYgKHQxID49IDAgJiYgdDEgPD0gMSkge1xuICAgIHMxID0gZ2V0QmV6aWVyVmFsdWVGb3JUKHQxLCBwMCwgcDEsIHAyLCBwMyk7XG4gIH1cblxuICBpZiAodDIgPj0gMCAmJiB0MiA8PSAxKSB7XG4gICAgczIgPSBnZXRCZXppZXJWYWx1ZUZvclQodDIsIHAwLCBwMSwgcDIsIHAzKTtcbiAgfVxuXG4gIHJldHVybiBbczEsIHMyXTtcbn07XG5cbmNvbnN0IGdldEN1YmljQmV6aWVyQ3VydmVCb3VuZCA9IChcbiAgcDA6IFBvaW50LFxuICBwMTogUG9pbnQsXG4gIHAyOiBQb2ludCxcbiAgcDM6IFBvaW50LFxuKTogQm91bmRzID0+IHtcbiAgY29uc3Qgc29sWCA9IHNvbHZlUXVhZHJhdGljKHAwWzBdLCBwMVswXSwgcDJbMF0sIHAzWzBdKTtcbiAgY29uc3Qgc29sWSA9IHNvbHZlUXVhZHJhdGljKHAwWzFdLCBwMVsxXSwgcDJbMV0sIHAzWzFdKTtcblxuICBsZXQgbWluWCA9IE1hdGgubWluKHAwWzBdLCBwM1swXSk7XG4gIGxldCBtYXhYID0gTWF0aC5tYXgocDBbMF0sIHAzWzBdKTtcblxuICBpZiAoc29sWCkge1xuICAgIGNvbnN0IHhzID0gc29sWC5maWx0ZXIoKHgpID0+IHggIT09IG51bGwpIGFzIG51bWJlcltdO1xuICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCAuLi54cyk7XG4gICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIC4uLnhzKTtcbiAgfVxuXG4gIGxldCBtaW5ZID0gTWF0aC5taW4ocDBbMV0sIHAzWzFdKTtcbiAgbGV0IG1heFkgPSBNYXRoLm1heChwMFsxXSwgcDNbMV0pO1xuICBpZiAoc29sWSkge1xuICAgIGNvbnN0IHlzID0gc29sWS5maWx0ZXIoKHkpID0+IHkgIT09IG51bGwpIGFzIG51bWJlcltdO1xuICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCAuLi55cyk7XG4gICAgbWF4WSA9IE1hdGgubWF4KG1heFksIC4uLnlzKTtcbiAgfVxuICByZXR1cm4gW21pblgsIG1pblksIG1heFgsIG1heFldO1xufTtcblxuY29uc3QgZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzID0gKFxuICBvcHM6IE9wW10sXG4gIHRyYW5zZm9ybVhZPzogKHg6IG51bWJlciwgeTogbnVtYmVyKSA9PiBbbnVtYmVyLCBudW1iZXJdLFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBsZXQgY3VycmVudFA6IFBvaW50ID0gWzAsIDBdO1xuXG4gIGNvbnN0IHsgbWluWCwgbWluWSwgbWF4WCwgbWF4WSB9ID0gb3BzLnJlZHVjZShcbiAgICAobGltaXRzLCB7IG9wLCBkYXRhIH0pID0+IHtcbiAgICAgIC8vIFRoZXJlIGFyZSBvbmx5IGZvdXIgb3BlcmF0aW9uIHR5cGVzOlxuICAgICAgLy8gbW92ZSwgYmN1cnZlVG8sIGxpbmVUbywgYW5kIGN1cnZlVG9cbiAgICAgIGlmIChvcCA9PT0gXCJtb3ZlXCIpIHtcbiAgICAgICAgLy8gY2hhbmdlIHN0YXJ0aW5nIHBvaW50XG4gICAgICAgIGN1cnJlbnRQID0gZGF0YSBhcyB1bmtub3duIGFzIFBvaW50O1xuICAgICAgICAvLyBtb3ZlIG9wZXJhdGlvbiBkb2VzIG5vdCBkcmF3IGFueXRoaW5nOyBzbywgaXQgYWx3YXlzXG4gICAgICAgIC8vIHJldHVybnMgZmFsc2VcbiAgICAgIH0gZWxzZSBpZiAob3AgPT09IFwiYmN1cnZlVG9cIikge1xuICAgICAgICBjb25zdCBfcDEgPSBbZGF0YVswXSwgZGF0YVsxXV0gYXMgUG9pbnQ7XG4gICAgICAgIGNvbnN0IF9wMiA9IFtkYXRhWzJdLCBkYXRhWzNdXSBhcyBQb2ludDtcbiAgICAgICAgY29uc3QgX3AzID0gW2RhdGFbNF0sIGRhdGFbNV1dIGFzIFBvaW50O1xuXG4gICAgICAgIGNvbnN0IHAxID0gdHJhbnNmb3JtWFkgPyB0cmFuc2Zvcm1YWSguLi5fcDEpIDogX3AxO1xuICAgICAgICBjb25zdCBwMiA9IHRyYW5zZm9ybVhZID8gdHJhbnNmb3JtWFkoLi4uX3AyKSA6IF9wMjtcbiAgICAgICAgY29uc3QgcDMgPSB0cmFuc2Zvcm1YWSA/IHRyYW5zZm9ybVhZKC4uLl9wMykgOiBfcDM7XG5cbiAgICAgICAgY29uc3QgcDAgPSB0cmFuc2Zvcm1YWSA/IHRyYW5zZm9ybVhZKC4uLmN1cnJlbnRQKSA6IGN1cnJlbnRQO1xuICAgICAgICBjdXJyZW50UCA9IF9wMztcblxuICAgICAgICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBnZXRDdWJpY0JlemllckN1cnZlQm91bmQoXG4gICAgICAgICAgcDAsXG4gICAgICAgICAgcDEsXG4gICAgICAgICAgcDIsXG4gICAgICAgICAgcDMsXG4gICAgICAgICk7XG5cbiAgICAgICAgbGltaXRzLm1pblggPSBNYXRoLm1pbihsaW1pdHMubWluWCwgbWluWCk7XG4gICAgICAgIGxpbWl0cy5taW5ZID0gTWF0aC5taW4obGltaXRzLm1pblksIG1pblkpO1xuXG4gICAgICAgIGxpbWl0cy5tYXhYID0gTWF0aC5tYXgobGltaXRzLm1heFgsIG1heFgpO1xuICAgICAgICBsaW1pdHMubWF4WSA9IE1hdGgubWF4KGxpbWl0cy5tYXhZLCBtYXhZKTtcbiAgICAgIH0gZWxzZSBpZiAob3AgPT09IFwibGluZVRvXCIpIHtcbiAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHRoaXNcbiAgICAgIH0gZWxzZSBpZiAob3AgPT09IFwicWN1cnZlVG9cIikge1xuICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgdGhpc1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbWl0cztcbiAgICB9LFxuICAgIHsgbWluWDogSW5maW5pdHksIG1pblk6IEluZmluaXR5LCBtYXhYOiAtSW5maW5pdHksIG1heFk6IC1JbmZpbml0eSB9LFxuICApO1xuICByZXR1cm4gW21pblgsIG1pblksIG1heFgsIG1heFldO1xufTtcblxuY29uc3QgZ2V0Qm91bmRzRnJvbVBvaW50cyA9IChcbiAgcG9pbnRzOiBFeGNhbGlkcmF3RnJlZURyYXdFbGVtZW50W1wicG9pbnRzXCJdLFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBsZXQgbWluWCA9IEluZmluaXR5O1xuICBsZXQgbWluWSA9IEluZmluaXR5O1xuICBsZXQgbWF4WCA9IC1JbmZpbml0eTtcbiAgbGV0IG1heFkgPSAtSW5maW5pdHk7XG5cbiAgZm9yIChjb25zdCBbeCwgeV0gb2YgcG9pbnRzKSB7XG4gICAgbWluWCA9IE1hdGgubWluKG1pblgsIHgpO1xuICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCB5KTtcbiAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgeCk7XG4gICAgbWF4WSA9IE1hdGgubWF4KG1heFksIHkpO1xuICB9XG5cbiAgcmV0dXJuIFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcbn07XG5cbmNvbnN0IGdldEZyZWVEcmF3RWxlbWVudEFic29sdXRlQ29vcmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3RnJlZURyYXdFbGVtZW50LFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBjb25zdCBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV0gPSBnZXRCb3VuZHNGcm9tUG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcblxuICByZXR1cm4gW1xuICAgIG1pblggKyBlbGVtZW50LngsXG4gICAgbWluWSArIGVsZW1lbnQueSxcbiAgICBtYXhYICsgZWxlbWVudC54LFxuICAgIG1heFkgKyBlbGVtZW50LnksXG4gIF07XG59O1xuXG5jb25zdCBnZXRMaW5lYXJFbGVtZW50QWJzb2x1dGVDb29yZHMgPSAoXG4gIGVsZW1lbnQ6IEV4Y2FsaWRyYXdMaW5lYXJFbGVtZW50LFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBsZXQgY29vcmRzOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICBpZiAoZWxlbWVudC5wb2ludHMubGVuZ3RoIDwgMiB8fCAhZ2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgLy8gWFhYIHRoaXMgaXMganVzdCBhIHBvb3IgZXN0aW1hdGUgYW5kIG5vdCB2ZXJ5IHVzZWZ1bFxuICAgIGNvbnN0IHsgbWluWCwgbWluWSwgbWF4WCwgbWF4WSB9ID0gZWxlbWVudC5wb2ludHMucmVkdWNlKFxuICAgICAgKGxpbWl0cywgW3gsIHldKSA9PiB7XG4gICAgICAgIGxpbWl0cy5taW5ZID0gTWF0aC5taW4obGltaXRzLm1pblksIHkpO1xuICAgICAgICBsaW1pdHMubWluWCA9IE1hdGgubWluKGxpbWl0cy5taW5YLCB4KTtcblxuICAgICAgICBsaW1pdHMubWF4WCA9IE1hdGgubWF4KGxpbWl0cy5tYXhYLCB4KTtcbiAgICAgICAgbGltaXRzLm1heFkgPSBNYXRoLm1heChsaW1pdHMubWF4WSwgeSk7XG5cbiAgICAgICAgcmV0dXJuIGxpbWl0cztcbiAgICAgIH0sXG4gICAgICB7IG1pblg6IEluZmluaXR5LCBtaW5ZOiBJbmZpbml0eSwgbWF4WDogLUluZmluaXR5LCBtYXhZOiAtSW5maW5pdHkgfSxcbiAgICApO1xuICAgIGNvb3JkcyA9IFtcbiAgICAgIG1pblggKyBlbGVtZW50LngsXG4gICAgICBtaW5ZICsgZWxlbWVudC55LFxuICAgICAgbWF4WCArIGVsZW1lbnQueCxcbiAgICAgIG1heFkgKyBlbGVtZW50LnksXG4gICAgXTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzaGFwZSA9IGdldFNoYXBlRm9yRWxlbWVudChlbGVtZW50KSE7XG5cbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFsd2F5cyB0aGUgY3VydmVcbiAgICBjb25zdCBvcHMgPSBnZXRDdXJ2ZVBhdGhPcHMoc2hhcGVbMF0pO1xuXG4gICAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcyk7XG5cbiAgICBjb29yZHMgPSBbXG4gICAgICBtaW5YICsgZWxlbWVudC54LFxuICAgICAgbWluWSArIGVsZW1lbnQueSxcbiAgICAgIG1heFggKyBlbGVtZW50LngsXG4gICAgICBtYXhZICsgZWxlbWVudC55LFxuICAgIF07XG4gIH1cblxuICByZXR1cm4gY29vcmRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFycm93aGVhZFBvaW50cyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4gIHNoYXBlOiBEcmF3YWJsZVtdLFxuICBwb3NpdGlvbjogXCJzdGFydFwiIHwgXCJlbmRcIixcbiAgYXJyb3doZWFkOiBBcnJvd2hlYWQsXG4pID0+IHtcbiAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKHNoYXBlWzBdKTtcbiAgaWYgKG9wcy5sZW5ndGggPCAxKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBUaGUgaW5kZXggb2YgdGhlIGJDdXJ2ZSBvcGVyYXRpb24gdG8gZXhhbWluZS5cbiAgY29uc3QgaW5kZXggPSBwb3NpdGlvbiA9PT0gXCJzdGFydFwiID8gMSA6IG9wcy5sZW5ndGggLSAxO1xuXG4gIGNvbnN0IGRhdGEgPSBvcHNbaW5kZXhdLmRhdGE7XG4gIGNvbnN0IHAzID0gW2RhdGFbNF0sIGRhdGFbNV1dIGFzIFBvaW50O1xuICBjb25zdCBwMiA9IFtkYXRhWzJdLCBkYXRhWzNdXSBhcyBQb2ludDtcbiAgY29uc3QgcDEgPSBbZGF0YVswXSwgZGF0YVsxXV0gYXMgUG9pbnQ7XG5cbiAgLy8gV2UgbmVlZCB0byBmaW5kIHAwIG9mIHRoZSBiZXppZXIgY3VydmUuXG4gIC8vIEl0IGlzIHR5cGljYWxseSB0aGUgbGFzdCBwb2ludCBvZiB0aGUgcHJldmlvdXNcbiAgLy8gY3VydmU7IGl0IGNhbiBhbHNvIGJlIHRoZSBwb3NpdGlvbiBvZiBtb3ZlVG8gb3BlcmF0aW9uLlxuICBjb25zdCBwcmV2T3AgPSBvcHNbaW5kZXggLSAxXTtcbiAgbGV0IHAwOiBQb2ludCA9IFswLCAwXTtcbiAgaWYgKHByZXZPcC5vcCA9PT0gXCJtb3ZlXCIpIHtcbiAgICBwMCA9IHByZXZPcC5kYXRhIGFzIHVua25vd24gYXMgUG9pbnQ7XG4gIH0gZWxzZSBpZiAocHJldk9wLm9wID09PSBcImJjdXJ2ZVRvXCIpIHtcbiAgICBwMCA9IFtwcmV2T3AuZGF0YVs0XSwgcHJldk9wLmRhdGFbNV1dO1xuICB9XG5cbiAgLy8gQih0KSA9IHAwICogKDEtdCleMyArIDNwMSAqIHQgKiAoMS10KV4yICsgM3AyICogdF4yICogKDEtdCkgKyBwMyAqIHReM1xuICBjb25zdCBlcXVhdGlvbiA9ICh0OiBudW1iZXIsIGlkeDogbnVtYmVyKSA9PlxuICAgIE1hdGgucG93KDEgLSB0LCAzKSAqIHAzW2lkeF0gK1xuICAgIDMgKiB0ICogTWF0aC5wb3coMSAtIHQsIDIpICogcDJbaWR4XSArXG4gICAgMyAqIE1hdGgucG93KHQsIDIpICogKDEgLSB0KSAqIHAxW2lkeF0gK1xuICAgIHAwW2lkeF0gKiBNYXRoLnBvdyh0LCAzKTtcblxuICAvLyBFZSBrbm93IHRoZSBsYXN0IHBvaW50IG9mIHRoZSBhcnJvdyAob3IgdGhlIGZpcnN0LCBpZiBzdGFydCBhcnJvd2hlYWQpLlxuICBjb25zdCBbeDIsIHkyXSA9IHBvc2l0aW9uID09PSBcInN0YXJ0XCIgPyBwMCA6IHAzO1xuXG4gIC8vIEJ5IHVzaW5nIGN1YmljIGJlemllciBlcXVhdGlvbiAoQih0KSkgYW5kIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLFxuICAvLyB3ZSBjYWxjdWxhdGUgYSBwb2ludCB0aGF0IGlzIGNsb3NlciB0byB0aGUgbGFzdCBwb2ludC5cbiAgLy8gVGhlIHZhbHVlIDAuMyBpcyBjaG9zZW4gYXJiaXRyYXJpbHkgYW5kIGl0IHdvcmtzIGJlc3QgZm9yIGFsbFxuICAvLyB0aGUgdGVzdGVkIGNhc2VzLlxuICBjb25zdCBbeDEsIHkxXSA9IFtlcXVhdGlvbigwLjMsIDApLCBlcXVhdGlvbigwLjMsIDEpXTtcblxuICAvLyBGaW5kIHRoZSBub3JtYWxpemVkIGRpcmVjdGlvbiB2ZWN0b3IgYmFzZWQgb24gdGhlXG4gIC8vIHByZXZpb3VzbHkgY2FsY3VsYXRlZCBwb2ludHMuXG4gIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5oeXBvdCh4MiAtIHgxLCB5MiAtIHkxKTtcbiAgY29uc3QgbnggPSAoeDIgLSB4MSkgLyBkaXN0YW5jZTtcbiAgY29uc3QgbnkgPSAoeTIgLSB5MSkgLyBkaXN0YW5jZTtcblxuICBjb25zdCBzaXplID0ge1xuICAgIGFycm93OiAzMCxcbiAgICBiYXI6IDE1LFxuICAgIGRvdDogMTUsXG4gICAgdHJpYW5nbGU6IDE1LFxuICB9W2Fycm93aGVhZF07IC8vIHBpeGVscyAod2lsbCBkaWZmZXIgZm9yIGVhY2ggYXJyb3doZWFkKVxuXG4gIGxldCBsZW5ndGggPSAwO1xuXG4gIGlmIChhcnJvd2hlYWQgPT09IFwiYXJyb3dcIikge1xuICAgIC8vIExlbmd0aCBmb3IgLT4gYXJyb3dzIGlzIGJhc2VkIG9uIHRoZSBsZW5ndGggb2YgdGhlIGxhc3Qgc2VjdGlvblxuICAgIGNvbnN0IFtjeCwgY3ldID0gZWxlbWVudC5wb2ludHNbZWxlbWVudC5wb2ludHMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgW3B4LCBweV0gPVxuICAgICAgZWxlbWVudC5wb2ludHMubGVuZ3RoID4gMVxuICAgICAgICA/IGVsZW1lbnQucG9pbnRzW2VsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDJdXG4gICAgICAgIDogWzAsIDBdO1xuXG4gICAgbGVuZ3RoID0gTWF0aC5oeXBvdChjeCAtIHB4LCBjeSAtIHB5KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBMZW5ndGggZm9yIG90aGVyIGFycm93aGVhZCB0eXBlcyBpcyBiYXNlZCBvbiB0aGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBsaW5lXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LnBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgW3B4LCBweV0gPSBlbGVtZW50LnBvaW50c1tpIC0gMV0gfHwgWzAsIDBdO1xuICAgICAgY29uc3QgW2N4LCBjeV0gPSBlbGVtZW50LnBvaW50c1tpXTtcbiAgICAgIGxlbmd0aCArPSBNYXRoLmh5cG90KGN4IC0gcHgsIGN5IC0gcHkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjYWxlIGRvd24gdGhlIGFycm93aGVhZCB1bnRpbCB3ZSBoaXQgYSBjZXJ0YWluIHNpemUgc28gdGhhdCBpdCBkb2Vzbid0IGxvb2sgd2VpcmQuXG4gIC8vIFRoaXMgdmFsdWUgaXMgc2VsZWN0ZWQgYnkgbWluaW1pemluZyBhIG1pbmltdW0gc2l6ZSB3aXRoIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGFycm93aGVhZFxuICBjb25zdCBtaW5TaXplID0gTWF0aC5taW4oc2l6ZSwgbGVuZ3RoIC8gMik7XG4gIGNvbnN0IHhzID0geDIgLSBueCAqIG1pblNpemU7XG4gIGNvbnN0IHlzID0geTIgLSBueSAqIG1pblNpemU7XG5cbiAgaWYgKGFycm93aGVhZCA9PT0gXCJkb3RcIikge1xuICAgIGNvbnN0IHIgPSBNYXRoLmh5cG90KHlzIC0geTIsIHhzIC0geDIpICsgZWxlbWVudC5zdHJva2VXaWR0aDtcbiAgICByZXR1cm4gW3gyLCB5Miwgcl07XG4gIH1cblxuICBjb25zdCBhbmdsZSA9IHtcbiAgICBhcnJvdzogMjAsXG4gICAgYmFyOiA5MCxcbiAgICB0cmlhbmdsZTogMjUsXG4gIH1bYXJyb3doZWFkXTsgLy8gZGVncmVlc1xuXG4gIC8vIFJldHVybiBwb2ludHNcbiAgY29uc3QgW3gzLCB5M10gPSByb3RhdGUoeHMsIHlzLCB4MiwgeTIsICgtYW5nbGUgKiBNYXRoLlBJKSAvIDE4MCk7XG4gIGNvbnN0IFt4NCwgeTRdID0gcm90YXRlKHhzLCB5cywgeDIsIHkyLCAoYW5nbGUgKiBNYXRoLlBJKSAvIDE4MCk7XG4gIHJldHVybiBbeDIsIHkyLCB4MywgeTMsIHg0LCB5NF07XG59O1xuXG5jb25zdCBnZXRMaW5lYXJFbGVtZW50Um90YXRlZEJvdW5kcyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4gIGN4OiBudW1iZXIsXG4gIGN5OiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIGlmIChlbGVtZW50LnBvaW50cy5sZW5ndGggPCAyIHx8ICFnZXRTaGFwZUZvckVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAvLyBYWFggdGhpcyBpcyBqdXN0IGEgcG9vciBlc3RpbWF0ZSBhbmQgbm90IHZlcnkgdXNlZnVsXG4gICAgY29uc3QgeyBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZIH0gPSBlbGVtZW50LnBvaW50cy5yZWR1Y2UoXG4gICAgICAobGltaXRzLCBbeCwgeV0pID0+IHtcbiAgICAgICAgW3gsIHldID0gcm90YXRlKGVsZW1lbnQueCArIHgsIGVsZW1lbnQueSArIHksIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgICAgIGxpbWl0cy5taW5ZID0gTWF0aC5taW4obGltaXRzLm1pblksIHkpO1xuICAgICAgICBsaW1pdHMubWluWCA9IE1hdGgubWluKGxpbWl0cy5taW5YLCB4KTtcbiAgICAgICAgbGltaXRzLm1heFggPSBNYXRoLm1heChsaW1pdHMubWF4WCwgeCk7XG4gICAgICAgIGxpbWl0cy5tYXhZID0gTWF0aC5tYXgobGltaXRzLm1heFksIHkpO1xuICAgICAgICByZXR1cm4gbGltaXRzO1xuICAgICAgfSxcbiAgICAgIHsgbWluWDogSW5maW5pdHksIG1pblk6IEluZmluaXR5LCBtYXhYOiAtSW5maW5pdHksIG1heFk6IC1JbmZpbml0eSB9LFxuICAgICk7XG4gICAgcmV0dXJuIFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcbiAgfVxuXG4gIGNvbnN0IHNoYXBlID0gZ2V0U2hhcGVGb3JFbGVtZW50KGVsZW1lbnQpITtcblxuICAvLyBmaXJzdCBlbGVtZW50IGlzIGFsd2F5cyB0aGUgY3VydmVcbiAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKHNoYXBlWzBdKTtcblxuICBjb25zdCB0cmFuc2Zvcm1YWSA9ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT5cbiAgICByb3RhdGUoZWxlbWVudC54ICsgeCwgZWxlbWVudC55ICsgeSwgY3gsIGN5LCBlbGVtZW50LmFuZ2xlKTtcbiAgcmV0dXJuIGdldE1pbk1heFhZRnJvbUN1cnZlUGF0aE9wcyhvcHMsIHRyYW5zZm9ybVhZKTtcbn07XG5cbi8vIFdlIGNvdWxkIGNhY2hlIHRoaXMgc3R1ZmZcbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50Qm91bmRzID0gKFxuICBlbGVtZW50OiBFeGNhbGlkcmF3RWxlbWVudCxcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgbGV0IGJvdW5kczogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbiAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGdldEVsZW1lbnRBYnNvbHV0ZUNvb3JkcyhlbGVtZW50KTtcbiAgY29uc3QgY3ggPSAoeDEgKyB4MikgLyAyO1xuICBjb25zdCBjeSA9ICh5MSArIHkyKSAvIDI7XG4gIGlmIChpc0ZyZWVEcmF3RWxlbWVudChlbGVtZW50KSkge1xuICAgIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldEJvdW5kc0Zyb21Qb2ludHMoXG4gICAgICBlbGVtZW50LnBvaW50cy5tYXAoKFt4LCB5XSkgPT5cbiAgICAgICAgcm90YXRlKHgsIHksIGN4IC0gZWxlbWVudC54LCBjeSAtIGVsZW1lbnQueSwgZWxlbWVudC5hbmdsZSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWluWCArIGVsZW1lbnQueCxcbiAgICAgIG1pblkgKyBlbGVtZW50LnksXG4gICAgICBtYXhYICsgZWxlbWVudC54LFxuICAgICAgbWF4WSArIGVsZW1lbnQueSxcbiAgICBdO1xuICB9IGVsc2UgaWYgKGlzTGluZWFyRWxlbWVudChlbGVtZW50KSkge1xuICAgIGJvdW5kcyA9IGdldExpbmVhckVsZW1lbnRSb3RhdGVkQm91bmRzKGVsZW1lbnQsIGN4LCBjeSk7XG4gIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSBcImRpYW1vbmRcIikge1xuICAgIGNvbnN0IFt4MTEsIHkxMV0gPSByb3RhdGUoY3gsIHkxLCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xuICAgIGNvbnN0IFt4MTIsIHkxMl0gPSByb3RhdGUoY3gsIHkyLCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xuICAgIGNvbnN0IFt4MjIsIHkyMl0gPSByb3RhdGUoeDEsIGN5LCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xuICAgIGNvbnN0IFt4MjEsIHkyMV0gPSByb3RhdGUoeDIsIGN5LCBjeCwgY3ksIGVsZW1lbnQuYW5nbGUpO1xuICAgIGNvbnN0IG1pblggPSBNYXRoLm1pbih4MTEsIHgxMiwgeDIyLCB4MjEpO1xuICAgIGNvbnN0IG1pblkgPSBNYXRoLm1pbih5MTEsIHkxMiwgeTIyLCB5MjEpO1xuICAgIGNvbnN0IG1heFggPSBNYXRoLm1heCh4MTEsIHgxMiwgeDIyLCB4MjEpO1xuICAgIGNvbnN0IG1heFkgPSBNYXRoLm1heCh5MTEsIHkxMiwgeTIyLCB5MjEpO1xuICAgIGJvdW5kcyA9IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXTtcbiAgfSBlbHNlIGlmIChlbGVtZW50LnR5cGUgPT09IFwiZWxsaXBzZVwiKSB7XG4gICAgY29uc3QgdyA9ICh4MiAtIHgxKSAvIDI7XG4gICAgY29uc3QgaCA9ICh5MiAtIHkxKSAvIDI7XG4gICAgY29uc3QgY29zID0gTWF0aC5jb3MoZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3Qgc2luID0gTWF0aC5zaW4oZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3Qgd3cgPSBNYXRoLmh5cG90KHcgKiBjb3MsIGggKiBzaW4pO1xuICAgIGNvbnN0IGhoID0gTWF0aC5oeXBvdChoICogY29zLCB3ICogc2luKTtcbiAgICBib3VuZHMgPSBbY3ggLSB3dywgY3kgLSBoaCwgY3ggKyB3dywgY3kgKyBoaF07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgW3gxMSwgeTExXSA9IHJvdGF0ZSh4MSwgeTEsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gxMiwgeTEyXSA9IHJvdGF0ZSh4MSwgeTIsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gyMiwgeTIyXSA9IHJvdGF0ZSh4MiwgeTIsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgW3gyMSwgeTIxXSA9IHJvdGF0ZSh4MiwgeTEsIGN4LCBjeSwgZWxlbWVudC5hbmdsZSk7XG4gICAgY29uc3QgbWluWCA9IE1hdGgubWluKHgxMSwgeDEyLCB4MjIsIHgyMSk7XG4gICAgY29uc3QgbWluWSA9IE1hdGgubWluKHkxMSwgeTEyLCB5MjIsIHkyMSk7XG4gICAgY29uc3QgbWF4WCA9IE1hdGgubWF4KHgxMSwgeDEyLCB4MjIsIHgyMSk7XG4gICAgY29uc3QgbWF4WSA9IE1hdGgubWF4KHkxMSwgeTEyLCB5MjIsIHkyMSk7XG4gICAgYm91bmRzID0gW21pblgsIG1pblksIG1heFgsIG1heFldO1xuICB9XG5cbiAgcmV0dXJuIGJvdW5kcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb21tb25Cb3VuZHMgPSAoXG4gIGVsZW1lbnRzOiByZWFkb25seSBFeGNhbGlkcmF3RWxlbWVudFtdLFxuKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPT4ge1xuICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBbMCwgMCwgMCwgMF07XG4gIH1cblxuICBsZXQgbWluWCA9IEluZmluaXR5O1xuICBsZXQgbWF4WCA9IC1JbmZpbml0eTtcbiAgbGV0IG1pblkgPSBJbmZpbml0eTtcbiAgbGV0IG1heFkgPSAtSW5maW5pdHk7XG5cbiAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSBnZXRFbGVtZW50Qm91bmRzKGVsZW1lbnQpO1xuICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCB4MSk7XG4gICAgbWluWSA9IE1hdGgubWluKG1pblksIHkxKTtcbiAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgeDIpO1xuICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCB5Mik7XG4gIH0pO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgbWF4WCwgbWF4WV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplZEVsZW1lbnRBYnNvbHV0ZUNvb3JkcyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0VsZW1lbnQsXG4gIG5leHRXaWR0aDogbnVtYmVyLFxuICBuZXh0SGVpZ2h0OiBudW1iZXIsXG4gIG5vcm1hbGl6ZVBvaW50czogYm9vbGVhbixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgaWYgKCEoaXNMaW5lYXJFbGVtZW50KGVsZW1lbnQpIHx8IGlzRnJlZURyYXdFbGVtZW50KGVsZW1lbnQpKSkge1xuICAgIHJldHVybiBbXG4gICAgICBlbGVtZW50LngsXG4gICAgICBlbGVtZW50LnksXG4gICAgICBlbGVtZW50LnggKyBuZXh0V2lkdGgsXG4gICAgICBlbGVtZW50LnkgKyBuZXh0SGVpZ2h0LFxuICAgIF07XG4gIH1cblxuICBjb25zdCBwb2ludHMgPSByZXNjYWxlUG9pbnRzKFxuICAgIDAsXG4gICAgbmV4dFdpZHRoLFxuICAgIHJlc2NhbGVQb2ludHMoMSwgbmV4dEhlaWdodCwgZWxlbWVudC5wb2ludHMsIG5vcm1hbGl6ZVBvaW50cyksXG4gICAgbm9ybWFsaXplUG9pbnRzLFxuICApO1xuXG4gIGxldCBib3VuZHM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG4gIGlmIChpc0ZyZWVEcmF3RWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEZyZWUgRHJhd1xuICAgIGJvdW5kcyA9IGdldEJvdW5kc0Zyb21Qb2ludHMocG9pbnRzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBMaW5lXG4gICAgY29uc3QgZ2VuID0gcm91Z2guZ2VuZXJhdG9yKCk7XG4gICAgY29uc3QgY3VydmUgPVxuICAgICAgZWxlbWVudC5zdHJva2VTaGFycG5lc3MgPT09IFwic2hhcnBcIlxuICAgICAgICA/IGdlbi5saW5lYXJQYXRoKFxuICAgICAgICAgICAgcG9pbnRzIGFzIFtudW1iZXIsIG51bWJlcl1bXSxcbiAgICAgICAgICAgIGdlbmVyYXRlUm91Z2hPcHRpb25zKGVsZW1lbnQpLFxuICAgICAgICAgIClcbiAgICAgICAgOiBnZW4uY3VydmUoXG4gICAgICAgICAgICBwb2ludHMgYXMgW251bWJlciwgbnVtYmVyXVtdLFxuICAgICAgICAgICAgZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCksXG4gICAgICAgICAgKTtcbiAgICBjb25zdCBvcHMgPSBnZXRDdXJ2ZVBhdGhPcHMoY3VydmUpO1xuICAgIGJvdW5kcyA9IGdldE1pbk1heFhZRnJvbUN1cnZlUGF0aE9wcyhvcHMpO1xuICB9XG5cbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gYm91bmRzO1xuICByZXR1cm4gW1xuICAgIG1pblggKyBlbGVtZW50LngsXG4gICAgbWluWSArIGVsZW1lbnQueSxcbiAgICBtYXhYICsgZWxlbWVudC54LFxuICAgIG1heFkgKyBlbGVtZW50LnksXG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudFBvaW50c0Nvb3JkcyA9IChcbiAgZWxlbWVudDogRXhjYWxpZHJhd0xpbmVhckVsZW1lbnQsXG4gIHBvaW50czogcmVhZG9ubHkgKHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0pW10sXG4gIHNoYXJwbmVzczogRXhjYWxpZHJhd0VsZW1lbnRbXCJzdHJva2VTaGFycG5lc3NcIl0sXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9PiB7XG4gIC8vIFRoaXMgbWlnaHQgYmUgY29tcHV0YXRpb25hbGx5IGhlYXZleVxuICBjb25zdCBnZW4gPSByb3VnaC5nZW5lcmF0b3IoKTtcbiAgY29uc3QgY3VydmUgPVxuICAgIHNoYXJwbmVzcyA9PT0gXCJzaGFycFwiXG4gICAgICA/IGdlbi5saW5lYXJQYXRoKFxuICAgICAgICAgIHBvaW50cyBhcyBbbnVtYmVyLCBudW1iZXJdW10sXG4gICAgICAgICAgZ2VuZXJhdGVSb3VnaE9wdGlvbnMoZWxlbWVudCksXG4gICAgICAgIClcbiAgICAgIDogZ2VuLmN1cnZlKHBvaW50cyBhcyBbbnVtYmVyLCBudW1iZXJdW10sIGdlbmVyYXRlUm91Z2hPcHRpb25zKGVsZW1lbnQpKTtcbiAgY29uc3Qgb3BzID0gZ2V0Q3VydmVQYXRoT3BzKGN1cnZlKTtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0TWluTWF4WFlGcm9tQ3VydmVQYXRoT3BzKG9wcyk7XG4gIHJldHVybiBbXG4gICAgbWluWCArIGVsZW1lbnQueCxcbiAgICBtaW5ZICsgZWxlbWVudC55LFxuICAgIG1heFggKyBlbGVtZW50LngsXG4gICAgbWF4WSArIGVsZW1lbnQueSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDbG9zZXN0RWxlbWVudEJvdW5kcyA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGZyb206IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gWzAsIDAsIDAsIDBdO1xuICB9XG5cbiAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XG4gIGxldCBjbG9zZXN0RWxlbWVudCA9IGVsZW1lbnRzWzBdO1xuXG4gIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBbeDEsIHkxLCB4MiwgeTJdID0gZ2V0RWxlbWVudEJvdW5kcyhlbGVtZW50KTtcbiAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlMmQoKHgxICsgeDIpIC8gMiwgKHkxICsgeTIpIC8gMiwgZnJvbS54LCBmcm9tLnkpO1xuXG4gICAgaWYgKGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICBjbG9zZXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZ2V0RWxlbWVudEJvdW5kcyhjbG9zZXN0RWxlbWVudCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJveCB7XG4gIG1pblg6IG51bWJlcjtcbiAgbWluWTogbnVtYmVyO1xuICBtYXhYOiBudW1iZXI7XG4gIG1heFk6IG51bWJlcjtcbiAgbWlkWDogbnVtYmVyO1xuICBtaWRZOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29tbW9uQm91bmRpbmdCb3ggPSAoXG4gIGVsZW1lbnRzOiBFeGNhbGlkcmF3RWxlbWVudFtdIHwgcmVhZG9ubHkgTm9uRGVsZXRlZDxFeGNhbGlkcmF3RWxlbWVudD5bXSxcbik6IEJveCA9PiB7XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCBtYXhYLCBtYXhZXSA9IGdldENvbW1vbkJvdW5kcyhlbGVtZW50cyk7XG4gIHJldHVybiB7XG4gICAgbWluWCxcbiAgICBtaW5ZLFxuICAgIG1heFgsXG4gICAgbWF4WSxcbiAgICB3aWR0aDogbWF4WCAtIG1pblgsXG4gICAgaGVpZ2h0OiBtYXhZIC0gbWluWSxcbiAgICBtaWRYOiAobWluWCArIG1heFgpIC8gMixcbiAgICBtaWRZOiAobWluWSArIG1heFkpIC8gMixcbiAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../element/bounds.ts\n");
2814
2590
 
2815
2591
  /***/ }),
2816
2592
 
@@ -3133,17 +2909,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3133
2909
 
3134
2910
  /***/ }),
3135
2911
 
3136
- /***/ "./entry.js":
3137
- /*!******************!*\
3138
- !*** ./entry.js ***!
3139
- \******************/
3140
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3141
-
3142
- "use strict";
3143
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Excalidraw\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.Excalidraw),\n/* harmony export */ \"FONT_FAMILY\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.FONT_FAMILY),\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.MIME_TYPES),\n/* harmony export */ \"THEME\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.THEME),\n/* harmony export */ \"bumpVersion\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.bumpVersion),\n/* harmony export */ \"defaultLang\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.defaultLang),\n/* harmony export */ \"exportToBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getFreeDrawSvgPath),\n/* harmony export */ \"getNonDeletedElements\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getNonDeletedElements),\n/* harmony export */ \"getSceneVersion\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getSceneVersion),\n/* harmony export */ \"isInvisiblySmallElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.isInvisiblySmallElement),\n/* harmony export */ \"isLinearElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.isLinearElement),\n/* harmony export */ \"languages\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.languages),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.mergeLibraryItems),\n/* harmony export */ \"mutateElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.mutateElement),\n/* harmony export */ \"newElementWith\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.newElementWith),\n/* harmony export */ \"parseLibraryTokensFromUrl\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.parseLibraryTokensFromUrl),\n/* harmony export */ \"restore\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restore),\n/* harmony export */ \"restoreAppState\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreAppState),\n/* harmony export */ \"restoreElements\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreElements),\n/* harmony export */ \"restoreLibraryItems\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreLibraryItems),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.sceneCoordsToViewportCoords),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.serializeLibraryAsJSON),\n/* harmony export */ \"useHandleLibrary\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.useHandleLibrary),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.viewportCoordsToSceneCoords)\n/* harmony export */ });\n/* harmony import */ var _publicPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./publicPath */ \"./publicPath.js\");\n/* harmony import */ var _polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../polyfill */ \"../../polyfill.ts\");\n/* harmony import */ var _public_fonts_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../public/fonts.css */ \"../../../public/fonts.css\");\n/* harmony import */ var _public_fonts_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_public_fonts_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index */ \"./index.tsx\");\n\n\n\n(0,_polyfill__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9lbnRyeS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXNCO0FBQ2dCO0FBRUg7QUFFbkMscURBQVEsRUFBRSxDQUFDO0FBQ2EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9lbnRyeS5qcz8wOThmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vcHVibGljUGF0aFwiO1xuaW1wb3J0IHBvbHlmaWxsIGZyb20gXCIuLi8uLi9wb2x5ZmlsbFwiO1xuXG5pbXBvcnQgXCIuLi8uLi8uLi9wdWJsaWMvZm9udHMuY3NzXCI7XG5cbnBvbHlmaWxsKCk7XG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleFwiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./entry.js\n");
3144
-
3145
- /***/ }),
3146
-
3147
2912
  /***/ "./index.tsx":
3148
2913
  /*!*******************!*\
3149
2914
  !*** ./index.tsx ***!
@@ -3162,7 +2927,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3162
2927
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3163
2928
 
3164
2929
  "use strict";
3165
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-9a68dbf\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLGdCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
2930
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-a271e42\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLGdCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
3166
2931
 
3167
2932
  /***/ }),
3168
2933
 
@@ -3173,7 +2938,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _con
3173
2938
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3174
2939
 
3175
2940
  "use strict";
3176
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES),\n/* harmony export */ \"exportToBlob\": () => (/* binding */ exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* binding */ exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _renderer_renderElement__WEBPACK_IMPORTED_MODULE_9__.getFreeDrawSvgPath),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_10__.mergeLibraryItems),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _data_json__WEBPACK_IMPORTED_MODULE_6__.serializeLibraryAsJSON)\n/* harmony export */ });\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _data_restore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data/restore */ \"../../data/restore.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data_image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../data/image */ \"../../data/image.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../clipboard */ \"../../clipboard.ts\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _renderer_renderElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../renderer/renderElement */ \"../../renderer/renderElement.ts\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../data/library */ \"../../data/library.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\n\nconst exportToCanvas = ({ elements, appState, files, maxWidthOrHeight, getDimensions, }) => {\n const { elements: restoredElements, appState: restoredAppState } = (0,_data_restore__WEBPACK_IMPORTED_MODULE_3__.restore)({ elements, appState }, null, null);\n const { exportBackground, viewBackgroundColor } = restoredAppState;\n return (0,_scene_export__WEBPACK_IMPORTED_MODULE_0__.exportToCanvas)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(restoredElements), Object.assign(Object.assign({}, restoredAppState), { offsetTop: 0, offsetLeft: 0, width: 0, height: 0 }), files || {}, { exportBackground, viewBackgroundColor }, (width, height) => {\n var _a;\n const canvas = document.createElement(\"canvas\");\n if (maxWidthOrHeight) {\n if (typeof getDimensions === \"function\") {\n console.warn(\"`getDimensions()` is ignored when `maxWidthOrHeight` is supplied.\");\n }\n const max = Math.max(width, height);\n const scale = maxWidthOrHeight / max;\n canvas.width = width * scale;\n canvas.height = height * scale;\n return {\n canvas,\n scale,\n };\n }\n const ret = (getDimensions === null || getDimensions === void 0 ? void 0 : getDimensions(width, height)) || { width, height };\n canvas.width = ret.width;\n canvas.height = ret.height;\n return {\n canvas,\n scale: (_a = ret.scale) !== null && _a !== void 0 ? _a : 1,\n };\n });\n};\nconst exportToBlob = (opts) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n let { mimeType = _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png, quality } = opts;\n if (mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png && typeof quality === \"number\") {\n console.warn(`\"quality\" will be ignored for \"${_constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png}\" mimeType`);\n }\n // typo in MIME type (should be \"jpeg\")\n if (mimeType === \"image/jpg\") {\n mimeType = _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg;\n }\n if (mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg && !((_a = opts.appState) === null || _a === void 0 ? void 0 : _a.exportBackground)) {\n console.warn(`Defaulting \"exportBackground\" to \"true\" for \"${_constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg}\" mimeType`);\n opts = Object.assign(Object.assign({}, opts), { appState: Object.assign(Object.assign({}, opts.appState), { exportBackground: true }) });\n }\n const canvas = yield exportToCanvas(opts);\n quality = quality ? quality : /image\\/jpe?g/.test(mimeType) ? 0.92 : 0.8;\n return new Promise((resolve, reject) => {\n canvas.toBlob((blob) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n if (!blob) {\n return reject(new Error(\"couldn't export to blob\"));\n }\n if (blob &&\n mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png &&\n ((_a = opts.appState) === null || _a === void 0 ? void 0 : _a.exportEmbedScene)) {\n blob = yield (0,_data_image__WEBPACK_IMPORTED_MODULE_5__.encodePngMetadata)({\n blob,\n metadata: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(opts.elements, opts.appState, opts.files || {}, \"local\"),\n });\n }\n resolve(blob);\n }), mimeType, quality);\n });\n});\nconst exportToSvg = ({ elements, appState = (0,_appState__WEBPACK_IMPORTED_MODULE_1__.getDefaultAppState)(), files = {}, exportPadding, }) => __awaiter(void 0, void 0, void 0, function* () {\n const { elements: restoredElements, appState: restoredAppState } = (0,_data_restore__WEBPACK_IMPORTED_MODULE_3__.restore)({ elements, appState }, null, null);\n return (0,_scene_export__WEBPACK_IMPORTED_MODULE_0__.exportToSvg)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(restoredElements), Object.assign(Object.assign({}, restoredAppState), { exportPadding }), files);\n});\nconst exportToClipboard = (opts) => __awaiter(void 0, void 0, void 0, function* () {\n if (opts.type === \"svg\") {\n const svg = yield exportToSvg(opts);\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyTextToSystemClipboard)(svg.outerHTML);\n }\n else if (opts.type === \"png\") {\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyBlobToClipboardAsPng)(exportToBlob(opts));\n }\n else if (opts.type === \"json\") {\n const appState = Object.assign(Object.assign({ offsetTop: 0, offsetLeft: 0, width: 0, height: 0 }, (0,_appState__WEBPACK_IMPORTED_MODULE_1__.getDefaultAppState)()), opts.appState);\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyToClipboard)(opts.elements, appState, opts.files);\n }\n else {\n throw new Error(\"Invalid export type\");\n }\n});\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uL3V0aWxzLnRzP2FjMTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZXhwb3J0VG9DYW52YXMgYXMgX2V4cG9ydFRvQ2FudmFzLFxuICBleHBvcnRUb1N2ZyBhcyBfZXhwb3J0VG9TdmcsXG59IGZyb20gXCIuLi9zY2VuZS9leHBvcnRcIjtcbmltcG9ydCB7IGdldERlZmF1bHRBcHBTdGF0ZSB9IGZyb20gXCIuLi9hcHBTdGF0ZVwiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIEJpbmFyeUZpbGVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBFeGNhbGlkcmF3RWxlbWVudCwgTm9uRGVsZXRlZCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBnZXROb25EZWxldGVkRWxlbWVudHMgfSBmcm9tIFwiLi4vZWxlbWVudFwiO1xuaW1wb3J0IHsgcmVzdG9yZSB9IGZyb20gXCIuLi9kYXRhL3Jlc3RvcmVcIjtcbmltcG9ydCB7IE1JTUVfVFlQRVMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBlbmNvZGVQbmdNZXRhZGF0YSB9IGZyb20gXCIuLi9kYXRhL2ltYWdlXCI7XG5pbXBvcnQgeyBzZXJpYWxpemVBc0pTT04gfSBmcm9tIFwiLi4vZGF0YS9qc29uXCI7XG5pbXBvcnQge1xuICBjb3B5QmxvYlRvQ2xpcGJvYXJkQXNQbmcsXG4gIGNvcHlUZXh0VG9TeXN0ZW1DbGlwYm9hcmQsXG4gIGNvcHlUb0NsaXBib2FyZCxcbn0gZnJvbSBcIi4uL2NsaXBib2FyZFwiO1xuXG5leHBvcnQgeyBNSU1FX1RZUEVTIH07XG5cbnR5cGUgRXhwb3J0T3B0cyA9IHtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWQ8RXhjYWxpZHJhd0VsZW1lbnQ+W107XG4gIGFwcFN0YXRlPzogUGFydGlhbDxPbWl0PEFwcFN0YXRlLCBcIm9mZnNldFRvcFwiIHwgXCJvZmZzZXRMZWZ0XCI+PjtcbiAgZmlsZXM6IEJpbmFyeUZpbGVzIHwgbnVsbDtcbiAgbWF4V2lkdGhPckhlaWdodD86IG51bWJlcjtcbiAgZ2V0RGltZW5zaW9ucz86IChcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICApID0+IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IHNjYWxlPzogbnVtYmVyIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9DYW52YXMgPSAoe1xuICBlbGVtZW50cyxcbiAgYXBwU3RhdGUsXG4gIGZpbGVzLFxuICBtYXhXaWR0aE9ySGVpZ2h0LFxuICBnZXREaW1lbnNpb25zLFxufTogRXhwb3J0T3B0cykgPT4ge1xuICBjb25zdCB7IGVsZW1lbnRzOiByZXN0b3JlZEVsZW1lbnRzLCBhcHBTdGF0ZTogcmVzdG9yZWRBcHBTdGF0ZSB9ID0gcmVzdG9yZShcbiAgICB7IGVsZW1lbnRzLCBhcHBTdGF0ZSB9LFxuICAgIG51bGwsXG4gICAgbnVsbCxcbiAgKTtcbiAgY29uc3QgeyBleHBvcnRCYWNrZ3JvdW5kLCB2aWV3QmFja2dyb3VuZENvbG9yIH0gPSByZXN0b3JlZEFwcFN0YXRlO1xuICByZXR1cm4gX2V4cG9ydFRvQ2FudmFzKFxuICAgIGdldE5vbkRlbGV0ZWRFbGVtZW50cyhyZXN0b3JlZEVsZW1lbnRzKSxcbiAgICB7IC4uLnJlc3RvcmVkQXBwU3RhdGUsIG9mZnNldFRvcDogMCwgb2Zmc2V0TGVmdDogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgIGZpbGVzIHx8IHt9LFxuICAgIHsgZXhwb3J0QmFja2dyb3VuZCwgdmlld0JhY2tncm91bmRDb2xvciB9LFxuICAgICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcblxuICAgICAgaWYgKG1heFdpZHRoT3JIZWlnaHQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBnZXREaW1lbnNpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcImBnZXREaW1lbnNpb25zKClgIGlzIGlnbm9yZWQgd2hlbiBgbWF4V2lkdGhPckhlaWdodGAgaXMgc3VwcGxpZWQuXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpO1xuXG4gICAgICAgIGNvbnN0IHNjYWxlID0gbWF4V2lkdGhPckhlaWdodCAvIG1heDtcblxuICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aCAqIHNjYWxlO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYW52YXMsXG4gICAgICAgICAgc2NhbGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJldCA9IGdldERpbWVuc2lvbnM/Lih3aWR0aCwgaGVpZ2h0KSB8fCB7IHdpZHRoLCBoZWlnaHQgfTtcblxuICAgICAgY2FudmFzLndpZHRoID0gcmV0LndpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IHJldC5oZWlnaHQ7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhbnZhcyxcbiAgICAgICAgc2NhbGU6IHJldC5zY2FsZSA/PyAxLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvQmxvYiA9IGFzeW5jIChcbiAgb3B0czogRXhwb3J0T3B0cyAmIHtcbiAgICBtaW1lVHlwZT86IHN0cmluZztcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICB9LFxuKTogUHJvbWlzZTxCbG9iPiA9PiB7XG4gIGxldCB7IG1pbWVUeXBlID0gTUlNRV9UWVBFUy5wbmcsIHF1YWxpdHkgfSA9IG9wdHM7XG5cbiAgaWYgKG1pbWVUeXBlID09PSBNSU1FX1RZUEVTLnBuZyAmJiB0eXBlb2YgcXVhbGl0eSA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvbnNvbGUud2FybihgXCJxdWFsaXR5XCIgd2lsbCBiZSBpZ25vcmVkIGZvciBcIiR7TUlNRV9UWVBFUy5wbmd9XCIgbWltZVR5cGVgKTtcbiAgfVxuXG4gIC8vIHR5cG8gaW4gTUlNRSB0eXBlIChzaG91bGQgYmUgXCJqcGVnXCIpXG4gIGlmIChtaW1lVHlwZSA9PT0gXCJpbWFnZS9qcGdcIikge1xuICAgIG1pbWVUeXBlID0gTUlNRV9UWVBFUy5qcGc7XG4gIH1cblxuICBpZiAobWltZVR5cGUgPT09IE1JTUVfVFlQRVMuanBnICYmICFvcHRzLmFwcFN0YXRlPy5leHBvcnRCYWNrZ3JvdW5kKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYERlZmF1bHRpbmcgXCJleHBvcnRCYWNrZ3JvdW5kXCIgdG8gXCJ0cnVlXCIgZm9yIFwiJHtNSU1FX1RZUEVTLmpwZ31cIiBtaW1lVHlwZWAsXG4gICAgKTtcbiAgICBvcHRzID0ge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIGFwcFN0YXRlOiB7IC4uLm9wdHMuYXBwU3RhdGUsIGV4cG9ydEJhY2tncm91bmQ6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgY2FudmFzID0gYXdhaXQgZXhwb3J0VG9DYW52YXMob3B0cyk7XG5cbiAgcXVhbGl0eSA9IHF1YWxpdHkgPyBxdWFsaXR5IDogL2ltYWdlXFwvanBlP2cvLnRlc3QobWltZVR5cGUpID8gMC45MiA6IDAuODtcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNhbnZhcy50b0Jsb2IoXG4gICAgICBhc3luYyAoYmxvYikgPT4ge1xuICAgICAgICBpZiAoIWJsb2IpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcImNvdWxkbid0IGV4cG9ydCB0byBibG9iXCIpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgYmxvYiAmJlxuICAgICAgICAgIG1pbWVUeXBlID09PSBNSU1FX1RZUEVTLnBuZyAmJlxuICAgICAgICAgIG9wdHMuYXBwU3RhdGU/LmV4cG9ydEVtYmVkU2NlbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgYmxvYiA9IGF3YWl0IGVuY29kZVBuZ01ldGFkYXRhKHtcbiAgICAgICAgICAgIGJsb2IsXG4gICAgICAgICAgICBtZXRhZGF0YTogc2VyaWFsaXplQXNKU09OKFxuICAgICAgICAgICAgICBvcHRzLmVsZW1lbnRzLFxuICAgICAgICAgICAgICBvcHRzLmFwcFN0YXRlLFxuICAgICAgICAgICAgICBvcHRzLmZpbGVzIHx8IHt9LFxuICAgICAgICAgICAgICBcImxvY2FsXCIsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoYmxvYik7XG4gICAgICB9LFxuICAgICAgbWltZVR5cGUsXG4gICAgICBxdWFsaXR5LFxuICAgICk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKHtcbiAgZWxlbWVudHMsXG4gIGFwcFN0YXRlID0gZ2V0RGVmYXVsdEFwcFN0YXRlKCksXG4gIGZpbGVzID0ge30sXG4gIGV4cG9ydFBhZGRpbmcsXG59OiBPbWl0PEV4cG9ydE9wdHMsIFwiZ2V0RGltZW5zaW9uc1wiPiAmIHtcbiAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbn0pOiBQcm9taXNlPFNWR1NWR0VsZW1lbnQ+ID0+IHtcbiAgY29uc3QgeyBlbGVtZW50czogcmVzdG9yZWRFbGVtZW50cywgYXBwU3RhdGU6IHJlc3RvcmVkQXBwU3RhdGUgfSA9IHJlc3RvcmUoXG4gICAgeyBlbGVtZW50cywgYXBwU3RhdGUgfSxcbiAgICBudWxsLFxuICAgIG51bGwsXG4gICk7XG4gIHJldHVybiBfZXhwb3J0VG9TdmcoXG4gICAgZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzKHJlc3RvcmVkRWxlbWVudHMpLFxuICAgIHtcbiAgICAgIC4uLnJlc3RvcmVkQXBwU3RhdGUsXG4gICAgICBleHBvcnRQYWRkaW5nLFxuICAgIH0sXG4gICAgZmlsZXMsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9DbGlwYm9hcmQgPSBhc3luYyAoXG4gIG9wdHM6IEV4cG9ydE9wdHMgJiB7XG4gICAgbWltZVR5cGU/OiBzdHJpbmc7XG4gICAgcXVhbGl0eT86IG51bWJlcjtcbiAgICB0eXBlOiBcInBuZ1wiIHwgXCJzdmdcIiB8IFwianNvblwiO1xuICB9LFxuKSA9PiB7XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic3ZnXCIpIHtcbiAgICBjb25zdCBzdmcgPSBhd2FpdCBleHBvcnRUb1N2ZyhvcHRzKTtcbiAgICBhd2FpdCBjb3B5VGV4dFRvU3lzdGVtQ2xpcGJvYXJkKHN2Zy5vdXRlckhUTUwpO1xuICB9IGVsc2UgaWYgKG9wdHMudHlwZSA9PT0gXCJwbmdcIikge1xuICAgIGF3YWl0IGNvcHlCbG9iVG9DbGlwYm9hcmRBc1BuZyhleHBvcnRUb0Jsb2Iob3B0cykpO1xuICB9IGVsc2UgaWYgKG9wdHMudHlwZSA9PT0gXCJqc29uXCIpIHtcbiAgICBjb25zdCBhcHBTdGF0ZSA9IHtcbiAgICAgIG9mZnNldFRvcDogMCxcbiAgICAgIG9mZnNldExlZnQ6IDAsXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIC4uLmdldERlZmF1bHRBcHBTdGF0ZSgpLFxuICAgICAgLi4ub3B0cy5hcHBTdGF0ZSxcbiAgICB9O1xuICAgIGF3YWl0IGNvcHlUb0NsaXBib2FyZChvcHRzLmVsZW1lbnRzLCBhcHBTdGF0ZSwgb3B0cy5maWxlcyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBleHBvcnQgdHlwZVwiKTtcbiAgfVxufTtcblxuZXhwb3J0IHsgc2VyaWFsaXplQXNKU09OLCBzZXJpYWxpemVMaWJyYXJ5QXNKU09OIH0gZnJvbSBcIi4uL2RhdGEvanNvblwiO1xuZXhwb3J0IHtcbiAgbG9hZEZyb21CbG9iLFxuICBsb2FkU2NlbmVPckxpYnJhcnlGcm9tQmxvYixcbiAgbG9hZExpYnJhcnlGcm9tQmxvYixcbn0gZnJvbSBcIi4uL2RhdGEvYmxvYlwiO1xuZXhwb3J0IHsgZ2V0RnJlZURyYXdTdmdQYXRoIH0gZnJvbSBcIi4uL3JlbmRlcmVyL3JlbmRlckVsZW1lbnRcIjtcbmV4cG9ydCB7IG1lcmdlTGlicmFyeUl0ZW1zIH0gZnJvbSBcIi4uL2RhdGEvbGlicmFyeVwiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../utils.ts\n");
2941
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES),\n/* harmony export */ \"exportToBlob\": () => (/* binding */ exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* binding */ exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _renderer_renderElement__WEBPACK_IMPORTED_MODULE_9__.getFreeDrawSvgPath),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _data_blob__WEBPACK_IMPORTED_MODULE_8__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_10__.mergeLibraryItems),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _data_json__WEBPACK_IMPORTED_MODULE_6__.serializeLibraryAsJSON)\n/* harmony export */ });\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _data_restore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data/restore */ \"../../data/restore.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data_image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../data/image */ \"../../data/image.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../clipboard */ \"../../clipboard.ts\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _renderer_renderElement__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../renderer/renderElement */ \"../../renderer/renderElement.ts\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../data/library */ \"../../data/library.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\n\nconst exportToCanvas = ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, }) => {\n const { elements: restoredElements, appState: restoredAppState } = (0,_data_restore__WEBPACK_IMPORTED_MODULE_3__.restore)({ elements, appState }, null, null);\n const { exportBackground, viewBackgroundColor } = restoredAppState;\n return (0,_scene_export__WEBPACK_IMPORTED_MODULE_0__.exportToCanvas)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(restoredElements), Object.assign(Object.assign({}, restoredAppState), { offsetTop: 0, offsetLeft: 0, width: 0, height: 0 }), files || {}, { exportBackground, exportPadding, viewBackgroundColor }, (width, height) => {\n var _a;\n const canvas = document.createElement(\"canvas\");\n if (maxWidthOrHeight) {\n if (typeof getDimensions === \"function\") {\n console.warn(\"`getDimensions()` is ignored when `maxWidthOrHeight` is supplied.\");\n }\n const max = Math.max(width, height);\n const scale = maxWidthOrHeight / max;\n canvas.width = width * scale;\n canvas.height = height * scale;\n return {\n canvas,\n scale,\n };\n }\n const ret = (getDimensions === null || getDimensions === void 0 ? void 0 : getDimensions(width, height)) || { width, height };\n canvas.width = ret.width;\n canvas.height = ret.height;\n return {\n canvas,\n scale: (_a = ret.scale) !== null && _a !== void 0 ? _a : 1,\n };\n });\n};\nconst exportToBlob = (opts) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n let { mimeType = _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png, quality } = opts;\n if (mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png && typeof quality === \"number\") {\n console.warn(`\"quality\" will be ignored for \"${_constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png}\" mimeType`);\n }\n // typo in MIME type (should be \"jpeg\")\n if (mimeType === \"image/jpg\") {\n mimeType = _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg;\n }\n if (mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg && !((_a = opts.appState) === null || _a === void 0 ? void 0 : _a.exportBackground)) {\n console.warn(`Defaulting \"exportBackground\" to \"true\" for \"${_constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.jpg}\" mimeType`);\n opts = Object.assign(Object.assign({}, opts), { appState: Object.assign(Object.assign({}, opts.appState), { exportBackground: true }) });\n }\n const canvas = yield exportToCanvas(opts);\n quality = quality ? quality : /image\\/jpe?g/.test(mimeType) ? 0.92 : 0.8;\n return new Promise((resolve, reject) => {\n canvas.toBlob((blob) => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n if (!blob) {\n return reject(new Error(\"couldn't export to blob\"));\n }\n if (blob &&\n mimeType === _constants__WEBPACK_IMPORTED_MODULE_4__.MIME_TYPES.png &&\n ((_a = opts.appState) === null || _a === void 0 ? void 0 : _a.exportEmbedScene)) {\n blob = yield (0,_data_image__WEBPACK_IMPORTED_MODULE_5__.encodePngMetadata)({\n blob,\n metadata: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(opts.elements, opts.appState, opts.files || {}, \"local\"),\n });\n }\n resolve(blob);\n }), mimeType, quality);\n });\n});\nconst exportToSvg = ({ elements, appState = (0,_appState__WEBPACK_IMPORTED_MODULE_1__.getDefaultAppState)(), files = {}, exportPadding, }) => __awaiter(void 0, void 0, void 0, function* () {\n const { elements: restoredElements, appState: restoredAppState } = (0,_data_restore__WEBPACK_IMPORTED_MODULE_3__.restore)({ elements, appState }, null, null);\n return (0,_scene_export__WEBPACK_IMPORTED_MODULE_0__.exportToSvg)((0,_element__WEBPACK_IMPORTED_MODULE_2__.getNonDeletedElements)(restoredElements), Object.assign(Object.assign({}, restoredAppState), { exportPadding }), files);\n});\nconst exportToClipboard = (opts) => __awaiter(void 0, void 0, void 0, function* () {\n if (opts.type === \"svg\") {\n const svg = yield exportToSvg(opts);\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyTextToSystemClipboard)(svg.outerHTML);\n }\n else if (opts.type === \"png\") {\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyBlobToClipboardAsPng)(exportToBlob(opts));\n }\n else if (opts.type === \"json\") {\n const appState = Object.assign(Object.assign({ offsetTop: 0, offsetLeft: 0, width: 0, height: 0 }, (0,_appState__WEBPACK_IMPORTED_MODULE_1__.getDefaultAppState)()), opts.appState);\n yield (0,_clipboard__WEBPACK_IMPORTED_MODULE_7__.copyToClipboard)(opts.elements, appState, opts.files);\n }\n else {\n throw new Error(\"Invalid export type\");\n }\n});\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBRXFFO0FBS2pEO0FBQ3lDO0FBQ1giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vdXRpbHMudHM/YWMxMSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBleHBvcnRUb0NhbnZhcyBhcyBfZXhwb3J0VG9DYW52YXMsXG4gIGV4cG9ydFRvU3ZnIGFzIF9leHBvcnRUb1N2Zyxcbn0gZnJvbSBcIi4uL3NjZW5lL2V4cG9ydFwiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEFwcFN0YXRlIH0gZnJvbSBcIi4uL2FwcFN0YXRlXCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQmluYXJ5RmlsZXMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEV4Y2FsaWRyYXdFbGVtZW50LCBOb25EZWxldGVkIH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IGdldE5vbkRlbGV0ZWRFbGVtZW50cyB9IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgeyByZXN0b3JlIH0gZnJvbSBcIi4uL2RhdGEvcmVzdG9yZVwiO1xuaW1wb3J0IHsgTUlNRV9UWVBFUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGVuY29kZVBuZ01ldGFkYXRhIH0gZnJvbSBcIi4uL2RhdGEvaW1hZ2VcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhL2pzb25cIjtcbmltcG9ydCB7XG4gIGNvcHlCbG9iVG9DbGlwYm9hcmRBc1BuZyxcbiAgY29weVRleHRUb1N5c3RlbUNsaXBib2FyZCxcbiAgY29weVRvQ2xpcGJvYXJkLFxufSBmcm9tIFwiLi4vY2xpcGJvYXJkXCI7XG5cbmV4cG9ydCB7IE1JTUVfVFlQRVMgfTtcblxudHlwZSBFeHBvcnRPcHRzID0ge1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZDxFeGNhbGlkcmF3RWxlbWVudD5bXTtcbiAgYXBwU3RhdGU/OiBQYXJ0aWFsPE9taXQ8QXBwU3RhdGUsIFwib2Zmc2V0VG9wXCIgfCBcIm9mZnNldExlZnRcIj4+O1xuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsO1xuICBtYXhXaWR0aE9ySGVpZ2h0PzogbnVtYmVyO1xuICBnZXREaW1lbnNpb25zPzogKFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICkgPT4geyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcjsgc2NhbGU/OiBudW1iZXIgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NhbnZhcyA9ICh7XG4gIGVsZW1lbnRzLFxuICBhcHBTdGF0ZSxcbiAgZmlsZXMsXG4gIG1heFdpZHRoT3JIZWlnaHQsXG4gIGdldERpbWVuc2lvbnMsXG4gIGV4cG9ydFBhZGRpbmcsXG59OiBFeHBvcnRPcHRzICYge1xuICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xufSkgPT4ge1xuICBjb25zdCB7IGVsZW1lbnRzOiByZXN0b3JlZEVsZW1lbnRzLCBhcHBTdGF0ZTogcmVzdG9yZWRBcHBTdGF0ZSB9ID0gcmVzdG9yZShcbiAgICB7IGVsZW1lbnRzLCBhcHBTdGF0ZSB9LFxuICAgIG51bGwsXG4gICAgbnVsbCxcbiAgKTtcbiAgY29uc3QgeyBleHBvcnRCYWNrZ3JvdW5kLCB2aWV3QmFja2dyb3VuZENvbG9yIH0gPSByZXN0b3JlZEFwcFN0YXRlO1xuICByZXR1cm4gX2V4cG9ydFRvQ2FudmFzKFxuICAgIGdldE5vbkRlbGV0ZWRFbGVtZW50cyhyZXN0b3JlZEVsZW1lbnRzKSxcbiAgICB7IC4uLnJlc3RvcmVkQXBwU3RhdGUsIG9mZnNldFRvcDogMCwgb2Zmc2V0TGVmdDogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgIGZpbGVzIHx8IHt9LFxuICAgIHsgZXhwb3J0QmFja2dyb3VuZCwgZXhwb3J0UGFkZGluZywgdmlld0JhY2tncm91bmRDb2xvciB9LFxuICAgICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcblxuICAgICAgaWYgKG1heFdpZHRoT3JIZWlnaHQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBnZXREaW1lbnNpb25zID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcImBnZXREaW1lbnNpb25zKClgIGlzIGlnbm9yZWQgd2hlbiBgbWF4V2lkdGhPckhlaWdodGAgaXMgc3VwcGxpZWQuXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHdpZHRoLCBoZWlnaHQpO1xuXG4gICAgICAgIGNvbnN0IHNjYWxlID0gbWF4V2lkdGhPckhlaWdodCAvIG1heDtcblxuICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aCAqIHNjYWxlO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYW52YXMsXG4gICAgICAgICAgc2NhbGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJldCA9IGdldERpbWVuc2lvbnM/Lih3aWR0aCwgaGVpZ2h0KSB8fCB7IHdpZHRoLCBoZWlnaHQgfTtcblxuICAgICAgY2FudmFzLndpZHRoID0gcmV0LndpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IHJldC5oZWlnaHQ7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhbnZhcyxcbiAgICAgICAgc2NhbGU6IHJldC5zY2FsZSA/PyAxLFxuICAgICAgfTtcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvQmxvYiA9IGFzeW5jIChcbiAgb3B0czogRXhwb3J0T3B0cyAmIHtcbiAgICBtaW1lVHlwZT86IHN0cmluZztcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgIGV4cG9ydFBhZGRpbmc/OiBudW1iZXI7XG4gIH0sXG4pOiBQcm9taXNlPEJsb2I+ID0+IHtcbiAgbGV0IHsgbWltZVR5cGUgPSBNSU1FX1RZUEVTLnBuZywgcXVhbGl0eSB9ID0gb3B0cztcblxuICBpZiAobWltZVR5cGUgPT09IE1JTUVfVFlQRVMucG5nICYmIHR5cGVvZiBxdWFsaXR5ID09PSBcIm51bWJlclwiKSB7XG4gICAgY29uc29sZS53YXJuKGBcInF1YWxpdHlcIiB3aWxsIGJlIGlnbm9yZWQgZm9yIFwiJHtNSU1FX1RZUEVTLnBuZ31cIiBtaW1lVHlwZWApO1xuICB9XG5cbiAgLy8gdHlwbyBpbiBNSU1FIHR5cGUgKHNob3VsZCBiZSBcImpwZWdcIilcbiAgaWYgKG1pbWVUeXBlID09PSBcImltYWdlL2pwZ1wiKSB7XG4gICAgbWltZVR5cGUgPSBNSU1FX1RZUEVTLmpwZztcbiAgfVxuXG4gIGlmIChtaW1lVHlwZSA9PT0gTUlNRV9UWVBFUy5qcGcgJiYgIW9wdHMuYXBwU3RhdGU/LmV4cG9ydEJhY2tncm91bmQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgRGVmYXVsdGluZyBcImV4cG9ydEJhY2tncm91bmRcIiB0byBcInRydWVcIiBmb3IgXCIke01JTUVfVFlQRVMuanBnfVwiIG1pbWVUeXBlYCxcbiAgICApO1xuICAgIG9wdHMgPSB7XG4gICAgICAuLi5vcHRzLFxuICAgICAgYXBwU3RhdGU6IHsgLi4ub3B0cy5hcHBTdGF0ZSwgZXhwb3J0QmFja2dyb3VuZDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjYW52YXMgPSBhd2FpdCBleHBvcnRUb0NhbnZhcyhvcHRzKTtcblxuICBxdWFsaXR5ID0gcXVhbGl0eSA/IHF1YWxpdHkgOiAvaW1hZ2VcXC9qcGU/Zy8udGVzdChtaW1lVHlwZSkgPyAwLjkyIDogMC44O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY2FudmFzLnRvQmxvYihcbiAgICAgIGFzeW5jIChibG9iKSA9PiB7XG4gICAgICAgIGlmICghYmxvYikge1xuICAgICAgICAgIHJldHVybiByZWplY3QobmV3IEVycm9yKFwiY291bGRuJ3QgZXhwb3J0IHRvIGJsb2JcIikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBibG9iICYmXG4gICAgICAgICAgbWltZVR5cGUgPT09IE1JTUVfVFlQRVMucG5nICYmXG4gICAgICAgICAgb3B0cy5hcHBTdGF0ZT8uZXhwb3J0RW1iZWRTY2VuZVxuICAgICAgICApIHtcbiAgICAgICAgICBibG9iID0gYXdhaXQgZW5jb2RlUG5nTWV0YWRhdGEoe1xuICAgICAgICAgICAgYmxvYixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBzZXJpYWxpemVBc0pTT04oXG4gICAgICAgICAgICAgIG9wdHMuZWxlbWVudHMsXG4gICAgICAgICAgICAgIG9wdHMuYXBwU3RhdGUsXG4gICAgICAgICAgICAgIG9wdHMuZmlsZXMgfHwge30sXG4gICAgICAgICAgICAgIFwibG9jYWxcIixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShibG9iKTtcbiAgICAgIH0sXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHF1YWxpdHksXG4gICAgKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VG9TdmcgPSBhc3luYyAoe1xuICBlbGVtZW50cyxcbiAgYXBwU3RhdGUgPSBnZXREZWZhdWx0QXBwU3RhdGUoKSxcbiAgZmlsZXMgPSB7fSxcbiAgZXhwb3J0UGFkZGluZyxcbn06IE9taXQ8RXhwb3J0T3B0cywgXCJnZXREaW1lbnNpb25zXCI+ICYge1xuICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xufSk6IFByb21pc2U8U1ZHU1ZHRWxlbWVudD4gPT4ge1xuICBjb25zdCB7IGVsZW1lbnRzOiByZXN0b3JlZEVsZW1lbnRzLCBhcHBTdGF0ZTogcmVzdG9yZWRBcHBTdGF0ZSB9ID0gcmVzdG9yZShcbiAgICB7IGVsZW1lbnRzLCBhcHBTdGF0ZSB9LFxuICAgIG51bGwsXG4gICAgbnVsbCxcbiAgKTtcbiAgcmV0dXJuIF9leHBvcnRUb1N2ZyhcbiAgICBnZXROb25EZWxldGVkRWxlbWVudHMocmVzdG9yZWRFbGVtZW50cyksXG4gICAge1xuICAgICAgLi4ucmVzdG9yZWRBcHBTdGF0ZSxcbiAgICAgIGV4cG9ydFBhZGRpbmcsXG4gICAgfSxcbiAgICBmaWxlcyxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NsaXBib2FyZCA9IGFzeW5jIChcbiAgb3B0czogRXhwb3J0T3B0cyAmIHtcbiAgICBtaW1lVHlwZT86IHN0cmluZztcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgIHR5cGU6IFwicG5nXCIgfCBcInN2Z1wiIHwgXCJqc29uXCI7XG4gIH0sXG4pID0+IHtcbiAgaWYgKG9wdHMudHlwZSA9PT0gXCJzdmdcIikge1xuICAgIGNvbnN0IHN2ZyA9IGF3YWl0IGV4cG9ydFRvU3ZnKG9wdHMpO1xuICAgIGF3YWl0IGNvcHlUZXh0VG9TeXN0ZW1DbGlwYm9hcmQoc3ZnLm91dGVySFRNTCk7XG4gIH0gZWxzZSBpZiAob3B0cy50eXBlID09PSBcInBuZ1wiKSB7XG4gICAgYXdhaXQgY29weUJsb2JUb0NsaXBib2FyZEFzUG5nKGV4cG9ydFRvQmxvYihvcHRzKSk7XG4gIH0gZWxzZSBpZiAob3B0cy50eXBlID09PSBcImpzb25cIikge1xuICAgIGNvbnN0IGFwcFN0YXRlID0ge1xuICAgICAgb2Zmc2V0VG9wOiAwLFxuICAgICAgb2Zmc2V0TGVmdDogMCxcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwLFxuICAgICAgLi4uZ2V0RGVmYXVsdEFwcFN0YXRlKCksXG4gICAgICAuLi5vcHRzLmFwcFN0YXRlLFxuICAgIH07XG4gICAgYXdhaXQgY29weVRvQ2xpcGJvYXJkKG9wdHMuZWxlbWVudHMsIGFwcFN0YXRlLCBvcHRzLmZpbGVzKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGV4cG9ydCB0eXBlXCIpO1xuICB9XG59O1xuXG5leHBvcnQgeyBzZXJpYWxpemVBc0pTT04sIHNlcmlhbGl6ZUxpYnJhcnlBc0pTT04gfSBmcm9tIFwiLi4vZGF0YS9qc29uXCI7XG5leHBvcnQge1xuICBsb2FkRnJvbUJsb2IsXG4gIGxvYWRTY2VuZU9yTGlicmFyeUZyb21CbG9iLFxuICBsb2FkTGlicmFyeUZyb21CbG9iLFxufSBmcm9tIFwiLi4vZGF0YS9ibG9iXCI7XG5leHBvcnQgeyBnZXRGcmVlRHJhd1N2Z1BhdGggfSBmcm9tIFwiLi4vcmVuZGVyZXIvcmVuZGVyRWxlbWVudFwiO1xuZXhwb3J0IHsgbWVyZ2VMaWJyYXJ5SXRlbXMgfSBmcm9tIFwiLi4vZGF0YS9saWJyYXJ5XCI7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../utils.ts\n");
3177
2942
 
3178
2943
  /***/ }),
3179
2944
 
@@ -3272,7 +3037,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3272
3037
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3273
3038
 
3274
3039
  "use strict";
3275
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)({\n elements,\n appState,\n scale,\n rc: roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas),\n canvas,\n renderConfig: {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n },\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-9a68dbf\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3NjZW5lL2V4cG9ydC50cz85YmY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb3VnaCBmcm9tIFwicm91Z2hqcy9iaW4vcm91Z2hcIjtcbmltcG9ydCB7IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRDb21tb25Cb3VuZHMgfSBmcm9tIFwiLi4vZWxlbWVudC9ib3VuZHNcIjtcbmltcG9ydCB7IHJlbmRlclNjZW5lLCByZW5kZXJTY2VuZVRvU3ZnIH0gZnJvbSBcIi4uL3JlbmRlcmVyL3JlbmRlclNjZW5lXCI7XG5pbXBvcnQgeyBkaXN0YW5jZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIEJpbmFyeUZpbGVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VYUE9SVF9QQURESU5HLCBTVkdfTlMsIFRIRU1FX0ZJTFRFUiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldERlZmF1bHRBcHBTdGF0ZSB9IGZyb20gXCIuLi9hcHBTdGF0ZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplQXNKU09OIH0gZnJvbSBcIi4uL2RhdGEvanNvblwiO1xuaW1wb3J0IHtcbiAgZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzLFxuICB1cGRhdGVJbWFnZUNhY2hlLFxufSBmcm9tIFwiLi4vZWxlbWVudC9pbWFnZVwiO1xuXG5leHBvcnQgY29uc3QgU1ZHX0VYUE9SVF9UQUcgPSBgPCEtLSBzdmctc291cmNlOmV4Y2FsaWRyYXcgLS0+YDtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvQ2FudmFzID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgZmlsZXM6IEJpbmFyeUZpbGVzLFxuICB7XG4gICAgZXhwb3J0QmFja2dyb3VuZCxcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICB9OiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgfSxcbiAgY3JlYXRlQ2FudmFzOiAoXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgKSA9PiB7IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7IHNjYWxlOiBudW1iZXIgfSA9ICh3aWR0aCwgaGVpZ2h0KSA9PiB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aCAqIGFwcFN0YXRlLmV4cG9ydFNjYWxlO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQgKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICByZXR1cm4geyBjYW52YXMsIHNjYWxlOiBhcHBTdGF0ZS5leHBvcnRTY2FsZSB9O1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpO1xuXG4gIGNvbnN0IHsgY2FudmFzLCBzY2FsZSA9IDEgfSA9IGNyZWF0ZUNhbnZhcyh3aWR0aCwgaGVpZ2h0KTtcblxuICBjb25zdCBkZWZhdWx0QXBwU3RhdGUgPSBnZXREZWZhdWx0QXBwU3RhdGUoKTtcblxuICBjb25zdCB7IGltYWdlQ2FjaGUgfSA9IGF3YWl0IHVwZGF0ZUltYWdlQ2FjaGUoe1xuICAgIGltYWdlQ2FjaGU6IG5ldyBNYXAoKSxcbiAgICBmaWxlSWRzOiBnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHMoZWxlbWVudHMpLm1hcChcbiAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmZpbGVJZCxcbiAgICApLFxuICAgIGZpbGVzLFxuICB9KTtcblxuICByZW5kZXJTY2VuZSh7XG4gICAgZWxlbWVudHMsXG4gICAgYXBwU3RhdGUsXG4gICAgc2NhbGUsXG4gICAgcmM6IHJvdWdoLmNhbnZhcyhjYW52YXMpLFxuICAgIGNhbnZhcyxcbiAgICByZW5kZXJDb25maWc6IHtcbiAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICAgIHNjcm9sbFg6IC1taW5YICsgZXhwb3J0UGFkZGluZyxcbiAgICAgIHNjcm9sbFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgICAgcmVtb3RlUG9pbnRlclZpZXdwb3J0Q29vcmRzOiB7fSxcbiAgICAgIHJlbW90ZVNlbGVjdGVkRWxlbWVudElkczoge30sXG4gICAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgICAgcmVtb3RlUG9pbnRlclVzZXJuYW1lczoge30sXG4gICAgICByZW1vdGVQb2ludGVyVXNlclN0YXRlczoge30sXG4gICAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgICBpbWFnZUNhY2hlLFxuICAgICAgcmVuZGVyU2Nyb2xsYmFyczogZmFsc2UsXG4gICAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgcmVuZGVyR3JpZDogZmFsc2UsXG4gICAgICBpc0V4cG9ydGluZzogdHJ1ZSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
3040
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)({\n elements,\n appState,\n scale,\n rc: roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas),\n canvas,\n renderConfig: {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n },\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-a271e42\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Iiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3NjZW5lL2V4cG9ydC50cz85YmY3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByb3VnaCBmcm9tIFwicm91Z2hqcy9iaW4vcm91Z2hcIjtcbmltcG9ydCB7IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRDb21tb25Cb3VuZHMgfSBmcm9tIFwiLi4vZWxlbWVudC9ib3VuZHNcIjtcbmltcG9ydCB7IHJlbmRlclNjZW5lLCByZW5kZXJTY2VuZVRvU3ZnIH0gZnJvbSBcIi4uL3JlbmRlcmVyL3JlbmRlclNjZW5lXCI7XG5pbXBvcnQgeyBkaXN0YW5jZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXBwU3RhdGUsIEJpbmFyeUZpbGVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VYUE9SVF9QQURESU5HLCBTVkdfTlMsIFRIRU1FX0ZJTFRFUiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldERlZmF1bHRBcHBTdGF0ZSB9IGZyb20gXCIuLi9hcHBTdGF0ZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplQXNKU09OIH0gZnJvbSBcIi4uL2RhdGEvanNvblwiO1xuaW1wb3J0IHtcbiAgZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzLFxuICB1cGRhdGVJbWFnZUNhY2hlLFxufSBmcm9tIFwiLi4vZWxlbWVudC9pbWFnZVwiO1xuXG5leHBvcnQgY29uc3QgU1ZHX0VYUE9SVF9UQUcgPSBgPCEtLSBzdmctc291cmNlOmV4Y2FsaWRyYXcgLS0+YDtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvQ2FudmFzID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgZmlsZXM6IEJpbmFyeUZpbGVzLFxuICB7XG4gICAgZXhwb3J0QmFja2dyb3VuZCxcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICB9OiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgfSxcbiAgY3JlYXRlQ2FudmFzOiAoXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgKSA9PiB7IGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7IHNjYWxlOiBudW1iZXIgfSA9ICh3aWR0aCwgaGVpZ2h0KSA9PiB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aCAqIGFwcFN0YXRlLmV4cG9ydFNjYWxlO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQgKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICByZXR1cm4geyBjYW52YXMsIHNjYWxlOiBhcHBTdGF0ZS5leHBvcnRTY2FsZSB9O1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IFttaW5YLCBtaW5ZLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpO1xuXG4gIGNvbnN0IHsgY2FudmFzLCBzY2FsZSA9IDEgfSA9IGNyZWF0ZUNhbnZhcyh3aWR0aCwgaGVpZ2h0KTtcblxuICBjb25zdCBkZWZhdWx0QXBwU3RhdGUgPSBnZXREZWZhdWx0QXBwU3RhdGUoKTtcblxuICBjb25zdCB7IGltYWdlQ2FjaGUgfSA9IGF3YWl0IHVwZGF0ZUltYWdlQ2FjaGUoe1xuICAgIGltYWdlQ2FjaGU6IG5ldyBNYXAoKSxcbiAgICBmaWxlSWRzOiBnZXRJbml0aWFsaXplZEltYWdlRWxlbWVudHMoZWxlbWVudHMpLm1hcChcbiAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50LmZpbGVJZCxcbiAgICApLFxuICAgIGZpbGVzLFxuICB9KTtcblxuICByZW5kZXJTY2VuZSh7XG4gICAgZWxlbWVudHMsXG4gICAgYXBwU3RhdGUsXG4gICAgc2NhbGUsXG4gICAgcmM6IHJvdWdoLmNhbnZhcyhjYW52YXMpLFxuICAgIGNhbnZhcyxcbiAgICByZW5kZXJDb25maWc6IHtcbiAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICAgIHNjcm9sbFg6IC1taW5YICsgZXhwb3J0UGFkZGluZyxcbiAgICAgIHNjcm9sbFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgICAgcmVtb3RlUG9pbnRlclZpZXdwb3J0Q29vcmRzOiB7fSxcbiAgICAgIHJlbW90ZVNlbGVjdGVkRWxlbWVudElkczoge30sXG4gICAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgICAgcmVtb3RlUG9pbnRlclVzZXJuYW1lczoge30sXG4gICAgICByZW1vdGVQb2ludGVyVXNlclN0YXRlczoge30sXG4gICAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgICBpbWFnZUNhY2hlLFxuICAgICAgcmVuZGVyU2Nyb2xsYmFyczogZmFsc2UsXG4gICAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgcmVuZGVyR3JpZDogZmFsc2UsXG4gICAgICBpc0V4cG9ydGluZzogdHJ1ZSxcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
3276
3041
 
3277
3042
  /***/ }),
3278
3043
 
@@ -3360,7 +3125,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3360
3125
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3361
3126
 
3362
3127
  "use strict";
3363
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn, opts) => {\n let timerId = null;\n let lastArgs = null;\n let lastArgsTrailing = null;\n const scheduleFunc = (args) => {\n timerId = window.requestAnimationFrame(() => {\n timerId = null;\n fn(...args);\n lastArgs = null;\n if (lastArgsTrailing) {\n lastArgs = lastArgsTrailing;\n lastArgsTrailing = null;\n scheduleFunc(lastArgs);\n }\n });\n };\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n if (timerId === null) {\n scheduleFunc(lastArgs);\n }\n else if (opts === null || opts === void 0 ? void 0 : opts.trailing) {\n lastArgsTrailing = args;\n }\n };\n ret.flush = () => {\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n if (lastArgs) {\n fn(...(lastArgsTrailing || lastArgs));\n lastArgs = lastArgsTrailing = null;\n }\n };\n ret.cancel = () => {\n lastArgs = lastArgsTrailing = null;\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9a68dbf\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9a68dbf\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFFBQVEsSUFBSSxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUssTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUk7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDdEQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBVSxFQUNzQyxFQUFFO0lBQ2xELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSztRQUNQLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFPLElBQUksS0FBSztRQUNoQixTQUFTLElBQUksS0FBSyxDQUNuQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxnQkFBZ0IsQ0FDbkQsb0VBQW9FLENBQ3JFLENBQUM7SUFFRixPQUFPLGlCQUFpQjtRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBRSxPQUE0QixDQUFDLFFBQVEsQ0FDbkU7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3V0aWxzLnRzPzc2M2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9jIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcIi4vY29sb3JzXCI7XG5pbXBvcnQge1xuICBDVVJTT1JfVFlQRSxcbiAgREVGQVVMVF9WRVJTSU9OLFxuICBFVkVOVCxcbiAgRk9OVF9GQU1JTFksXG4gIE1JTUVfVFlQRVMsXG4gIFRIRU1FLFxuICBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRm9udEZhbWlseVZhbHVlcywgRm9udFN0cmluZyB9IGZyb20gXCIuL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBEYXRhVVJMLCBMYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlciwgWm9vbSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IGlzRGFyd2luIH0gZnJvbSBcIi4va2V5c1wiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4vc2hhcGVzXCI7XG5cbmxldCBtb2NrRGF0ZVRpbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0ZVRpbWVGb3JUZXN0cyA9IChkYXRlVGltZTogc3RyaW5nKSA9PiB7XG4gIG1vY2tEYXRlVGltZSA9IGRhdGVUaW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVUaW1lID0gKCkgPT4ge1xuICBpZiAobW9ja0RhdGVUaW1lKSB7XG4gICAgcmV0dXJuIG1vY2tEYXRlVGltZTtcbiAgfVxuXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IGAke2RhdGUuZ2V0TW9udGgoKSArIDF9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGRheSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBociA9IGAke2RhdGUuZ2V0SG91cnMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgbWluID0gYCR7ZGF0ZS5nZXRNaW51dGVzKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG5cbiAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fS0ke2hyfSR7bWlufWA7XG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT5cbiAgc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXG5leHBvcnQgY29uc3QgaXNUb29sSWNvbiA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzIEhUTUxFbGVtZW50ID0+XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoXCJUb29sSWNvblwiKTtcblxuZXhwb3J0IGNvbnN0IGlzSW5wdXRMaWtlID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXNcbiAgfCBIVE1MSW5wdXRFbGVtZW50XG4gIHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICB8IEhUTUxTZWxlY3RFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50O1xuXG5leHBvcnQgY29uc3QgaXNXcml0YWJsZUVsZW1lbnQgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxuICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICh0YXJnZXQudHlwZSA9PT0gXCJ0ZXh0XCIgfHwgdGFyZ2V0LnR5cGUgPT09IFwibnVtYmVyXCIpKTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRGYW1pbHlTdHJpbmcgPSAoe1xuICBmb250RmFtaWx5LFxufToge1xuICBmb250RmFtaWx5OiBGb250RmFtaWx5VmFsdWVzO1xufSkgPT4ge1xuICBmb3IgKGNvbnN0IFtmb250RmFtaWx5U3RyaW5nLCBpZF0gb2YgT2JqZWN0LmVudHJpZXMoRk9OVF9GQU1JTFkpKSB7XG4gICAgaWYgKGlkID09PSBmb250RmFtaWx5KSB7XG4gICAgICByZXR1cm4gYCR7Zm9udEZhbWlseVN0cmluZ30sICR7V0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UfWA7XG4gICAgfVxuICB9XG4gIHJldHVybiBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQ7XG59O1xuXG4vKiogcmV0dXJucyBmb250U2l6ZStmb250RmFtaWx5IHN0cmluZyBmb3IgYXNzaWdubWVudCB0byBET00gZWxlbWVudHMgKi9cbmV4cG9ydCBjb25zdCBnZXRGb250U3RyaW5nID0gKHtcbiAgZm9udFNpemUsXG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIHJldHVybiBgJHtmb250U2l6ZX1weCAke2dldEZvbnRGYW1pbHlTdHJpbmcoeyBmb250RmFtaWx5IH0pfWAgYXMgRm9udFN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWJvdW5jZSA9IDxUIGV4dGVuZHMgYW55W10+KFxuICBmbjogKC4uLmFyZ3M6IFQpID0+IHZvaWQsXG4gIHRpbWVvdXQ6IG51bWJlcixcbikgPT4ge1xuICBsZXQgaGFuZGxlID0gMDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IHJldCA9ICguLi5hcmdzOiBUKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICAgIGhhbmRsZSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaWYgKGxhc3RBcmdzKSB7XG4gICAgICBjb25zdCBfbGFzdEFyZ3MgPSBsYXN0QXJncztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLl9sYXN0QXJncyk7XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIHRocm90dGxlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgb25jZSBwZXIgYW5pbWF0aW9uIGZyYW1lXG5leHBvcnQgY29uc3QgdGhyb3R0bGVSQUYgPSA8VCBleHRlbmRzIGFueVtdPihcbiAgZm46ICguLi5hcmdzOiBUKSA9PiB2b2lkLFxuICBvcHRzPzogeyB0cmFpbGluZz86IGJvb2xlYW4gfSxcbikgPT4ge1xuICBsZXQgdGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBsYXN0QXJnczogVCB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdEFyZ3NUcmFpbGluZzogVCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IHNjaGVkdWxlRnVuYyA9IChhcmdzOiBUKSA9PiB7XG4gICAgdGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGlmIChsYXN0QXJnc1RyYWlsaW5nKSB7XG4gICAgICAgIGxhc3RBcmdzID0gbGFzdEFyZ3NUcmFpbGluZztcbiAgICAgICAgbGFzdEFyZ3NUcmFpbGluZyA9IG51bGw7XG4gICAgICAgIHNjaGVkdWxlRnVuYyhsYXN0QXJncyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiKSB7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGlmICh0aW1lcklkID09PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZ1bmMobGFzdEFyZ3MpO1xuICAgIH0gZWxzZSBpZiAob3B0cz8udHJhaWxpbmcpIHtcbiAgICAgIGxhc3RBcmdzVHJhaWxpbmcgPSBhcmdzO1xuICAgIH1cbiAgfTtcbiAgcmV0LmZsdXNoID0gKCkgPT4ge1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGZuKC4uLihsYXN0QXJnc1RyYWlsaW5nIHx8IGxhc3RBcmdzKSk7XG4gICAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0LmNhbmNlbCA9ICgpID0+IHtcbiAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvZXMvY2h1bmsuanNcbmV4cG9ydCBjb25zdCBjaHVuayA9IDxUIGV4dGVuZHMgYW55PihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgc2l6ZTogbnVtYmVyLFxuKTogVFtdW10gPT4ge1xuICBpZiAoIWFycmF5Lmxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgcmVzSW5kZXggPSAwO1xuICBjb25zdCByZXN1bHQgPSBBcnJheShNYXRoLmNlaWwoYXJyYXkubGVuZ3RoIC8gc2l6ZSkpO1xuICB3aGlsZSAoaW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBhcnJheS5zbGljZShpbmRleCwgKGluZGV4ICs9IHNpemUpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5vZGUgPSAobm9kZTogRWxlbWVudCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VsZWN0aW9uID0gKCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXN0YW5jZSA9ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4gTWF0aC5hYnMoeCAtIHkpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aXZlVG9vbCA9IChcbiAgYXBwU3RhdGU6IFBpY2s8QXBwU3RhdGUsIFwiYWN0aXZlVG9vbFwiPixcbiAgZGF0YTogKFxuICAgIHwgeyB0eXBlOiB0eXBlb2YgU0hBUEVTW251bWJlcl1bXCJ2YWx1ZVwiXSB8IFwiZXJhc2VyXCIgfVxuICAgIHwgeyB0eXBlOiBcImN1c3RvbVwiOyBjdXN0b21UeXBlOiBzdHJpbmcgfVxuICApICYgeyBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcj86IExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyIH0sXG4pOiBBcHBTdGF0ZVtcImFjdGl2ZVRvb2xcIl0gPT4ge1xuICBpZiAoZGF0YS50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgICAgY3VzdG9tVHlwZTogZGF0YS5jdXN0b21UeXBlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgbGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXI6XG4gICAgICBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBhcHBTdGF0ZS5hY3RpdmVUb29sLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyXG4gICAgICAgIDogZGF0YS5sYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcixcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgY3VzdG9tVHlwZTogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBpZiAoY2FudmFzKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IFwiXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3IgPSAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsIGN1cnNvcjogc3RyaW5nKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gY3Vyc29yO1xuICB9XG59O1xuXG5sZXQgZXJhc2VyQ2FudmFzQ2FjaGU6IGFueTtcbmxldCBwcmV2aWV3RGF0YVVSTDogc3RyaW5nO1xuZXhwb3J0IGNvbnN0IHNldEVyYXNlckN1cnNvciA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIHRoZW1lOiBBcHBTdGF0ZVtcInRoZW1lXCJdLFxuKSA9PiB7XG4gIGNvbnN0IGN1cnNvckltYWdlU2l6ZVB4ID0gMjA7XG5cbiAgY29uc3QgZHJhd0NhbnZhcyA9ICgpID0+IHtcbiAgICBjb25zdCBpc0RhcmtUaGVtZSA9IHRoZW1lID09PSBUSEVNRS5EQVJLO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSA9IHRoZW1lO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCA9IGN1cnNvckltYWdlU2l6ZVB4O1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgY29uc3QgY29udGV4dCA9IGVyYXNlckNhbnZhc0NhY2hlLmdldENvbnRleHQoXCIyZFwiKSE7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSAxO1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dC5hcmMoXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS53aWR0aCAvIDIsXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS5oZWlnaHQgLyAyLFxuICAgICAgNSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSSxcbiAgICApO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaXNEYXJrVGhlbWUgPyBvYy5ibGFjayA6IG9jLndoaXRlO1xuICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLndoaXRlIDogb2MuYmxhY2s7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBwcmV2aWV3RGF0YVVSTCA9IGVyYXNlckNhbnZhc0NhY2hlLnRvRGF0YVVSTChNSU1FX1RZUEVTLnN2ZykgYXMgRGF0YVVSTDtcbiAgfTtcbiAgaWYgKCFlcmFzZXJDYW52YXNDYWNoZSB8fCBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICBkcmF3Q2FudmFzKCk7XG4gIH1cblxuICBzZXRDdXJzb3IoXG4gICAgY2FudmFzLFxuICAgIGB1cmwoJHtwcmV2aWV3RGF0YVVSTH0pICR7Y3Vyc29ySW1hZ2VTaXplUHggLyAyfSAke1xuICAgICAgY3Vyc29ySW1hZ2VTaXplUHggLyAyXG4gICAgfSwgYXV0b2AsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q3Vyc29yRm9yU2hhcGUgPSAoXG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4pID0+IHtcbiAgaWYgKCFjYW52YXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSA9PT0gXCJzZWxlY3Rpb25cIikge1xuICAgIHJlc2V0Q3Vyc29yKGNhbnZhcyk7XG4gIH0gZWxzZSBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcImVyYXNlclwiKSB7XG4gICAgc2V0RXJhc2VyQ3Vyc29yKGNhbnZhcywgYXBwU3RhdGUudGhlbWUpO1xuICAgIC8vIGRvIG5vdGhpbmcgaWYgaW1hZ2UgdG9vbCBpcyBzZWxlY3RlZCB3aGljaCBzdWdnZXN0cyB0aGVyZSdzXG4gICAgLy8gYSBpbWFnZS1wcmV2aWV3IHNldCBhcyB0aGUgY3Vyc29yXG4gICAgLy8gSWdub3JlIGN1c3RvbSB0eXBlIGFzIHdlbGwgYW5kIGxldCBob3N0IGRlY2lkZVxuICB9IGVsc2UgaWYgKCFbXCJpbWFnZVwiLCBcImN1c3RvbVwiXS5pbmNsdWRlcyhhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUpKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IENVUlNPUl9UWVBFLkNST1NTSEFJUjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50Py5ub2RlTmFtZSA9PT0gXCJIVE1MXCI7XG5cbmV4cG9ydCBjb25zdCBhbGxvd0Z1bGxTY3JlZW4gPSAoKSA9PlxuICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGV4aXRGdWxsU2NyZWVuID0gKCkgPT4gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGdldFNob3J0Y3V0S2V5ID0gKHNob3J0Y3V0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzaG9ydGN1dCA9IHNob3J0Y3V0XG4gICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIkFsdFwiKVxuICAgIC5yZXBsYWNlKC9cXGJTaGlmdFxcYi9pLCBcIlNoaWZ0XCIpXG4gICAgLnJlcGxhY2UoL1xcYihFbnRlcnxSZXR1cm4pXFxiL2ksIFwiRW50ZXJcIilcbiAgICAucmVwbGFjZSgvXFxiRGVsXFxiL2ksIFwiRGVsZXRlXCIpO1xuXG4gIGlmIChpc0Rhcndpbikge1xuICAgIHJldHVybiBzaG9ydGN1dFxuICAgICAgLnJlcGxhY2UoL1xcYkN0cmxPckNtZFxcYi9pLCBcIkNtZFwiKVxuICAgICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIk9wdGlvblwiKTtcbiAgfVxuICByZXR1cm4gc2hvcnRjdXQucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ3RybFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMgPSAoXG4gIHsgY2xpZW50WCwgY2xpZW50WSB9OiB7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgaW52U2NhbGUgPSAxIC8gem9vbS52YWx1ZTtcbiAgY29uc3QgeCA9IChjbGllbnRYIC0gb2Zmc2V0TGVmdCkgKiBpbnZTY2FsZSAtIHNjcm9sbFg7XG4gIGNvbnN0IHkgPSAoY2xpZW50WSAtIG9mZnNldFRvcCkgKiBpbnZTY2FsZSAtIHNjcm9sbFk7XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcyA9IChcbiAgeyBzY2VuZVgsIHNjZW5lWSB9OiB7IHNjZW5lWDogbnVtYmVyOyBzY2VuZVk6IG51bWJlciB9LFxuICB7XG4gICAgem9vbSxcbiAgICBvZmZzZXRMZWZ0LFxuICAgIG9mZnNldFRvcCxcbiAgICBzY3JvbGxYLFxuICAgIHNjcm9sbFksXG4gIH06IHtcbiAgICB6b29tOiBab29tO1xuICAgIG9mZnNldExlZnQ6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBzY3JvbGxYOiBudW1iZXI7XG4gICAgc2Nyb2xsWTogbnVtYmVyO1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IHggPSAoc2NlbmVYICsgc2Nyb2xsWCkgKiB6b29tLnZhbHVlICsgb2Zmc2V0TGVmdDtcbiAgY29uc3QgeSA9IChzY2VuZVkgKyBzY3JvbGxZKSAqIHpvb20udmFsdWUgKyBvZmZzZXRUb3A7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxDU1NWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcpID0+XG4gIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLSR7bmFtZX1gKTtcblxuY29uc3QgUlNfTFRSX0NIQVJTID1cbiAgXCJBLVphLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyQjhcXHUwMzAwLVxcdTA1OTBcXHUwODAwLVxcdTFGRkZcIiArXG4gIFwiXFx1MkMwMC1cXHVGQjFDXFx1RkRGRS1cXHVGRTZGXFx1RkVGRC1cXHVGRkZGXCI7XG5jb25zdCBSU19SVExfQ0hBUlMgPSBcIlxcdTA1OTEtXFx1MDdGRlxcdUZCMUQtXFx1RkRGRFxcdUZFNzAtXFx1RkVGQ1wiO1xuY29uc3QgUkVfUlRMX0NIRUNLID0gbmV3IFJlZ0V4cChgXlteJHtSU19MVFJfQ0hBUlN9XSpbJHtSU19SVExfQ0hBUlN9XWApO1xuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBmaXJzdCBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaXMgUlRMLiBNZWFuaW5nIHdoZXRoZXIgaXQgc3RhcnRzXG4gKiAgd2l0aCBSVEwgY2hhcmFjdGVycywgb3IgaW5kZXRlcm1pbmF0ZSAobnVtYmVycyBldGMuKSBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5XG4gKiAgUlRMLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvcHVsbC8xNzIyI2Rpc2N1c3Npb25fcjQzNjM0MDE3MVxuICovXG5leHBvcnQgY29uc3QgaXNSVEwgPSAodGV4dDogc3RyaW5nKSA9PiBSRV9SVExfQ0hFQ0sudGVzdCh0ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHR1cGxlVG9Db29ycyA9IChcbiAgeHlUdXBsZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSxcbik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IFt4LCB5XSA9IHh5VHVwbGU7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbi8qKiB1c2UgYXMgYSByZWplY3Rpb25IYW5kbGVyIHRvIG11dGUgZmlsZXN5c3RlbSBBYm9ydCBlcnJvcnMgKi9cbmV4cG9ydCBjb25zdCBtdXRlRlNBYm9ydEVycm9yID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgaWYgKGVycm9yPy5uYW1lID09PSBcIkFib3J0RXJyb3JcIikge1xuICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRJbmRleCA9IDxUPihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgY2I6IChlbGVtZW50OiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBib29sZWFuLFxuICBmcm9tSW5kZXg6IG51bWJlciA9IDAsXG4pID0+IHtcbiAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggKyBmcm9tSW5kZXg7XG4gIH1cbiAgZnJvbUluZGV4ID0gTWF0aC5taW4oYXJyYXkubGVuZ3RoLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4IC0gMTtcbiAgd2hpbGUgKCsraW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICBpZiAoY2IoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMSxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGggLSAxLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgd2hpbGUgKC0taW5kZXggPiAtMSkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNwYXJlbnQgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBjb25zdCBpc1JHQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA1ICYmIGNvbG9yLnN1YnN0cig0LCAxKSA9PT0gXCIwXCI7XG4gIGNvbnN0IGlzUlJHR0JCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDkgJiYgY29sb3Iuc3Vic3RyKDcsIDIpID09PSBcIjAwXCI7XG4gIHJldHVybiAoXG4gICAgaXNSR0JUcmFuc3BhcmVudCB8fFxuICAgIGlzUlJHR0JCVHJhbnNwYXJlbnQgfHxcbiAgICBjb2xvciA9PT0gY29sb3JzLmVsZW1lbnRCYWNrZ3JvdW5kWzBdXG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZhYmxlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6IFtUXSBleHRlbmRzIFt1bmRlZmluZWRdID8gKHZhbHVlPzogVCkgPT4gdm9pZCA6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZhYmxlUHJvbWlzZSA9IDxUPigpID0+IHtcbiAgbGV0IHJlc29sdmUhOiBhbnk7XG4gIGxldCByZWplY3QhOiBhbnk7XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgcmVqZWN0ID0gX3JlamVjdDtcbiAgfSk7XG4gIChwcm9taXNlIGFzIGFueSkucmVzb2x2ZSA9IHJlc29sdmU7XG4gIChwcm9taXNlIGFzIGFueSkucmVqZWN0ID0gcmVqZWN0O1xuICByZXR1cm4gcHJvbWlzZSBhcyBSZXNvbHZhYmxlUHJvbWlzZTxUPjtcbn07XG5cbi8qKlxuICogQHBhcmFtIGZ1bmMgaGFuZGxlciB0YWtpbmcgYXQgbW9zdCBzaW5nbGUgcGFyYW1ldGVyIChldmVudCkuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXMgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PlxuICAoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYyBhcyBURnVuY3Rpb24sIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uO1xuXG4vKipcbiAqIGJhcmNoZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBhbmQgdGhyb3R0bGVzIHRoZSBjYWxscyB0byBhIHNpbmdsZSBjYWxsIHBlclxuICogYW5pbWF0aW9uIGZyYW1lXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXNUaHJvdHRsZWQgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIHRocm90dGxlUkFGPFBhcmFtZXRlcnM8VEZ1bmN0aW9uPj4oKChldmVudCkgPT4ge1xuICAgIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKGZ1bmMsIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uKTtcbn07XG5cbi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzk0NjIzODIvODQxOFxuZXhwb3J0IGNvbnN0IG5Gb3JtYXR0ZXIgPSAobnVtOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2kgPSBbXG4gICAgeyB2YWx1ZTogMSwgc3ltYm9sOiBcImJcIiB9LFxuICAgIHsgdmFsdWU6IDFlMywgc3ltYm9sOiBcImtcIiB9LFxuICAgIHsgdmFsdWU6IDFlNiwgc3ltYm9sOiBcIk1cIiB9LFxuICAgIHsgdmFsdWU6IDFlOSwgc3ltYm9sOiBcIkdcIiB9LFxuICBdO1xuICBjb25zdCByeCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG4gIGxldCBpbmRleDtcbiAgZm9yIChpbmRleCA9IHNpLmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgIGlmIChudW0gPj0gc2lbaW5kZXhdLnZhbHVlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChcbiAgICAobnVtIC8gc2lbaW5kZXhdLnZhbHVlKS50b0ZpeGVkKGRpZ2l0cykucmVwbGFjZShyeCwgXCIkMVwiKSArIHNpW2luZGV4XS5zeW1ib2xcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWZXJzaW9uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTE1ldGFFbGVtZW50PignbWV0YVtuYW1lPVwidmVyc2lvblwiXScpPy5jb250ZW50IHx8XG4gICAgREVGQVVMVF9WRVJTSU9OXG4gICk7XG59O1xuXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2Vtb2ppLmpzXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNFbW9qaSA9ICgpID0+IHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgb2Zmc2V0ID0gMTI7XG4gIGN0eC5maWxsU3R5bGUgPSBcIiNmMDBcIjtcbiAgY3R4LnRleHRCYXNlbGluZSA9IFwidG9wXCI7XG4gIGN0eC5mb250ID0gXCIzMnB4IEFyaWFsXCI7XG4gIC8vIE1vZGVybml6ciB1c2VkIPCfkKgsIGJ1dCBpdCBpcyBzb3J0IG9mIHN1cHBvcnRlZCBvbiBXaW5kb3dzIDcuXG4gIC8vIEx1Y2tpbHkg8J+YgCBpc24ndCBzdXBwb3J0ZWQuXG4gIGN0eC5maWxsVGV4dChcIvCfmIBcIiwgMCwgMCk7XG4gIHJldHVybiBjdHguZ2V0SW1hZ2VEYXRhKG9mZnNldCwgb2Zmc2V0LCAxLCAxKS5kYXRhWzBdICE9PSAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyID0gKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIH1cbiAgICBjb25zdCB7IG92ZXJmbG93WSB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBjb25zdCBoYXNTY3JvbGxhYmxlQ29udGVudCA9IHBhcmVudC5zY3JvbGxIZWlnaHQgPiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIGlmIChcbiAgICAgIGhhc1Njcm9sbGFibGVDb250ZW50ICYmXG4gICAgICAob3ZlcmZsb3dZID09PSBcImF1dG9cIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwic2Nyb2xsXCIgfHxcbiAgICAgICAgb3ZlcmZsb3dZID09PSBcIm92ZXJsYXlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG4gIHJldHVybiBkb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBmb2N1c05lYXJlc3RQYXJlbnQgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudC50YWJJbmRleCA+IC0xKSB7XG4gICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2ZW50VW5sb2FkID0gKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyBOT1RFOiBtb2Rlcm4gYnJvd3NlcnMgbm8gbG9uZ2VyIGFsbG93IHNob3dpbmcgYSBjdXN0b20gbWVzc2FnZSBoZXJlXG4gIGV2ZW50LnJldHVyblZhbHVlID0gXCJcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBieXRlc1RvSGV4U3RyaW5nID0gKGJ5dGVzOiBVaW50OEFycmF5KSA9PiB7XG4gIHJldHVybiBBcnJheS5mcm9tKGJ5dGVzKVxuICAgIC5tYXAoKGJ5dGUpID0+IGAwJHtieXRlLnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcbiAgICAuam9pbihcIlwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkVGltZXN0YW1wID0gKCkgPT4gKGlzVGVzdEVudigpID8gMSA6IERhdGUubm93KCkpO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGBpZGAgYXR0cmlidXRlLFxuICogb3IgYXJyYXkgb2YgaWRzIChzdHJpbmdzKSwgaW50byBhIE1hcCwga2V5ZCBieSBgaWRgLlxuICovXG5leHBvcnQgY29uc3QgYXJyYXlUb01hcCA9IDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmc+KFxuICBpdGVtczogcmVhZG9ubHkgVFtdLFxuKSA9PiB7XG4gIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYzogTWFwPHN0cmluZywgVD4sIGVsZW1lbnQpID0+IHtcbiAgICBhY2Muc2V0KHR5cGVvZiBlbGVtZW50ID09PSBcInN0cmluZ1wiID8gZWxlbWVudCA6IGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIG5ldyBNYXAoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUZXN0RW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInRlc3RcIjtcblxuZXhwb3J0IGNvbnN0IGlzUHJvZEVudiA9ICgpID0+XG4gIHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Py5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCB3cmFwRXZlbnQgPSA8VCBleHRlbmRzIEV2ZW50PihuYW1lOiBFVkVOVCwgbmF0aXZlRXZlbnQ6IFQpID0+IHtcbiAgcmV0dXJuIG5ldyBDdXN0b21FdmVudChuYW1lLCB7XG4gICAgZGV0YWlsOiB7XG4gICAgICBuYXRpdmVFdmVudCxcbiAgICB9LFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU9iamVjdCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG9iajogVCxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbik6IFQgPT4ge1xuICBsZXQgZGlkQ2hhbmdlID0gZmFsc2U7XG4gIGZvciAoY29uc3Qga2V5IGluIHVwZGF0ZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh1cGRhdGVzIGFzIGFueSlba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChvYmogYXMgYW55KVtrZXldID09PSB2YWx1ZSAmJlxuICAgICAgICAvLyBpZiBvYmplY3QsIGFsd2F5cyB1cGRhdGUgYmVjYXVzZSBpdHMgYXR0cnMgY291bGQgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBkaWRDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZGlkQ2hhbmdlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ub2JqLFxuICAgIC4uLnVwZGF0ZXMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcmltaXRpdmUgPSAodmFsOiBhbnkpID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIHJldHVybiB2YWwgPT0gbnVsbCB8fCAodHlwZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlICE9PSBcImZ1bmN0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZyYW1lID0gKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCA/IFwidG9wXCIgOiBcImlmcmFtZVwiO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBcImlmcmFtZVwiO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcm9taXNlTGlrZSA9IChcbiAgdmFsdWU6IGFueSxcbik6IHZhbHVlIGlzIFByb21pc2U8UmVzb2x1dGlvblR5cGU8dHlwZW9mIHZhbHVlPj4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcInRoZW5cIiBpbiB2YWx1ZSAmJlxuICAgIFwiY2F0Y2hcIiBpbiB2YWx1ZSAmJlxuICAgIFwiZmluYWxseVwiIGluIHZhbHVlXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcXVlcnlGb2N1c2FibGVFbGVtZW50cyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgXCJidXR0b24sIGEsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBkaXZbdGFiaW5kZXhdLCBsYWJlbFt0YWJpbmRleF1cIixcbiAgKTtcblxuICByZXR1cm4gZm9jdXNhYmxlRWxlbWVudHNcbiAgICA/IEFycmF5LmZyb20oZm9jdXNhYmxlRWxlbWVudHMpLmZpbHRlcihcbiAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgZWxlbWVudC50YWJJbmRleCA+IC0xICYmICEoZWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS5kaXNhYmxlZCxcbiAgICAgIClcbiAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../utils.ts\n");
3128
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn, opts) => {\n let timerId = null;\n let lastArgs = null;\n let lastArgsTrailing = null;\n const scheduleFunc = (args) => {\n timerId = window.requestAnimationFrame(() => {\n timerId = null;\n fn(...args);\n lastArgs = null;\n if (lastArgsTrailing) {\n lastArgs = lastArgsTrailing;\n lastArgsTrailing = null;\n scheduleFunc(lastArgs);\n }\n });\n };\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n if (timerId === null) {\n scheduleFunc(lastArgs);\n }\n else if (opts === null || opts === void 0 ? void 0 : opts.trailing) {\n lastArgsTrailing = args;\n }\n };\n ret.flush = () => {\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n if (lastArgs) {\n fn(...(lastArgsTrailing || lastArgs));\n lastArgs = lastArgsTrailing = null;\n }\n };\n ret.cancel = () => {\n lastArgs = lastArgsTrailing = null;\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = Object({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-a271e42\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = Object({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-a271e42\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFFBQVEsSUFBSSxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUssTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUk7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDdEQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBVSxFQUNzQyxFQUFFO0lBQ2xELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSztRQUNQLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFPLElBQUksS0FBSztRQUNoQixTQUFTLElBQUksS0FBSyxDQUNuQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxnQkFBZ0IsQ0FDbkQsb0VBQW9FLENBQ3JFLENBQUM7SUFFRixPQUFPLGlCQUFpQjtRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBRSxPQUE0QixDQUFDLFFBQVEsQ0FDbkU7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3V0aWxzLnRzPzc2M2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9jIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcIi4vY29sb3JzXCI7XG5pbXBvcnQge1xuICBDVVJTT1JfVFlQRSxcbiAgREVGQVVMVF9WRVJTSU9OLFxuICBFVkVOVCxcbiAgRk9OVF9GQU1JTFksXG4gIE1JTUVfVFlQRVMsXG4gIFRIRU1FLFxuICBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRm9udEZhbWlseVZhbHVlcywgRm9udFN0cmluZyB9IGZyb20gXCIuL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBEYXRhVVJMLCBMYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlciwgWm9vbSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IGlzRGFyd2luIH0gZnJvbSBcIi4va2V5c1wiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4vc2hhcGVzXCI7XG5cbmxldCBtb2NrRGF0ZVRpbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0ZVRpbWVGb3JUZXN0cyA9IChkYXRlVGltZTogc3RyaW5nKSA9PiB7XG4gIG1vY2tEYXRlVGltZSA9IGRhdGVUaW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVUaW1lID0gKCkgPT4ge1xuICBpZiAobW9ja0RhdGVUaW1lKSB7XG4gICAgcmV0dXJuIG1vY2tEYXRlVGltZTtcbiAgfVxuXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IGAke2RhdGUuZ2V0TW9udGgoKSArIDF9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGRheSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBociA9IGAke2RhdGUuZ2V0SG91cnMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgbWluID0gYCR7ZGF0ZS5nZXRNaW51dGVzKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG5cbiAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fS0ke2hyfSR7bWlufWA7XG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT5cbiAgc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXG5leHBvcnQgY29uc3QgaXNUb29sSWNvbiA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzIEhUTUxFbGVtZW50ID0+XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoXCJUb29sSWNvblwiKTtcblxuZXhwb3J0IGNvbnN0IGlzSW5wdXRMaWtlID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXNcbiAgfCBIVE1MSW5wdXRFbGVtZW50XG4gIHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICB8IEhUTUxTZWxlY3RFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50O1xuXG5leHBvcnQgY29uc3QgaXNXcml0YWJsZUVsZW1lbnQgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxuICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICh0YXJnZXQudHlwZSA9PT0gXCJ0ZXh0XCIgfHwgdGFyZ2V0LnR5cGUgPT09IFwibnVtYmVyXCIpKTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRGYW1pbHlTdHJpbmcgPSAoe1xuICBmb250RmFtaWx5LFxufToge1xuICBmb250RmFtaWx5OiBGb250RmFtaWx5VmFsdWVzO1xufSkgPT4ge1xuICBmb3IgKGNvbnN0IFtmb250RmFtaWx5U3RyaW5nLCBpZF0gb2YgT2JqZWN0LmVudHJpZXMoRk9OVF9GQU1JTFkpKSB7XG4gICAgaWYgKGlkID09PSBmb250RmFtaWx5KSB7XG4gICAgICByZXR1cm4gYCR7Zm9udEZhbWlseVN0cmluZ30sICR7V0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UfWA7XG4gICAgfVxuICB9XG4gIHJldHVybiBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQ7XG59O1xuXG4vKiogcmV0dXJucyBmb250U2l6ZStmb250RmFtaWx5IHN0cmluZyBmb3IgYXNzaWdubWVudCB0byBET00gZWxlbWVudHMgKi9cbmV4cG9ydCBjb25zdCBnZXRGb250U3RyaW5nID0gKHtcbiAgZm9udFNpemUsXG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIHJldHVybiBgJHtmb250U2l6ZX1weCAke2dldEZvbnRGYW1pbHlTdHJpbmcoeyBmb250RmFtaWx5IH0pfWAgYXMgRm9udFN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWJvdW5jZSA9IDxUIGV4dGVuZHMgYW55W10+KFxuICBmbjogKC4uLmFyZ3M6IFQpID0+IHZvaWQsXG4gIHRpbWVvdXQ6IG51bWJlcixcbikgPT4ge1xuICBsZXQgaGFuZGxlID0gMDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IHJldCA9ICguLi5hcmdzOiBUKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICAgIGhhbmRsZSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaWYgKGxhc3RBcmdzKSB7XG4gICAgICBjb25zdCBfbGFzdEFyZ3MgPSBsYXN0QXJncztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLl9sYXN0QXJncyk7XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIHRocm90dGxlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgb25jZSBwZXIgYW5pbWF0aW9uIGZyYW1lXG5leHBvcnQgY29uc3QgdGhyb3R0bGVSQUYgPSA8VCBleHRlbmRzIGFueVtdPihcbiAgZm46ICguLi5hcmdzOiBUKSA9PiB2b2lkLFxuICBvcHRzPzogeyB0cmFpbGluZz86IGJvb2xlYW4gfSxcbikgPT4ge1xuICBsZXQgdGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBsYXN0QXJnczogVCB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdEFyZ3NUcmFpbGluZzogVCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IHNjaGVkdWxlRnVuYyA9IChhcmdzOiBUKSA9PiB7XG4gICAgdGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGlmIChsYXN0QXJnc1RyYWlsaW5nKSB7XG4gICAgICAgIGxhc3RBcmdzID0gbGFzdEFyZ3NUcmFpbGluZztcbiAgICAgICAgbGFzdEFyZ3NUcmFpbGluZyA9IG51bGw7XG4gICAgICAgIHNjaGVkdWxlRnVuYyhsYXN0QXJncyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiKSB7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGlmICh0aW1lcklkID09PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZ1bmMobGFzdEFyZ3MpO1xuICAgIH0gZWxzZSBpZiAob3B0cz8udHJhaWxpbmcpIHtcbiAgICAgIGxhc3RBcmdzVHJhaWxpbmcgPSBhcmdzO1xuICAgIH1cbiAgfTtcbiAgcmV0LmZsdXNoID0gKCkgPT4ge1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGZuKC4uLihsYXN0QXJnc1RyYWlsaW5nIHx8IGxhc3RBcmdzKSk7XG4gICAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0LmNhbmNlbCA9ICgpID0+IHtcbiAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvZXMvY2h1bmsuanNcbmV4cG9ydCBjb25zdCBjaHVuayA9IDxUIGV4dGVuZHMgYW55PihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgc2l6ZTogbnVtYmVyLFxuKTogVFtdW10gPT4ge1xuICBpZiAoIWFycmF5Lmxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgcmVzSW5kZXggPSAwO1xuICBjb25zdCByZXN1bHQgPSBBcnJheShNYXRoLmNlaWwoYXJyYXkubGVuZ3RoIC8gc2l6ZSkpO1xuICB3aGlsZSAoaW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBhcnJheS5zbGljZShpbmRleCwgKGluZGV4ICs9IHNpemUpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5vZGUgPSAobm9kZTogRWxlbWVudCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VsZWN0aW9uID0gKCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXN0YW5jZSA9ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4gTWF0aC5hYnMoeCAtIHkpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aXZlVG9vbCA9IChcbiAgYXBwU3RhdGU6IFBpY2s8QXBwU3RhdGUsIFwiYWN0aXZlVG9vbFwiPixcbiAgZGF0YTogKFxuICAgIHwgeyB0eXBlOiB0eXBlb2YgU0hBUEVTW251bWJlcl1bXCJ2YWx1ZVwiXSB8IFwiZXJhc2VyXCIgfVxuICAgIHwgeyB0eXBlOiBcImN1c3RvbVwiOyBjdXN0b21UeXBlOiBzdHJpbmcgfVxuICApICYgeyBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcj86IExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyIH0sXG4pOiBBcHBTdGF0ZVtcImFjdGl2ZVRvb2xcIl0gPT4ge1xuICBpZiAoZGF0YS50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgICAgY3VzdG9tVHlwZTogZGF0YS5jdXN0b21UeXBlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgbGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXI6XG4gICAgICBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBhcHBTdGF0ZS5hY3RpdmVUb29sLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyXG4gICAgICAgIDogZGF0YS5sYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcixcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgY3VzdG9tVHlwZTogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBpZiAoY2FudmFzKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IFwiXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3IgPSAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsIGN1cnNvcjogc3RyaW5nKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gY3Vyc29yO1xuICB9XG59O1xuXG5sZXQgZXJhc2VyQ2FudmFzQ2FjaGU6IGFueTtcbmxldCBwcmV2aWV3RGF0YVVSTDogc3RyaW5nO1xuZXhwb3J0IGNvbnN0IHNldEVyYXNlckN1cnNvciA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIHRoZW1lOiBBcHBTdGF0ZVtcInRoZW1lXCJdLFxuKSA9PiB7XG4gIGNvbnN0IGN1cnNvckltYWdlU2l6ZVB4ID0gMjA7XG5cbiAgY29uc3QgZHJhd0NhbnZhcyA9ICgpID0+IHtcbiAgICBjb25zdCBpc0RhcmtUaGVtZSA9IHRoZW1lID09PSBUSEVNRS5EQVJLO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSA9IHRoZW1lO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCA9IGN1cnNvckltYWdlU2l6ZVB4O1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgY29uc3QgY29udGV4dCA9IGVyYXNlckNhbnZhc0NhY2hlLmdldENvbnRleHQoXCIyZFwiKSE7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSAxO1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dC5hcmMoXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS53aWR0aCAvIDIsXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS5oZWlnaHQgLyAyLFxuICAgICAgNSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSSxcbiAgICApO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaXNEYXJrVGhlbWUgPyBvYy5ibGFjayA6IG9jLndoaXRlO1xuICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLndoaXRlIDogb2MuYmxhY2s7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBwcmV2aWV3RGF0YVVSTCA9IGVyYXNlckNhbnZhc0NhY2hlLnRvRGF0YVVSTChNSU1FX1RZUEVTLnN2ZykgYXMgRGF0YVVSTDtcbiAgfTtcbiAgaWYgKCFlcmFzZXJDYW52YXNDYWNoZSB8fCBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICBkcmF3Q2FudmFzKCk7XG4gIH1cblxuICBzZXRDdXJzb3IoXG4gICAgY2FudmFzLFxuICAgIGB1cmwoJHtwcmV2aWV3RGF0YVVSTH0pICR7Y3Vyc29ySW1hZ2VTaXplUHggLyAyfSAke1xuICAgICAgY3Vyc29ySW1hZ2VTaXplUHggLyAyXG4gICAgfSwgYXV0b2AsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q3Vyc29yRm9yU2hhcGUgPSAoXG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4pID0+IHtcbiAgaWYgKCFjYW52YXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSA9PT0gXCJzZWxlY3Rpb25cIikge1xuICAgIHJlc2V0Q3Vyc29yKGNhbnZhcyk7XG4gIH0gZWxzZSBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcImVyYXNlclwiKSB7XG4gICAgc2V0RXJhc2VyQ3Vyc29yKGNhbnZhcywgYXBwU3RhdGUudGhlbWUpO1xuICAgIC8vIGRvIG5vdGhpbmcgaWYgaW1hZ2UgdG9vbCBpcyBzZWxlY3RlZCB3aGljaCBzdWdnZXN0cyB0aGVyZSdzXG4gICAgLy8gYSBpbWFnZS1wcmV2aWV3IHNldCBhcyB0aGUgY3Vyc29yXG4gICAgLy8gSWdub3JlIGN1c3RvbSB0eXBlIGFzIHdlbGwgYW5kIGxldCBob3N0IGRlY2lkZVxuICB9IGVsc2UgaWYgKCFbXCJpbWFnZVwiLCBcImN1c3RvbVwiXS5pbmNsdWRlcyhhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUpKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IENVUlNPUl9UWVBFLkNST1NTSEFJUjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50Py5ub2RlTmFtZSA9PT0gXCJIVE1MXCI7XG5cbmV4cG9ydCBjb25zdCBhbGxvd0Z1bGxTY3JlZW4gPSAoKSA9PlxuICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGV4aXRGdWxsU2NyZWVuID0gKCkgPT4gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGdldFNob3J0Y3V0S2V5ID0gKHNob3J0Y3V0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzaG9ydGN1dCA9IHNob3J0Y3V0XG4gICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIkFsdFwiKVxuICAgIC5yZXBsYWNlKC9cXGJTaGlmdFxcYi9pLCBcIlNoaWZ0XCIpXG4gICAgLnJlcGxhY2UoL1xcYihFbnRlcnxSZXR1cm4pXFxiL2ksIFwiRW50ZXJcIilcbiAgICAucmVwbGFjZSgvXFxiRGVsXFxiL2ksIFwiRGVsZXRlXCIpO1xuXG4gIGlmIChpc0Rhcndpbikge1xuICAgIHJldHVybiBzaG9ydGN1dFxuICAgICAgLnJlcGxhY2UoL1xcYkN0cmxPckNtZFxcYi9pLCBcIkNtZFwiKVxuICAgICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIk9wdGlvblwiKTtcbiAgfVxuICByZXR1cm4gc2hvcnRjdXQucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ3RybFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMgPSAoXG4gIHsgY2xpZW50WCwgY2xpZW50WSB9OiB7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgaW52U2NhbGUgPSAxIC8gem9vbS52YWx1ZTtcbiAgY29uc3QgeCA9IChjbGllbnRYIC0gb2Zmc2V0TGVmdCkgKiBpbnZTY2FsZSAtIHNjcm9sbFg7XG4gIGNvbnN0IHkgPSAoY2xpZW50WSAtIG9mZnNldFRvcCkgKiBpbnZTY2FsZSAtIHNjcm9sbFk7XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcyA9IChcbiAgeyBzY2VuZVgsIHNjZW5lWSB9OiB7IHNjZW5lWDogbnVtYmVyOyBzY2VuZVk6IG51bWJlciB9LFxuICB7XG4gICAgem9vbSxcbiAgICBvZmZzZXRMZWZ0LFxuICAgIG9mZnNldFRvcCxcbiAgICBzY3JvbGxYLFxuICAgIHNjcm9sbFksXG4gIH06IHtcbiAgICB6b29tOiBab29tO1xuICAgIG9mZnNldExlZnQ6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBzY3JvbGxYOiBudW1iZXI7XG4gICAgc2Nyb2xsWTogbnVtYmVyO1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IHggPSAoc2NlbmVYICsgc2Nyb2xsWCkgKiB6b29tLnZhbHVlICsgb2Zmc2V0TGVmdDtcbiAgY29uc3QgeSA9IChzY2VuZVkgKyBzY3JvbGxZKSAqIHpvb20udmFsdWUgKyBvZmZzZXRUb3A7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxDU1NWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcpID0+XG4gIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLSR7bmFtZX1gKTtcblxuY29uc3QgUlNfTFRSX0NIQVJTID1cbiAgXCJBLVphLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyQjhcXHUwMzAwLVxcdTA1OTBcXHUwODAwLVxcdTFGRkZcIiArXG4gIFwiXFx1MkMwMC1cXHVGQjFDXFx1RkRGRS1cXHVGRTZGXFx1RkVGRC1cXHVGRkZGXCI7XG5jb25zdCBSU19SVExfQ0hBUlMgPSBcIlxcdTA1OTEtXFx1MDdGRlxcdUZCMUQtXFx1RkRGRFxcdUZFNzAtXFx1RkVGQ1wiO1xuY29uc3QgUkVfUlRMX0NIRUNLID0gbmV3IFJlZ0V4cChgXlteJHtSU19MVFJfQ0hBUlN9XSpbJHtSU19SVExfQ0hBUlN9XWApO1xuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBmaXJzdCBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaXMgUlRMLiBNZWFuaW5nIHdoZXRoZXIgaXQgc3RhcnRzXG4gKiAgd2l0aCBSVEwgY2hhcmFjdGVycywgb3IgaW5kZXRlcm1pbmF0ZSAobnVtYmVycyBldGMuKSBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5XG4gKiAgUlRMLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvcHVsbC8xNzIyI2Rpc2N1c3Npb25fcjQzNjM0MDE3MVxuICovXG5leHBvcnQgY29uc3QgaXNSVEwgPSAodGV4dDogc3RyaW5nKSA9PiBSRV9SVExfQ0hFQ0sudGVzdCh0ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHR1cGxlVG9Db29ycyA9IChcbiAgeHlUdXBsZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSxcbik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IFt4LCB5XSA9IHh5VHVwbGU7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbi8qKiB1c2UgYXMgYSByZWplY3Rpb25IYW5kbGVyIHRvIG11dGUgZmlsZXN5c3RlbSBBYm9ydCBlcnJvcnMgKi9cbmV4cG9ydCBjb25zdCBtdXRlRlNBYm9ydEVycm9yID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgaWYgKGVycm9yPy5uYW1lID09PSBcIkFib3J0RXJyb3JcIikge1xuICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRJbmRleCA9IDxUPihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgY2I6IChlbGVtZW50OiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBib29sZWFuLFxuICBmcm9tSW5kZXg6IG51bWJlciA9IDAsXG4pID0+IHtcbiAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggKyBmcm9tSW5kZXg7XG4gIH1cbiAgZnJvbUluZGV4ID0gTWF0aC5taW4oYXJyYXkubGVuZ3RoLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4IC0gMTtcbiAgd2hpbGUgKCsraW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICBpZiAoY2IoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMSxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGggLSAxLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgd2hpbGUgKC0taW5kZXggPiAtMSkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNwYXJlbnQgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBjb25zdCBpc1JHQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA1ICYmIGNvbG9yLnN1YnN0cig0LCAxKSA9PT0gXCIwXCI7XG4gIGNvbnN0IGlzUlJHR0JCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDkgJiYgY29sb3Iuc3Vic3RyKDcsIDIpID09PSBcIjAwXCI7XG4gIHJldHVybiAoXG4gICAgaXNSR0JUcmFuc3BhcmVudCB8fFxuICAgIGlzUlJHR0JCVHJhbnNwYXJlbnQgfHxcbiAgICBjb2xvciA9PT0gY29sb3JzLmVsZW1lbnRCYWNrZ3JvdW5kWzBdXG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZhYmxlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6IFtUXSBleHRlbmRzIFt1bmRlZmluZWRdID8gKHZhbHVlPzogVCkgPT4gdm9pZCA6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZhYmxlUHJvbWlzZSA9IDxUPigpID0+IHtcbiAgbGV0IHJlc29sdmUhOiBhbnk7XG4gIGxldCByZWplY3QhOiBhbnk7XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgcmVqZWN0ID0gX3JlamVjdDtcbiAgfSk7XG4gIChwcm9taXNlIGFzIGFueSkucmVzb2x2ZSA9IHJlc29sdmU7XG4gIChwcm9taXNlIGFzIGFueSkucmVqZWN0ID0gcmVqZWN0O1xuICByZXR1cm4gcHJvbWlzZSBhcyBSZXNvbHZhYmxlUHJvbWlzZTxUPjtcbn07XG5cbi8qKlxuICogQHBhcmFtIGZ1bmMgaGFuZGxlciB0YWtpbmcgYXQgbW9zdCBzaW5nbGUgcGFyYW1ldGVyIChldmVudCkuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXMgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PlxuICAoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYyBhcyBURnVuY3Rpb24sIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uO1xuXG4vKipcbiAqIGJhcmNoZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBhbmQgdGhyb3R0bGVzIHRoZSBjYWxscyB0byBhIHNpbmdsZSBjYWxsIHBlclxuICogYW5pbWF0aW9uIGZyYW1lXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXNUaHJvdHRsZWQgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIHRocm90dGxlUkFGPFBhcmFtZXRlcnM8VEZ1bmN0aW9uPj4oKChldmVudCkgPT4ge1xuICAgIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKGZ1bmMsIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uKTtcbn07XG5cbi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzk0NjIzODIvODQxOFxuZXhwb3J0IGNvbnN0IG5Gb3JtYXR0ZXIgPSAobnVtOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2kgPSBbXG4gICAgeyB2YWx1ZTogMSwgc3ltYm9sOiBcImJcIiB9LFxuICAgIHsgdmFsdWU6IDFlMywgc3ltYm9sOiBcImtcIiB9LFxuICAgIHsgdmFsdWU6IDFlNiwgc3ltYm9sOiBcIk1cIiB9LFxuICAgIHsgdmFsdWU6IDFlOSwgc3ltYm9sOiBcIkdcIiB9LFxuICBdO1xuICBjb25zdCByeCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG4gIGxldCBpbmRleDtcbiAgZm9yIChpbmRleCA9IHNpLmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgIGlmIChudW0gPj0gc2lbaW5kZXhdLnZhbHVlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChcbiAgICAobnVtIC8gc2lbaW5kZXhdLnZhbHVlKS50b0ZpeGVkKGRpZ2l0cykucmVwbGFjZShyeCwgXCIkMVwiKSArIHNpW2luZGV4XS5zeW1ib2xcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWZXJzaW9uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTE1ldGFFbGVtZW50PignbWV0YVtuYW1lPVwidmVyc2lvblwiXScpPy5jb250ZW50IHx8XG4gICAgREVGQVVMVF9WRVJTSU9OXG4gICk7XG59O1xuXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2Vtb2ppLmpzXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNFbW9qaSA9ICgpID0+IHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgb2Zmc2V0ID0gMTI7XG4gIGN0eC5maWxsU3R5bGUgPSBcIiNmMDBcIjtcbiAgY3R4LnRleHRCYXNlbGluZSA9IFwidG9wXCI7XG4gIGN0eC5mb250ID0gXCIzMnB4IEFyaWFsXCI7XG4gIC8vIE1vZGVybml6ciB1c2VkIPCfkKgsIGJ1dCBpdCBpcyBzb3J0IG9mIHN1cHBvcnRlZCBvbiBXaW5kb3dzIDcuXG4gIC8vIEx1Y2tpbHkg8J+YgCBpc24ndCBzdXBwb3J0ZWQuXG4gIGN0eC5maWxsVGV4dChcIvCfmIBcIiwgMCwgMCk7XG4gIHJldHVybiBjdHguZ2V0SW1hZ2VEYXRhKG9mZnNldCwgb2Zmc2V0LCAxLCAxKS5kYXRhWzBdICE9PSAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyID0gKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIH1cbiAgICBjb25zdCB7IG92ZXJmbG93WSB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBjb25zdCBoYXNTY3JvbGxhYmxlQ29udGVudCA9IHBhcmVudC5zY3JvbGxIZWlnaHQgPiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIGlmIChcbiAgICAgIGhhc1Njcm9sbGFibGVDb250ZW50ICYmXG4gICAgICAob3ZlcmZsb3dZID09PSBcImF1dG9cIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwic2Nyb2xsXCIgfHxcbiAgICAgICAgb3ZlcmZsb3dZID09PSBcIm92ZXJsYXlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG4gIHJldHVybiBkb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBmb2N1c05lYXJlc3RQYXJlbnQgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudC50YWJJbmRleCA+IC0xKSB7XG4gICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2ZW50VW5sb2FkID0gKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyBOT1RFOiBtb2Rlcm4gYnJvd3NlcnMgbm8gbG9uZ2VyIGFsbG93IHNob3dpbmcgYSBjdXN0b20gbWVzc2FnZSBoZXJlXG4gIGV2ZW50LnJldHVyblZhbHVlID0gXCJcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBieXRlc1RvSGV4U3RyaW5nID0gKGJ5dGVzOiBVaW50OEFycmF5KSA9PiB7XG4gIHJldHVybiBBcnJheS5mcm9tKGJ5dGVzKVxuICAgIC5tYXAoKGJ5dGUpID0+IGAwJHtieXRlLnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcbiAgICAuam9pbihcIlwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkVGltZXN0YW1wID0gKCkgPT4gKGlzVGVzdEVudigpID8gMSA6IERhdGUubm93KCkpO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGBpZGAgYXR0cmlidXRlLFxuICogb3IgYXJyYXkgb2YgaWRzIChzdHJpbmdzKSwgaW50byBhIE1hcCwga2V5ZCBieSBgaWRgLlxuICovXG5leHBvcnQgY29uc3QgYXJyYXlUb01hcCA9IDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmc+KFxuICBpdGVtczogcmVhZG9ubHkgVFtdLFxuKSA9PiB7XG4gIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYzogTWFwPHN0cmluZywgVD4sIGVsZW1lbnQpID0+IHtcbiAgICBhY2Muc2V0KHR5cGVvZiBlbGVtZW50ID09PSBcInN0cmluZ1wiID8gZWxlbWVudCA6IGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIG5ldyBNYXAoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUZXN0RW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInRlc3RcIjtcblxuZXhwb3J0IGNvbnN0IGlzUHJvZEVudiA9ICgpID0+XG4gIHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Py5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCB3cmFwRXZlbnQgPSA8VCBleHRlbmRzIEV2ZW50PihuYW1lOiBFVkVOVCwgbmF0aXZlRXZlbnQ6IFQpID0+IHtcbiAgcmV0dXJuIG5ldyBDdXN0b21FdmVudChuYW1lLCB7XG4gICAgZGV0YWlsOiB7XG4gICAgICBuYXRpdmVFdmVudCxcbiAgICB9LFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU9iamVjdCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG9iajogVCxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbik6IFQgPT4ge1xuICBsZXQgZGlkQ2hhbmdlID0gZmFsc2U7XG4gIGZvciAoY29uc3Qga2V5IGluIHVwZGF0ZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh1cGRhdGVzIGFzIGFueSlba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChvYmogYXMgYW55KVtrZXldID09PSB2YWx1ZSAmJlxuICAgICAgICAvLyBpZiBvYmplY3QsIGFsd2F5cyB1cGRhdGUgYmVjYXVzZSBpdHMgYXR0cnMgY291bGQgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBkaWRDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZGlkQ2hhbmdlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ub2JqLFxuICAgIC4uLnVwZGF0ZXMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcmltaXRpdmUgPSAodmFsOiBhbnkpID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIHJldHVybiB2YWwgPT0gbnVsbCB8fCAodHlwZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlICE9PSBcImZ1bmN0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZyYW1lID0gKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCA/IFwidG9wXCIgOiBcImlmcmFtZVwiO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBcImlmcmFtZVwiO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcm9taXNlTGlrZSA9IChcbiAgdmFsdWU6IGFueSxcbik6IHZhbHVlIGlzIFByb21pc2U8UmVzb2x1dGlvblR5cGU8dHlwZW9mIHZhbHVlPj4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcInRoZW5cIiBpbiB2YWx1ZSAmJlxuICAgIFwiY2F0Y2hcIiBpbiB2YWx1ZSAmJlxuICAgIFwiZmluYWxseVwiIGluIHZhbHVlXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcXVlcnlGb2N1c2FibGVFbGVtZW50cyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgXCJidXR0b24sIGEsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBkaXZbdGFiaW5kZXhdLCBsYWJlbFt0YWJpbmRleF1cIixcbiAgKTtcblxuICByZXR1cm4gZm9jdXNhYmxlRWxlbWVudHNcbiAgICA/IEFycmF5LmZyb20oZm9jdXNhYmxlRWxlbWVudHMpLmZpbHRlcihcbiAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgZWxlbWVudC50YWJJbmRleCA+IC0xICYmICEoZWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS5kaXNhYmxlZCxcbiAgICAgIClcbiAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../utils.ts\n");
3364
3129
 
3365
3130
  /***/ }),
3366
3131
 
@@ -3437,7 +3202,7 @@ module.exports = __webpack_require__.p + "excalidraw-assets-dev/Virgil.woff2";
3437
3202
  /***/ ((module) => {
3438
3203
 
3439
3204
  "use strict";
3440
- module.exports = __WEBPACK_EXTERNAL_MODULE_react__;
3205
+ eval("module.exports = __WEBPACK_EXTERNAL_MODULE_react__;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wicm9vdFwiOlwiUmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJyZWFjdFwifT85ZGU1Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9yZWFjdF9fOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///react\n");
3441
3206
 
3442
3207
  /***/ }),
3443
3208
 
@@ -3448,7 +3213,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_react__;
3448
3213
  /***/ ((module) => {
3449
3214
 
3450
3215
  "use strict";
3451
- module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;
3216
+ eval("module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtZG9tLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcInJvb3RcIjpcIlJlYWN0RE9NXCIsXCJjb21tb25qczJcIjpcInJlYWN0LWRvbVwiLFwiY29tbW9uanNcIjpcInJlYWN0LWRvbVwiLFwiYW1kXCI6XCJyZWFjdC1kb21cIn0/YjMwZSJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfcmVhY3RfZG9tX187Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///react-dom\n");
3452
3217
 
3453
3218
  /***/ }),
3454
3219
 
@@ -3459,7 +3224,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;
3459
3224
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3460
3225
 
3461
3226
  "use strict";
3462
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"customAlphabet\": () => (/* binding */ customAlphabet),\n/* harmony export */ \"customRandom\": () => (/* binding */ customRandom),\n/* harmony export */ \"nanoid\": () => (/* binding */ nanoid),\n/* harmony export */ \"random\": () => (/* binding */ random),\n/* harmony export */ \"urlAlphabet\": () => (/* reexport safe */ _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__.urlAlphabet)\n/* harmony export */ });\n/* harmony import */ var _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-alphabet/index.js */ \"../../../node_modules/nanoid/url-alphabet/index.js\");\n\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5icm93c2VyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDaUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5icm93c2VyLmpzPzgzNTAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXJsQWxwaGFiZXQgfSBmcm9tICcuL3VybC1hbHBoYWJldC9pbmRleC5qcydcbmxldCByYW5kb20gPSBieXRlcyA9PiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGJ5dGVzKSlcbmxldCBjdXN0b21SYW5kb20gPSAoYWxwaGFiZXQsIGRlZmF1bHRTaXplLCBnZXRSYW5kb20pID0+IHtcbiAgbGV0IG1hc2sgPSAoMiA8PCAoTWF0aC5sb2coYWxwaGFiZXQubGVuZ3RoIC0gMSkgLyBNYXRoLkxOMikpIC0gMVxuICBsZXQgc3RlcCA9IC1+KCgxLjYgKiBtYXNrICogZGVmYXVsdFNpemUpIC8gYWxwaGFiZXQubGVuZ3RoKVxuICByZXR1cm4gKHNpemUgPSBkZWZhdWx0U2l6ZSkgPT4ge1xuICAgIGxldCBpZCA9ICcnXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGxldCBieXRlcyA9IGdldFJhbmRvbShzdGVwKVxuICAgICAgbGV0IGogPSBzdGVwXG4gICAgICB3aGlsZSAoai0tKSB7XG4gICAgICAgIGlkICs9IGFscGhhYmV0W2J5dGVzW2pdICYgbWFza10gfHwgJydcbiAgICAgICAgaWYgKGlkLmxlbmd0aCA9PT0gc2l6ZSkgcmV0dXJuIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5sZXQgY3VzdG9tQWxwaGFiZXQgPSAoYWxwaGFiZXQsIHNpemUgPSAyMSkgPT5cbiAgY3VzdG9tUmFuZG9tKGFscGhhYmV0LCBzaXplLCByYW5kb20pXG5sZXQgbmFub2lkID0gKHNpemUgPSAyMSkgPT5cbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShzaXplKSkucmVkdWNlKChpZCwgYnl0ZSkgPT4ge1xuICAgIGJ5dGUgJj0gNjNcbiAgICBpZiAoYnl0ZSA8IDM2KSB7XG4gICAgICBpZCArPSBieXRlLnRvU3RyaW5nKDM2KVxuICAgIH0gZWxzZSBpZiAoYnl0ZSA8IDYyKSB7XG4gICAgICBpZCArPSAoYnl0ZSAtIDI2KS50b1N0cmluZygzNikudG9VcHBlckNhc2UoKVxuICAgIH0gZWxzZSBpZiAoYnl0ZSA+IDYyKSB7XG4gICAgICBpZCArPSAnLSdcbiAgICB9IGVsc2Uge1xuICAgICAgaWQgKz0gJ18nXG4gICAgfVxuICAgIHJldHVybiBpZFxuICB9LCAnJylcbmV4cG9ydCB7IG5hbm9pZCwgY3VzdG9tQWxwaGFiZXQsIGN1c3RvbVJhbmRvbSwgdXJsQWxwaGFiZXQsIHJhbmRvbSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/nanoid/index.browser.js\n");
3227
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"customAlphabet\": () => (/* binding */ customAlphabet),\n/* harmony export */ \"customRandom\": () => (/* binding */ customRandom),\n/* harmony export */ \"nanoid\": () => (/* binding */ nanoid),\n/* harmony export */ \"random\": () => (/* binding */ random),\n/* harmony export */ \"urlAlphabet\": () => (/* reexport safe */ _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__.urlAlphabet)\n/* harmony export */ });\n/* harmony import */ var _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-alphabet/index.js */ \"../../../node_modules/nanoid/url-alphabet/index.js\");\n\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5icm93c2VyLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDaUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vamF2YXNjcmlwdC9lc218Li4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC9pbmRleC5icm93c2VyLmpzPzkxM2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXJsQWxwaGFiZXQgfSBmcm9tICcuL3VybC1hbHBoYWJldC9pbmRleC5qcydcbmxldCByYW5kb20gPSBieXRlcyA9PiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGJ5dGVzKSlcbmxldCBjdXN0b21SYW5kb20gPSAoYWxwaGFiZXQsIGRlZmF1bHRTaXplLCBnZXRSYW5kb20pID0+IHtcbiAgbGV0IG1hc2sgPSAoMiA8PCAoTWF0aC5sb2coYWxwaGFiZXQubGVuZ3RoIC0gMSkgLyBNYXRoLkxOMikpIC0gMVxuICBsZXQgc3RlcCA9IC1+KCgxLjYgKiBtYXNrICogZGVmYXVsdFNpemUpIC8gYWxwaGFiZXQubGVuZ3RoKVxuICByZXR1cm4gKHNpemUgPSBkZWZhdWx0U2l6ZSkgPT4ge1xuICAgIGxldCBpZCA9ICcnXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGxldCBieXRlcyA9IGdldFJhbmRvbShzdGVwKVxuICAgICAgbGV0IGogPSBzdGVwXG4gICAgICB3aGlsZSAoai0tKSB7XG4gICAgICAgIGlkICs9IGFscGhhYmV0W2J5dGVzW2pdICYgbWFza10gfHwgJydcbiAgICAgICAgaWYgKGlkLmxlbmd0aCA9PT0gc2l6ZSkgcmV0dXJuIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5sZXQgY3VzdG9tQWxwaGFiZXQgPSAoYWxwaGFiZXQsIHNpemUgPSAyMSkgPT5cbiAgY3VzdG9tUmFuZG9tKGFscGhhYmV0LCBzaXplLCByYW5kb20pXG5sZXQgbmFub2lkID0gKHNpemUgPSAyMSkgPT5cbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShzaXplKSkucmVkdWNlKChpZCwgYnl0ZSkgPT4ge1xuICAgIGJ5dGUgJj0gNjNcbiAgICBpZiAoYnl0ZSA8IDM2KSB7XG4gICAgICBpZCArPSBieXRlLnRvU3RyaW5nKDM2KVxuICAgIH0gZWxzZSBpZiAoYnl0ZSA8IDYyKSB7XG4gICAgICBpZCArPSAoYnl0ZSAtIDI2KS50b1N0cmluZygzNikudG9VcHBlckNhc2UoKVxuICAgIH0gZWxzZSBpZiAoYnl0ZSA+IDYyKSB7XG4gICAgICBpZCArPSAnLSdcbiAgICB9IGVsc2Uge1xuICAgICAgaWQgKz0gJ18nXG4gICAgfVxuICAgIHJldHVybiBpZFxuICB9LCAnJylcbmV4cG9ydCB7IG5hbm9pZCwgY3VzdG9tQWxwaGFiZXQsIGN1c3RvbVJhbmRvbSwgdXJsQWxwaGFiZXQsIHJhbmRvbSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/nanoid/index.browser.js\n");
3463
3228
 
3464
3229
  /***/ }),
3465
3230
 
@@ -3470,7 +3235,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
3470
3235
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3471
3236
 
3472
3237
  "use strict";
3473
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"urlAlphabet\": () => (/* binding */ urlAlphabet)\n/* harmony export */ });\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC91cmwtYWxwaGFiZXQvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC91cmwtYWxwaGFiZXQvaW5kZXguanM/NGExZSJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdXJsQWxwaGFiZXQgPVxuICAndXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdCdcbmV4cG9ydCB7IHVybEFscGhhYmV0IH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/nanoid/url-alphabet/index.js\n");
3238
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"urlAlphabet\": () => (/* binding */ urlAlphabet)\n/* harmony export */ });\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC91cmwtYWxwaGFiZXQvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vamF2YXNjcmlwdC9lc218Li4vLi4vLi4vbm9kZV9tb2R1bGVzL25hbm9pZC91cmwtYWxwaGFiZXQvaW5kZXguanM/OTJjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdXJsQWxwaGFiZXQgPVxuICAndXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdCdcbmV4cG9ydCB7IHVybEFscGhhYmV0IH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/nanoid/url-alphabet/index.js\n");
3474
3239
 
3475
3240
  /***/ }),
3476
3241
 
@@ -3514,7 +3279,7 @@ module.exports = JSON.parse('{"labels":{"paste":"Paste","pasteCharts":"Paste cha
3514
3279
  /***/ ((module) => {
3515
3280
 
3516
3281
  "use strict";
3517
- module.exports = JSON.parse('{"ar-SA":91,"bg-BG":58,"bn-BD":0,"ca-ES":99,"cs-CZ":27,"da-DK":34,"de-DE":100,"el-GR":99,"en":100,"es-ES":100,"eu-ES":100,"fa-IR":98,"fi-FI":98,"fr-FR":100,"gl-ES":45,"he-IL":94,"hi-IN":62,"hu-HU":94,"id-ID":100,"it-IT":100,"ja-JP":100,"kab-KAB":95,"kk-KZ":22,"ko-KR":99,"lt-LT":22,"lv-LV":100,"mr-IN":100,"my-MM":44,"nb-NO":100,"nl-NL":86,"nn-NO":95,"oc-FR":98,"pa-IN":88,"pl-PL":88,"pt-BR":100,"pt-PT":100,"ro-RO":100,"ru-RU":100,"si-LK":8,"sk-SK":100,"sl-SI":100,"sv-SE":100,"ta-IN":98,"tr-TR":99,"uk-UA":100,"vi-VN":13,"zh-CN":100,"zh-HK":27,"zh-TW":100}');
3282
+ module.exports = JSON.parse('{"ar-SA":91,"bg-BG":58,"bn-BD":13,"ca-ES":99,"cs-CZ":27,"da-DK":34,"de-DE":100,"el-GR":99,"en":100,"es-ES":100,"eu-ES":100,"fa-IR":98,"fi-FI":98,"fr-FR":100,"gl-ES":45,"he-IL":94,"hi-IN":62,"hu-HU":94,"id-ID":100,"it-IT":100,"ja-JP":100,"kab-KAB":95,"kk-KZ":22,"ko-KR":99,"lt-LT":24,"lv-LV":100,"mr-IN":100,"my-MM":44,"nb-NO":100,"nl-NL":86,"nn-NO":95,"oc-FR":98,"pa-IN":88,"pl-PL":88,"pt-BR":100,"pt-PT":100,"ro-RO":100,"ru-RU":100,"si-LK":8,"sk-SK":100,"sl-SI":100,"sv-SE":100,"ta-IN":98,"tr-TR":99,"uk-UA":100,"vi-VN":16,"zh-CN":100,"zh-HK":27,"zh-TW":100}');
3518
3283
 
3519
3284
  /***/ })
3520
3285
 
@@ -3623,7 +3388,7 @@ module.exports = JSON.parse('{"ar-SA":91,"bg-BG":58,"bn-BD":0,"ca-ES":99,"cs-CZ"
3623
3388
  /******/ // This function allow to reference async chunks
3624
3389
  /******/ __webpack_require__.u = (chunkId) => {
3625
3390
  /******/ // return url for filenames based on template
3626
- /******/ return "excalidraw-assets-dev/" + chunkId + "-" + {"locales/ar-SA-json":"c8fa653de4977a22dad1","locales/bg-BG-json":"d7e517c7462119871c76","locales/bn-BD-json":"02993b6dba9e7f115b53","locales/ca-ES-json":"465e286330127bad8841","locales/cs-CZ-json":"a9cc158d187424de71d7","locales/da-DK-json":"81b641c9b272e91762b8","locales/de-DE-json":"e9f68b4434bb76d28151","locales/el-GR-json":"33bcaca5c1eb85d3d81a","locales/es-ES-json":"41e67e045d8f77e56a7a","locales/eu-ES-json":"05199638b0e1e11061f3","locales/fa-IR-json":"2a69e87cf2308b8e78f5","locales/fi-FI-json":"6f0f0bcd3593bcc8930a","locales/fr-FR-json":"f53c7082a6f8691b7258","locales/gl-ES-json":"5295fdf24f032f998f75","locales/he-IL-json":"19fae6e424c8b418735d","locales/hi-IN-json":"f04242b20685f34378a5","locales/hu-HU-json":"c8014a1b2a44d4885691","locales/id-ID-json":"bcd3ce43f1dbefe3f4d0","locales/it-IT-json":"946dc662ecab93b77e69","locales/ja-JP-json":"77b3461742458e757b59","locales/kab-KAB-json":"5e733b113476a350e900","locales/kk-KZ-json":"5ec5044574589896438e","locales/ko-KR-json":"b6b0f0c8dc22ac7a3377","locales/lt-LT-json":"a17971ff33b8929e96d3","locales/lv-LV-json":"2d1a7d044c33d030ecca","locales/mr-IN-json":"ed8cde2f50a5f3c08e85","locales/my-MM-json":"600fc533d1a1c8d3e2f9","locales/nb-NO-json":"c7c63cfd529a92ac3510","locales/nl-NL-json":"7e7200dded88b465781e","locales/nn-NO-json":"d654941277fcbace33bf","locales/oc-FR-json":"2d347b7f54a867a5478f","locales/pa-IN-json":"63518bb328bf8b92790c","locales/pl-PL-json":"92de366ba93223fa3d6a","locales/pt-BR-json":"5abf09146a4f4387393d","locales/pt-PT-json":"c72abd8cf29d14347cf5","locales/ro-RO-json":"6903d070f824f8b91709","locales/ru-RU-json":"110d8aec7823819bf4e3","locales/si-LK-json":"ad2dff740d16a23684ff","locales/sk-SK-json":"209333495d21be527f89","locales/sl-SI-json":"76bdeb34579c5b1f944f","locales/sv-SE-json":"6e768d07fff4e3ed6560","locales/ta-IN-json":"059a459deba6d6230393","locales/tr-TR-json":"7cc28f1f798ef2dd9864","locales/uk-UA-json":"80b2990c3144c6bb1270","locales/vi-VN-json":"670ecb0ad40c0453bdfd","locales/zh-CN-json":"26caa1a6379860230513","locales/zh-HK-json":"179f6dc61b14b96215fa","locales/zh-TW-json":"2aeeb73d79793ee69bfc","vendor":"c0592035c3911af79359"}[chunkId] + ".js";
3391
+ /******/ return "excalidraw-assets-dev/" + chunkId + "-" + {"locales/ar-SA-json":"4bad5b5ff43b48c1e9a5","locales/bg-BG-json":"cbcbc92839539ec1816e","locales/bn-BD-json":"23dc7c5cf87e10c0fa38","locales/ca-ES-json":"8cc8fbe5df66d604ffc3","locales/cs-CZ-json":"dba21e0272554995c7d1","locales/da-DK-json":"bfbe643a377800d3d122","locales/de-DE-json":"fe631cebdb2da354de25","locales/el-GR-json":"71dd4a99c18b08517ea4","locales/es-ES-json":"78ffeeedb2103c8e9e15","locales/eu-ES-json":"cb70f440de0a76f6d69b","locales/fa-IR-json":"19fa55327f56b34b74d3","locales/fi-FI-json":"50208311f1e4fc7cde1d","locales/fr-FR-json":"aa188d6228335106e7a0","locales/gl-ES-json":"72548540dc6a9c01b240","locales/he-IL-json":"a62ed6086276dffb71fd","locales/hi-IN-json":"a929ddf2945cc4079a77","locales/hu-HU-json":"aaa54da52ca5ee068466","locales/id-ID-json":"fbee4b09ecbf4791e1e0","locales/it-IT-json":"b0eae328c3a49c21699f","locales/ja-JP-json":"512054894cd1fae408e3","locales/kab-KAB-json":"dd04a087066d4715e744","locales/kk-KZ-json":"e7ce817c4e68640b3099","locales/ko-KR-json":"8b9fc794d8a77b6dffc4","locales/lt-LT-json":"98d26affa1005499ac60","locales/lv-LV-json":"4c20b8e2ee74634c57ae","locales/mr-IN-json":"165ab79d55f507272fd4","locales/my-MM-json":"098977a1778f20f3a53c","locales/nb-NO-json":"3b7796c103baa51271a9","locales/nl-NL-json":"f2b834e213d9831504ac","locales/nn-NO-json":"82be69040c1ec437138f","locales/oc-FR-json":"e98b96eea154dfcded8b","locales/pa-IN-json":"bb695a155f66b1c9385b","locales/pl-PL-json":"c802b8e3353ee92b1297","locales/pt-BR-json":"395becbd0a0762796d55","locales/pt-PT-json":"28b0243edfd2d1188d78","locales/ro-RO-json":"0b6a9ed696ac7c243e8d","locales/ru-RU-json":"a6c6479bfe4febbbc162","locales/si-LK-json":"de30e8b93b04c9aa5708","locales/sk-SK-json":"1c1cc59d67308156afce","locales/sl-SI-json":"eaf07f8494e7b5091add","locales/sv-SE-json":"79dcebebf235b23c717e","locales/ta-IN-json":"5212782b6c72fafb8ec2","locales/tr-TR-json":"f38f946cfbce79e9e21b","locales/uk-UA-json":"45d77feb9074985d4877","locales/vi-VN-json":"78f290fcef5e04912f86","locales/zh-CN-json":"043751132a42a13d3de4","locales/zh-HK-json":"64105c4a0af0047b4d46","locales/zh-TW-json":"68624f1171bf9f71bf25","vendor":"2811fad3dc3b42ee3357"}[chunkId] + ".js";
3627
3392
  /******/ };
3628
3393
  /******/ })();
3629
3394
  /******/
@@ -3811,12 +3576,16 @@ module.exports = JSON.parse('{"ar-SA":91,"bg-BG":58,"bn-BD":0,"ca-ES":99,"cs-CZ"
3811
3576
  /******/ })();
3812
3577
  /******/
3813
3578
  /************************************************************************/
3814
- /******/
3815
- /******/ // startup
3816
- /******/ // Load entry module and return exports
3817
- /******/ // This entry module can't be inlined because the eval-source-map devtool is used.
3818
- /******/ var __webpack_exports__ = __webpack_require__("./entry.js");
3819
- /******/
3579
+ var __webpack_exports__ = {};
3580
+ // This entry need to be wrapped in an IIFE because it need to be in strict mode.
3581
+ (() => {
3582
+ "use strict";
3583
+ /*!******************!*\
3584
+ !*** ./entry.js ***!
3585
+ \******************/
3586
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Excalidraw\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.Excalidraw),\n/* harmony export */ \"FONT_FAMILY\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.FONT_FAMILY),\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.MIME_TYPES),\n/* harmony export */ \"THEME\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.THEME),\n/* harmony export */ \"bumpVersion\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.bumpVersion),\n/* harmony export */ \"defaultLang\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.defaultLang),\n/* harmony export */ \"exportToBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getFreeDrawSvgPath),\n/* harmony export */ \"getNonDeletedElements\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getNonDeletedElements),\n/* harmony export */ \"getSceneVersion\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.getSceneVersion),\n/* harmony export */ \"isInvisiblySmallElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.isInvisiblySmallElement),\n/* harmony export */ \"isLinearElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.isLinearElement),\n/* harmony export */ \"languages\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.languages),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.mergeLibraryItems),\n/* harmony export */ \"mutateElement\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.mutateElement),\n/* harmony export */ \"newElementWith\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.newElementWith),\n/* harmony export */ \"parseLibraryTokensFromUrl\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.parseLibraryTokensFromUrl),\n/* harmony export */ \"restore\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restore),\n/* harmony export */ \"restoreAppState\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreAppState),\n/* harmony export */ \"restoreElements\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreElements),\n/* harmony export */ \"restoreLibraryItems\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.restoreLibraryItems),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.sceneCoordsToViewportCoords),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.serializeLibraryAsJSON),\n/* harmony export */ \"useHandleLibrary\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.useHandleLibrary),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_3__.viewportCoordsToSceneCoords)\n/* harmony export */ });\n/* harmony import */ var _publicPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./publicPath */ \"./publicPath.js\");\n/* harmony import */ var _polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../polyfill */ \"../../polyfill.ts\");\n/* harmony import */ var _public_fonts_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../public/fonts.css */ \"../../../public/fonts.css\");\n/* harmony import */ var _public_fonts_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_public_fonts_css__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index */ \"./index.tsx\");\n\n\n\n(0,_polyfill__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9lbnRyeS5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXNCO0FBQ2dCO0FBRUg7QUFFbkMscURBQVEsRUFBRSxDQUFDO0FBQ2EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9lbnRyeS5qcz8wOThmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vcHVibGljUGF0aFwiO1xuaW1wb3J0IHBvbHlmaWxsIGZyb20gXCIuLi8uLi9wb2x5ZmlsbFwiO1xuXG5pbXBvcnQgXCIuLi8uLi8uLi9wdWJsaWMvZm9udHMuY3NzXCI7XG5cbnBvbHlmaWxsKCk7XG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleFwiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./entry.js\n");
3587
+ })();
3588
+
3820
3589
  /******/ return __webpack_exports__;
3821
3590
  /******/ })()
3822
3591
  ;