@hahnpro/ai-sdk 0.6.0 → 0.7.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"hahnpro-ai-sdk.mjs","sources":["../../../../packages/ai-sdk/src/lib/core/icons/icon.component.ts","../../../../packages/ai-sdk/src/lib/core/icons/icon.component.html","../../../../packages/ai-sdk/src/lib/core/api.service.ts","../../../../packages/ai-sdk/src/lib/core/owner-resolver.service.ts","../../../../packages/ai-sdk/src/lib/ai/context.service.ts","../../../../packages/ai-sdk/src/lib/ai/transloco.module.ts","../../../../packages/ai-sdk/src/lib/ai/websocket.service.ts","../../../../packages/ai-sdk/src/lib/ai/utils.ts","../../../../packages/ai-sdk/src/lib/ai/chat.service.ts","../../../../packages/ai-sdk/src/lib/ai/message-input/message-input.component.ts","../../../../packages/ai-sdk/src/lib/ai/message-input/message-input.component.html","../../../../packages/ai-sdk/src/lib/core/pipes/bytes.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/color-level.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/date-ago.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/pipes.module.ts","../../../../packages/ai-sdk/src/lib/core/utils/i18n.ts","../../../../packages/ai-sdk/src/lib/core/utils/mimetype.ts","../../../../packages/ai-sdk/src/lib/core/utils/index.ts","../../../../packages/ai-sdk/src/lib/ai/preview/preview.component.ts","../../../../packages/ai-sdk/src/lib/ai/preview/preview.component.html","../../../../packages/ai-sdk/src/lib/ai/context-overlay/context-overlay.component.ts","../../../../packages/ai-sdk/src/lib/ai/context-overlay/context-overlay.component.html","../../../../packages/ai-sdk/src/lib/ai/message-context/message-context.component.ts","../../../../packages/ai-sdk/src/lib/ai/message-context/message-context.component.html","../../../../packages/ai-sdk/src/lib/ai/thread/thread.component.ts","../../../../packages/ai-sdk/src/lib/ai/thread/thread.component.html","../../../../packages/ai-sdk/src/lib/ai/chat-dialog/chat-dialog.component.ts","../../../../packages/ai-sdk/src/lib/ai/chat-dialog/chat-dialog.component.html","../../../../packages/ai-sdk/src/lib/ai/ai.module.ts","../../../../packages/ai-sdk/src/lib/core/markdown.provider.ts","../../../../packages/ai-sdk/src/lib/ai/providers.ts","../../../../packages/ai-sdk/src/hahnpro-ai-sdk.ts"],"sourcesContent":["// src/app/shared/icon/icon.component.ts\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ai-icon',\n templateUrl: './icon.component.html',\n styles: [\n `\n .icon {\n fill: currentColor;\n vertical-align: middle;\n }\n `,\n ],\n})\nexport class IconComponent {\n @Input() name!: string;\n @Input() size: number | string = 24;\n @Input() label?: string;\n}\n","<svg style=\"display: none\" xmlns=\"http://www.w3.org/2000/svg\">\n <symbol id=\"add\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\"\n />\n </symbol>\n <symbol id=\"add_circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\"\n />\n </symbol>\n <symbol id=\"add_square\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\"\n />\n </symbol>\n <symbol id=\"app_connectivity\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\"\n />\n </symbol>\n <symbol id=\"apps\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\"\n />\n </symbol>\n <symbol id=\"arrow_clockwise\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\"\n />\n </symbol>\n <symbol id=\"arrow_down\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\"\n />\n </symbol>\n <symbol id=\"arrow_left\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\"\n />\n </symbol>\n <symbol id=\"arrow_maximize\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\"\n />\n </symbol>\n <symbol id=\"arrow_minimize\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\"\n />\n </symbol>\n <symbol id=\"arrow_move\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\"\n />\n </symbol>\n <symbol id=\"arrow_right\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\"\n />\n </symbol>\n <symbol id=\"arrow_sort\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\"\n />\n </symbol>\n <symbol id=\"arrow_sort_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\"\n />\n </symbol>\n <symbol id=\"arrow_up\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\"\n />\n </symbol>\n <symbol id=\"ascending\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\"\n />\n </symbol>\n <symbol id=\"asset\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\"\n />\n </symbol>\n <symbol id=\"assistant_direction\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\"\n />\n </symbol>\n <symbol id=\"bar_vertical\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\"\n />\n </symbol>\n <symbol id=\"book\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\"\n />\n </symbol>\n <symbol id=\"bookmark\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\"\n />\n </symbol>\n <symbol id=\"box\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\"\n />\n </symbol>\n <symbol id=\"braces_variable\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\"\n />\n </symbol>\n <symbol id=\"bullet_list\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\"\n />\n </symbol>\n <symbol id=\"burger_menu\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\"\n />\n </symbol>\n <symbol id=\"calatena\" viewBox=\"0 0 121 121\">\n <path\n fill=\"currentColor\"\n d=\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\"\n class=\"st0\"\n />\n <path\n d=\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\"\n class=\"st1\"\n />\n </symbol>\n <symbol id=\"calendar\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\"\n />\n </symbol>\n <symbol id=\"calendar_clock\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\"\n />\n </symbol>\n <symbol id=\"camera\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\"\n />\n </symbol>\n <symbol id=\"camera_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\"\n />\n </symbol>\n <symbol id=\"caret_down\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\"\n />\n </symbol>\n <symbol id=\"caret_up\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\"\n />\n </symbol>\n <symbol id=\"chart_average\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\"\n />\n <path fill=\"currentColor\" d=\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\" />\n <path\n fill=\"currentColor\"\n d=\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\n />\n </symbol>\n <symbol id=\"chart_correlation\" viewBox=\"0 0 32 32\">\n <path fill=\"currentColor\" d=\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\" />\n <circle cx=\"9\" cy=\"6\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"9\" cy=\"22\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"18\" cy=\"14\" r=\"3\" fill=\"currentColor\" />\n <path\n fill=\"currentColor\"\n d=\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\"\n />\n <circle cx=\"27\" cy=\"6\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"27\" cy=\"22\" r=\"3\" fill=\"currentColor\" />\n <path\n fill=\"currentColor\"\n d=\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\"\n />\n </symbol>\n <symbol id=\"chart_line\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\"\n />\n </symbol>\n <symbol id=\"chart_line_smooth\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\"\n />\n </symbol>\n <symbol id=\"chart_maximum\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\n />\n <path\n fill=\"currentColor\"\n d=\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\"\n />\n </symbol>\n <symbol id=\"chart_minimum\" viewBox=\"0 0 32 32\">\n <path fill=\"currentColor\" d=\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\" />\n <path\n fill=\"currentColor\"\n d=\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\"\n />\n </symbol>\n <symbol id=\"chart_stepper\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\"\n />\n </symbol>\n <symbol id=\"chart_transformation\" viewBox=\"0 0 32 32\">\n <path\n d=\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\"\n />\n <path\n d=\"M0 0h32v32H0z\"\n data-name=\"&lt;Transparent Rectangle&gt;\"\n style=\"fill: none\"\n />\n </symbol>\n <symbol id=\"chat_add\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\"\n />\n </symbol>\n <symbol id=\"chat_sparkle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\"\n />\n </symbol>\n <symbol id=\"checkmark\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\"\n />\n </symbol>\n <symbol id=\"checkmark_circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\"\n />\n </symbol>\n <symbol id=\"checkmark_circle_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\"\n />\n </symbol>\n <symbol id=\"checkmark_list\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\"\n />\n </symbol>\n <symbol id=\"checkmark_starburst\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\"\n />\n </symbol>\n <symbol id=\"chevron_down\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\"\n />\n </symbol>\n <symbol id=\"chevron_left\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\"\n />\n </symbol>\n <symbol id=\"chevron_left_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\"\n />\n </symbol>\n <symbol id=\"chevron_right\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\"\n />\n </symbol>\n <symbol id=\"chevron_right_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\"\n />\n </symbol>\n <symbol id=\"chevron_up\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\"\n />\n </symbol>\n <symbol id=\"circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\"\n />\n </symbol>\n <symbol id=\"clipboard\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\"\n />\n </symbol>\n <symbol id=\"clock\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\"\n />\n </symbol>\n <symbol id=\"cloud_add\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\"\n />\n </symbol>\n <symbol id=\"cloud_archive\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\"\n />\n </symbol>\n <symbol id=\"cloud_arrow_down\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\"\n />\n </symbol>\n <symbol id=\"cloud_dismiss\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\"\n />\n </symbol>\n <symbol id=\"cloud_download\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\"\n />\n </symbol>\n <symbol id=\"cloud_edit\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\"\n />\n </symbol>\n <symbol id=\"cloud_link\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\"\n />\n </symbol>\n <symbol id=\"cloud_off\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\"\n />\n </symbol>\n <symbol id=\"cloud_upload\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\"\n />\n </symbol>\n <symbol id=\"code\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\"\n />\n </symbol>\n <symbol id=\"color\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\"\n />\n </symbol>\n <symbol id=\"column_triple\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\"\n />\n </symbol>\n <symbol id=\"condition_point\" viewBox=\"0 0 32 32\">\n <path fill=\"currentColor\" d=\"m8 16 8-8 8 8-8 8z\" />\n <path\n fill=\"currentColor\"\n d=\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\"\n />\n </symbol>\n <symbol id=\"copy\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\"\n />\n </symbol>\n <symbol id=\"cube\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\"\n />\n </symbol>\n <symbol id=\"cursor_click\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\"\n />\n </symbol>\n <symbol id=\"dashboard\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\"\n />\n <path\n fill=\"currentColor\"\n d=\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\"\n />\n </symbol>\n <symbol id=\"dashboard_reference\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\"\n />\n </symbol>\n <symbol id=\"data_accessor\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\"\n />\n <circle cx=\"7\" cy=\"25\" r=\"1\" fill=\"currentColor\" />\n <path\n fill=\"currentColor\"\n d=\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\"\n />\n </symbol>\n <symbol id=\"delete\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\"\n />\n </symbol>\n <symbol id=\"delete_arrow_back\" viewBox=\"0 0 20 20\">\n <path\n fill=\"currentColor\"\n d=\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\"\n />\n </symbol>\n <symbol id=\"delete_dismiss\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\"\n />\n </symbol>\n <symbol id=\"delete_lines\" viewBox=\"0 0 20 20\">\n <path\n fill=\"currentColor\"\n d=\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\"\n />\n </symbol>\n <symbol id=\"descending\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\"\n />\n </symbol>\n <symbol id=\"devices\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\"\n />\n </symbol>\n <symbol id=\"dismiss\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\"\n />\n </symbol>\n <symbol id=\"dismiss_circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\"\n />\n </symbol>\n <symbol id=\"dismiss_circle_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\"\n />\n </symbol>\n <symbol id=\"dismiss_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\"\n />\n </symbol>\n <symbol id=\"document\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\"\n />\n </symbol>\n <symbol id=\"document_bullet\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\"\n />\n </symbol>\n <symbol id=\"document_copy\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\"\n />\n </symbol>\n <symbol id=\"document_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\"\n />\n </symbol>\n <symbol id=\"document_lock\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\n />\n </symbol>\n <symbol id=\"document_page\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\"\n />\n </symbol>\n <symbol id=\"document_sparkle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\"\n />\n </symbol>\n <symbol id=\"document_toolbox\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\"\n />\n </symbol>\n <symbol id=\"download\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\"\n />\n </symbol>\n <symbol id=\"drive\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\n />\n </symbol>\n <symbol id=\"edit\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\"\n />\n </symbol>\n <symbol id=\"enterprise\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\"\n />\n </symbol>\n <symbol id=\"error_circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\"\n />\n </symbol>\n <symbol id=\"event_alerting\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\"\n />\n </symbol>\n <symbol id=\"export\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\"\n />\n </symbol>\n <symbol id=\"eye\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\"\n />\n </symbol>\n <symbol id=\"eye_hide\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\"\n />\n </symbol>\n <symbol id=\"factory\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\"\n />\n </symbol>\n <symbol id=\"file\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\"\n />\n </symbol>\n <symbol id=\"file_audio\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\"\n />\n </symbol>\n <symbol id=\"file_pdf\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\"\n />\n </symbol>\n <symbol id=\"file_sparkle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\"\n />\n </symbol>\n <symbol id=\"file_text\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\"\n />\n </symbol>\n <symbol id=\"file_video\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\"\n />\n </symbol>\n <symbol id=\"file_zip\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\"\n />\n </symbol>\n <symbol id=\"filter\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\"\n />\n </symbol>\n <symbol id=\"fingerprint\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\"\n />\n </symbol>\n <symbol id=\"flag-de\" viewBox=\"0 0 640 480\">\n <path fill=\"#fc0\" d=\"M0 320h640v160H0z\" />\n <path fill=\"#000001\" d=\"M0 0h640v160H0z\" />\n <path fill=\"red\" d=\"M0 160h640v160H0z\" />\n </symbol>\n <symbol id=\"flag-en\" viewBox=\"0 0 640 480\">\n <path fill=\"#012169\" d=\"M0 0h640v480H0z\" />\n <path\n fill=\"#fff\"\n d=\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\"\n />\n <path\n fill=\"#c8102e\"\n d=\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\"\n />\n <path fill=\"#fff\" d=\"M241 0v480h160V0zM0 160v160h640V160z\" />\n <path fill=\"#c8102e\" d=\"M0 193v96h640v-96zM273 0v480h96V0z\" />\n </symbol>\n <symbol id=\"flash\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\"\n />\n </symbol>\n <symbol id=\"flow_stream\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\"\n />\n </symbol>\n <symbol id=\"globe\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\"\n />\n </symbol>\n <symbol id=\"gpt\" viewBox=\"0 0 48 48\">\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linejoin=\"round\"\n d=\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\"\n />\n </symbol>\n <symbol id=\"history\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\"\n />\n </symbol>\n <symbol id=\"home_checkmark\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\"\n />\n </symbol>\n <symbol id=\"hourglass_quarter\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\"\n />\n </symbol>\n <symbol id=\"id\" viewBox=\"0 0 32 32\">\n <g fill=\"currentColor\">\n <path\n d=\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\"\n />\n <path\n d=\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\"\n />\n </g>\n </symbol>\n <symbol id=\"image\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\"\n />\n </symbol>\n <symbol id=\"image_library\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\"\n />\n </symbol>\n <symbol id=\"image_search\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\"\n />\n </symbol>\n <symbol id=\"import\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\"\n />\n </symbol>\n <symbol id=\"info\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\"\n />\n </symbol>\n <symbol id=\"iot\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\n />\n </symbol>\n <symbol id=\"key\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\"\n />\n </symbol>\n <symbol id=\"key_multiple\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\n />\n </symbol>\n <symbol id=\"label\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\"\n />\n </symbol>\n <symbol id=\"labels\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\"\n />\n </symbol>\n <symbol id=\"layer_diagonal_sparkle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\"\n />\n </symbol>\n <symbol id=\"lightbulb\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\"\n />\n </symbol>\n <symbol id=\"line_horizontal\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\"\n />\n </symbol>\n <symbol id=\"link\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\"\n />\n </symbol>\n <symbol id=\"link_dismiss\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\"\n />\n </symbol>\n <symbol id=\"link_square\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\"\n />\n </symbol>\n <symbol id=\"list_square\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\"\n />\n </symbol>\n <symbol id=\"location_on\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\"\n />\n </symbol>\n <symbol id=\"location_searching\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\"\n />\n </symbol>\n <symbol id=\"lock\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\"\n />\n </symbol>\n <symbol id=\"lock_open\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\"\n />\n </symbol>\n <symbol id=\"login\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\"\n />\n <path\n fill=\"currentColor\"\n d=\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\"\n />\n </symbol>\n <symbol id=\"logout\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\"\n />\n </symbol>\n <symbol id=\"mail\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\"\n />\n </symbol>\n <symbol id=\"map\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\"\n />\n </symbol>\n <symbol id=\"mic\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\"\n />\n </symbol>\n <symbol id=\"mic_record\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\"\n />\n </symbol>\n <symbol id=\"microchip_ai\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n fill-rule=\"evenodd\"\n d=\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\"\n clip-rule=\"evenodd\"\n />\n </symbol>\n <symbol id=\"microsoft\" viewBox=\"0 0 21 21\">\n <path fill=\"#f25022\" d=\"M1 1h9v9H1z\" />\n <path fill=\"#00a4ef\" d=\"M1 11h9v9H1z\" />\n <path fill=\"#7fba00\" d=\"M11 1h9v9h-9z\" />\n <path fill=\"#ffb900\" d=\"M11 11h9v9h-9z\" />\n </symbol>\n <symbol id=\"moon\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\"\n />\n </symbol>\n <symbol id=\"more_horizontal\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\"\n />\n </symbol>\n <symbol id=\"more_vertical\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\"\n />\n </symbol>\n <symbol id=\"navigation\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\"\n />\n </symbol>\n <symbol id=\"notification\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\"\n />\n </symbol>\n <symbol id=\"notification_off\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\"\n />\n </symbol>\n <symbol id=\"offer-request\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\"\n />\n </symbol>\n <symbol id=\"parent_child\" viewBox=\"0 0 32 32\">\n <path\n fill=\"currentColor\"\n d=\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\"\n />\n </symbol>\n <symbol id=\"people_community\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\"\n />\n </symbol>\n <symbol id=\"person_swap\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\"\n />\n </symbol>\n <symbol id=\"phone\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\"\n />\n </symbol>\n <symbol id=\"question\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\"\n />\n </symbol>\n <symbol id=\"question_circle\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\"\n />\n </symbol>\n <symbol id=\"radio_button\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\"\n />\n </symbol>\n <symbol id=\"radio_button_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\"\n />\n </symbol>\n <symbol id=\"record_stop\" viewBox=\"0 0 20 20\">\n <path\n fill=\"currentColor\"\n d=\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\"\n />\n </symbol>\n <symbol id=\"rocket\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\"\n />\n </symbol>\n <symbol id=\"save\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\"\n />\n </symbol>\n <symbol id=\"save_all\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\"\n />\n </symbol>\n <symbol id=\"scan_text\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\"\n />\n </symbol>\n <symbol id=\"screen\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\"\n />\n </symbol>\n <symbol id=\"search\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\"\n />\n </symbol>\n <symbol id=\"send\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\"\n />\n </symbol>\n <symbol id=\"settings\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\"\n />\n </symbol>\n <symbol id=\"shield\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\"\n />\n </symbol>\n <symbol id=\"shield_dismiss\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\"\n />\n </symbol>\n <symbol id=\"shield_lock\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\"\n />\n </symbol>\n <symbol id=\"shield_person\" viewBox=\"0 0 20 20\">\n <path\n fill=\"currentColor\"\n d=\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\"\n />\n </symbol>\n <symbol id=\"shifts_activity\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\"\n />\n </symbol>\n <symbol id=\"shifts_checkmark\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\"\n />\n </symbol>\n <symbol id=\"shifts_open\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\"\n />\n </symbol>\n <symbol id=\"slide_text\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\"\n />\n </symbol>\n <symbol id=\"squalls\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\"\n />\n </symbol>\n <symbol id=\"star\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\"\n />\n </symbol>\n <symbol id=\"star_filled\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\"\n />\n </symbol>\n <symbol id=\"status\" viewBox=\"0 0 24 24\">\n <path\n fill=\"#212121\"\n fill-rule=\"nonzero\"\n d=\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\"\n />\n <path\n fill=\"#212121\"\n d=\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\"\n />\n </symbol>\n <symbol id=\"subtract_square\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\"\n />\n </symbol>\n <symbol id=\"sun\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\"\n />\n </symbol>\n <symbol id=\"sync\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\"\n />\n </symbol>\n <symbol id=\"tasks\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\n />\n </symbol>\n <symbol id=\"timer\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\"\n />\n </symbol>\n <symbol id=\"upload\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\"\n />\n </symbol>\n <symbol id=\"user\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\"\n />\n </symbol>\n <symbol id=\"user_multiple\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\"\n />\n </symbol>\n <symbol id=\"user_role\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\n />\n </symbol>\n <symbol id=\"warning\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\"\n />\n </symbol>\n <symbol id=\"zoom_fit\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\"\n />\n </symbol>\n <symbol id=\"zoom_in\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\"\n />\n </symbol>\n <symbol id=\"zoom_out\" viewBox=\"0 0 24 24\">\n <path\n fill=\"currentColor\"\n d=\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\"\n />\n </symbol>\n</svg>\n<svg\n class=\"icon\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.aria-label]=\"label\"\n>\n <use [attr.href]=\"'#' + name\"></use>\n</svg>\n","import { Injectable } from '@angular/core';\nimport {\n clientCredentialsGrant,\n discovery,\n Configuration,\n} from 'openid-client';\nimport type {\n AiAssistant,\n Asset,\n Content,\n Event,\n Message,\n Paginated,\n RequestParameter,\n SpeechToken,\n Thread,\n ThreadPopulated,\n} from '@hahnpro/hpc-api';\n\n@Injectable({ providedIn: 'root' })\nexport class ApiService {\n private _baseUrl = 'https://adam.hahnpro.com';\n private apiPath = '/api';\n private realm = 'adam';\n private httpClient = new HttpClient();\n\n get baseUrl(): string {\n return this._baseUrl;\n }\n\n get apiUrl(): string {\n return `${this.baseUrl}${this.apiPath}`;\n }\n\n get user(): User | null {\n return this.httpClient.user;\n }\n\n init(\n clientId: string,\n clientSecret: string,\n baseUrl?: string,\n realm?: string,\n ) {\n this._baseUrl = baseUrl || 'https://adam.hahnpro.com';\n this.realm = realm || 'adam';\n return this.httpClient.init(\n `${this.baseUrl}/auth/realms/${this.realm}`,\n clientId,\n clientSecret,\n );\n }\n\n getAccessToken(): Promise<string> {\n return this.httpClient.getAccessToken();\n }\n\n createThread(\n assistantId: string,\n isEphemeral?: boolean,\n ): Promise<ThreadPopulated> {\n return this.httpClient.post(`${this.apiUrl}/ai/threads`, {\n assistantId,\n isEphemeral,\n });\n }\n\n getThread(threadId: string): Promise<ThreadPopulated> {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n\n getThreadMessages(threadId: string): Promise<Paginated<Message[]>> {\n return this.httpClient.get(\n `${this.apiUrl}/ai/threads/${threadId}/messages`,\n );\n }\n\n deleteThread(threadId: string): Promise<Thread> {\n return this.httpClient.delete(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n\n getAssistants(): Promise<AiAssistant[]> {\n return this.httpClient.get(`${this.apiUrl}/ai/assistants`);\n }\n\n getSpeechToken(): Promise<SpeechToken> {\n return this.httpClient.get<SpeechToken>(`${this.apiUrl}/ai/speech/token`);\n }\n\n getAssets(params: RequestParameter = {}): Promise<Paginated<Asset[]>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assets`, { params });\n }\n\n getContents(params: RequestParameter = {}): Promise<Paginated<Content[]>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/contents`, { params });\n }\n\n getEvents(params: RequestParameter = {}): Promise<Paginated<Event[]>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/events`, { params });\n }\n\n downloadContent(id: string, type?: FileType): Promise<Blob> {\n const query = type ? '?type=' + type : '';\n return this.httpClient.get(\n `${this.apiUrl}/contents/${id}/download${query}`,\n );\n }\n\n async loadUsersAsPermissions(): Promise<Permission[]> {\n if (this.httpClient.user?.roles.includes('superuser')) {\n return this.httpClient.get<Permission[]>(\n `${this.apiUrl}/user/permissions`,\n );\n } else {\n return [];\n }\n }\n}\n\nexport type TokenOption = { token?: string };\nexport type Config = TokenOption & {\n headers?: Record<string, string>;\n params?: any;\n};\n\nexport class HttpClient {\n private config: Configuration | null = null;\n private token: string | null = null;\n private expiresAt = 0;\n private _user: User | null = null;\n\n async init(serverUrl: string, clientId: string, clientSecret: string) {\n this.config = await discovery(new URL(serverUrl), clientId, clientSecret);\n }\n\n public delete = <T>(url: string, config?: Config) =>\n this.request<T>('DELETE', url, config);\n public get = <T>(url: string, config?: Config) =>\n this.request<T>('GET', url, config);\n public post = <T>(url: string, data: any, config?: Config) =>\n this.request<T>('POST', url, config, data);\n public put = <T>(url: string, data: any, config?: Config) =>\n this.request<T>('PUT', url, config, data);\n\n get user(): User | null {\n return this._user;\n }\n\n protected request = async <T>(\n method: Method,\n url: string,\n config: Config = {},\n data?: BodyInit | null | undefined,\n ): Promise<T> => {\n const token = await this.getAccessToken();\n if (config.params) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(config.params)) {\n params.append(key, String(value));\n }\n url += `?${params}`;\n }\n const response = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n body: data ? JSON.stringify(data) : undefined,\n });\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return response.json();\n };\n\n async getAccessToken(): Promise<string> {\n if (!this.config) {\n throw new Error('HttpClient not initialized');\n }\n if (!this.token || this.expiresAt <= Date.now()) {\n const tokenResponse = await clientCredentialsGrant(this.config);\n this.token = tokenResponse.access_token;\n this.expiresAt = Date.now() + (tokenResponse.expires_in ?? 0) * 1000;\n this.resolveUser(this.token);\n }\n return this.token;\n }\n\n private resolveUser(token: string) {\n try {\n const tokenParts = token.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('Invalid JWT token format');\n }\n const payload = JSON.parse(atob(tokenParts[1]));\n this._user = {\n id: payload.sub,\n username: payload.preferred_username || payload.email,\n roles: payload.roles || [],\n activeOrg: payload.active_organization\n ? {\n id: payload.active_organization.id,\n name: payload.active_organization.name,\n }\n : undefined,\n };\n } catch (error) {\n console.error('Error parsing JWT token:', error);\n this._user = null;\n }\n }\n}\n\nexport type Method =\n | 'get'\n | 'GET'\n | 'delete'\n | 'DELETE'\n | 'head'\n | 'HEAD'\n | 'options'\n | 'OPTIONS'\n | 'post'\n | 'POST'\n | 'put'\n | 'PUT'\n | 'patch'\n | 'PATCH'\n | 'purge'\n | 'PURGE'\n | 'link'\n | 'LINK'\n | 'unlink'\n | 'UNLINK';\n\nexport type FileType =\n | 'original'\n | 'preview-sm'\n | 'preview-md'\n | 'preview-lg'\n | 'preview-xl';\n\nexport interface Permission {\n label: string;\n value: string;\n}\n\nexport interface User {\n id: string;\n username: string;\n activeOrg?: {\n id: string;\n name: string;\n };\n roles: string[];\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NGXLogger } from 'ngx-logger';\n\nimport { ApiService } from './api.service';\n\n/**\n * Service to resolve owner names based on their IDs. It utilizes caching to minimize\n * redundant requests and leverages authentication and user services to fetch owner details.\n */\n@Injectable({ providedIn: 'root' })\nexport class OwnerResolverService {\n private readonly cache = new ResponseCache(1000, 24 * 60 * 60 * 1000);\n private readonly apiService = inject(ApiService);\n\n /**\n * Resolves the owner name for a given ID.\n */\n async resolveOwner(id: string): Promise<string> {\n return (await this.resolveOwners(id))?.[id];\n }\n\n /**\n * Resolves owner names for a list of IDs.\n */\n async resolveOwners(ids: string | string[]): Promise<Record<string, string>> {\n if (typeof ids === 'string') {\n ids = [ids];\n }\n const idsMap = new Map<string, string>();\n const idsToFetch = new Set<string>();\n\n if (Array.isArray(ids) && ids.length > 0) {\n for (const id of ids) {\n const cachedValue = this.cache.get(id);\n if (cachedValue) {\n idsMap.set(id, cachedValue);\n } else {\n const resolved = await this.resolveFromAuth(id, idsMap);\n if (!resolved) {\n idsToFetch.add(id);\n }\n }\n }\n\n if (idsToFetch.size > 0) {\n await this.fetchIds(idsToFetch, idsMap);\n }\n return Object.fromEntries(idsMap);\n } else {\n return {};\n }\n }\n\n /**\n * Attempts to resolve the owner name from the authentication service.\n */\n private async resolveFromAuth(\n id: string,\n idsMap: Map<string, string>,\n ): Promise<boolean> {\n const { id: userId, username, activeOrg } = this.apiService.user;\n let name: string;\n if (id === userId) {\n name = username;\n } else if (activeOrg.id === id) {\n name = activeOrg.name;\n }\n\n if (name) {\n idsMap.set(id, name);\n this.cache.set(id, name);\n return true;\n } else {\n return false;\n }\n }\n\n private async fetchIds(\n idsToFetch: Set<string>,\n idsMap: Map<string, string>,\n ): Promise<void> {\n try {\n const permissions = await this.apiService.loadUsersAsPermissions();\n const ids = permissions.reduce((acc, user) => {\n acc[user.value] = user.label;\n return acc;\n }, {});\n\n for (const id of Object.keys(idsToFetch)) {\n if (ids[id]) {\n idsMap.set(id, ids[id]);\n this.cache.set(id, ids[id]);\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n}\n\nclass ResponseCache {\n private cache = new Map<string, [any, number]>();\n\n constructor(\n private sizeLimit: number,\n private ttl?: number,\n ) {}\n\n get(key: string) {\n if (!this.cache.has(key)) {\n return undefined;\n }\n\n const [value, ts] = this.cache.get(key);\n\n // if the cache value is older than the ttl, delete it and return undefined\n if (this.ttl && Date.now() - ts > this.ttl) {\n this.cache.delete(key);\n return undefined;\n }\n\n // delete the key/value pair from cache and then set it again to put\n // the retrieved key/value pair back at the front for the map\n this.cache.delete(key);\n this.cache.set(key, [value, ts]);\n\n return value;\n }\n\n set(key: string, value: any) {\n this.cache.delete(key);\n\n if (this.cache.size === this.sizeLimit) {\n this.cache.delete(this.cache.keys().next().value);\n }\n this.cache.set(key, [value, Date.now()]);\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport type { Asset, Content, Event } from '@hahnpro/hpc-api';\nimport { ApiService } from '../core/api.service';\nimport { OwnerResolverService } from '../core/owner-resolver.service';\n\nexport interface Status {\n isComplete?: boolean;\n isError?: boolean;\n isLoading?: boolean;\n}\n\n@Injectable()\nexport class ContextService {\n cache = new Map<string, Asset | Content | Event>();\n status = new Map<string, Status>();\n\n private readonly apiService = inject(ApiService);\n private readonly ownerResolver = inject(OwnerResolverService);\n\n reset() {\n this.cache.clear();\n this.status.clear();\n }\n\n async loadReferences(references: ContextReference[]) {\n const assetIds = [];\n const contentIds = [];\n const eventIds = [];\n\n for (const reference of references) {\n if (\n this.cache.has(reference.id) &&\n this.status.get(reference.id)?.isComplete\n ) {\n continue;\n }\n if (reference.resourceType === 'asset') {\n assetIds.push(reference.id);\n } else if (reference.resourceType === 'content') {\n contentIds.push(reference.id);\n } else if (reference.resourceType === 'event') {\n eventIds.push(reference.id);\n }\n }\n\n if (assetIds.length > 0) {\n assetIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }),\n );\n this.apiService\n .getAssets({ filter: `_id=@${assetIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(\n response.docs.map((a) => a.owner?.id),\n );\n response.docs.forEach((asset) => {\n if (asset.owner?.id) {\n (asset.owner as any).name =\n owners[asset.owner.id] || asset.owner.id;\n }\n this.cache.set(asset.id, asset);\n this.status.set(asset.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n });\n })\n .catch((error) => {\n console.error(error);\n assetIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }),\n );\n });\n }\n\n if (contentIds.length > 0) {\n contentIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }),\n );\n this.apiService\n .getContents({\n filter: `_id=@${contentIds.join(',')}`,\n populate: 'analysis',\n })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(\n response.docs.map((c) => c.owner?.id),\n );\n response.docs.forEach((content) => {\n if (content.owner?.id) {\n (content.owner as any).name =\n owners[content.owner.id] || content.owner.id;\n }\n this.cache.set(content.id, content);\n this.status.set(content.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n });\n })\n .catch((error) => {\n console.error(error);\n contentIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }),\n );\n });\n }\n\n if (eventIds.length > 0) {\n eventIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }),\n );\n this.apiService\n .getEvents({ filter: `_id=@${eventIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(\n response.docs.map((e) => e.owner?.id),\n );\n response.docs.forEach((event) => {\n if (event.owner?.id) {\n (event.owner as any).name =\n owners[event.owner.id] || event.owner.id;\n }\n this.cache.set(event.id, event);\n this.status.set(event.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n });\n const assetIds = response.docs.map(\n (e) =>\n ({\n id: e.assetRef,\n resourceType: 'asset',\n }) as ContextReference,\n );\n this.loadReferences(assetIds);\n })\n .catch((error) => {\n console.error(error);\n eventIds.forEach((id) =>\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }),\n );\n });\n }\n }\n\n getContext(id: string): Asset | Content | Event {\n return this.cache.get(id);\n }\n\n assetForContent(contentId: string): Asset | null {\n for (const resource of this.cache.values()) {\n if ((resource as Asset).attachments?.includes(contentId)) {\n return resource as Asset;\n }\n }\n return null;\n }\n\n assetForEvent(event: Event): Asset | null {\n if (event.assetRef) {\n return this.cache.get(event.assetRef) as Asset;\n } else {\n return null;\n }\n }\n}\n\nexport interface ContextReference {\n reference_id: number;\n id: string;\n resourceType: 'asset' | 'content' | 'event';\n pageNumber?: number;\n firstOccurrence?: boolean;\n}\n","import { NgModule, isDevMode } from '@angular/core';\nimport {\n DefaultTranspiler,\n TRANSLOCO_LOADER,\n TRANSLOCO_TRANSPILER,\n TranslocoLoader,\n TranslocoModule,\n provideTransloco,\n} from '@jsverse/transloco';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nexport const translations = {\n en: {\n accepted: 'Accepted',\n access_restricted: 'Access restricted',\n access_unrestricted: 'Access unrestricted',\n account: 'Account',\n action: 'Action',\n actions: 'Actions',\n active: 'Active',\n add_attachment: 'Add Attachment',\n add_attribute: 'Add Attribute',\n add_new: 'Add New',\n add_new_member: 'Add new member',\n add_new_organization: 'Add new Organization',\n add_to_clipboard: 'Add to clipboard',\n address: 'Address',\n administration: 'Administration',\n ai: {\n accept: 'Accept',\n adam_ai_intro:\n 'Engage in real-time conversations with Adam AI, your expert assistant in Asset Intelligence. Get instant, intelligent insights and solutions tailored to your needs.',\n agent_unavailable: 'Agent unavailable',\n ai_placeholder: 'How can ADAM help you today?',\n and: 'and',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistants',\n chat_deleted: 'Chat deleted',\n chats: 'Chats',\n clear_history: 'Clear History',\n complete_and_create_report: 'Complete and create report',\n context: 'Referenced Context',\n context_found: 'Found related context',\n context_none:\n 'No related Assets or files found. Consider revising your prompt.',\n context_search: 'Searching for related Assets and files...',\n continue_chat: 'Continue Chat',\n continue_previous_chat: 'Continue previous Chat',\n cookies: 'Cookies',\n create_new_chat: 'Create New Chat',\n create_new_event: 'Create new Event with the help of Adam AI',\n de: 'Deutsch',\n delete_chat: 'Delete Chat',\n delete_item: 'Delete Item',\n delete_item_message:\n '{count, plural, one {Are you sure you want to delete this item?<br><br><b>{{ items }}</b>} other {Are you sure you want to delete these # items?}}',\n delete_item_message_general: 'Are you sure you want to delete this item?',\n delete_item_title:\n '{count, plural, one {Delete Item} other {Delete Multiple Items}}',\n document: 'Document',\n en: 'English',\n failed_to_create_chat: 'Failed to create chat',\n failed_to_delete_chat: 'Failed to delete chat',\n failed_to_initialize_chat: 'Failed to initialize chat',\n failed_to_load_assistants: 'Failed to load assistants',\n failed_to_load_chats: 'Failed to load chat history',\n failed_to_send_message: 'Failed to send message',\n failed_to_update_model: 'Failed to update model',\n file_type: {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter':\n 'Your request was blocked due to content filters. Please try rephrasing your question and try again.',\n error: 'Something went wrong. Please try again later.',\n length:\n 'The request is too long to process. Please try again or start a new conversation.',\n unknown: 'Something went wrong. Please try again later.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Ask Adam AI for help',\n last_message: 'Last Message',\n model: 'GPT Model',\n model_updated: 'Model updated',\n no_chats_found: 'No chats found',\n no_messages: 'No messages yet',\n none_of_those: 'None of those',\n of_document: 'of document',\n previous_chats: 'Previous Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Provide a detailed maintenance plan for my asset',\n title: 'Asset Info',\n },\n intro: {\n prompt:\n 'What is Adam AI and how can it help me with asset management?',\n title: 'Introduction',\n },\n },\n prompts: {\n asset:\n \"I have a question related to the Asset '{{assetName}}' with ID {{assetId}}\",\n 'ext-asset':\n \"I have a question related to the Asset '{{assetName}}' with external Key {{assetKey}}\",\n help: \"Please help me solve this task for the asset '{{assetName}}' (ID: {{assetId}}): {{task}}\",\n incident:\n \"Please create a new incident for the asset '{{assetName}}' (ID: {{assetId}}) of type '{{assetTypeName}}' (ID: {{assetTypeId}}')\",\n report:\n \"I have completed the following task for asset '{{assetName}}' (ID: {{assetId}}). Please create a report about it: {{task}}\",\n },\n reference_not_found: 'Reference not found',\n select_asset: 'Select Asset',\n send_message: 'Send Message',\n show_preview: 'Show Preview',\n source: 'Source',\n stop_recording: 'Stop Recording',\n suggested_prompts: 'Suggested prompts to get started with ADAM AI',\n threads: 'Threads',\n toast_error_delete_entry: 'Could not delete {{entry}}.',\n toast_success_delete_entry: '{{entry}} deleted.',\n tools: {\n createEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createReport: {\n completed: 'Report was created',\n failed: 'Report could not be created',\n pending: 'Creating Report',\n processing: 'Creating Report',\n },\n getReportTemplate: {\n completed: 'Report template was retrieved',\n failed: 'Report template could not be retrieved',\n pending: 'Retrieving Report template',\n processing: 'Retrieving Report template',\n },\n searchForAssetAxalta: {\n completed: 'Search for Asset completed',\n failed: 'Search for Asset failed',\n pending: 'Searching for Asset',\n processing: 'Searching for Asset',\n },\n searchForAssetWithId: {\n completed: 'Search for Asset with ID completed',\n failed: 'Search for Asset with ID failed',\n pending: 'Searching for Asset with ID',\n processing: 'Searching for Asset with ID',\n },\n searchForAssets: {\n completed: 'Search for Assets completed',\n failed: 'Search for Assets failed',\n pending: 'Searching for Assets',\n processing: 'Searching for Assets',\n },\n searchForDocuments: {\n completed: 'Search for Documents completed',\n failed: 'Search for Documents failed',\n pending: 'Searching for Documents',\n processing: 'Searching for Documents',\n },\n searchForEvents: {\n completed: 'Search for Events completed',\n failed: 'Search for Events failed',\n pending: 'Searching for Events',\n processing: 'Searching for Events',\n },\n },\n use_microphone: 'Use Microphone',\n view_previous_chats: 'View Previous Chats',\n },\n alert: 'Alert',\n alerts: 'Alerts',\n allowed_to: \"You're allowed to\",\n and: 'and',\n applications: 'Applications',\n apps: 'Applications',\n appstore: 'App Store',\n ascending: 'Ascending',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Type',\n assets: 'Assets',\n assettype: 'Asset Type',\n assettypes: 'Asset Types',\n attachment: 'Attachment',\n attachments: 'Attachments',\n audit_logs: 'Audit Logs',\n author: 'Author',\n authorization_type: 'Authorization Type',\n average: 'Average',\n back: 'Back',\n back_to_organizations: 'Back to organizations',\n bucket_time_range: 'Bucket Time Range (Default is 24h)',\n by: 'by',\n 'cad-preview': {\n 'cad-direction-y': 'Set Y as up vector',\n 'cad-direction-z': 'Set Z as up vector',\n 'cad-fixed-vector': 'Fixed up vector',\n 'cad-menu-center': 'Center',\n 'cad-menu-flip-vector': 'Flip',\n 'cad-unfixed-vector': 'Unfixed vector',\n 'cad-viewer-flip-camera-mode-orthogonal':\n 'Turn on the Orthographic camera',\n 'cad-viewer-flip-camera-mode-perspective':\n 'Turn on the Perspective camera',\n 'error-default-filetype': 'Invalid filetype',\n 'error-invalid-filetype':\n '{{filetype}} is not supported. Try compressing files in a ZIP file if this is a CAD-drawing',\n },\n calendar: 'Calendar',\n cancel: 'Cancel',\n catalog: 'Catalog',\n 'category.delete': 'Remove category',\n 'cert.add.new': 'Add new Certificate',\n 'cert.delete': 'Remove Certificate',\n 'cert.edit': 'Edit Certificate',\n 'cert.name': \"Certificate's name\",\n cert_add_new_description: 'Management of organization related certificates',\n certificate: 'Certificate',\n 'certificate.add.new': 'Add new Certificate',\n certification: {\n date_issue: 'Date of Issue',\n expiration_date: 'Expiration date',\n institution: 'Certification Institution',\n number: 'Certificate number',\n },\n children: 'Children',\n choose: 'Choose',\n choose_file: 'Choose file',\n city: 'City',\n color: 'Color',\n column_settings: 'Column Settings',\n comment: 'Comment',\n company_manager: 'Company Manager',\n company_matching: 'Company Matching',\n complete_subscription: 'Complete Subscription',\n confirm: 'Confirm',\n consent_management: {\n accept_all: 'Accept all',\n accept_all_note:\n 'By clicking \"Accept all\", you agree to the use of essential and analytics cookies.',\n always_enabled: 'Always enabled',\n cookie_groups: {\n analytics: {\n description:\n 'These cookies gather data on website usage, such as which pages are visited, to help us identify the most popular pages and understand how visitors navigate the site. <br /> Website usage data is captured using persistent first and third-party cookies and other tracking technologies to determine the popularity of products and online activity.',\n title: 'Analytics cookies',\n },\n essential: {\n description:\n 'These cookies are essential for the operation of the website. They are usually only set in response to your actions, such as setting your privacy preferences. These cookies do not store any personally identifiable information.',\n title: 'Essential cookies',\n },\n },\n cookie_intro:\n 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.',\n cookie_intro_extended:\n 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.<br />We use Microsoft Clarity to analyse how our website is used and to improve our products. By using our site, you consent to us and Microsoft collecting and using this data.',\n cookie_learn_more: 'To learn more, please view our',\n cookie_preferences_center: 'Cookie Preferences Center',\n cookie_settings: 'Cookie Settings',\n cookie_usage: 'Cookie usage',\n manage_preferences: 'Manage preferences',\n reject_all: 'Reject all',\n save_preferences: 'Save preferences',\n },\n content: 'Content',\n 'content.file_type': {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n\n 'content.show_preview': 'Show Preview',\n 'content.size': 'Size',\n 'content.toast_downloading_content': 'Downloading content...',\n 'content.toast_error_download_content': 'Could not download content.',\n 'content.toast_success_download_content':\n 'Content downloaded successfully.',\n content_drop_zone_text: 'Drag & Drop File',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'Copy ID',\n count: 'Count',\n created: 'Created',\n critical: 'Critical',\n current_organization: 'Current Organization',\n danger_zone: 'Danger Zone',\n dashboards: 'Dashboards',\n data: 'Data',\n date: 'Date',\n day: 'Day',\n days: 'Days',\n de: 'Deutsch',\n default: 'Default',\n delete: 'Delete',\n delete_attachment: 'Delete Attachment',\n delete_member: 'Remove member',\n delete_revision: 'Delete Revision',\n delete_title: 'Delete Title',\n deleted: 'Deleted',\n delimiter: 'Delimiter, like ; or :',\n descending: 'Descending',\n description: 'Description',\n details: 'Details',\n domain: 'Domain',\n 'domain.delete': 'Delete Domain name',\n domain_name: 'Domain name',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'Add new domain',\n domains: 'Domains',\n download: 'Download',\n download_attachment: 'Download Attachment',\n drag_drop_file: {\n error: {\n file_too_large:\n \"The file '{{fileName}}' exceeds the maximum allowed size of {{maxFileSize}} and has been ignored.\",\n file_type_not_allowed:\n \"The file type of '{{fileName}}' is not allowed and has been rejected.\",\n },\n max_file_size: 'Maximum file size',\n prompt_1:\n 'Drag & drop {limit, plural, one {file} other {files}} here or ',\n prompt_2: 'click to browse',\n warning: {\n max_file_count:\n 'You have selected {{fileCount}} files, but the maximum allowed is {{maxFileCount}}. Only the first {{maxFileCount}} files have been accepted.',\n },\n },\n duration: 'Duration',\n edit: 'Edit',\n edit_attachment: 'Edit Attachment',\n edit_event_level: 'Edit Event Level',\n edit_title: 'Edit Title',\n editor: 'Editor',\n email: 'Email',\n employees: 'Employees',\n en: 'English',\n encoding: 'Encoding',\n endpoints: 'Notification Endpoints',\n english: 'English',\n entries: 'Entries',\n error: 'Error',\n error_loading: 'Failed to load {item}',\n error_message_update: 'Could not update User Settings',\n errors: 'Errors',\n event: 'Event',\n event_level: 'Event Level',\n events: 'Events',\n filename: 'Filename',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Function',\n flowfunctions: 'Flow Functions',\n flowmodel: 'Flow Model',\n flowmodule: 'Flow Module',\n flowmodules: 'Flow Modules',\n flows: 'Flows',\n form_error_delimiter: 'Delimiter required.',\n form_error_details: 'Details Form has Errors.',\n form_error_email: 'Email is required.',\n form_error_empty_method: 'The method must be not empty.',\n form_error_empty_url: 'The URL must be not empty.',\n form_error_encoding: 'Encoding need to set.',\n form_error_expiry_date: 'Expiry date is required.',\n form_error_group: 'At least one group must be selected.',\n form_error_length: 'Name must be at least {{length}} characters long.',\n form_error_max_length: 'Must be no more than {{length}} characters',\n form_error_min_length: 'Must be at least {{length}} characters',\n form_error_name: 'Name is required.',\n form_error_name_pattern:\n 'Only letters, numbers, spaces, hyphens (-), and underscores (_) are allowed',\n form_error_read: 'At least one read permission must be selected.',\n form_error_read_write:\n 'At least one read/write permission must be selected.',\n form_error_required: 'Field is required',\n form_error_role_pattern:\n 'Only lowercase letters, hyphens (-), and underscores (_) are allowed',\n form_error_schema_req: 'Schema is required.',\n form_error_select_file: 'A file must be selected.',\n form_error_select_type: 'An asset type must be selected.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Property has to be unique: ',\n form_error_view: 'View is needed.',\n general: 'General',\n german: 'German',\n global: 'Global',\n group: 'Group',\n group_by: 'Group by',\n history: 'History',\n hour_format: '{{time}}-hour Time Format',\n id: 'ID',\n inactive: 'Inactive',\n info: 'Info',\n invite_new_employee: 'Invite new employee',\n invite_new_employee_description:\n 'Inviting new employees and assigning them to specific roles',\n invite_new_member: 'Invite new member',\n invite_new_member_description:\n 'Inviting new member and assigning them to specific roles',\n 'jsf_widgets.content.error.resolving_content_failed':\n 'Could not resolve Content',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID not set',\n 'jsf_widgets.content_reference.error.loading_attachments_failed':\n 'Could not load Asset Attachments',\n 'jsf_widgets.cron.error.invalid_expression': 'Not a valid cron expression',\n 'jsf_widgets.duration.error.invalid_duration': 'Not a valid duration',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed':\n 'Could not load Permissions of all users',\n 'jsf_widgets.permission.error.load_permissions_failed':\n 'Could not load Permissions',\n 'jsf_widgets.resource_reference.error.searching_failed':\n 'Search could not be completed',\n keys: 'Keys',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Edit Labels',\n labels_edit_default: 'Edit Global Default Labels',\n language: 'Language',\n last_updated: 'Last updated',\n leave: 'Leave',\n legal_notice: 'Legal Notice',\n list: 'List',\n loading: 'loading...',\n logo: 'Logo',\n manage_groups: 'Manage Groups',\n manage_identity_providers:\n 'Role that allows to manage the configured identity providers of the company',\n manage_invitations:\n 'Role that allows to manage open invitations of the company',\n manage_members: 'Role that allows to manage the members of the company',\n manage_organization:\n 'Role that allows to manage the company and its details',\n manage_roles: 'Role that allows to manage the roles of the company',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Message',\n method: 'Method',\n modules: 'Modules',\n month: 'Month',\n months: 'Months',\n my_tasks: 'My Tasks',\n name: 'Name',\n new_feminine: 'New',\n new_masculine: 'New',\n new_neutral: 'New',\n new_tag: 'New Label',\n next: 'Next',\n next_step: 'Next',\n no_description: 'No description',\n no_labels: 'No Labels',\n no_preview: 'No preview available',\n no_result: 'No results found!',\n not_assigned: 'Not assigned',\n notification_close_tooltip: 'Close',\n notification_info_empty_list: 'No notifications available',\n notification_open_manager_tooltip: 'Open Notification Manager',\n notification_open_tooltip: 'Open',\n notification_read_all_tooltip: 'Mark all as read',\n notification_read_tooltip: 'Mark as read',\n notification_rules: 'Notification Rules',\n notification_toast_info: 'Received a new notification!',\n notification_unread_tooltip: 'Mark as unread',\n notificationendpoint: 'Notification Endpoint',\n notificationendpoints: 'Notification Endpoints',\n notificationrule: 'Notification Rule',\n notificationrules: 'Notification Rules',\n notifications: 'Notifications',\n offer_requests: 'Offer Requests',\n offers: 'Offers',\n ok: 'OK',\n open: 'Open',\n opened: 'Opened',\n organization: 'Organization',\n 'organization.delete': 'Delete Organization',\n 'organization.delete_as_superuser': 'Delete Organization as Superuser',\n 'organization.request_delete': 'Request Organization Deletion',\n organization_delete_message:\n 'Should the Organization <b>{organization}</b> and all associated data really be deleted?',\n organization_overview: 'Organization Overview',\n organization_request_delete_description:\n 'You hereby request the deletion of your Organization. Please note that the deletion of an Organization is irrevocable and all data belonging to the Organization will also be deleted.',\n organization_tenders: 'Organization Tenders',\n organizations: 'Organizations',\n overview: 'Overview',\n owner: {\n edit_permission: 'Members of {{org}} are allowed to view and edit',\n managed_by: 'Managed by',\n view_permission: 'Members of {{org}} are allowed to view',\n },\n page: 'Page',\n parent: 'Parent',\n password: 'Password',\n pending: 'Pending',\n period: 'Period',\n permissions: 'Permissions',\n phone_number: 'Phone Number',\n preview: 'Preview',\n previous: 'Previous',\n privacy_policy: 'Privacy Policy',\n profile: 'Profile',\n properties: 'Properties',\n property: 'Property',\n quarter: 'Quarter',\n read_permissions: 'Read Permissions',\n read_permissions_edit_default: 'Edit Default Read/Write Permissions',\n read_write_permissions: 'Read/Write Permissions',\n reference: 'Reference',\n references: 'References',\n reset: 'Reset',\n response_type: 'Response Type',\n revision: 'Revision',\n 'role.add.new': 'Add role',\n 'role.delete': 'Remove role',\n 'role.edit': 'Edit role description',\n 'role.edit.info':\n 'Each role must have a unique name and cannot be modified after creating of the role. Only lowercase letters, hyphens (-), and underscores (_) are allowed in the name.',\n 'role.name': 'Name of the role',\n role_add_new_description:\n 'Establishing new roles within your organization and distributing them to resources or assigning them to members as needed.',\n role_admin: 'Admin Role',\n role_info:\n 'Roles to assign the user. Admin role gets all roles. View role gets view only.',\n role_view: 'View Role',\n roles: 'Roles',\n rollback_version: 'Roll back To selected version',\n save: 'Save',\n schema: 'Schema',\n search: 'Search...',\n 'search.no_results': 'No results found',\n search_asset_types: 'Search asset types...',\n search_assets: 'Search assets...',\n search_for_page: 'Search for a page',\n search_roles: 'Search roles...',\n search_tsm: 'Search timeseries...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Select',\n select_file: 'Select File',\n selected_file: 'Selected File',\n 'service.add.new': 'Add Service',\n 'service.delete': 'Remove Service',\n services: 'Services',\n settings: 'Settings',\n setup_certs_description: 'Setup associated certificates',\n show: 'Show',\n show_differences: 'Show differences',\n show_preview: 'Show Preview',\n sign_in: 'Sign in',\n sign_out: 'Sign out',\n signed_in_as: 'Signed in as',\n sort: 'Sort',\n statistic_queries: 'Statistic Queries',\n status: 'Status',\n supertype: 'Supertype',\n system: 'System',\n tags: 'Labels',\n task: 'Task',\n tasks: 'Tasks',\n time: 'Time',\n time_series: 'Time Series',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Time Series',\n title: 'Title',\n toast_active_organization_error: 'Failed to change active organization.',\n toast_active_organization_loading: 'Changing active organization...',\n toast_active_organization_success:\n 'Successfully changed active organization.',\n toast_error: 'Error!',\n toast_error_add_employee:\n \"Couldn't send the invitation of the new employee\",\n toast_error_add_member: \"Couldn't send the invitation of the new member\",\n toast_error_add_role: \"Couldn't add role\",\n toast_error_authenticate: 'Could not authenticate.',\n toast_error_create_tsm: 'Could not create Time Series.',\n toast_error_index_content: 'Error when retrieving indexing status',\n toast_error_invitation_send: 'Could not send invitation',\n toast_error_load_cert: 'Could not load certificates',\n toast_error_load_event_causes: 'Could not load Event causes override.',\n toast_error_load_item: 'Could not load {{item}}.',\n toast_error_load_list: 'Could not load list.',\n toast_error_load_org_roles: 'Could not load roles of the active company.',\n toast_error_load_permissions: 'Could not load Permissions',\n toast_error_load_permissions_all_users:\n 'Could not load Permissions of all users',\n toast_error_load_preview: 'Could not load preview.',\n toast_error_load_role: 'Could not load roles',\n toast_error_load_service: 'Could not load services',\n toast_error_load_tender: 'Could not load tender.',\n toast_error_organization_delete: 'Could not delete organization',\n toast_error_organization_name_exists:\n 'Organization with name {{name}} already exists',\n toast_error_rollback_version: 'Cannot roll back to selected version',\n toast_error_save_item: 'Could not save {{item}}',\n toast_error_update_attachment:\n '{count, plural, one {Could not update attachment} other {Could not update # attachments}}',\n toast_error_update_event_causes: 'Could not update Event causes override.',\n toast_error_update_service: 'Could not update services',\n toast_error_upload_file:\n '{count, plural, one {Could not upload {{file}}} other {Could not upload # files}}',\n toast_error_upload_file_max:\n 'No more than {{max}} files may be uploaded at the same time.',\n toast_form_error_required: '{{param}} cannot be empty',\n toast_form_error_required_selection:\n 'You must select at least one {{param}}',\n toast_form_error_required_selection_feminine:\n 'You must select at least one {{param}}',\n toast_info: 'Info!',\n toast_success: 'Success!',\n toast_success_add_employee:\n 'The invitation of the new employee has been sent successfully',\n toast_success_add_member:\n 'The invitation of the new member has been sent successfully',\n toast_success_add_role: 'Role has been added successfully',\n toast_success_invitation_send: 'Invitation sent',\n toast_success_update_attachment:\n '{count, plural, one {Attachment updated} other {# Attachments updated}}',\n toast_success_update_service: 'Service updated.',\n toast_success_upload_file:\n '{count, plural, one {Upload of {{file}} completed} other {Upload of # files completed}}',\n toast_warning: 'Warning!',\n toast_warning_invalid_form_data:\n 'Invalid form data. Please check the form for errors.',\n toast_warning_invalid_schema: 'Properties Schema is invalid',\n toast_warning_rollback_version:\n \"These referenced elements of the revision don't exist anymore: {{entries}}\",\n tour_start: 'Start tour',\n type: 'Type',\n unknown: 'unknown',\n unverified: 'Unverified',\n updated: 'Updated',\n updated_by: 'Updated by',\n upload_date: 'Upload Date',\n upload_file: 'Upload File',\n url: 'URL',\n user: 'User',\n user_roles: 'User Roles',\n username: 'Username',\n vat: 'VAT-ID',\n vat_example:\n 'VAT-ID must be from Germany (DE followed by 9 digits, e.g. DE123456789) or Austria (ATU followed by 8 digits, e.g. ATU12345678)',\n verified: 'Verified',\n view: 'View',\n view_identity_providers:\n 'Role that allows to view the configured identity providers of the company',\n view_invitations:\n 'Role that allows to view all open invitations of the company',\n view_members: 'Role that allows to view all current members of the company',\n view_organization: 'Role that allows to view the company',\n view_roles: 'Role that allows to view all roles of the company',\n warning: 'Warning',\n week: 'Week',\n write_permissions: 'Write Permissions',\n year: 'Year',\n years: 'Years',\n zip_code: 'Postal Code',\n zip_code_error:\n 'The Postal Code must be valid and not be longer than 10 digits.',\n },\n de: {\n accepted: 'Angenommen',\n access_restricted: 'Zugriff beschränkt',\n access_unrestricted: 'Unbeschränkter Zugriff',\n account: 'Nutzerkonto',\n action: 'Aktion',\n actions: 'Aktionen',\n active: 'Aktiv',\n add_attachment: 'Anhang Hinzufügen',\n add_attribute: 'Attribut Hinzufügen',\n add_new: 'Neue Hinzufügen',\n add_new_member: 'Neues Mitglied hinzufügen',\n add_new_organization: 'Neue Organisation hinzufügen',\n add_to_clipboard: 'Zur Zwischenablage hinzufügen',\n address: 'Adresse',\n administration: 'Verwaltung',\n ai: {\n accept: 'Akzeptieren',\n adam_ai_intro:\n 'Unterhalten Sie sich in Echtzeit mit Adam AI, Ihrem Expertenassistenten für Asset Intelligence. Erhalten Sie intelligente Einblicke und Lösungen, die auf Ihre Bedürfnisse zugeschnitten sind.',\n agent_unavailable: 'Agent nicht verfügbar',\n ai_placeholder: 'Wie kann ADAM Ihnen heute helfen?',\n and: 'und',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistenten',\n chat_deleted: 'Chat gelöscht',\n chats: 'Chats',\n clear_history: 'Verlauf löschen',\n complete_and_create_report: 'Abschließen und Bericht erstellen',\n context: 'Referenzierter Kontext',\n context_found: 'Kontext gefunden',\n context_none: 'Keine zugehörigen Assets oder Dateien gefunden.',\n context_search: 'Suche nach zugehörigen Assets und Dateien...',\n continue_chat: 'Chat fortsetzen',\n continue_previous_chat: 'Vorherigen Chat fortsetzen',\n cookies: 'Cookies',\n create_new_chat: 'Neuen Chat erstellen',\n create_new_event: 'Neue Meldung mit Hilfe von Adam erstellen',\n de: 'Deutsch',\n delete_chat: 'Chat löschen',\n delete_item: 'Eintrag löschen',\n delete_item_message:\n '{count, plural, one {Möchten Sie dieses Element wirklich löschen?<br><br><b>{{ items }}</b>} other {Möchten Sie diese # Elemente wirklich löschen?}}',\n delete_item_message_general:\n 'Möchten Sie dieses Element wirklich löschen?',\n delete_item_title:\n '{count, plural, one {Element löschen} other {Mehrere Elemente löschen}}',\n document: 'Dokument',\n en: 'English',\n failed_to_create_chat: 'Chat konnte nicht erstellt werden',\n failed_to_delete_chat: 'Chat konnte nicht gelöscht werden',\n failed_to_initialize_chat: 'Chat konnte nicht initialisiert werden',\n failed_to_load_assistants: 'Assistenten konnten nicht geladen werden',\n failed_to_load_chats: 'Chat-Verlauf konnte nicht geladen werden',\n failed_to_send_message: 'Nachricht konnte nicht gesendet werden',\n failed_to_update_model: 'Modell konnte nicht aktualisiert werden',\n file_type: {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter':\n 'Ihre Anfrage wurde aufgrund von Inhaltsfiltern blockiert. Bitte formulieren Sie Ihre Frage um und versuchen Sie es erneut.',\n error:\n 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n length:\n 'Die Anfrage ist zu lang, um verarbeitet zu werden. Bitte versuchen Sie es erneut oder starten Sie einen neuen Chat.',\n unknown:\n 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Frag Adam AI um Hilfe',\n last_message: 'Letzte Nachricht',\n model: 'GPT-Modell',\n model_updated: 'Modell aktualisiert',\n no_chats_found: 'Keine Chats gefunden',\n no_messages: 'Noch keine Nachrichten',\n none_of_those: 'Keines davon',\n of_document: 'des Dokuments',\n previous_chats: 'Vorherige Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Erstelle einen detaillierten Wartungsplan für mein Asset',\n title: 'Asset-Info',\n },\n intro: {\n prompt:\n 'Was ist Adam AI und wie kann es mir bei der Asset-Verwaltung helfen?',\n title: 'Einführung',\n },\n },\n prompts: {\n asset:\n \"Ich habe eine Frage zu dem Asset '{{assetName}}' mit der ID {{assetId}}\",\n 'ext-asset':\n \"Ich habe eine Frage zu dem Asset '{{assetName}}' mit der externen ID {{assetKey}}\",\n help: \"Bitte hilf mir bei der Lösung dieser Aufgabe für das Asset '{{assetName}}' (ID: {{assetId}}): {{task}}\",\n incident:\n \"Bitte erstelle eine neue Meldung für das Asset '{{assetName}}' (ID: {{assetId}}) vom Typ '{{assetTypeName}}' (ID: {{assetTypeId}}')\",\n report:\n \"Ich habe folgende Aufgabe für das Asset '{{assetName}}' (ID: {{assetId}}) abgeschlossen. Bitte erstelle einen Bericht dazu: {{task}}\",\n },\n reference_not_found: 'Referenz nicht gefunden',\n select_asset: 'Asset auswählen',\n send_message: 'Nachricht senden',\n show_preview: 'Vorschau anzeigen',\n source: 'Quelle',\n stop_recording: 'Aufnahme stoppen',\n suggested_prompts: 'Vorgeschlagene Prompts für den Einstieg in ADAM AI',\n threads: 'Chats',\n toast_error_delete_entry: '{{entry}} konnte nicht gelöscht werden.',\n toast_success_delete_entry: '{{entry}} gelöscht.',\n tools: {\n createEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createReport: {\n completed: 'Bericht wurde erstellt',\n failed: 'Bericht konnte nicht erstellt werden',\n pending: 'Bericht wird erstellt',\n processing: 'Bericht wird erstellt',\n },\n getReportTemplate: {\n completed: 'Berichtsvorlage wurde abgerufen',\n failed: 'Berichtsvorlage konnte nicht abgerufen werden',\n pending: 'Berichtsvorlage wird abgerufen',\n processing: 'Berichtsvorlage wird abgerufen',\n },\n searchForAssetAxalta: {\n completed: 'Suche nach Asset abgeschlossen',\n failed: 'Suche nach Asset fehlgeschlagen',\n pending: 'Suche nach Asset',\n processing: 'Suche nach Asset',\n },\n searchForAssetWithId: {\n completed: 'Suche nach Asset mit ID abgeschlossen',\n failed: 'Suche nach Asset mit ID fehlgeschlagen',\n pending: 'Suche nach Asset mit ID',\n processing: 'Suche nach Asset mit ID',\n },\n searchForAssets: {\n completed: 'Suche nach Assets abgeschlossen',\n failed: 'Suche nach Assets fehlgeschlagen',\n pending: 'Suche nach Assets',\n processing: 'Suche nach Assets',\n },\n searchForDocuments: {\n completed: 'Suche nach Dokumenten abgeschlossen',\n failed: 'Suche nach Dokumenten fehlgeschlagen',\n pending: 'Suche nach Dokumenten',\n processing: 'Suche nach Dokumenten',\n },\n searchForEvents: {\n completed: 'Suche nach Ereignissen abgeschlossen',\n failed: 'Suche nach Ereignissen fehlgeschlagen',\n pending: 'Suche nach Ereignissen',\n processing: 'Suche nach Ereignissen',\n },\n },\n use_microphone: 'Mikrofon verwenden',\n view_previous_chats: 'Vorherige Chats anzeigen',\n },\n alert: 'Alarm',\n alerts: 'Alarme',\n allowed_to: 'Sie dürfen',\n and: 'und',\n applications: 'Anwendungen',\n apps: 'Applikationen',\n appstore: 'App Store',\n ascending: 'Aufsteigend',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Typ',\n assets: 'Assets',\n assettype: 'Asset Typ',\n assettypes: 'Asset Typen',\n attachment: 'Anhang',\n attachments: 'Anhänge',\n audit_logs: 'Audit Logs',\n author: 'Autor',\n authorization_type: 'Authorization Type',\n average: 'Durchschnitt',\n back: 'Zurück',\n back_to_organizations: 'Zurück zu Organisationen',\n bucket_time_range: 'Bucket Zeitspanne (Default ist 24h)',\n by: 'von',\n calendar: 'Kalender',\n cancel: 'Abbrechen',\n catalog: 'Katalog',\n 'category.delete': 'Dienstleistungskatalog entfernen ',\n 'cert.add.new': 'Zertifikat hinzufügen',\n 'cert.delete': 'Zertifikat entfernen',\n 'cert.edit': 'Zertifikat editieren',\n 'cert.name': 'Zertifikatsname',\n cert_add_new_description: 'Verwaltung Organisationsbezogener Zertifikate',\n certificate: 'Zertifikate',\n 'certificate.add.new': 'Zertifikat hinzufügen',\n certification: {\n date_issue: 'Ausstelldatum',\n expiration_date: 'Ablaufsdatum',\n institution: 'Zertifizierungseinrichtung',\n number: 'Zertifikatsnummer',\n },\n children: 'Kinder',\n choose: 'Auswählen',\n choose_file: 'Datei auswählen',\n city: 'Stadt',\n color: 'Farbe',\n column_settings: 'Spalten-Einstellungen',\n comment: 'Kommentar',\n company_manager: 'Unternehmen Manager',\n company_matching: 'Company-Matching',\n complete_subscription: 'Abonnement abschließen',\n confirm: 'Bestätigen',\n consent_management: {\n accept_all: 'Alle akzeptieren',\n accept_all_note:\n 'Durch Klicken auf \"Alle akzeptieren\" stimmen Sie der Verwendung von essentiellen und analytischen Cookies zu.',\n always_enabled: 'Immer aktiv',\n cookie_groups: {\n analytics: {\n description:\n 'Diese Cookies sammeln Daten über die Nutzung der Website, z.B. welche Seiten besucht werden, um uns zu helfen, die beliebtesten Seiten zu identifizieren und zu verstehen, wie Besucher auf der Website navigieren.<br />Daten zur Nutzung der Website werden mithilfe von dauerhaften Cookies von Erst- und Drittanbietern und anderen Tracking-Technologien erfasst, um die Beliebtheit von Produkten und Online-Aktivitäten zu ermitteln.',\n title: 'Analytische Cookies',\n },\n essential: {\n description:\n 'Diese Cookies sind für den Betrieb der Webseite unbedingt erforderlich. Sie werden in der Regel nur als Reaktion auf Ihre Handlungen gesetzt, wie z. B. die Einstellung Ihrer Datenschutzeinstellungen. Diese Cookies speichern keine persönlich identifizierbaren Informationen.',\n title: 'Erforderliche Cookies',\n },\n },\n cookie_intro:\n 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.',\n cookie_intro_extended:\n 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.<br />Wir verwenden Microsoft Clarity, um zu analysieren, wie unsere Website genutzt wird, und um unsere Produkte zu verbessern. Durch die Nutzung unserer Website erklären Sie sich damit einverstanden, dass wir und Microsoft diese Daten sammeln und nutzen.',\n cookie_learn_more: 'Um mehr zu erfahren, lesen Sie bitte unsere',\n cookie_preferences_center: 'Cookie Einstellungen',\n cookie_settings: 'Cookie Einstellungen',\n cookie_usage: 'Nutzung von Cookies',\n manage_preferences: 'Einstellungen verwalten',\n reject_all: 'Alle ablehnen',\n save_preferences: 'Einstellungen speichern',\n },\n content: 'Inhalt',\n 'content.file_type': {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n 'content.show_preview': 'Vorschau anzeigen',\n 'content.size': 'Größe',\n 'content.toast_downloading_content': 'Datei wird heruntergeladen...',\n 'content.toast_error_download_content':\n 'Datei konnte nicht heruntergeladen werden.',\n 'content.toast_success_download_content':\n 'Datei erfolgreich heruntergeladen.',\n content_drop_zone_text: 'Drag & Drop Datei',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'ID kopieren',\n count: 'Anzahl',\n created: 'Erstellt',\n critical: 'Kritisch',\n current_organization: 'Aktuelles Organisation',\n danger_zone: 'Gefahrenzone',\n dashboards: 'Dashboards',\n data: 'Daten',\n date: 'Datum',\n day: 'Tag',\n days: 'Tage',\n de: 'Deutsch',\n default: 'Standard',\n delete: 'Löschen',\n delete_attachment: 'Anhang Löschen',\n delete_member: 'Mitglied Entfernen',\n delete_revision: 'Version löschen',\n delete_title: 'Titel löschen',\n deleted: 'Gelöscht',\n delimiter: 'Trennzeichen, wie ; oder :',\n descending: 'Absteigend',\n description: 'Beschreibung',\n details: 'Details',\n domain: 'Domäne',\n 'domain.delete': 'Domänenname löschen',\n domain_name: 'Domänenname',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'neue Domäne hinzufügen',\n domains: 'Domänen',\n download: 'Herunterladen',\n download_attachment: 'Anhang Herunterladen',\n drag_drop_file: {\n error: {\n file_too_large:\n \"Die Datei '{{fileName}}' überschreitet die maximal zulässige Größe von {{maxFileSize}} und wurde ignoriert.\",\n file_type_not_allowed:\n \"Der Dateityp von '{{fileName}}' ist nicht erlaubt und wurde abgelehnt.\",\n },\n max_file_size: 'Maximale Dateigröße',\n prompt_1:\n 'Drag & Drop {limit, plural, one {Datei} other {Dateien}} hier oder ',\n prompt_2: 'hier klicken, um Dateien zu durchsuchen',\n warning: {\n max_file_count:\n 'Sie haben {{fileCount}} Dateien ausgewählt, aber maximal sind {{maxFileCount}} erlaubt. Nur die ersten {{maxFileCount}} Dateien wurden akzeptiert.',\n },\n },\n duration: 'Laufzeit',\n edit: 'Editieren',\n edit_attachment: 'Anhang Editieren',\n edit_event_level: 'Ereignis-Level editieren',\n edit_title: 'Titel anpassen',\n editor: 'Editor',\n email: 'Email',\n employees: 'Mitarbeiter',\n en: 'English',\n encoding: 'Verschlüsselung',\n endpoints: 'Benachrichtigungsendpunkte',\n english: 'Englisch',\n entries: 'Einträge',\n error: 'Fehler',\n error_loading: '{item} konnte nicht geladen werden',\n error_message_update:\n 'Benutzer Einstellungen konnten nicht aktualisiert werden',\n errors: 'Fehler',\n event: 'Ereignis',\n event_level: 'Ereignis-Level',\n events: 'Ereignisse',\n filename: 'Dateiname',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Funktion',\n flowfunctions: 'Flow Funktionen',\n flowmodel: 'Flow Modell',\n flowmodule: 'Flow Modul',\n flowmodules: 'Flow Module',\n flows: 'Flows',\n form_error_delimiter: 'Trennzeichen wird benötigt.',\n form_error_details: 'Auf der Details Seite sind fehlerhafte Einträge.',\n form_error_email: 'Email wird benötigt.',\n form_error_empty_method: 'Eine Methode muss ausgewählt werden.',\n form_error_empty_url: 'Das URL Feld muss ausgefüllt werden.',\n form_error_encoding: 'Eine Verschlüsselung muss angegeben werden.',\n form_error_expiry_date: 'Ein Ablaufdatum muss angegeben werden.',\n form_error_group: 'Zumindest eine Gruppe muss ausgewählt werden.',\n form_error_length:\n 'Der Name muss aus mindestens {{length}} Zeichen bestehen.',\n form_error_max_length: 'Darf maximal {{length}} Zeichen lang sein',\n form_error_min_length: 'Muss mindestens {{length}} Zeichen lang sein',\n form_error_name: 'Namens-Feld wird benötigt.',\n form_error_name_pattern:\n 'Nur Buchstaben, Zahlen, Leerzeichen, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_read: 'Mindestens ein Lese-Recht muss ausgewählt werden.',\n form_error_read_write:\n 'Mindestens ein Lese/Schreibe-Recht muss ausgewählt werden.',\n form_error_required: 'Pflichtfeld',\n form_error_role_pattern:\n 'Nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_schema_req: 'Ein Schema wird benötigt.',\n form_error_select_file: 'Eine Datei muss ausgewählt werden.',\n form_error_select_type: 'Ein Asset Typ muss ausgewählt werden.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Der Wert muss eindeutig sein: ',\n form_error_view: 'View is needed.',\n general: 'Allgemein',\n german: 'Deutsch',\n global: 'Global',\n group: 'Gruppe',\n group_by: 'Gruppieren nach',\n history: 'Verlauf',\n hour_format: '{{time}}-Stunden-Zeitformat',\n id: 'ID',\n inactive: 'Inaktiv',\n info: 'Info',\n invite_new_employee: 'Neuen Mitarbeiter einladen',\n invite_new_employee_description:\n 'Einladung neuer Mitarbeiter und deren Zuweisung zu bestimmten Rollen',\n invite_new_member: 'Neues Mitglied einladen',\n invite_new_member_description:\n 'Einladung neuer Mitglied und deren Zuweisung zu bestimmten Rollen',\n 'jsf_widgets.content.error.resolving_content_failed':\n 'Inhalt konnte nicht aufgelöst werden',\n 'jsf_widgets.content_reference.error.asset_id_missing':\n 'Asset ID ist nicht gesetzt',\n 'jsf_widgets.content_reference.error.loading_attachments_failed':\n 'Asset Anhänge konnten nicht geladen werden',\n 'jsf_widgets.cron.error.invalid_expression': 'Kein gültiger cron Ausdruck',\n 'jsf_widgets.duration.error.invalid_duration': 'Keine gültige Dauer',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed':\n 'Rechte aller Benutzer konnten nicht geladen werden',\n 'jsf_widgets.permission.error.load_permissions_failed':\n 'Rechte konnten nicht geladen werden',\n 'jsf_widgets.resource_reference.error.searching_failed':\n 'Suche konnte nicht abgeschlossen werden',\n keys: 'Schlüssel',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Labels bearbeiten',\n labels_edit_default: 'Globale Standard-Labels bearbeiten',\n language: 'Sprache',\n last_updated: 'Zuletzt aktualisiert',\n leave: 'Verlassen',\n legal_notice: 'Impressum',\n list: 'Liste',\n loading: 'lade...',\n logo: 'Logo',\n manage_groups: 'Gruppen verwalten',\n manage_identity_providers:\n 'Rolle, die zur Verwaltung der konfigurierten Identitätsanbieter ermächtigt',\n manage_invitations:\n 'Rolle, die zur Verwaltung der offenen Mitarbeitereinladungen ermächtigt',\n manage_members: 'Rolle, die zur Verwaltung der Mitgliedern ermächtigt',\n manage_organization:\n 'Rolle, die zur Verwaltung des Unternehmens und dessen Eigenschaften ermächtigt',\n manage_roles: 'Rolle, die zur Verwaltung der Unternehmensrollen ermächtigt',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Nachricht',\n method: 'Funktion',\n modules: 'Module',\n month: 'Monat',\n months: 'Monate',\n my_tasks: 'Meine Aufgaben',\n name: 'Name',\n new_feminine: 'Neue',\n new_masculine: 'Neuer',\n new_neutral: 'Neues',\n new_tag: 'Neues Label',\n next: 'Nächste',\n next_step: 'Weiter',\n no_description: 'Keine Beschreibung',\n no_labels: 'Keine Labels',\n no_preview: 'Keine Vorschau verfügbar',\n no_result: 'Keine Ergebnisse!',\n not_assigned: 'Nicht zugewiesen',\n notification_close_tooltip: 'Schließen',\n notification_info_empty_list: 'Keine Benachrichtigungen vorhanden',\n notification_open_manager_tooltip: 'Notification Manager öffnen',\n notification_open_tooltip: 'Öffnen',\n notification_read_all_tooltip: 'Alles als gelesen markieren',\n notification_read_tooltip: 'Als gelesen markieren',\n notification_rules: 'Benachrichtigungsregel',\n notification_toast_info: 'Neue Benachrichtigung erhalten!',\n notification_unread_tooltip: 'Als ungelesen markieren',\n notificationendpoint: 'Benachrichtigungsendpunkt',\n notificationendpoints: 'Benachrichtigungsendpunkte',\n notificationrule: 'Benachrichtigungsregel',\n notificationrules: 'Benachrichtigungsregeln',\n notifications: 'Benachrichtigungen',\n offer_requests: 'Anfragen',\n offers: 'Angebote',\n ok: 'OK',\n open: 'Öffnen',\n opened: 'Geöffnet',\n organization: 'Organisation',\n 'organization.delete': 'Organisation löschen',\n 'organization.delete_as_superuser': 'Organisation löschen als Superuser',\n 'organization.request_delete': 'Löschen der Organisation beantragen',\n organization_delete_message:\n 'Soll die Organisation <b>{organization}</b> mitsamt aller zugehöriger Daten wirklich gelöscht werden?',\n organization_overview: 'Organisations-Profil',\n organization_request_delete_description:\n 'Hiermit beantragen Sie das Löschen ihrer Organisation. Bitte beachten Sie, dass das Löschen einer Organisation unwiderruflich ist und alle zur Organisation gehörigen Daten ebenfalls gelöscht werden.',\n organization_tenders: 'Ausschreibungen der Organisations',\n organizations: 'Organisationen',\n overview: 'Übersicht',\n owner: {\n edit_permission: 'Mitglieder von {{org}} dürfen ansehen und bearbeiten',\n managed_by: 'Verwaltet von',\n view_permission: 'Mitglieder von {{org}} dürfen ansehen',\n },\n page: 'Seite',\n parent: 'Elternteil',\n password: 'Passwort',\n pending: 'Ausstehend',\n period: 'Zeitraum',\n permissions: 'Rechte',\n phone_number: 'Telefonnummer',\n preview: 'Vorschau',\n previous: 'Vorherige',\n privacy_policy: 'Datenschutzerklärung',\n profile: 'Profil',\n properties: 'Eigenschaften',\n property: 'Eigenschaft',\n quarter: 'Quartal',\n read_permissions: 'Lese Rechte',\n read_permissions_edit_default: 'Standard Lese-/Schreibe-Rechte bearbeiten',\n read_write_permissions: 'Lese/Schreibe-Rechte',\n reference: 'Referenz',\n references: 'Referenzen',\n reset: 'Zurücksetzen',\n response_type: 'Response Type',\n revision: 'Version',\n 'role.add.new': 'Rolle hinzufügen',\n 'role.delete': 'Rolle entfernen',\n 'role.edit': 'Rolle editieren',\n 'role.edit.info':\n 'Jede Rolle muss einen eindeutigen Namen haben und kann nach der Erstellung der Rolle nicht mehr geändert werden. Es sind nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) im Namen erlaubt.',\n 'role.name': 'Name der Rolle',\n role_add_new_description:\n 'Einrichtung neuer Rollen in Ihrer Organisation und deren Zuweisung nach Bedarf zu Ressourcen bzw. Mitgliedern',\n role_admin: 'Adminrechte',\n role_info:\n 'Rollen, die dem Benutzer zugewiesen werden sollen. Adminrechte erhält alle Rollen. Leserechte erhält nur die View-Rechte',\n role_view: 'Leserechte',\n roles: 'Rollen',\n rollback_version: 'Auf die ausgewählte Version zurücksetzen',\n save: 'Speichern',\n schema: 'Schema',\n search: 'Suche...',\n 'search.no_results': 'Keine Ergebnisse gefunden',\n search_asset_types: 'Suche Asset Types...',\n search_assets: 'Suche Assets...',\n search_for_page: 'Seite suchen',\n search_roles: 'Suche Rollen...',\n search_tsm: 'Suche Zeitreihen...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Auswählen',\n select_file: 'Datei Auswählen',\n selected_file: 'Ausgewählte Datei',\n 'service.add.new': 'Dienstleistung hinzufügen',\n 'service.delete': 'Dienstleistung entfernen',\n services: 'Dienstleistungen',\n settings: 'Einstellungen',\n setup_certs_description: 'Einrichtung zugehöriger Zertifikate',\n show: 'Zeige',\n show_differences: 'Zeige Unterschiede',\n show_preview: 'Vorschau anzeigen',\n sign_in: 'Einloggen',\n sign_out: 'Ausloggen',\n signed_in_as: 'Angemeldet als',\n sort: 'Sortierung',\n statistic_queries: 'Statistik Anfragen',\n status: 'Status',\n supertype: 'Obertyp',\n system: 'System',\n tags: 'Label',\n task: 'Aufgabe',\n tasks: 'Aufgaben',\n time: 'Zeit',\n time_series: 'Zeitreihen',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Zeitreihen',\n title: 'Titel',\n toast_active_organization_error:\n 'Aktive Organisation konnte nicht geändert werden.',\n toast_active_organization_loading: 'Aktive Organisation wird geändert...',\n toast_active_organization_success:\n 'Aktive Organisation erfolgreich geändert.',\n toast_error: 'Fehler!',\n toast_error_add_employee:\n 'Die Einladung des neuen Mitarbeiters konnte nicht versendet werden',\n toast_error_add_member:\n 'Die Einladung des neuen Mitglieds konnte nicht versendet werden',\n toast_error_add_role: 'Die Rolle konnte nicht hinzugefügt werden',\n toast_error_authenticate: 'Authentifizierung fehlgeschlagen.',\n toast_error_create_tsm: 'Zeitreihe konnte nicht erstellt werden.',\n toast_error_index_content: 'Fehler beim Abrufen des Indizierungsstatus.',\n toast_error_invitation_send: 'Einladung konnte nicht gesendet werden',\n toast_error_load_cert: 'Zertifikate konnten nicht geladen werden',\n toast_error_load_event_causes:\n 'Eventursachen-Override konnte nicht geladen werden.',\n toast_error_load_item: '{{item}} konnte nicht geladen werden.',\n toast_error_load_list: 'Liste konnte nicht geladen werden.',\n toast_error_load_org_roles:\n 'Rollen des aktiven Unternehmens konnten nicht geladen werden',\n toast_error_load_permissions: 'Rechte konnten nicht geladen werden',\n toast_error_load_permissions_all_users:\n 'Rechte aller Benutzer konnten nicht geladen werden',\n toast_error_load_preview: 'Vorschau konnte nicht geladen werden.',\n toast_error_load_role: 'Rollen konnten nicht geladen werden',\n toast_error_load_service: 'Dienstleistungen konnten nicht geladen werden',\n toast_error_load_tender: 'Ausschreibung konnte nicht geladen werden.',\n toast_error_organization_delete:\n 'Organisation konnte nicht gelöscht werden.',\n toast_error_organization_name_exists:\n 'Eine Organisation mit dem Namen {{name}} existiert bereits',\n toast_error_rollback_version:\n 'Fehler beim Zurücksetzen auf die ausgewählte Version',\n toast_error_save_item: '{{item}} konnte nicht gespeichert werden',\n toast_error_update_attachment:\n '{count, plural, one {Anhang konnte nicht aktualisiert werden} other {# Anhänge konnten nicht aktualisiert werden}}',\n toast_error_update_event_causes:\n 'Eventursachen-Override konnte nicht aktualisiert werden.',\n toast_error_update_service:\n 'Dienstleistung konnte nicht aktualisiert werden',\n toast_error_upload_file:\n '{count, plural, one {Datei konnte nicht hochgeladen werden {{file}}} other {# Dateien konnten nicht hochgeladen werden}}',\n toast_error_upload_file_max:\n 'Es dürfen nicht mehr als {{max}} Dateien Zeitgleich hochgeladen werden.',\n toast_form_error_required: '{{param}} darf nicht leer sein',\n toast_form_error_required_selection:\n 'Es muss mindestens ein {{param}} ausgewählt werden',\n toast_form_error_required_selection_feminine:\n 'Es muss mindestens eine {{param}} ausgewählt werden',\n toast_info: 'Info!',\n toast_success: 'Erfolgreich!',\n toast_success_add_employee:\n 'Die Einladung des neuen Mitarbeiters wurde erfolgreich versendet',\n toast_success_add_member:\n 'Die Einladung des neuen Mitglieds wurde erfolgreich versendet',\n toast_success_add_role: 'Die Rolle wurde erfolgreich hinzugefügt',\n toast_success_invitation_send: 'Einladung gesendet',\n toast_success_update_attachment:\n '{count, plural, one {Anhang aktualisiert} other {# Anhänge aktualisiert}}',\n toast_success_update_service: 'Dienstleistung wurde aktualisiert',\n toast_success_upload_file:\n '{count, plural, one {Datei wurde erfolgreich hochgeladen: {{file}}} other {# Dateien wurden erfolgreich hochgeladen}}',\n toast_warning: 'Warnung!',\n toast_warning_invalid_form_data:\n 'Ungültige Daten im Formular. Bitte überprüfen Sie das Formular auf Fehler.',\n toast_warning_invalid_schema: 'Das angegebene Schema ist nicht gültig.',\n toast_warning_rollback_version:\n 'Folgende referenzierte Elemente existieren in der Revision nicht mehr: {{entries}}',\n tour_start: 'Starte Tour',\n type: 'Typ',\n unknown: 'Unbekannt',\n unverified: 'Unverifiziert',\n updated: 'Bearbeitet',\n updated_by: 'Aktualisiert von',\n upload_date: 'Hochgeladen am',\n upload_file: 'Datei hochladen',\n url: 'URL',\n user: 'Benutzer',\n user_roles: 'Benutzerrollen',\n username: 'Benutzername',\n vat: 'USt-IdNr./UID',\n vat_example:\n 'Es muss eine gültige USt-IdNr. (DE gefolgt von 9 Ziffern, z.B. DE123456789) oder UID (ATU gefolgt von 8 Ziffern, z.B. ATU12345678) angegeben werden',\n verified: 'Verifiziert',\n view: 'Ansehen',\n view_identity_providers:\n 'Rolle, die den Lesezugriff auf die konfigurierten Identitätsanbieter ermöglicht',\n view_invitations:\n 'Rolle, die den Lesezugriff auf offene Mitarbeitereinladungen ermöglicht',\n view_members:\n 'Rolle, die den Lesezugriff auf alle bestehenden Mitarbeiter ermöglicht',\n view_organization:\n 'Rolle, die den Lesezugriff auf das Unternehmen ermöglicht',\n view_roles: 'Rolle, die den Lesezugriff auf Unternehmensrollen ermöglicht',\n warning: 'Warnung',\n week: 'Woche',\n write_permissions: 'Schreibe-Rechte',\n year: 'Jahr',\n years: 'Jahre',\n zip_code: 'Postleitzahl',\n zip_code_error:\n 'Die Postleitzahl muss gültig sein und darf maximal 10 Zeichen enthalten.',\n },\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AiTranslocoLoader implements TranslocoLoader {\n getTranslation(lang: string): Observable<any> {\n return of(translations[lang] || {});\n }\n}\n\n@NgModule({\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ],\n})\nexport class AiTranslocoModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable, share } from 'rxjs';\nimport { io, Socket } from 'socket.io-client';\n\nimport { ApiService } from '../core/api.service';\n\n@Injectable()\nexport class WebsocketService {\n private socket: Socket;\n\n subscribersCounter: Record<string, number> = {};\n eventObservables$: Record<string, Observable<any>> = {};\n\n constructor(apiService: ApiService) {\n this.socket = io(apiService.baseUrl, {\n path: `/api/ws/ai`,\n auth: (cb) => {\n apiService.getAccessToken().then((token) => {\n cb({ token: 'Bearer ' + token });\n });\n },\n });\n }\n\n emitToAi(\n threadId: string,\n message: string,\n context?: { timeZone?: string },\n toolCallId?: string,\n result?: any,\n ): Socket {\n return this.socket.emit('message', {\n threadId,\n message,\n context,\n toolCallId,\n result,\n });\n }\n\n emitToolCallResult(\n threadId: string,\n toolCallId: string,\n result: any,\n ): Socket {\n return this.socket.emit('message', { threadId, toolCallId, result });\n }\n\n abortAi(threadId: string): Socket {\n return this.socket.emit('abort', { threadId });\n }\n\n subscribeToThread(threadId: string): Observable<any> {\n return this.fromEvent(threadId, this.socket);\n }\n\n private fromEvent<T>(eventName: string, socket: Socket): Observable<T> {\n if (!this.subscribersCounter[eventName]) {\n this.subscribersCounter[eventName] = 0;\n }\n this.subscribersCounter[eventName]++;\n\n if (!this.eventObservables$[eventName]) {\n this.eventObservables$[eventName] = new Observable((observer: any) => {\n const listener = (data: T) => {\n observer.next(data);\n };\n socket.on(eventName, listener);\n return () => {\n this.subscribersCounter[eventName]--;\n if (this.subscribersCounter[eventName] === 0) {\n socket.removeListener(eventName, listener);\n delete this.eventObservables$[eventName];\n }\n };\n }).pipe(share());\n }\n return this.eventObservables$[eventName];\n }\n}\n","const enum ContextType {\n TOP_LEVEL = 'topLevel',\n STRING = 'string',\n STRING_ESCAPED = 'stringEscaped',\n STRING_UNICODE = 'stringUnicode',\n NUMBER = 'number',\n NUMBER_NEEDS_DIGIT = 'numberNeedsDigit',\n NUMBER_NEEDS_EXPONENT = 'numberNeedsExponent',\n TRUE = 'true',\n FALSE = 'false',\n NULL = 'null',\n ARRAY_NEEDS_VALUE = 'arrayNeedsValue',\n ARRAY_NEEDS_COMMA = 'arrayNeedsComma',\n OBJECT_NEEDS_KEY = 'objectNeedsKey',\n OBJECT_NEEDS_COLON = 'objectNeedsColon',\n OBJECT_NEEDS_VALUE = 'objectNeedsValue',\n OBJECT_NEEDS_COMMA = 'objectNeedsComma',\n}\n\nconst enum RespawnReason {\n STRING_ESCAPE = 'stringEscape',\n COLLECTION_ITEM = 'collectionItem',\n}\n\nfunction isWhitespace(char: string): boolean {\n return '\\u0020\\u000D\\u000A\\u0009'.indexOf(char) >= 0;\n}\n\n// based on https://github.com/dphilipson/untruncate-json\nexport function untruncateJson(json: string): string {\n const contextStack: ContextType[] = [ContextType.TOP_LEVEL];\n let position = 0;\n let respawnPosition: number | undefined;\n let respawnStackLength: number | undefined;\n let respawnReason: RespawnReason | undefined;\n\n const push = (context: ContextType) => contextStack.push(context);\n const replace = (context: ContextType) => (contextStack[contextStack.length - 1] = context);\n const setRespawn = (reason: RespawnReason) => {\n if (respawnPosition == null) {\n respawnPosition = position;\n respawnStackLength = contextStack.length;\n respawnReason = reason;\n }\n };\n const clearRespawn = (reason: RespawnReason) => {\n if (reason === respawnReason) {\n respawnPosition = undefined;\n respawnStackLength = undefined;\n respawnReason = undefined;\n }\n };\n const pop = () => contextStack.pop();\n const dontConsumeCharacter = () => position--;\n\n const startAny = (char: string) => {\n if ('0' <= char && char <= '9') {\n push(ContextType.NUMBER);\n return;\n }\n switch (char) {\n case '\"':\n push(ContextType.STRING);\n return;\n case '-':\n push(ContextType.NUMBER_NEEDS_DIGIT);\n return;\n case 't':\n push(ContextType.TRUE);\n return;\n case 'f':\n push(ContextType.FALSE);\n return;\n case 'n':\n push(ContextType.NULL);\n return;\n case '[':\n push(ContextType.ARRAY_NEEDS_VALUE);\n return;\n case '{':\n push(ContextType.OBJECT_NEEDS_KEY);\n return;\n }\n };\n\n for (const { length } = json; position < length; position++) {\n const char = json[position];\n switch (contextStack[contextStack.length - 1]) {\n case ContextType.TOP_LEVEL:\n startAny(char);\n break;\n case ContextType.STRING:\n switch (char) {\n case '\"':\n pop();\n break;\n case '\\\\':\n setRespawn(RespawnReason.STRING_ESCAPE);\n push(ContextType.STRING_ESCAPED);\n break;\n }\n break;\n case ContextType.STRING_ESCAPED:\n if (char === 'u') {\n push(ContextType.STRING_UNICODE);\n } else {\n clearRespawn(RespawnReason.STRING_ESCAPE);\n pop();\n }\n break;\n case ContextType.STRING_UNICODE:\n if (position - json.lastIndexOf('u', position) === 4) {\n clearRespawn(RespawnReason.STRING_ESCAPE);\n pop();\n }\n break;\n case ContextType.NUMBER:\n if (char === '.') {\n replace(ContextType.NUMBER_NEEDS_DIGIT);\n } else if (char === 'e' || char === 'E') {\n replace(ContextType.NUMBER_NEEDS_EXPONENT);\n } else if (char < '0' || char > '9') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case ContextType.NUMBER_NEEDS_DIGIT:\n replace(ContextType.NUMBER);\n break;\n case ContextType.NUMBER_NEEDS_EXPONENT:\n if (char === '+' || char === '-') {\n replace(ContextType.NUMBER_NEEDS_DIGIT);\n } else {\n replace(ContextType.NUMBER);\n }\n break;\n case ContextType.TRUE:\n case ContextType.FALSE:\n case ContextType.NULL:\n if (char < 'a' || char > 'z') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case ContextType.ARRAY_NEEDS_VALUE:\n if (char === ']') {\n pop();\n } else if (!isWhitespace(char)) {\n clearRespawn(RespawnReason.COLLECTION_ITEM);\n replace(ContextType.ARRAY_NEEDS_COMMA);\n startAny(char);\n }\n break;\n case ContextType.ARRAY_NEEDS_COMMA:\n if (char === ']') {\n pop();\n } else if (char === ',') {\n setRespawn(RespawnReason.COLLECTION_ITEM);\n replace(ContextType.ARRAY_NEEDS_VALUE);\n }\n break;\n case ContextType.OBJECT_NEEDS_KEY:\n if (char === '}') {\n pop();\n } else if (char === '\"') {\n setRespawn(RespawnReason.COLLECTION_ITEM);\n replace(ContextType.OBJECT_NEEDS_COLON);\n push(ContextType.STRING);\n }\n break;\n case ContextType.OBJECT_NEEDS_COLON:\n if (char === ':') {\n replace(ContextType.OBJECT_NEEDS_VALUE);\n }\n break;\n case ContextType.OBJECT_NEEDS_VALUE:\n if (!isWhitespace(char)) {\n clearRespawn(RespawnReason.COLLECTION_ITEM);\n replace(ContextType.OBJECT_NEEDS_COMMA);\n startAny(char);\n }\n break;\n case ContextType.OBJECT_NEEDS_COMMA:\n if (char === '}') {\n pop();\n } else if (char === ',') {\n setRespawn(RespawnReason.COLLECTION_ITEM);\n replace(ContextType.OBJECT_NEEDS_KEY);\n }\n break;\n }\n }\n\n if (respawnStackLength != null) {\n contextStack.length = respawnStackLength;\n }\n const result = [respawnPosition != null ? json.slice(0, respawnPosition) : json];\n const finishWord = (word: string) => result.push(word.slice(json.length - json.lastIndexOf(word[0])));\n for (let i = contextStack.length - 1; i >= 0; i--) {\n switch (contextStack[i]) {\n case ContextType.STRING:\n result.push('\"');\n break;\n case ContextType.NUMBER_NEEDS_DIGIT:\n case ContextType.NUMBER_NEEDS_EXPONENT:\n result.push('0');\n break;\n case ContextType.TRUE:\n finishWord('true');\n break;\n case ContextType.FALSE:\n finishWord('false');\n break;\n case ContextType.NULL:\n finishWord('null');\n break;\n case ContextType.ARRAY_NEEDS_VALUE:\n case ContextType.ARRAY_NEEDS_COMMA:\n result.push(']');\n break;\n case ContextType.OBJECT_NEEDS_KEY:\n case ContextType.OBJECT_NEEDS_COLON:\n case ContextType.OBJECT_NEEDS_VALUE:\n case ContextType.OBJECT_NEEDS_COMMA:\n result.push('}');\n break;\n }\n }\n return result.join('');\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Subject, Subscription, takeUntil } from 'rxjs';\n\nimport type {\n AiAssistant,\n AssistantMessage as AiAssistantMessage,\n Message,\n SystemMessage,\n ThreadPopulated,\n ToolMessage,\n UserMessage,\n} from '@hahnpro/hpc-api';\nimport { ApiService } from '../core/api.service';\nimport { ContextReference, ContextService } from './context.service';\nimport { WebsocketService } from './websocket.service';\nimport { untruncateJson } from './utils';\n\nexport enum ChatView {\n Start,\n Thread,\n ThreadList,\n}\n\nconst ChatViewTitles = {\n [ChatView.ThreadList]: 'ai.chats',\n};\n\n@Injectable()\nexport class ChatService {\n readonly ChatView = ChatView;\n highlightContext: string | null = null;\n isLoading = false;\n model: string | null = null;\n locale = 'en';\n isProcessing = false;\n\n private readonly apiService = inject(ApiService);\n private readonly contextService = inject(ContextService);\n private readonly destroy$ = new Subject<void>();\n private readonly router = inject(Router);\n private readonly socket = inject(WebsocketService);\n private readonly translocoService = inject(TranslocoService);\n private _activeView: ChatView = ChatView.Start;\n private _activeAssistant: AiAssistant | null = null;\n private _activeThread: ThreadPopulated | null = null;\n private _assistants: AiAssistant[] = [];\n private _messages: ChatMessage[] = [];\n private errorEvents$: Subscription | null = null;\n private threadEvents$: Subscription | null = null;\n\n constructor() {\n this.locale = this.translocoService.getActiveLang() || 'en';\n }\n\n get activeAssistant(): AiAssistant {\n return this._activeAssistant;\n }\n\n get activeThread(): ThreadPopulated | null {\n return this._activeThread;\n }\n\n get activeView(): ChatView {\n return this._activeView;\n }\n\n get assistants(): AiAssistant[] {\n return this._assistants;\n }\n\n get messages(): ChatMessage[] {\n return this._messages;\n }\n\n get title(): string {\n return ChatViewTitles[this.activeView];\n }\n\n async init() {\n this.isLoading = true;\n try {\n this._assistants = await this.apiService.getAssistants();\n const defaultAssistant = this.assistants.find(\n (a) => a.id === 'asset-assistant',\n );\n if (defaultAssistant) {\n this._activeAssistant = defaultAssistant;\n }\n } catch (err) {\n console.error(err);\n } finally {\n this.isLoading = false;\n }\n }\n\n async createThreadForModal(\n assistantId: string,\n initialMessage?: string,\n hidden?: boolean,\n ): Promise<void> {\n try {\n if (!this.assistants.length) {\n await this.init();\n }\n this.isLoading = true;\n this._activeAssistant =\n this.assistants.find((a) => a.id === assistantId) || null;\n if (!this._activeAssistant) {\n throw new Error(`Assistant ${assistantId} not found`);\n }\n this._activeThread = await this.apiService.createThread(assistantId);\n // this._activeThread = await this.apiService.getThread(\n // '67ed93d38361957d6811b944',\n // );\n await this.getMessages();\n\n this.setupWebsockets();\n if (initialMessage) {\n await this.sendMessage(initialMessage, hidden);\n }\n } catch (err) {\n console.error(err);\n throw err;\n } finally {\n this.isLoading = false;\n }\n }\n\n async createThread(\n initialMessage?: string,\n assistantId?: string,\n ): Promise<void> {\n if (this.isLoading || (!this.activeAssistant?.id && !assistantId)) {\n return;\n }\n assistantId = assistantId || this.activeAssistant?.id;\n this._activeAssistant =\n this.assistants.find((a) => a.id === assistantId) || this.activeAssistant;\n\n this.isLoading = true;\n try {\n const thread = await this.apiService.createThread(assistantId);\n if (initialMessage) {\n await this.sendMessage(initialMessage);\n }\n this.router.navigate(['/ai/threads', thread.id]);\n } catch (err) {\n console.error(err);\n } finally {\n this.isLoading = false;\n }\n }\n\n deleteThread(threadId: string) {\n if (threadId === this.activeThread?.id) {\n this._activeThread = null;\n }\n return this.apiService.deleteThread(threadId);\n }\n\n showThreadList() {\n if (this._activeView === ChatView.ThreadList) {\n return;\n }\n this._activeView = ChatView.ThreadList;\n }\n\n async openThread(\n thread: string | ThreadPopulated,\n isNewThread = false,\n ): Promise<void> {\n if (!thread) {\n return;\n }\n if (typeof thread === 'string') {\n thread = await this.apiService.getThread(thread);\n }\n\n this._activeThread = thread;\n this._activeView = ChatView.Thread;\n if (isNewThread) {\n this._messages = [];\n } else {\n await this.getMessages();\n }\n this.setupWebsockets();\n }\n\n getAssistantName(thread: ThreadPopulated): string {\n const assistant = this._assistants.find((a) => a.id === thread.assistantId);\n return assistant?.i18n?.[this.locale]?.name;\n }\n\n private async getMessages(): Promise<void> {\n const threadId = this.activeThread?.id;\n if (!threadId) {\n return;\n }\n\n this._messages = [];\n this.isLoading = true;\n try {\n const { docs: messages } =\n await this.apiService.getThreadMessages(threadId);\n this.isLoading = false;\n if (messages.length === 0) {\n const assistant = this.assistants.find(\n (a) => a.id === this.activeThread.assistantId,\n );\n const welcomeMessage = assistant.i18n[this.locale]?.welcomeMessage;\n const currentDate = new Date().toISOString();\n this._messages = [\n {\n thread: threadId,\n role: 'assistant',\n content: welcomeMessage,\n createdAt: currentDate,\n updatedAt: currentDate,\n parsedContent: {\n response: welcomeMessage,\n references: [],\n },\n },\n ];\n } else {\n messages\n .reverse()\n .forEach((message: any) => this.updateMessage(message));\n }\n } catch (err) {\n this.isLoading = false;\n console.error(err);\n throw err;\n }\n }\n\n async sendMessage(content: string, hidden?: boolean): Promise<void> {\n content = content.trim();\n if (!content || !this.activeAssistant?.id) {\n return;\n }\n if (!this.activeThread) {\n const thread = await this.apiService.createThread(\n this.activeAssistant.id,\n );\n await this.openThread(thread, true);\n }\n\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const currentDate = new Date().toISOString();\n\n const message: Message = {\n thread: this.activeThread.id,\n content,\n createdAt: currentDate,\n updatedAt: currentDate,\n role: 'user',\n hidden,\n };\n\n const item = this._messages[this._messages.length - 1];\n if (\n item?.role === 'tool' &&\n item?.toolType === 'choice' &&\n item?.status === 'processing' &&\n item?.args?.choices\n ) {\n // the last message was a tool-call, it needs to be finished by setting `thread` and `toolCallId`\n this.socket.emitToAi(\n this.activeThread.id,\n content,\n { timeZone },\n item.toolCallId,\n 'none',\n );\n } else {\n this.socket.emitToAi(this.activeThread.id, content, { timeZone });\n }\n this._messages.push(message);\n }\n\n selectChoice(selection: any, toolMessage: any) {\n this.socket.emitToolCallResult(\n toolMessage.thread,\n toolMessage.toolCallId,\n selection,\n );\n }\n\n private setupWebsockets(): void {\n if (this.threadEvents$) {\n this.threadEvents$.unsubscribe();\n this.threadEvents$ = null;\n }\n if (this.errorEvents$) {\n this.errorEvents$.unsubscribe();\n this.errorEvents$ = null;\n }\n if (!this.activeThread) {\n return;\n }\n\n if (this.activeThread) {\n this.threadEvents$ = this.socket\n .subscribeToThread(this.activeThread.id)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n ({ type, data }: { type: WebSocketMessageType; data: Message }) => {\n this.handleThreadEvent(type, data);\n },\n );\n }\n }\n\n private collectContext(message: AssistantMessage) {\n const references = message.parsedContent?.references;\n const seenIds = new Set<string>();\n references?.forEach((ref) => {\n if ((ref.resourceType as string) === 'document') {\n ref.resourceType = 'content';\n }\n if (!seenIds.has(ref.id)) {\n ref.firstOccurrence = true;\n }\n seenIds.add(ref.id);\n });\n const refs = references?.filter((ref) => ref.firstOccurrence);\n if (refs) {\n this.contextService.loadReferences(refs);\n }\n }\n\n private handleThreadEvent(type: WebSocketMessageType, message: Message) {\n if (type === WebSocketMessageType.AI_PROCESSING) {\n // Message is being processed\n this.isProcessing = true;\n } else if (type === WebSocketMessageType.AI_MESSAGE) {\n // Message processing is complete\n this.updateMessage(message);\n } else if (type === WebSocketMessageType.AI_COMPLETE) {\n // Message processing is complete\n this.isProcessing = false;\n } else if (type === WebSocketMessageType.AI_ABORTED) {\n // Message processing was aborted\n this.isProcessing = false;\n } else if (type === WebSocketMessageType.AI_FAILED_TO_PROCESS) {\n // Message processing failed\n this.isProcessing = false;\n } else if (type === WebSocketMessageType.AI_INVALID_MESSAGE) {\n // Invalid user message\n this.isProcessing = false;\n } else {\n // ignore event\n }\n }\n\n private updateMessage(message: Message) {\n const index = this._messages.findIndex((m) => m.id === message.id);\n let newMessage: ChatMessage;\n\n if (message.role === 'assistant') {\n newMessage = { ...message } as AssistantMessage;\n if (message.content) {\n try {\n newMessage.parsedContent = JSON.parse(\n untruncateJson(message.content),\n );\n this.collectContext(newMessage);\n } catch (_) {\n newMessage.parsedContent = {\n response: message.content,\n references: [],\n };\n }\n }\n }\n if (index !== -1) {\n this._messages[index] = newMessage || message; // update message\n } else {\n this._messages.push(newMessage || message); // add message\n }\n }\n}\n\ninterface MessageContent {\n response: string;\n references: ContextReference[];\n}\n\nexport interface AssistantMessage extends AiAssistantMessage {\n role: 'assistant';\n parsedContent?: MessageContent;\n}\n\nexport type ChatMessage =\n | AssistantMessage\n | SystemMessage\n | ToolMessage\n | UserMessage;\n\nexport enum WebSocketMessageType {\n AI_ASSISTANT_STATUS = 'ai_assistant_status',\n AI_ASSISTANT_TOOL_STATUS = 'ai_assistant_tool_status',\n AI_ABORTED = 'ai_aborted',\n AI_ABORT_FAILED = 'ai_abort_failed',\n AI_COMPLETE = 'ai_complete',\n AI_COMPLETE_RESPONSE = 'ai_complete_response',\n AI_FAILED_TO_PROCESS = 'ai_failed_to_process',\n AI_INVALID_MESSAGE = 'ai_invalid_message',\n AI_MESSAGE = 'ai_message',\n AI_PARTIAL_RESPONSE = 'ai_partial_response',\n AI_PROCESSING = 'ai_processing',\n AI_TOOL_RESPONSE = 'ai_tool_response',\n AI_TOOL_STATUS = 'ai_tool_status',\n ERROR = 'error',\n ERROR_EVENT = 'errorEvent',\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkTextareaAutosize, TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { IconComponent } from '../../core/icons';\nimport { ChatService } from '../chat.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\n@Component({\n imports: [\n CdkTextareaAutosize,\n CommonModule,\n FormsModule,\n IconComponent,\n MatButtonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TextFieldModule,\n TranslocoModule,\n ],\n selector: 'ai-message-input',\n templateUrl: './message-input.component.html',\n})\nexport class MessageInputComponent {\n @ViewChild('messageInput') messageInput: ElementRef<HTMLTextAreaElement>;\n @Input() readonly startConversation: string = '';\n readonly chatService = inject(ChatService);\n isMobileView: boolean;\n message: string;\n tmpMessage: string;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.isMobileView = result.matches));\n }\n\n sendMessage() {\n this.message = this.message.trim();\n if (!this.message) {\n return;\n }\n this.chatService.sendMessage(this.message);\n this.message = '';\n if (this.messageInput) {\n this.messageInput.nativeElement.value = '';\n this.messageInput.nativeElement.focus();\n }\n }\n}\n","<div\n class=\"mx-auto flex w-full items-end justify-center bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:border dark:border-zinc-600/30 dark:bg-black\"\n *transloco=\"let t\"\n>\n <textarea\n class=\"w-full md:text-lg md:font-semibold\"\n matInput\n cdkAutosizeMaxRows=\"10\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"isMobileView ? 2 : 4\"\n [placeholder]=\"t('message')\"\n [(ngModel)]=\"message\"\n (keydown.enter)=\"sendMessage() || $event.preventDefault()\"\n spellcheck=\"false\"\n #autosize=\"cdkTextareaAutosize\"\n #messageInput\n ></textarea>\n <div class=\"flex md:flex-col md:gap-2\">\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.send_message')\"\n matTooltipPosition=\"above\"\n (click)=\"sendMessage()\"\n >\n <ai-icon name=\"send\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport prettyBytes from 'pretty-bytes';\n\nfunction isNumberFinite(value: any): value is number {\n return typeof value === 'number' && isFinite(value);\n}\n\n@Pipe({\n name: 'bytes',\n standalone: false,\n})\nexport class BytesPipe implements PipeTransform {\n transform(input: any): any {\n if (!isNumberFinite(input)) {\n return input;\n }\n return prettyBytes(input);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NGXLogger } from 'ngx-logger';\n\n@Pipe({\n name: 'colorLevel',\n standalone: false,\n})\nexport class ColorLevelPipe implements PipeTransform {\n constructor(private readonly logger: NGXLogger) {}\n\n transform(level: string, type: 'svg' | 'bg' | 'text' = 'bg'): string {\n let color;\n switch (level) {\n case 'OK':\n color = type === 'svg' ? '#10B981' : type === 'text' ? 'text-green-600' : 'bg-green-600';\n break;\n case 'WARNING':\n color = type === 'svg' ? '#F59E0B' : type === 'text' ? 'text-amber-600' : 'bg-yellow-600';\n break;\n case 'CRITICAL':\n color = type === 'svg' ? '#EF4444' : type === 'text' ? 'text-red-600' : 'bg-red-600';\n break;\n case 'INFO':\n color = type === 'svg' ? '#3B82F6' : type === 'text' ? 'text-blue-600' : 'bg-blue-600';\n break;\n case 'ANY':\n color = type === 'svg' ? '#78716C' : type === 'text' ? 'text-gray-600' : 'bg-gray-600';\n break;\n default:\n this.logger.error(`Unresolved level ${level}`);\n break;\n }\n return color;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatDistanceToNow } from 'date-fns';\n\n@Pipe({\n name: 'dateAgo',\n pure: false,\n standalone: false,\n})\nexport class DateAgoPipe implements PipeTransform {\n transform(value: string): string {\n return formatDistanceToNow(value);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { BytesPipe } from './bytes.pipe';\nimport { ColorLevelPipe } from './color-level.pipe';\nimport { DateAgoPipe } from './date-ago.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n})\nexport class UiPipesModule {}\n","import type { HashMap } from '@jsverse/transloco';\n\nconst SUPPORTED_LANGUAGES = ['en', 'de'];\n\nexport function InlineLoaderFactory(loader: (lang: string) => Promise<HashMap>) {\n return SUPPORTED_LANGUAGES.reduce((acc, lang) => {\n acc[lang] = () => loader(lang);\n return acc;\n }, {});\n}\n","export function iconForMimeType(mimetype: string): string {\n if (!mimetype) {\n return 'file';\n }\n\n if (mimetype.startsWith('audio')) {\n return 'file_audio';\n } else if (mimetype.startsWith('image')) {\n return 'image';\n } else if (mimetype.startsWith('text')) {\n return 'file_text';\n } else if (mimetype.startsWith('video')) {\n return 'file_video';\n } else {\n return (\n {\n 'application/pdf': 'file_pdf',\n 'application/json': 'file_text',\n 'application/js': 'file_text',\n 'application/msword': 'file_text',\n 'application/gzip': 'file_zip',\n 'application/typescript': 'file_text',\n 'application/vnd.rar': 'file_zip',\n 'application/x-7z-compressed': 'file_zip',\n 'application/x-tar': 'file_zip',\n 'application/xml': 'file_text',\n 'application/zip': 'file_zip',\n }[mimetype] || 'file'\n );\n }\n}\n\nexport function labelForMimeType(mimetype: string): string {\n if (!mimetype) {\n return 'unknown';\n }\n\n if (mimetype.startsWith('audio')) {\n return 'audio';\n } else if (mimetype.startsWith('image')) {\n return 'image';\n } else if (mimetype.startsWith('text')) {\n return 'text';\n } else if (mimetype.startsWith('video')) {\n return 'video';\n } else {\n return (\n {\n 'application/pdf': 'pdf',\n 'application/json': 'text',\n 'application/js': 'text',\n 'application/msword': 'text',\n 'application/gzip': 'archive',\n 'application/typescript': 'text',\n 'application/vnd.rar': 'archive',\n 'application/x-7z-compressed': 'archive',\n 'application/x-tar': 'archive',\n 'application/xml': 'text',\n 'application/zip': 'archive',\n }[mimetype] || 'unknown'\n );\n }\n}\n","export { InlineLoaderFactory } from './i18n';\nexport { iconForMimeType, labelForMimeType } from './mimetype';\n\nexport function saveAs(blob: Blob | string, name: string) {\n const anchor = document.createElementNS('http://www.w3.org/1999/xhtml', 'a') as HTMLAnchorElement;\n anchor.style.display = 'none';\n anchor.download = name;\n anchor.rel = 'noopener';\n\n if (typeof blob === 'string') {\n anchor.href = blob;\n if (anchor.origin !== location.origin) {\n anchor.target = '_blank';\n corsEnabled(anchor.href) ? download(blob, name) : anchor.click();\n } else {\n anchor.click();\n }\n } else {\n anchor.href = URL.createObjectURL(blob);\n setTimeout(() => URL.revokeObjectURL(anchor.href), 4e4);\n setTimeout(() => anchor.click(), 0);\n }\n}\n\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299;\n}\n\nfunction download(url: string, name: string) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name);\n };\n xhr.send();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Inject, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\nimport type { Content } from '@hahnpro/hpc-api';\nimport {\n NgxExtendedPdfViewerModule,\n pdfDefaultOptions,\n} from 'ngx-extended-pdf-viewer';\nimport { NGXLogger } from 'ngx-logger';\nimport { MarkdownModule } from 'ngx-markdown';\n\nimport { ApiService } from '../../core/api.service';\nimport { IconComponent } from '../../core/icons';\n\n@Component({\n imports: [\n CommonModule,\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatDialogModule,\n NgxExtendedPdfViewerModule,\n ],\n selector: 'ai-content-preview',\n templateUrl: './preview.component.html',\n})\nexport class PreviewComponent implements OnInit {\n content: Content & { analysis?: { text: string } };\n isLoading = false;\n pageNumber: number;\n previewUrl: SafeUrl;\n token: string;\n markdown?: string;\n\n private readonly apiService = inject(ApiService);\n private readonly logger = inject(NGXLogger);\n private readonly sanitizer = inject(DomSanitizer);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) data: Content & { pageNumber?: number },\n ) {\n pdfDefaultOptions.assetsFolder = 'assets/ngx-extended-pdf';\n this.pageNumber = data.pageNumber || 1;\n this.content = data;\n }\n\n get pdfSrc() {\n if (this.content?.id) {\n return this.apiService.downloadContent(this.content.id);\n } else {\n return null;\n }\n }\n\n ngOnInit() {\n this.apiService.getAccessToken().then((t) => (this.token = `Bearer ${t}`));\n if (this.content.mimetype === 'application/pdf') {\n // ignore\n } else if (this.content.mimetype?.startsWith('image/')) {\n this.loadPreview();\n } else if (this.content.mimetype?.startsWith('text/')) {\n if (typeof this.content.analysis === 'object') {\n this.markdown = this.content.analysis.text;\n }\n }\n }\n\n private loadPreview() {\n if (this.isLoading || !this.content.id) {\n return;\n }\n this.isLoading = true;\n\n this.apiService\n .downloadContent(this.content.id, 'preview-lg')\n .then((data) => {\n const blob = new Blob([data], { type: 'image/png' });\n this.previewUrl = this.sanitizer.bypassSecurityTrustUrl(\n window.URL.createObjectURL(blob),\n );\n this.isLoading = false;\n })\n .catch((error) => {\n this.logger.error(error);\n this.isLoading = false;\n });\n }\n}\n","<ng-container>\n <div mat-dialog-title class=\"relative\">\n <div class=\"truncate pr-10\">{{ content.filename }}</div>\n <button\n mat-icon-button\n matDialogClose\n class=\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <ai-icon name=\"dismiss\"></ai-icon>\n </button>\n </div>\n <div mat-dialog-content class=\"flex grow flex-col\">\n @if (markdown) {\n <div class=\"w-full overflow-y-auto rounded-xl bg-white p-4\">\n <markdown class=\"markdown-body\" [data]=\"markdown\"></markdown>\n </div>\n } @else if (content.mimetype === 'application/pdf') {\n <div class=\"mx-auto w-[50rem] sm:h-[65vh]\">\n <ngx-extended-pdf-viewer\n [authorization]=\"token\"\n [src]=\"pdfSrc\"\n [disableHistory]=\"true\"\n [showBorders]=\"false\"\n [showDownloadButton]=\"false\"\n [showDrawEditor]=\"false\"\n [showEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n [showOpenFileButton]=\"false\"\n [showPrintButton]=\"false\"\n [showRotateButton]=\"false\"\n [showSecondaryToolbarButton]=\"false\"\n [showSidebarButton]=\"false\"\n [showStampEditor]=\"false\"\n [showTextEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [useBrowserLocale]=\"true\"\n [zoom]=\"auto\"\n [page]=\"pageNumber\"\n ></ngx-extended-pdf-viewer>\n </div>\n } @else if (previewUrl) {\n <div\n class=\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\"\n >\n <div class=\"w-full overflow-hidden rounded-lg\">\n <img class=\"w-full\" [src]=\"previewUrl\" alt=\"\" />\n </div>\n </div>\n }\n </div>\n</ng-container>\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, InjectionToken } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport type { Asset, Content, Event } from '@hahnpro/hpc-api';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService, Status as ContextStatus } from '../context.service';\nimport { PreviewComponent } from '../preview/preview.component';\nimport { IconComponent } from '../../core/icons';\n\nexport const OVERLAY_PAGE_NUMBER = new InjectionToken<number>(\n 'OVERLAY_PAGE_NUMBER',\n);\nexport const OVERLAY_RESOURCE_ID = new InjectionToken<string>(\n 'OVERLAY_RESOURCE_ID',\n);\nexport const OVERLAY_RESOURCE_TYPE = new InjectionToken<string>(\n 'OVERLAY_RESOURCE_TYPE',\n);\n\n@Component({\n imports: [\n CommonModule,\n ClipboardModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TranslocoModule,\n UiPipesModule,\n ],\n templateUrl: './context-overlay.component.html',\n})\nexport class ContextOverlayComponent {\n private readonly contextService = inject(ContextService);\n private readonly matDialog = inject(MatDialog);\n\n constructor(\n @Inject(OVERLAY_RESOURCE_ID) public resourceId: string,\n @Inject(OVERLAY_RESOURCE_TYPE)\n public resourceType: 'asset' | 'content' | 'event',\n @Inject(OVERLAY_PAGE_NUMBER) public pageNumber: number,\n ) {}\n\n get resource(): Asset | Content | Event {\n return this.contextService.getContext(this.resourceId);\n }\n\n get status(): ContextStatus | null {\n return this.contextService.status.get(this.resourceId);\n }\n\n get asset(): Asset | null {\n if (this.resourceType === 'content') {\n return this.contextService.assetForContent(this.resourceId);\n } else if (this.resourceType === 'event') {\n return this.contextService.assetForEvent(this.resource as Event);\n }\n return null;\n }\n\n iconForMimeType(): string {\n if (this.resourceType === 'asset') {\n return 'asset';\n } else if (this.resourceType === 'content') {\n return iconForMimeType((this.resource as Content)?.mimetype);\n } else if (this.resourceType === 'event') {\n return 'calendar_clock';\n }\n }\n\n labelForType(): string {\n if (this.resourceType === 'content') {\n return (\n 'content.file_type.' +\n labelForMimeType((this.resource as Content)?.mimetype)\n );\n } else {\n return this.resourceType;\n }\n }\n\n previewContent(pageNumber?: number) {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource as Content;\n this.matDialog.open(PreviewComponent, {\n autoFocus: false,\n panelClass: 'upload-modal',\n data: { ...content, pageNumber },\n });\n }\n }\n\n isPreviewSupported(): boolean {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource as Content;\n return (\n content.mimetype?.startsWith('image') ||\n content.mimetype === 'application/pdf' ||\n content.mimetype === 'text/markdown'\n );\n } else {\n return false;\n }\n }\n}\n","<div\n class=\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\"\n *transloco=\"let t\"\n>\n @if (resource) {\n @if (pageNumber) {\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n <div class=\"flex items-center gap-x-1\">\n <span>{{ t('ai.source') }}:</span>\n <button\n class=\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\"\n (click)=\"previewContent(pageNumber)\"\n >\n {{ t('page') }} {{ pageNumber }}\n </button>\n <span>{{ t('ai.of_document') }}</span>\n </div>\n <div class=\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\"></div>\n <div class=\"flex items-center gap-x-3\">\n <ai-icon\n [name]=\"iconForMimeType()\"\n size=\"20\"\n class=\"icon-sm\"\n ></ai-icon>\n <div>\n {{ resource?.filename }}\n </div>\n </div>\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"asset\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div>\n {{ asset.name }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\"\n >\n <div\n class=\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\"\n >\n <ai-icon\n [name]=\"iconForMimeType()\"\n size=\"20\"\n class=\"icon-sm\"\n ></ai-icon>\n </div>\n <div class=\"w-full overflow-hidden\">\n <div class=\"flex w-full flex-col items-center pr-8 sm:items-start\">\n <div\n class=\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\"\n >\n {{ resource?.name || resource?.filename }}\n </div>\n <div\n class=\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\"\n >\n <span>{{ t(labelForType()) }}</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n @if (resource?.owner?.name) {\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"shield_person\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div>\n {{ t('owner.managed_by') }}\n <span class=\"font-semibold\">{{ resource.owner.name }}</span>\n </div>\n </div>\n }\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"asset\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\n </div>\n }\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"history\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div class=\"flex flex-col gap-x-2 sm:flex-row sm:items-center\">\n @if (\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\n ) {\n <span>\n {{ t('last_updated') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.updatedAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.updatedAt | dateAgo }}\n </span>\n </span>\n } @else {\n <span>\n {{ t('created') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.createdAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.createdAt | dateAgo }}\n </span>\n </span>\n }\n </div>\n </div>\n @if (resource?.description) {\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"slide_text\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div class=\"line-clamp-3\">{{ resource?.description }}</div>\n </div>\n }\n @if (resource?.size) {\n <div class=\"flex items-center gap-x-3\">\n <ai-icon name=\"drive\" size=\"20\" class=\"icon-sm\"></ai-icon>\n <div>{{ resource?.size | bytes }}</div>\n </div>\n }\n @if (isPreviewSupported()) {\n <div class=\"w-full px-4 pt-4\">\n <button\n mat-raised-button\n color=\"primary\"\n class=\"w-full\"\n (click)=\"previewContent()\"\n >\n {{ t('show_preview') }}\n </button>\n </div>\n }\n </div>\n }\n } @else if (status?.isLoading) {\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n } @else {\n <div class=\"flex flex-col gap-y-1 px-2 py-1\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', { item: t(resourceType) })\n }}</span>\n <span class=\"text-xs\">{{ resourceId }}</span>\n </div>\n }\n</div>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n inject,\n Injector,\n Input,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { IconComponent } from '../../core/icons';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService } from '../context.service';\nimport { AssistantMessage, ChatService } from '../chat.service';\nimport {\n ContextOverlayComponent,\n OVERLAY_PAGE_NUMBER,\n OVERLAY_RESOURCE_ID,\n OVERLAY_RESOURCE_TYPE,\n} from '../context-overlay/context-overlay.component';\n\n@Component({\n imports: [\n CommonModule,\n CdkAccordionModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ],\n selector: 'ai-message-context',\n templateUrl: './message-context.component.html',\n styleUrls: ['./message-context.component.scss'],\n})\nexport class MessageContextComponent {\n @Input() isLastMessage: boolean;\n @Input() message: AssistantMessage;\n\n readonly chatService = inject(ChatService);\n readonly contextService = inject(ContextService);\n iconForMimeType = iconForMimeType;\n labelForMimeType = labelForMimeType;\n\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n\n openOverlay(\n event: MouseEvent,\n resourceId: string,\n resourceType?: 'asset' | 'content' | 'event',\n pageNumber?: number,\n ) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target as HTMLElement)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(\n ContextOverlayComponent,\n this.viewContainerRef,\n injector,\n );\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n}\n","<cdk-accordion *transloco=\"let t\">\n <cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [expanded]=\"isLastMessage\"\n >\n <div\n class=\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\n >\n @if (message?.parsedContent?.references?.length) {\n <div\n class=\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\"\n (click)=\"accordionItem.toggle()\"\n (keyup.enter)=\"accordionItem.toggle()\"\n tabindex=\"0\"\n >\n <ai-icon name=\"layer_diagonal_sparkle\"></ai-icon>\n <span class=\"font-bold\">{{ t('ai.context') }}</span>\n </div>\n @if (accordionItem.expanded) {\n <div class=\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\">\n @for (\n ref of message?.parsedContent?.references;\n track ref.reference_id\n ) {\n @if (contextService.getContext(ref.id); as resource) {\n @if (\n ref.resourceType === 'asset' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <ai-icon name=\"asset\"></ai-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (resource.type$name) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{\n resource.type$name\n }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (ref.resourceType === 'content') {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <ai-icon\n [name]=\"iconForMimeType(resource.mimetype)\"\n ></ai-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.filename\n }}</span>\n @if (\n contextService.assetForContent(resource.id);\n as asset\n ) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>·</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (\n ref.resourceType === 'event' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <ai-icon name=\"calendar_clock\"></ai-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (contextService.assetForEvent(resource); as asset) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>·</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n } @else if (contextService.status.get(ref.id)?.isLoading) {\n <div\n class=\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\"\n >\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n </div>\n } @else {\n <div\n class=\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\"\n >\n <ai-icon name=\"error_circle\"></ai-icon>\n </div>\n <div class=\"flex h-full flex-col pr-4\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', {\n item: t(ref.resourceType),\n })\n }}</span>\n <span class=\"text-xs\">{{ ref.id }}</span>\n </div>\n </div>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n </cdk-accordion-item>\n</cdk-accordion>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Injector, ViewContainerRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { MarkdownModule } from 'ngx-markdown';\n\nimport { IconComponent } from '../../core/icons';\nimport { UiPipesModule } from '../../core/pipes/pipes.module';\nimport { AssistantMessage, ChatService } from '../chat.service';\nimport {\n ContextOverlayComponent,\n OVERLAY_PAGE_NUMBER,\n OVERLAY_RESOURCE_ID,\n OVERLAY_RESOURCE_TYPE,\n} from '../context-overlay/context-overlay.component';\nimport { MessageContextComponent } from '../message-context/message-context.component';\nimport { ContextService } from '../context.service';\n\n@Component({\n imports: [\n CommonModule,\n CdkAccordionModule,\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MessageContextComponent,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ],\n selector: 'ai-thread',\n templateUrl: './thread.component.html',\n styleUrl: './thread.component.scss',\n})\nexport class ThreadComponent {\n readonly chatService = inject(ChatService);\n readonly contextService = inject(ContextService);\n selection: string;\n\n private readonly translocoService = inject(TranslocoService);\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n\n openOverlay(\n event: MouseEvent,\n resourceId: string,\n resourceType?: 'asset' | 'content' | 'event',\n pageNumber?: number,\n ) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target as HTMLElement)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(\n ContextOverlayComponent,\n this.viewContainerRef,\n injector,\n );\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n\n interceptClick(event: MouseEvent) {\n const element = event.target;\n if (!(element instanceof HTMLAnchorElement)) {\n return;\n }\n let href = element.getAttribute('href');\n if (href.startsWith('$')) {\n href = href.substring(1);\n const params = href.split(',');\n const queryParams: Record<string, string> = params.reduce(\n (acc, param) => {\n const [key, value] = param.split('=');\n acc[key] = value;\n return acc;\n },\n {},\n );\n if (queryParams.ref && queryParams.msg) {\n const message = this.chatService.messages.find(\n (m) => m.id === queryParams.msg,\n );\n if (message) {\n const { references } = (message as AssistantMessage).parsedContent;\n const reference = references?.find(\n (ref) => ref.reference_id === parseInt(queryParams.ref, 10),\n );\n if (reference?.id) {\n const { id, pageNumber } = reference;\n this.chatService.highlightContext = id;\n this.openOverlay(event, id, reference.resourceType, pageNumber);\n } else {\n // this.toastService.error(\n // this.translocoService.translate('ai.reference_not_found'),\n // );\n }\n }\n }\n event.preventDefault();\n }\n }\n\n getMarkdownContent(message: AssistantMessage): string {\n const content = message.parsedContent || message.content;\n if (typeof content === 'string') {\n return content;\n } else if (typeof content.response === 'string') {\n return content.response.replace(\n /\\[\\[(\\d+)\\]\\]/g,\n (_, referenceId) =>\n `<sup><b>[[${referenceId}]]($ref=${referenceId},msg=${message.id},)</b></sup>`,\n );\n } else {\n return '';\n }\n }\n\n getToolStatus(item: any): string {\n const statusMessage = this.translocoService.translate(\n `ai.tools.${item.toolName}.${item.status}`,\n );\n return statusMessage || null;\n }\n\n getFailReason(item): string {\n const reason = this.translocoService.translate(\n `ai.finish_reason.${item.finishReason}`,\n );\n return (\n reason || this.translocoService.translate('ai.finish_reason.unknown')\n );\n }\n\n selectChoice(selection: any, toolMessage: any) {\n this.chatService.selectChoice(selection, toolMessage);\n }\n}\n","<div\n class=\"relative flex h-full w-full flex-col gap-1 px-6 py-4\"\n *transloco=\"let t\"\n>\n @if (chatService.isLoading) {\n <div\n class=\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\"\n >\n <mat-spinner diameter=\"28\"></mat-spinner>\n </div>\n }\n @for (item of chatService.messages; track item.id; let idx = $index) {\n @if (item.role === 'assistant' && item.parsedContent) {\n <div\n class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\"\n >\n <markdown\n class=\"markdown-body\"\n [data]=\"getMarkdownContent(item)\"\n (click)=\"interceptClick($event)\"\n ></markdown>\n @if (item.parsedContent.references?.length) {\n <ai-message-context\n [message]=\"item\"\n [isLastMessage]=\"idx === chatService.messages.length - 1\"\n class=\"mt-2\"\n ></ai-message-context>\n }\n </div>\n } @else if (\n item.role === 'assistant' &&\n item.status === 'failed' &&\n getFailReason(item)\n ) {\n <div\n class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\"\n >\n <div\n class=\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\"\n >\n <ai-icon\n name=\"dismiss_circle\"\n class=\"text-red-600/80 icon-sm dark:text-red-400/80\"\n ></ai-icon>\n <span>{{ getFailReason(item) }}</span>\n </div>\n </div>\n } @else if (\n item.role === 'tool' &&\n item.toolType === 'action' &&\n item.status &&\n getToolStatus(item)\n ) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\">\n <div\n class=\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\"\n >\n @if (item.status === 'completed') {\n <ai-icon\n name=\"checkmark_circle\"\n class=\"text-green-500/80 icon-sm dark:text-green-400/80\"\n ></ai-icon>\n } @else if (item.status === 'failed') {\n <ai-icon\n name=\"dismiss_circle\"\n class=\"text-red-500/80 icon-sm dark:text-red-400/80\"\n ></ai-icon>\n } @else if (item.status === 'pending') {\n <ai-icon\n name=\"hourglass_quarter\"\n class=\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\"\n ></ai-icon>\n } @else if (item.status === 'processing') {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <i>{{ getToolStatus(item) }}</i>\n </div>\n </div>\n } @else if (\n item.role === 'tool' &&\n item.toolType === 'choice' &&\n item.status === 'processing' &&\n item.args?.choices\n ) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\">\n <div\n class=\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\n >\n @if (item.args.message) {\n <div\n class=\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\"\n >\n <ai-icon name=\"layer_diagonal_sparkle\"></ai-icon>\n <span class=\"font-semibold\">{{ item.args.message }}</span>\n </div>\n }\n <div class=\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\">\n @for (choice of item.args.choices; track choice.id) {\n <div\n class=\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"selectChoice(choice, item)\"\n (keyup.enter)=\"selectChoice(choice, item)\"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <ai-icon name=\"asset\"></ai-icon>\n </div>\n <div class=\"flex h-full grow flex-col overflow-hidden pr-4\">\n <span class=\"truncate text-md font-semibold\">{{\n choice.name\n }}</span>\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ choice.typeName }}</span>\n @if (choice.location) {\n <span class=\"truncate\">{{ choice.location }}</span>\n }\n @if (choice.factory) {\n <span class=\"truncate\">{{ choice.factory }}</span>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (item.role === 'user' && !item.hidden) {\n <div class=\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\">\n <div class=\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\">\n <markdown class=\"markdown-body\" [data]=\"item.content\"></markdown>\n </div>\n </div>\n }\n }\n\n @if (chatService.isProcessing) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\">\n <div class=\"flex flex-col gap-y-2 px-2 py-4\">\n <div\n class=\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\"\n >\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n inject,\n Inject,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\n\nimport { IconComponent } from '../../core/icons';\nimport { ContextService } from '../context.service';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { ChatService } from '../chat.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { WebsocketService } from '../websocket.service';\n\ninterface AssetData {\n id?: string;\n name?: string;\n externalKey?: string;\n}\n\nexport interface ChatDialogData {\n asset: AssetData;\n}\n\n@Component({\n imports: [\n AiTranslocoModule,\n CommonModule,\n FormsModule,\n IconComponent,\n LoggerModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n ],\n providers: [ChatService, ContextService, WebsocketService],\n templateUrl: './chat-dialog.component.html',\n styleUrl: '../../shared/styles.css',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AiChatDialogComponent implements OnInit {\n readonly chatService = inject(ChatService);\n readonly type: 'asset' | 'ext-asset' = 'asset';\n\n private readonly asset: AssetData;\n private readonly logger = inject(NGXLogger);\n private readonly translocoService = inject(TranslocoService);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: ChatDialogData,\n private readonly matDialogRef: MatDialogRef<AiChatDialogComponent>,\n ) {\n this.asset = data.asset;\n if (this.asset.externalKey && !this.asset.id) {\n this.type = 'ext-asset';\n }\n }\n\n ngOnInit(): void {\n this.chatService\n .init()\n .then(async () => {\n const initialMessage = this.translocoService.translate(\n 'ai.prompts.' + this.type,\n {\n assetId: this.asset?.id,\n assetName: this.asset?.name,\n assetKey: this.asset?.externalKey,\n },\n );\n const assistantId = 'asset-assistant';\n await this.chatService.createThreadForModal(\n assistantId,\n initialMessage,\n );\n })\n .catch((err) => {\n this.logger.error(err);\n this.close();\n });\n }\n\n close(message?: string) {\n this.matDialogRef.close(message);\n }\n}\n","<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\n <div class=\"flex justify-end pb-2\">\n <button\n mat-icon-button\n (click)=\"close()\"\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <ai-icon name=\"dismiss\" size=\"20\" class=\"icon-sm\"></ai-icon>\n </button>\n </div>\n <div class=\"flex h-full w-full flex-col items-center overflow-y-auto\">\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\n </div>\n <ai-message-input class=\"w-full\"></ai-message-input>\n</div>\n","import { NgModule } from '@angular/core';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\nimport { CommonModule } from '@angular/common';\n\nimport { ChatService } from './chat.service';\nimport { WebsocketService } from './websocket.service';\nimport { ContextService } from './context.service';\nimport { ApiService } from '../core/api.service';\nimport { AiTranslocoModule } from './transloco.module';\n\n@NgModule({\n imports: [\n CommonModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }),\n ],\n providers: [ApiService, ChatService, ContextService, WebsocketService],\n exports: [AiTranslocoModule],\n})\nexport class AiModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Provider } from '@angular/core';\nimport { MARKED_OPTIONS, provideMarkdown } from 'ngx-markdown';\n\n/**\n * Provides Markdown configuration for AI SDK\n * This allows consuming applications to not have to set up Markdown themselves\n */\nexport function provideAiMarkdown(): Provider {\n return provideMarkdown({\n loader: HttpClient,\n markedOptions: {\n provide: MARKED_OPTIONS,\n useValue: {\n gfm: true,\n breaks: true,\n pedantic: false,\n },\n },\n });\n}\n","import { EnvironmentProviders, Provider } from '@angular/core';\nimport { provideAiMarkdown } from '../core/markdown.provider';\nimport { AiTranslocoModule } from './transloco.module';\nimport { importProvidersFrom } from '@angular/core';\nimport {\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\n\n/**\n * Provides all necessary providers for AI SDK\n * This allows consuming applications to configure the AI SDK with a single function\n */\nexport function provideAiSdk(): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(\n AiTranslocoModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }),\n ),\n provideAiMarkdown(),\n provideHttpClient(withInterceptorsFromDi()),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ApiService","i6","i1","i2","i4","i3","i6.BytesPipe","i7.DateAgoPipe","HttpClient"],"mappings":"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"}
1
+ {"version":3,"file":"hahnpro-ai-sdk.mjs","sources":["../tmp-esm2022/lib/core/icons/icon.component.js","../tmp-esm2022/lib/core/api.service.js","../tmp-esm2022/lib/core/owner-resolver.service.js","../tmp-esm2022/lib/ai/context.service.js","../tmp-esm2022/lib/ai/transloco.module.js","../tmp-esm2022/lib/ai/websocket.service.js","../tmp-esm2022/lib/ai/utils.js","../tmp-esm2022/lib/ai/chat.service.js","../tmp-esm2022/lib/ai/voice-recognition.service.js","../tmp-esm2022/lib/ai/message-input/message-input.component.js","../tmp-esm2022/lib/core/pipes/bytes.pipe.js","../tmp-esm2022/lib/core/pipes/color-level.pipe.js","../tmp-esm2022/lib/core/pipes/date-ago.pipe.js","../tmp-esm2022/lib/core/pipes/pipes.module.js","../tmp-esm2022/lib/core/utils/i18n.js","../tmp-esm2022/lib/core/utils/mimetype.js","../tmp-esm2022/lib/core/utils/index.js","../tmp-esm2022/lib/ai/preview/preview.component.js","../tmp-esm2022/lib/ai/context-overlay/context-overlay.component.js","../tmp-esm2022/lib/ai/message-context/message-context.component.js","../tmp-esm2022/lib/ai/thread/thread.component.js","../tmp-esm2022/lib/ai/chat-dialog/chat-dialog.component.js","../tmp-esm2022/lib/ai/ai.module.js","../tmp-esm2022/lib/core/markdown.provider.js","../tmp-esm2022/lib/ai/providers.js","../tmp-esm2022/hahnpro-ai-sdk.js"],"sourcesContent":["// src/app/shared/icon/icon.component.ts\nimport { Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class IconComponent {\n name;\n size = 24;\n label;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: IconComponent, isStandalone: true, selector: \"ai-icon\", inputs: { name: \"name\", size: \"size\", label: \"label\" }, ngImport: i0, template: \"<svg style=\\\"display: none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <symbol id=\\\"add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"app_connectivity\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"apps\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_clockwise\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_maximize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_minimize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_move\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"ascending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"asset\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"assistant_direction\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bar_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\\\"\\n />\\n </symbol>\\n <symbol id=\\\"book\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"box\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"braces_variable\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bullet_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"burger_menu\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calatena\\\" viewBox=\\\"0 0 121 121\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\\\"\\n class=\\\"st0\\\"\\n />\\n <path\\n d=\\\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\\\"\\n class=\\\"st1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar_clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_average\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\\\"\\n />\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_correlation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"18\\\" cy=\\\"14\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n <circle cx=\\\"27\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"27\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line_smooth\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_maximum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_minimum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_stepper\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_transformation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n d=\\\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\\\"\\n />\\n <path\\n d=\\\"M0 0h32v32H0z\\\"\\n data-name=\\\"&lt;Transparent Rectangle&gt;\\\"\\n style=\\\"fill: none\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_starburst\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\\\"\\n />\\n </symbol>\\n <symbol id=\\\"circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clipboard\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_archive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"code\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"color\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\\\"\\n />\\n </symbol>\\n <symbol id=\\\"column_triple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"condition_point\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"m8 16 8-8 8 8-8 8z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cube\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cursor_click\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard_reference\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"data_accessor\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\\\"\\n />\\n <circle cx=\\\"7\\\" cy=\\\"25\\\" r=\\\"1\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_arrow_back\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_lines\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"descending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"devices\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_bullet\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_page\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_toolbox\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"drive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"enterprise\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"error_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\\\"\\n />\\n </symbol>\\n <symbol id=\\\"event_alerting\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"export\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye_hide\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"factory\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_audio\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_pdf\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_video\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_zip\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"filter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"fingerprint\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flag-de\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#fc0\\\" d=\\\"M0 320h640v160H0z\\\" />\\n <path fill=\\\"#000001\\\" d=\\\"M0 0h640v160H0z\\\" />\\n <path fill=\\\"red\\\" d=\\\"M0 160h640v160H0z\\\" />\\n </symbol>\\n <symbol id=\\\"flag-en\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#012169\\\" d=\\\"M0 0h640v480H0z\\\" />\\n <path\\n fill=\\\"#fff\\\"\\n d=\\\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\\\"\\n />\\n <path\\n fill=\\\"#c8102e\\\"\\n d=\\\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\\\"\\n />\\n <path fill=\\\"#fff\\\" d=\\\"M241 0v480h160V0zM0 160v160h640V160z\\\" />\\n <path fill=\\\"#c8102e\\\" d=\\\"M0 193v96h640v-96zM273 0v480h96V0z\\\" />\\n </symbol>\\n <symbol id=\\\"flash\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flow_stream\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.441 9.955a4.926 4.926 0 0 0 6.233 7.571l4.256 4.257a.773.773 0 0 0 1.169-1.007l-.075-.087l-4.217-4.218A4.927 4.927 0 0 0 3.44 9.955m8.585-7.957c-4.756 0-8.736 3.319-9.751 7.767q.21-.27.46-.517A5.9 5.9 0 0 1 4.51 8.025A8.53 8.53 0 0 1 8.906 4.09l-.107.174c-.538.893-.971 2.011-1.275 3.28c.499.05.991.164 1.465.34c.632-2.628 1.823-4.385 3.037-4.385l.115.005c1.266.116 2.488 2.118 3.056 4.996H10.2a6 6 0 0 1 1.55 1.499l3.674.001a19 19 0 0 1-.135 5h-2.646a6 6 0 0 1-.299.842l-.129.272l-.122.229l.158.157h2.715c-.203.749-.45 1.418-.732 1.985l1.106 1.107c.492-.858.891-1.908 1.178-3.09l2.723-.002a8.54 8.54 0 0 1-3.734 3.26l.225.223l.125.14c.22.296.345.625.378.953A10 10 0 0 0 22.027 12c0-5.524-4.478-10.002-10.001-10.002m-2.712 9.05a3.38 3.38 0 1 1-4.78 4.78a3.38 3.38 0 0 1 4.78-4.78M16.932 10l3.358-.001l.008.03c.15.633.23 1.292.23 1.97a8.5 8.5 0 0 1-.545 3l-3.174.002c.143-.95.218-1.958.218-3.001q0-1.028-.095-2m-1.787-5.911l.023.008A8.53 8.53 0 0 1 19.776 8.5h-3.049c-.313-1.753-.86-3.278-1.582-4.41\\\"\\n />\\n </symbol>\\n <symbol id=\\\"gpt\\\" viewBox=\\\"0 0 48 48\\\">\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\\\"\\n />\\n </symbol>\\n <symbol id=\\\"history\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"home_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"hourglass_quarter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"id\\\" viewBox=\\\"0 0 32 32\\\">\\n <g fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\\\"\\n />\\n <path\\n d=\\\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\\\"\\n />\\n </g>\\n </symbol>\\n <symbol id=\\\"id_card\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18 13a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2h-6a1 1 0 0 1-1-1m1 4a1 1 0 1 0 0 2h6a1 1 0 0 0 0-2zm-6-4a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-6 4.5A1.5 1.5 0 0 1 8.5 16h5a1.5 1.5 0 0 1 1.5 1.5s0 3.5-4 3.5s-4-3.5-4-3.5M2 7.25A3.25 3.25 0 0 1 5.25 4h21.5A3.25 3.25 0 0 1 30 7.25v17.5A3.25 3.25 0 0 1 26.75 28H5.25A3.25 3.25 0 0 1 2 24.75zM5.25 6C4.56 6 4 6.56 4 7.25v17.5c0 .69.56 1.25 1.25 1.25h21.5c.69 0 1.25-.56 1.25-1.25V7.25C28 6.56 27.44 6 26.75 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_library\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"import\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"info\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\\\"\\n />\\n </symbol>\\n <symbol id=\\\"iot\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"label\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"labels\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\\\"\\n />\\n </symbol>\\n <symbol id=\\\"layer_diagonal_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lightbulb\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"line_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"list_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_on\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_searching\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"login\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"logout\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mail\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"map\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic_record\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microchip_ai\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n fill-rule=\\\"evenodd\\\"\\n d=\\\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\\\"\\n clip-rule=\\\"evenodd\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microsoft\\\" viewBox=\\\"0 0 21 21\\\">\\n <path fill=\\\"#f25022\\\" d=\\\"M1 1h9v9H1z\\\" />\\n <path fill=\\\"#00a4ef\\\" d=\\\"M1 11h9v9H1z\\\" />\\n <path fill=\\\"#7fba00\\\" d=\\\"M11 1h9v9h-9z\\\" />\\n <path fill=\\\"#ffb900\\\" d=\\\"M11 11h9v9h-9z\\\" />\\n </symbol>\\n <symbol id=\\\"moon\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"navigation\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"offer-request\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"parent_child\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"people_community\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"person_swap\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"phone\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\\\"\\n />\\n </symbol>\\n <symbol id=\\\"record_stop\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"rocket\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save_all\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"scan_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"screen\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"send\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"settings\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_person\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_activity\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"slide_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"squalls\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"status\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"#212121\\\"\\n fill-rule=\\\"nonzero\\\"\\n d=\\\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\\\"\\n />\\n <path\\n fill=\\\"#212121\\\"\\n d=\\\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"subtract_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sun\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sync\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"tasks\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"timer\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_role\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"warning\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_fit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_in\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_out\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\\\"\\n />\\n </symbol>\\n</svg>\\n<svg\\n class=\\\"icon\\\"\\n [attr.width]=\\\"size\\\"\\n [attr.height]=\\\"size\\\"\\n [attr.aria-label]=\\\"label\\\"\\n>\\n <use [attr.href]=\\\"'#' + name\\\"></use>\\n</svg>\\n\", styles: [\".icon{fill:currentColor;vertical-align:middle}\\n\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: IconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ai-icon', template: \"<svg style=\\\"display: none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <symbol id=\\\"add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"app_connectivity\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"apps\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_clockwise\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_maximize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_minimize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_move\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"ascending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"asset\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"assistant_direction\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bar_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\\\"\\n />\\n </symbol>\\n <symbol id=\\\"book\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"box\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"braces_variable\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bullet_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"burger_menu\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calatena\\\" viewBox=\\\"0 0 121 121\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\\\"\\n class=\\\"st0\\\"\\n />\\n <path\\n d=\\\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\\\"\\n class=\\\"st1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar_clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_average\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\\\"\\n />\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_correlation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"18\\\" cy=\\\"14\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n <circle cx=\\\"27\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"27\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line_smooth\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_maximum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_minimum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_stepper\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_transformation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n d=\\\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\\\"\\n />\\n <path\\n d=\\\"M0 0h32v32H0z\\\"\\n data-name=\\\"&lt;Transparent Rectangle&gt;\\\"\\n style=\\\"fill: none\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_starburst\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\\\"\\n />\\n </symbol>\\n <symbol id=\\\"circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clipboard\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_archive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"code\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"color\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\\\"\\n />\\n </symbol>\\n <symbol id=\\\"column_triple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"condition_point\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"m8 16 8-8 8 8-8 8z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cube\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cursor_click\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard_reference\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"data_accessor\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\\\"\\n />\\n <circle cx=\\\"7\\\" cy=\\\"25\\\" r=\\\"1\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_arrow_back\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_lines\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"descending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"devices\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_bullet\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_page\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_toolbox\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"drive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"enterprise\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"error_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\\\"\\n />\\n </symbol>\\n <symbol id=\\\"event_alerting\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"export\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye_hide\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"factory\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_audio\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_pdf\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_video\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_zip\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"filter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"fingerprint\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flag-de\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#fc0\\\" d=\\\"M0 320h640v160H0z\\\" />\\n <path fill=\\\"#000001\\\" d=\\\"M0 0h640v160H0z\\\" />\\n <path fill=\\\"red\\\" d=\\\"M0 160h640v160H0z\\\" />\\n </symbol>\\n <symbol id=\\\"flag-en\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#012169\\\" d=\\\"M0 0h640v480H0z\\\" />\\n <path\\n fill=\\\"#fff\\\"\\n d=\\\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\\\"\\n />\\n <path\\n fill=\\\"#c8102e\\\"\\n d=\\\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\\\"\\n />\\n <path fill=\\\"#fff\\\" d=\\\"M241 0v480h160V0zM0 160v160h640V160z\\\" />\\n <path fill=\\\"#c8102e\\\" d=\\\"M0 193v96h640v-96zM273 0v480h96V0z\\\" />\\n </symbol>\\n <symbol id=\\\"flash\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flow_stream\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.441 9.955a4.926 4.926 0 0 0 6.233 7.571l4.256 4.257a.773.773 0 0 0 1.169-1.007l-.075-.087l-4.217-4.218A4.927 4.927 0 0 0 3.44 9.955m8.585-7.957c-4.756 0-8.736 3.319-9.751 7.767q.21-.27.46-.517A5.9 5.9 0 0 1 4.51 8.025A8.53 8.53 0 0 1 8.906 4.09l-.107.174c-.538.893-.971 2.011-1.275 3.28c.499.05.991.164 1.465.34c.632-2.628 1.823-4.385 3.037-4.385l.115.005c1.266.116 2.488 2.118 3.056 4.996H10.2a6 6 0 0 1 1.55 1.499l3.674.001a19 19 0 0 1-.135 5h-2.646a6 6 0 0 1-.299.842l-.129.272l-.122.229l.158.157h2.715c-.203.749-.45 1.418-.732 1.985l1.106 1.107c.492-.858.891-1.908 1.178-3.09l2.723-.002a8.54 8.54 0 0 1-3.734 3.26l.225.223l.125.14c.22.296.345.625.378.953A10 10 0 0 0 22.027 12c0-5.524-4.478-10.002-10.001-10.002m-2.712 9.05a3.38 3.38 0 1 1-4.78 4.78a3.38 3.38 0 0 1 4.78-4.78M16.932 10l3.358-.001l.008.03c.15.633.23 1.292.23 1.97a8.5 8.5 0 0 1-.545 3l-3.174.002c.143-.95.218-1.958.218-3.001q0-1.028-.095-2m-1.787-5.911l.023.008A8.53 8.53 0 0 1 19.776 8.5h-3.049c-.313-1.753-.86-3.278-1.582-4.41\\\"\\n />\\n </symbol>\\n <symbol id=\\\"gpt\\\" viewBox=\\\"0 0 48 48\\\">\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\\\"\\n />\\n </symbol>\\n <symbol id=\\\"history\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"home_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"hourglass_quarter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"id\\\" viewBox=\\\"0 0 32 32\\\">\\n <g fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\\\"\\n />\\n <path\\n d=\\\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\\\"\\n />\\n </g>\\n </symbol>\\n <symbol id=\\\"id_card\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18 13a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2h-6a1 1 0 0 1-1-1m1 4a1 1 0 1 0 0 2h6a1 1 0 0 0 0-2zm-6-4a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-6 4.5A1.5 1.5 0 0 1 8.5 16h5a1.5 1.5 0 0 1 1.5 1.5s0 3.5-4 3.5s-4-3.5-4-3.5M2 7.25A3.25 3.25 0 0 1 5.25 4h21.5A3.25 3.25 0 0 1 30 7.25v17.5A3.25 3.25 0 0 1 26.75 28H5.25A3.25 3.25 0 0 1 2 24.75zM5.25 6C4.56 6 4 6.56 4 7.25v17.5c0 .69.56 1.25 1.25 1.25h21.5c.69 0 1.25-.56 1.25-1.25V7.25C28 6.56 27.44 6 26.75 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_library\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"import\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"info\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\\\"\\n />\\n </symbol>\\n <symbol id=\\\"iot\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"label\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"labels\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\\\"\\n />\\n </symbol>\\n <symbol id=\\\"layer_diagonal_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lightbulb\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"line_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"list_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_on\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_searching\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"login\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"logout\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mail\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"map\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic_record\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microchip_ai\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n fill-rule=\\\"evenodd\\\"\\n d=\\\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\\\"\\n clip-rule=\\\"evenodd\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microsoft\\\" viewBox=\\\"0 0 21 21\\\">\\n <path fill=\\\"#f25022\\\" d=\\\"M1 1h9v9H1z\\\" />\\n <path fill=\\\"#00a4ef\\\" d=\\\"M1 11h9v9H1z\\\" />\\n <path fill=\\\"#7fba00\\\" d=\\\"M11 1h9v9h-9z\\\" />\\n <path fill=\\\"#ffb900\\\" d=\\\"M11 11h9v9h-9z\\\" />\\n </symbol>\\n <symbol id=\\\"moon\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"navigation\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"offer-request\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"parent_child\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"people_community\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"person_swap\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"phone\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\\\"\\n />\\n </symbol>\\n <symbol id=\\\"record_stop\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"rocket\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save_all\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"scan_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"screen\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"send\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"settings\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_person\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_activity\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"slide_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"squalls\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"status\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"#212121\\\"\\n fill-rule=\\\"nonzero\\\"\\n d=\\\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\\\"\\n />\\n <path\\n fill=\\\"#212121\\\"\\n d=\\\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"subtract_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sun\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sync\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"tasks\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"timer\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_role\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"warning\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_fit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_in\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_out\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\\\"\\n />\\n </symbol>\\n</svg>\\n<svg\\n class=\\\"icon\\\"\\n [attr.width]=\\\"size\\\"\\n [attr.height]=\\\"size\\\"\\n [attr.aria-label]=\\\"label\\\"\\n>\\n <use [attr.href]=\\\"'#' + name\\\"></use>\\n</svg>\\n\", styles: [\".icon{fill:currentColor;vertical-align:middle}\\n\"] }]\n }], propDecorators: { name: [{\n type: Input\n }], size: [{\n type: Input\n }], label: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL2ljb25zL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvY29yZS9pY29ucy9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjakQsTUFBTSxPQUFPLGFBQWE7SUFDZixJQUFJLENBQVU7SUFDZCxJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLENBQVU7dUdBSGIsYUFBYTsyRkFBYixhQUFhLDJIQ2YxQix5M3FIQWswQ0E7OzJGRG56Q2EsYUFBYTtrQkFaekIsU0FBUzsrQkFDRSxTQUFTOzhCQVlWLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9zaGFyZWQvaWNvbi9pY29uLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyIHwgc3RyaW5nID0gMjQ7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xufVxuIiwiPHN2ZyBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxzeW1ib2wgaWQ9XCJhZGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS44ODMgMy4wMDcgMTIgM2ExIDEgMCAwIDEgLjk5My44ODNMMTMgNHY3aDdhMSAxIDAgMCAxIC45OTMuODgzTDIxIDEyYTEgMSAwIDAgMS0uODgzLjk5M0wyMCAxM2gtN3Y3YTEgMSAwIDAgMS0uODgzLjk5M0wxMiAyMWExIDEgMCAwIDEtLjk5My0uODgzTDExIDIwdi03SDRhMSAxIDAgMCAxLS45OTMtLjg4M0wzIDEyYTEgMSAwIDAgMSAuODgzLS45OTNMNCAxMWg3VjRhMSAxIDAgMCAxIC44ODMtLjk5M0wxMiAzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhZGRfY2lyY2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMmM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwcy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMyAyIDEyIDYuNDc3IDIgMTIgMm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3TTEyIDdhLjc1Ljc1IDAgMCAxIC43NS43NXYzLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41djMuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNWgzLjV2LTMuNUEuNzUuNzUgMCAwIDEgMTIgN1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhZGRfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgN2EuNzUuNzUgMCAwIDEgLjc1Ljc1djMuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjV2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNXYtMy41QS43NS43NSAwIDAgMSAxMiA3bS05LS43NUEzLjI1IDMuMjUgMCAwIDEgNi4yNSAzaDExLjVBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDEgMTcuNzUgMjFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NXpNNi4yNSA0LjVBMS43NSAxLjc1IDAgMCAwIDQuNSA2LjI1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMS41YTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzVWNi4yNWExLjc1IDEuNzUgMCAwIDAtMS43NS0xLjc1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcHBfY29ubmVjdGl2aXR5XCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjAgMTRoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAySDlhMiAyIDAgMCAwLTIgMnY0SDRhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMnY0YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAydjZIOHYtNGg0YTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMkg5VjZoOXY2YTIgMiAwIDAgMCAyIDJtMCAxNHYtNGg4djRabTgtOHYyaC04di0yWk00IDIwdi00aDh2NFptOC02SDR2LTJoOFptOC0yVjhoOHY0Wm04LTh2MmgtOFY0WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcHBzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMTdhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00bTcgMGEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRNNSAxN2EyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRtNy03YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNG03IDBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00TTUgMTBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00bTctN2EyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRtNyAwYTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNE01IDNhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2Nsb2Nrd2lzZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE3LjUgNy41IDAgMSAwIDcuNDE5IDYuMzkyYy0uMDY3LS40NTQuMjY1LS44OTIuNzI0LS44OTIuMzcgMCAuNjk2LjI1Ni43NTIuNjIzUTIxIDExLjI5NyAyMSAxMmE5IDkgMCAxIDEtMy02LjcwOFY0LjI1YS43NS43NSAwIDAgMSAxLjUgMHYzYS43NS43NSAwIDAgMS0uNzUuNzVoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMzVhNy40NyA3LjQ3IDAgMCAwLTUuMS0yXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2Rvd25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOS43OSAxMy4yNjdhLjc1Ljc1IDAgMCAwLTEuMDg2LTEuMDM0bC01Ljk1NCA2LjI1MVYzLjc1YS43NS43NSAwIDEgMC0xLjUgMHYxNC43MzRsLTUuOTU1LTYuMjUxYS43NS43NSAwIDEgMC0xLjA4NiAxLjAzNGw3LjA2NyA3LjQyYy4xNi4xNjguMzY2LjI2OC41OC4zYS44LjggMCAwIDAgLjI5LS4wMDEgMSAxIDAgMCAwIC41NzgtLjN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2xlZnRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMC43MzMgMTkuNzlhLjc1Ljc1IDAgMCAwIDEuMDM0LTEuMDg2TDUuNTE2IDEyLjc1SDIwLjI1YS43NS43NSAwIDAgMCAwLTEuNUg1LjUxNmw2LjI1MS01Ljk1NWEuNzUuNzUgMCAwIDAtMS4wMzQtMS4wODZsLTcuNDIgNy4wNjdhMSAxIDAgMCAwLS4zLjU4LjguOCAwIDAgMCAuMDAxLjI4OSAxIDEgMCAwIDAgLjMuNTc5elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd19tYXhpbWl6ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTEyLjQ5NiAzLjAwMiA3LjU1Ni4wMDEuMTIuMDE0LjA4OC4wMi4xMDQuMDM0LjA5LjA0LjA2My4wMzYuMDYzLjA0Mi4wNjQuMDUuMDYzLjA1OC4wOTQuMTEuMDcyLjExLjA1My4xMTQuMDM2LjEwNS4wMTUuMDY1LjAxLjA1My4wMS4xNDh2Ny41MDRhMSAxIDAgMCAxLTEuOTkzLjExN2wtLjAwNy0uMTE3di01LjA5TDYuNDEyIDE5SDExLjVhMSAxIDAgMCAxIC45OTMuODg0TDEyLjUgMjBhMSAxIDAgMCAxLS44ODQuOTk0TDExLjUgMjFIMy45MzlsLS4wOTYtLjAxLS4wNzctLjAxNS0uMDc3LS4wMjItLjA3LS4wMjYtLjA5LS4wNDItLjA4OS0uMDUzLS4wOTEtLjA3LjAzMi4wMjdhMSAxIDAgMCAxLS4xNjYtLjE2NmwtLjA1MS0uMDctLjA0LS4wNjQtLjAzMi0uMDY0LS4wMzQtLjA4Mi0uMDI1LS4wOC0uMDI0LS4xMTEtLjAwNy0uMDYxLS4wMDQtLjA5di03LjUwM2ExIDEgMCAwIDEgMS45OTMtLjExN2wuMDA3LjExN3Y1LjA4OEwxNy41ODIgNS4wMDJoLTUuMDg2YTEgMSAwIDAgMS0uOTk0LS44ODNsLS4wMDYtLjExN2ExIDEgMCAwIDEgMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X21pbmltaXplXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNDk4IDEyLjUwNWExIDEgMCAwIDEgLjk5My44ODRsLjAwNy4xMTZ2Ny41MDRhMSAxIDAgMCAxLTEuOTk0LjExN2wtLjAwNi0uMTE3di01LjA5M2wtNS43OTEgNS43OTJhMSAxIDAgMCAxLTEuMzIuMDgzbC0uMDk1LS4wODNhMSAxIDAgMCAxLS4wODMtMS4zMmwuMDgzLS4wOTUgNS43ODgtNS43ODhIMi45OTZhMSAxIDAgMCAxLS4xMTctMS45OTNsLjExNy0uMDA3em0zLTEwLjUwNWExIDEgMCAwIDEgLjk5NC44ODNsLjAwNy4xMTd2NS4wODdsNS43OTMtNS43OTRhMSAxIDAgMCAxIDEuMzItLjA4M2wuMDk1LjA4M2ExIDEgMCAwIDEgLjA4MyAxLjMybC0uMDgzLjA5NS01Ljc5NyA1Ljc5NUgyMWExIDEgMCAwIDEgLjExNyAxLjk5NGwtLjExNy4wMDdoLTcuNWExIDEgMCAwIDEtLjk5NC0uODgzbC0uMDA2LS4xMTdWM2ExIDEgMCAwIDEgMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X21vdmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS4yOCA2LjAzYS43NS43NSAwIDAgMS0xLjA2IDBsLTEuNDctMS40N3YzLjY5YS43NS43NSAwIDAgMS0xLjUgMFY0LjU2TDkuNzggNi4wM2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDIuNzUtMi43NWEuNzUuNzUgMCAwIDEgMS4wNiAwbDIuNzUgMi43NWEuNzUuNzUgMCAwIDEgMCAxLjA2bS05LjI1IDguMTlhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTEuNDcgMS40N2gzLjY5YS43NS43NSAwIDAgMSAwIDEuNUg0LjU2em0xMS45NCAxLjA2YS43NS43NSAwIDAgMSAwLTEuMDZsMS40Ny0xLjQ3aC0zLjY5YS43NS43NSAwIDAgMSAwLTEuNWgzLjY5bC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwyLjc1IDIuNzVhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtMi43NSAyLjc1YS43NS43NSAwIDAgMS0xLjA2IDBtLTIuNjkgMi42OWEuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjQ3IDEuNDd2LTMuNjlhLjc1Ljc1IDAgMCAwLTEuNSAwdjMuNjlsLTEuNDctMS40N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNzUgMi43NWEuNzUuNzUgMCAwIDAgMS4wNiAwbDIuNzUtMi43NWEuNzUuNzUgMCAwIDAgMC0xLjA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X3JpZ2h0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuMjY3IDQuMjA5YS43NS43NSAwIDAgMC0xLjAzNCAxLjA4Nmw2LjI1MSA1Ljk1NUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC43MzRsLTYuMjUxIDUuOTU0YS43NS43NSAwIDAgMCAxLjAzNCAxLjA4N2w3LjQyLTcuMDY3YTEgMSAwIDAgMCAuMy0uNTguOC44IDAgMCAwLS4wMDEtLjI5IDEgMSAwIDAgMC0uMy0uNTc4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd19zb3J0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMTcuMjUgNC0uMS4wMDdhLjc1Ljc1IDAgMCAwLS42NS43NDN2MTIuNjkybC0zLjIyLTMuMjE4LS4wODQtLjA3MmEuNzUuNzUgMCAwIDAtLjk3NiAxLjEzNGw0LjUwNCA0LjUuMDg0LjA3MmEuNzUuNzUgMCAwIDAgLjk3Ni0uMDczbDQuNDk3LTQuNS4wNzItLjA4NGEuNzUuNzUgMCAwIDAtLjA3My0uOTc3bC0uMDg0LS4wNzJhLjc1Ljc1IDAgMCAwLS45NzcuMDczTDE4IDE3LjQ0NlY0Ljc1bC0uMDA2LS4xMDJBLjc1Ljc1IDAgMCAwIDE3LjI1MSA0bS0xMS4wMzYuMjJMMS43MiA4LjcxNWwtLjA3My4wODRhLjc1Ljc1IDAgMCAwIC4wNzMuOTc2bC4wODQuMDczYS43NS43NSAwIDAgMCAuOTc2LS4wNzNsMy4yMTctMy4yMTh2MTIuNjk4bC4wMDguMTAyYS43NS43NSAwIDAgMCAuNzQzLjY0OGwuMTAxLS4wMDdhLjc1Ljc1IDAgMCAwIC42NDktLjc0M0w3LjQ5NyA2LjU1OWwzLjIyMyAzLjIxNy4wODQuMDcyYS43NS43NSAwIDAgMCAuOTc1LTEuMTM0TDcuMjc1IDQuMjJsLS4wODUtLjA3MmEuNzUuNzUgMCAwIDAtLjk3Ni4wNzNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYXJyb3dfc29ydF9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm02LjI4OCA0LjI5My0zLjk5NSA0LS4wODQuMDk1YTEgMSAwIDAgMCAuMDg0IDEuMzJsLjA5NS4wODNhMSAxIDAgMCAwIDEuMzItLjA4NEw2IDcuNDFWMTlsLjAwNy4xMTdhMSAxIDAgMCAwIC45OTMuODg0bC4xMTctLjAwN0ExIDEgMCAwIDAgOCAxOVY3LjQxN2wyLjI5MyAyLjI5LjA5NS4wODRhMSAxIDAgMCAwIDEuMzE5LTEuNDk5bC00LjAwNi00LS4wOTQtLjA4M2ExIDEgMCAwIDAtMS4zMi4wODRNMTcgNC4wMDNsLS4xMTcuMDA3YTEgMSAwIDAgMC0uODgzLjk5M3YxMS41OGwtMi4yOTMtMi4yOS0uMDk1LS4wODRhMSAxIDAgMCAwLTEuMzE5IDEuNDk4bDQuMDA0IDQgLjA5NC4wODRhMSAxIDAgMCAwIDEuMzItLjA4NGwzLjk5Ni00IC4wODQtLjA5NWExIDEgMCAwIDAtLjA4NC0xLjMybC0uMDk1LS4wODNhMSAxIDAgMCAwLTEuMzIuMDg0TDE4IDE2LjU4N1Y1LjAwM2wtLjAwNy0uMTE2QTEgMSAwIDAgMCAxNyA0LjAwM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd191cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuMjA5IDEwLjczM2EuNzUuNzUgMCAwIDAgMS4wODYgMS4wMzRsNS45NTQtNi4yNTFWMjAuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTE2bDUuOTU1IDYuMjUxYS43NS43NSAwIDAgMCAxLjA4Ny0xLjAzNGwtNy4wNjctNy40MmExIDEgMCAwIDAtLjU4LS4zLjguOCAwIDAgMC0uMjkuMDAxIDEgMSAwIDAgMC0uNTc4LjN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFzY2VuZGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3LjI1IDJhLjc1Ljc1IDAgMCAxIC43NS43NXYxNi42OWwyLjIyLTIuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC0zLjUtMy41YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4yMiAyLjIyVjIuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtLTkuNDgxLjQ4N2EuNzUuNzUgMCAwIDAtMS40MDEtLjAxbC0zLjMxNyA4LjVhLjc1Ljc1IDAgMSAwIDEuMzk4LjU0NmwuNzktMi4wMjNoMy41NTVsLjc1NCAyLjAxM2EuNzUuNzUgMCAwIDAgMS40MDUtLjUyNnpNNS44MjMgOGwxLjIzLTMuMTVMOC4yMzIgOHpNNCAxMy43NWEuNzUuNzUgMCAwIDEgLjc1LS43NUg5LjVhLjc1Ljc1IDAgMCAxIC42MzQgMS4xNTFMNi4xMTQgMjAuNUg5LjVhLjc1Ljc1IDAgMSAxIDAgMS41SDQuNzVhLjc1Ljc1IDAgMCAxLS42MzMtMS4xNTFsNC4wMi02LjM1SDQuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYXNzZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS43OCAzLjczN2EyLjI1IDIuMjUgMCAwIDAtMS41NiAwTDkuOTEzIDUuMzNhLjI1LjI1IDAgMCAwLS4xNjMuMjM0djIuNzkzYTQuOCA0LjggMCAwIDAtMS41IDBWNS41NjNhMS43NSAxLjc1IDAgMCAxIDEuMTQzLTEuNjQxTDEzLjcgMi4zM2EzLjc1IDMuNzUgMCAwIDEgMi42IDBsNC4zMDcgMS41OTJhMS43NSAxLjc1IDAgMCAxIDEuMTQzIDEuNjQxdjEwLjY3YTEuNzUgMS43NSAwIDAgMS0xLjE0MyAxLjY0MmwtNC4wMTggMS40ODRjLjEwNS0uMjkyLjE2MS0uNjA0LjE2MS0uOTI3di0uNzMxbDMuMzM3LTEuMjMzYS4yNS4yNSAwIDAgMCAuMTYzLS4yMzVWNS41NjNhLjI1LjI1IDAgMCAwLS4xNjMtLjIzNHptLTQuMDEgMy45M2EuNzUuNzUgMCAxIDEgLjQ5LTEuNDE4bDIuNjU4LjkyYS4yNS4yNSAwIDAgMCAuMTYzIDBsMi42NS0uOTJhLjc1Ljc1IDAgMSAxIC40OTIgMS40MThsLTIuNjUuOTE5YTEuNzUgMS43NSAwIDAgMS0xLjE0NSAwem0tNiA3YS43NS43NSAwIDAgMSAuNDktMS40MThsMi43NC45NDggMi43MzItLjk0N2EuNzUuNzUgMCAxIDEgLjQ5IDEuNDE3bC0yLjQ3Mi44NTd2Mi43YS43NS43NSAwIDAgMS0xLjUgMHYtMi43ek0xMC4zIDkuNTNhMy43NSAzLjc1IDAgMCAwLTIuNiAwbC00LjMwNyAxLjU5MmExLjc1IDEuNzUgMCAwIDAtMS4xNDMgMS42NDF2NS42N2ExLjc1IDEuNzUgMCAwIDAgMS4xNDMgMS42NDJMNy43IDIxLjY2NmEzLjc1IDMuNzUgMCAwIDAgMi42IDBsNC4zMDctMS41OTJhMS43NSAxLjc1IDAgMCAwIDEuMTQzLTEuNjQydi01LjY3YTEuNzUgMS43NSAwIDAgMC0xLjE0My0xLjY0MXptLTIuMDggMS40MDdhMi4yNSAyLjI1IDAgMCAxIDEuNTYgMGw0LjMwNyAxLjU5MmEuMjUuMjUgMCAwIDEgLjE2My4yMzR2NS42N2EuMjUuMjUgMCAwIDEtLjE2My4yMzVMOS43OCAyMC4yNTlhMi4yNSAyLjI1IDAgMCAxLTEuNTYgMGwtNC4zMDctMS41OTJhLjI1LjI1IDAgMCAxLS4xNjMtLjIzNXYtNS42N2EuMjUuMjUgMCAwIDEgLjE2My0uMjM0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhc3Npc3RhbnRfZGlyZWN0aW9uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMTQuMjk4IDIuOTg1IDYuNzE3IDYuNzE4YTMuMjUgMy4yNSAwIDAgMSAwIDQuNTk2bC02LjcxNyA2LjcxN2EzLjI1IDMuMjUgMCAwIDEtNC41OTYgMEwyLjk4NCAxNC4zYTMuMjUgMy4yNSAwIDAgMSAwLTQuNTk2bDYuNzE4LTYuNzE4YTMuMjUgMy4yNSAwIDAgMSA0LjU5NiAwbS0zLjUzNiAxLjA2LTYuNzE3IDYuNzE4YTEuNzUgMS43NSAwIDAgMCAwIDIuNDc1bDYuNzE3IDYuNzE4YTEuNzUgMS43NSAwIDAgMCAyLjQ3NSAwbDYuNzE4LTYuNzE4YTEuNzUgMS43NSAwIDAgMCAwLTIuNDc1bC02LjcxOC02LjcxN2ExLjc1IDEuNzUgMCAwIDAtMi40NzUgMG0xLjY5NSAzLjI2LjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc3LS4wNzNsLjA4NC4wNzMgMiAyYS43NS43NSAwIDAgMSAuMDcyLjk3N2wtLjA3Mi4wODQtMiAyYS43NS43NSAwIDAgMS0xLjEzMy0uOTc3bC4wNzItLjA4NC43Mi0uNzJoLTEuNWExLjI1IDEuMjUgMCAwIDAtMS4yNDQgMS4xMjJsLS4wMDYuMTI4VjE1YS43NS43NSAwIDAgMS0xLjQ5My4xMDFsLS4wMDctLjF2LTMuMjVhMi43NSAyLjc1IDAgMCAxIDIuNTgyLTIuNzQ1TDExLjc1IDloMS40OThsLS43MTgtLjcyYS43NS43NSAwIDAgMS0uMDcyLS45NzZsLjA3Mi0uMDg0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJiYXJfdmVydGljYWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNTEgM2EyLjI1IDIuMjUgMCAwIDAtMi4yNDkgMi4yNXYxMy41YTIuMjQ5IDIuMjQ5IDAgMSAwIDQuNDk4IDBWNS4yNUEyLjI1IDIuMjUgMCAwIDAgMTguMjUxIDNtLTYuNSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0OSAyLjI1djkuNWEyLjI0OSAyLjI0OSAwIDEgMCA0LjQ5OCAwdi05LjVBMi4yNSAyLjI1IDAgMCAwIDExLjc1MSA3bS02LjUgNGEyLjI1IDIuMjUgMCAwIDAtMi4yNSAyLjI1djUuNWEyLjI1IDIuMjUgMCAxIDAgNC41IDB2LTUuNUEyLjI1IDIuMjUgMCAwIDAgNS4yNSAxMVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJib29rXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNyA2YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6bTEuNSAxLjVoN3YtMWgtN3pNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2MTQuMjVhLjc1Ljc1IDAgMCAxLS43NS43NUg1LjVhMSAxIDAgMCAwIDEgMWgxMy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINi41QTIuNSAyLjUgMCAwIDEgNCAxOS41ek01LjUgMThIMTlWNC41YTEgMSAwIDAgMC0xLTFINi41YTEgMSAwIDAgMC0xIDF6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImJvb2ttYXJrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNi4xOSAyMS44NTVhLjc1Ljc1IDAgMCAxLTEuMTg3LS42MVY2LjI1QTMuMjUgMy4yNSAwIDAgMSA4LjI1MyAzaDcuNDk4YTMuMjUgMy4yNSAwIDAgMSAzLjI1IDMuMjV2MTQuOTk2YS43NS43NSAwIDAgMS0xLjE4OC42MDlsLTUuODEtNC4xODF6TTE3LjUwMiA2LjI1YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzVIOC4yNTNhMS43NSAxLjc1IDAgMCAwLTEuNzUgMS43NXYxMy41MzJsNS4wNjEtMy42NDFhLjc1Ljc1IDAgMCAxIC44NzYgMGw1LjA2MSAzLjY0MXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYm94XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNTkxIDIuNTEzYTMuNzUgMy43NSAwIDAgMSAyLjgxOCAwbDcuNDk4IDMuMDRBMS43NSAxLjc1IDAgMCAxIDIyIDcuMTc1djkuNjUzYTEuNzUgMS43NSAwIDAgMS0xLjA5MyAxLjYyMWwtNy40OTggMy4wNGEzLjc1IDMuNzUgMCAwIDEtMi44MTggMGwtNy40OTgtMy4wNEExLjc1IDEuNzUgMCAwIDEgMiAxNi44MjdWNy4xNzZhMS43NSAxLjc1IDAgMCAxIDEuMDkzLTEuNjIyem0yLjI1NCAxLjM5YTIuMjUgMi4yNSAwIDAgMC0xLjY5IDBMOS4yNCA0LjY4bDcuNTI3IDIuOTI3IDIuNjY5LTEuMDN6bTEuODQ2IDQuNTA1TDcuMjE1IDUuNSA0LjU5IDYuNTY0bDcuNDExIDIuODgyek0zLjUgMTYuODI4YS4yNS4yNSAwIDAgMCAuMTU2LjIzMWw3LjQ5OSAzLjA0cS4wNDcuMDIuMDk1LjAzNnYtOS4zNzFMMy41IDcuNzV6bTkuMzQ1IDMuMjcxIDcuNDk5LTMuMDRhLjI1LjI1IDAgMCAwIC4xNTYtLjIzMlY3Ljc3NGwtNy43NSAyLjk5MnY5LjM3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJicmFjZXNfdmFyaWFibGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgNS43NUEyLjc1IDIuNzUgMCAwIDEgNi4yNSAzYS43NS43NSAwIDAgMSAwIDEuNUM1LjU2IDQuNSA1IDUuMDYgNSA1Ljc1djQuMzA5YzAgLjc0NC0uMyAxLjQzNy0uODAyIDEuOTQxQTIuNzUgMi43NSAwIDAgMSA1IDEzLjk0MXY0LjMwOWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjUgMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtNC4zMDhhMS4yNSAxLjI1IDAgMCAwLS44NTUtMS4xODZsLS4xMzItLjA0NWEuNzUuNzUgMCAwIDEgMC0xLjQyMmwuMTMyLS4wNDVjLjUxLS4xNy44NTUtLjY0Ny44NTUtMS4xODV6bTE3IDBBMi43NSAyLjc1IDAgMCAwIDE3Ljc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuMzA5YzAgLjc0NC4zIDEuNDM3LjgwMiAxLjk0MUEyLjc1IDIuNzUgMCAwIDAgMTkgMTMuOTQxdjQuMzA5YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjUgMi43NSAyLjc1IDAgMCAwIDIuNzUtMi43NXYtNC4zMDhjMC0uNTM5LjM0NC0xLjAxNi44NTUtMS4xODZsLjEzMi0uMDQ1YS43NS43NSAwIDAgMCAwLTEuNDIybC0uMTMyLS4wNDVhMS4yNSAxLjI1IDAgMCAxLS44NTUtMS4xODV6TTkuMDkyIDcuMDRhLjc1Ljc1IDAgMSAwLTEuMTg0LjkyTDExLjA1IDEybC0zLjE0MiA0LjA0YS43NS43NSAwIDAgMCAxLjE4NC45MkwxMiAxMy4yMjNsMi45MDggMy43MzlhLjc1Ljc1IDAgMCAwIDEuMTg0LS45MjFMMTIuOTUgMTJsMy4xNDItNC4wNGEuNzUuNzUgMCAwIDAtMS4xODQtLjkyTDEyIDEwLjc3OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYnVsbGV0X2xpc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjI1IDE3LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi40OTkgMS4yNSAxLjI1IDAgMCAxIDAtMi40OTltMy41LjVoMTQuNWEuNzUuNzUgMCAwIDEgLjEwMiAxLjQ5M2wtLjEwMi4wMDdINi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3poMTQuNXptLTMuNS03YTEuMjUgMS4yNSAwIDEgMSAwIDIuNDk5IDEuMjUgMS4yNSAwIDAgMSAwLTIuNDk5bTMuNS41aDE0LjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMjEuMjUgMTNINi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3poMTQuNXptLTMuNS03YTEuMjUgMS4yNSAwIDEgMSAwIDIuNDk5IDEuMjUgMS4yNSAwIDAgMSAwLTIuNDk5bTMuNS41aDE0LjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNsLS4xMDIuMDA3SDYuNzVhLjc1Ljc1IDAgMCAxLS4xMDItMS40OTN6aDE0LjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImJ1cmdlcl9tZW51XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMyAxN2gxOGExIDEgMCAwIDEgLjExNyAxLjk5M0wyMSAxOUgzYTEgMSAwIDAgMS0uMTE3LTEuOTkzemgxOHptMC02IDE4LS4wMDJhMSAxIDAgMCAxIC4xMTcgMS45OTNsLS4xMTcuMDA3TDMgMTNhMSAxIDAgMCAxLS4xMTctMS45OTN6bDE4LS4wMDJ6bTAtNmgxOGExIDEgMCAwIDEgLjExNyAxLjk5M0wyMSA3SDNhMSAxIDAgMCAxLS4xMTctMS45OTN6aDE4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxhdGVuYVwiIHZpZXdCb3g9XCIwIDAgMTIxIDEyMVwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNjAuNS41QzI3LjQuNS41IDI3LjQuNSA2MC41czI2LjkgNjAgNjAgNjAgNjAtMjYuOSA2MC02MC0yNi45LTYwLTYwLTYwbTAgMTE4LjlDMjggMTE5LjQgMS42IDkzIDEuNiA2MC41UzI4IDEuNiA2MC41IDEuNnM1OC45IDI2LjQgNTguOSA1OC45LTI2LjQgNTguOS01OC45IDU4LjlcIlxuICAgICAgY2xhc3M9XCJzdDBcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJtNzkgNTguOCAxMS4xLTExLjFjNC42LTQuNiA0LjYtMTIuMSAwLTE2LjdTNzggMjYuNCA3My40IDMxbC0uMS4yTDYwLjUgNDQgNDcuNyAzMS4ybC0uMi0uMi0uMi0uMS0uMS0uMWMtNC42LTQuNi0xMi00LjYtMTYuNiAwcy00LjYgMTIgMCAxNi42bDEzLjIgMTMuMi0xLjggMS45di4xTDMxIDczLjVsLS4xLjEtLjEuMi0uMS4xYy00LjQgNC44LTQuMSAxMi4yLjYgMTYuNiA0LjUgNC4yIDExLjUgNC4yIDE2IDBsMTMuMi0xMy4yIDEzIDEzYzQuNiA0LjYgMTIuMSA0LjYgMTYuNyAwczQuNi0xMi4xIDAtMTYuN2wtLjItLjEtMTIuOC0xMi44elwiXG4gICAgICBjbGFzcz1cInN0MVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxlbmRhclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1IDNBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDEgMTcuNzUgMjFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMSA2LjI1IDN6bTEuNzUgNS41aC0xNXY5LjI1YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTEuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1em0tMTEuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41bTQuMjUgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41bS00LjI1LTRhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW00LjI1IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW00LjI1IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW0xLjUtNkg2LjI1QTEuNzUgMS43NSAwIDAgMCA0LjUgNi4yNVY3aDE1di0uNzVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxlbmRhcl9jbG9ja1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1IDNBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2NS43NzJhNi41IDYuNSAwIDAgMC0xLjUtLjcwOVY4LjVoLTE1djkuMjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWg1LjA2M2MuMTczLjUzNC40MTIgMS4wMzcuNzA5IDEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM3ptMCAxLjVINi4yNUExLjc1IDEuNzUgMCAwIDAgNC41IDYuMjVWN2gxNXYtLjc1YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzVtNS4yNSAxM2E1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwTTE3LjUgMTRhLjUuNSAwIDAgMSAuNS41VjE3aDJhLjUuNSAwIDAgMSAwIDFoLTIuNWEuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAwIDEgLjUtLjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2FtZXJhXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuOTI1IDIuNTA0YTIuMjUgMi4yNSAwIDAgMSAxLjk0IDEuMTFsLjgxNCAxLjM4N2gyLjA3MUEzLjI1IDMuMjUgMCAwIDEgMjIgOC4yNXY5LjVBMy4yNSAzLjI1IDAgMCAxIDE4Ljc1IDIxSDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTcuNzV2LTkuNUEzLjI1IDMuMjUgMCAwIDEgNS4yNSA1aDIuMDhsLjg3NS0xLjQyNGEyLjI1IDIuMjUgMCAwIDEgMS45MTctMS4wNzN6bTAgMS41aC0zLjgwM2EuNzUuNzUgMCAwIDAtLjU3NC4yNjhsLS4wNjUuMDktMS4wOTMgMS43OGEuNzUuNzUgMCAwIDEtLjYzOS4zNThoLTIuNUExLjc1IDEuNzUgMCAwIDAgMy41IDguMjV2OS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTMuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1di05LjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtMi41YS43NS43NSAwIDAgMS0uNjQ3LS4zN2wtMS4wMzItMS43NTdhLjc1Ljc1IDAgMCAwLS42NDYtLjM3TTEyIDhhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTltMCAxLjVhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNhbWVyYV9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMy45MjUgMi41MDRhMi4yNSAyLjI1IDAgMCAxIDEuOTQgMS4xMWwuODE0IDEuMzg3aDIuMDcxQTMuMjUgMy4yNSAwIDAgMSAyMiA4LjI1djkuNUEzLjI1IDMuMjUgMCAwIDEgMTguNzUgMjFINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NXYtOS41QTMuMjUgMy4yNSAwIDAgMSA1LjI1IDVoMi4wOGwuODc1LTEuNDI0YTIuMjUgMi4yNSAwIDAgMSAxLjkxNy0xLjA3M3pNMTIgOGE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOW0wIDEuNWEzIDMgMCAxIDEgMCA2IDMgMyAwIDAgMSAwLTZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2FyZXRfZG93blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMTYxIDEwLjA3M0M0LjQ1NCA5LjI2NSA1LjAyOCA4IDYuMTAyIDhoMTEuNzk2YzEuMDc0IDAgMS42NDggMS4yNjUuOTQxIDIuMDczbC01LjUyMiA2LjMxYTEuNzUgMS43NSAwIDAgMS0yLjYzNCAwek02LjY1MyA5LjVsNS4xNTkgNS44OTZhLjI1LjI1IDAgMCAwIC4zNzYgMGw1LjE2LTUuODk2elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYXJldF91cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMTYxIDE0LjkwN2MtLjcwNy44MDktLjEzMyAyLjA3My45NDEgMi4wNzNoMTEuNzk2YzEuMDc0IDAgMS42NDgtMS4yNjQuOTQxLTIuMDczbC01LjUyMi02LjMxYTEuNzUgMS43NSAwIDAgMC0yLjYzNCAwem0xLjQ5Mi41NzMgNS4xNTktNS44OTZhLjI1LjI1IDAgMCAxIC4zNzYgMGw1LjE2IDUuODk3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9hdmVyYWdlXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjMgMjRjLTMuNiAwLTUuMDMtNC4xNzYtNi40MTMtOC4yMTRDMTUuMjc3IDExLjk1OCAxMy45MiA4IDExIDhhMy40NCAzLjQ0IDAgMCAwLTMuMDUzIDIuMzIyTDYuMDUgOS42ODRDNi4xMDEgOS41MzQgNy4zMjEgNiAxMSA2YzQuMzUgMCA2LjAxMiA0Ljg1NSA3LjQ4IDkuMTM4QzE5LjY4OSAxOC42NjcgMjAuODMgMjIgMjMgMjJhMy40NCAzLjQ0IDAgMCAwIDMuMDUzLTIuMzIxbDEuODk2LjYzN0MyNy44OTkgMjAuNDY2IDI2LjY3OSAyNCAyMyAyNFwiXG4gICAgLz5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk00IDI4VjE3aDJ2LTJINFYySDJ2MjZhMiAyIDAgMCAwIDIgMmgyNnYtMlpcIiAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOCAxNWgydjJIOHptNCAwaDJ2MmgtMnptOCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhcnRfY29ycmVsYXRpb25cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMzAgMzBINGEyIDIgMCAwIDEtMi0yVjJoMnYyNmgyNlpcIiAvPlxuICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI2XCIgcj1cIjNcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMjJcIiByPVwiM1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgIDxjaXJjbGUgY3g9XCIxOFwiIGN5PVwiMTRcIiByPVwiM1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOSAxN2EzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xXCJcbiAgICAvPlxuICAgIDxjaXJjbGUgY3g9XCIyN1wiIGN5PVwiNlwiIHI9XCIzXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgPGNpcmNsZSBjeD1cIjI3XCIgY3k9XCIyMlwiIHI9XCIzXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yNyAxN2EzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xbS05IDEzYTMgMyAwIDEgMSAzLTMgMy4wMDMgMy4wMDMgMCAwIDEtMyAzbTAtNGExIDEgMCAxIDAgMSAxIDEgMSAwIDAgMC0xLTFtMC0xNGEzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X2xpbmVcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm00LjY3IDI4IDYuMzktMTIgNy4zIDYuNDlhMiAyIDAgMCAwIDEuNy40NyAyIDIgMCAwIDAgMS40Mi0xLjA3TDI3IDEwLjlsLTEuODItLjktNS40OSAxMS03LjMtNi40OWEyIDIgMCAwIDAtMS42OC0uNTEgMiAyIDAgMCAwLTEuNDIgMUw0IDI1VjJIMnYyNmEyIDIgMCAwIDAgMiAyaDI2di0yWlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9saW5lX3Ntb290aFwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzIDE1YzEuNDg1IDAgMi41NTQgMS40OTcgMy42ODYgMy4wODFDMTcuOTk4IDE5LjkxOCAxOS40ODYgMjIgMjIgMjJjNS42NyAwIDcuNzgtMTAuNzkgOC0xMmwtMS45NjgtLjM1OEMyNy41NSAxMi4yODIgMjUuMzk0IDIwIDIyIDIwYy0xLjQ4NSAwLTIuNTU0LTEuNDk3LTMuNjg2LTMuMDgxQzE3LjAwMiAxNS4wODIgMTUuNTE0IDEzIDEzIDEzYy00LjE4NiAwLTcuNDQ1IDcuNDA0LTkgMTEuNzYyVjJIMnYyNmEyLjAwMyAyLjAwMyAwIDAgMCAyIDJoMjZ2LTJINS4wNDRjMS41MS01LjE0MyA0LjkyLTEzIDcuOTU2LTEzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X21heGltdW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04IDZoMnYySDh6bTQgMGgydjJoLTJ6bTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMjcuOTg5IDI4LS4wMjctLjE2M0MyNi41MSAxOS4wNzQgMjQuMDY2IDkuMDg5IDE4IDguMDg5VjZoLTJ2Mi4wODVjLTYuMDg0Ljk3OC04LjUzMyAxMC45NzgtOS45ODYgMTkuNzUyTDUuOTg3IDI4SDRWOGgyVjZINFYySDJ2MjZhMiAyIDAgMCAwIDIgMmgyNnYtMlpNOC4wMTUgMjhjMi4wMjQtMTIuMTA4IDQuOTYtMTggOC45NzMtMThzNi45NDkgNS44OTIgOC45NzIgMThaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X21pbmltdW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNNCAyOHYtMmgydi0ySDRWMkgydjI2YTIgMiAwIDAgMCAyIDJoMjZ2LTJaXCIgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTggMjRoMnYySDh6bTQgMGgydjJoLTJ6bTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjcuOTQ2IDQuMzI4IDI1Ljk3MyA0QzIzLjk0OSAxNi4xMDggMjEuMDEzIDIyIDE3IDIycy02Ljk0OS01Ljg5Mi04Ljk3My0xOGwtMS45NzMuMzI4QzcuNTEgMTMuMDU3IDkuOTY0IDIyLjkzIDE2IDIzLjkxM1YyNmgydi0yLjA4N2M2LjAzNy0uOTgzIDguNDktMTAuODU2IDkuOTQ2LTE5LjU4NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9zdGVwcGVyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTQgMjJ2LThoOFY2aDhWNEgyMHY4aC04djhINFYySDJ2MjZhMi4wMDMgMi4wMDMgMCAwIDAgMiAyaDI2di0ySDR2LTZaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X3RyYW5zZm9ybWF0aW9uXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTEwLjM1NiAyMy4wNThDMTIuNzcgMjQuNTkyIDE1LjYyIDI2IDE3Ljk1IDI2YTMuODcgMy44NyAwIDAgMCAyLjg1Ni0xLjA4NGMyLjI4Ni0yLjI5LjE0LTYuMzk4LTEuOTM4LTEwLjM3Mmw1LjgwMS01LjgwMWE0NCA0NCAwIDAgMSAzLjAxMiAyLjEyNEwyOSA5LjM0OWE0NSA0NSAwIDAgMC0yLjg3Mi0yLjA2NEwzMCAzLjQxMyAyOC41ODYgMmwtNC4yMDcgNC4yMDZjLTMuMzE2LTEuOTEtNy4xMDgtMy4yNDYtOS4yMjgtMS4xMjItMi4wNCAyLjA0My0uNTUyIDUuNTMyIDEuMjY4IDkuMDgzbC02LjMwNyA2LjMwNmE0NCA0NCAwIDAgMS0yLjgtMi4xTDYgMTkuODg0YTQ4IDQ4IDAgMCAwIDIuNjY1IDIuMDM1TDQgMjYuNTg1VjJIMnYyNmEyIDIgMCAwIDAgMiAyaDI2di0ySDUuNDEzWm02LjIwOS0xNi41NTdjMS4xMzUtMS4xMzggMy42OTMtLjI4NiA2LjMzNyAxLjE4M2wtNC45OTUgNC45OTRjLTEuMzEzLTIuNjE5LTIuMzUtNS4xNjctMS4zNDItNi4xNzdtLjgyMSA5LjUyNmMxLjU4IDMuMDMyIDMuMTgyIDYuMjk2IDIuMDA3IDcuNDczLTEuMzEyIDEuMzE0LTQuNTIyLS4wMjYtNy41NzItMS45MDhaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTAgMGgzMnYzMkgwelwiXG4gICAgICBkYXRhLW5hbWU9XCImbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0O1wiXG4gICAgICBzdHlsZT1cImZpbGw6IG5vbmVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhdF9hZGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMi43NSA3Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYzLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41djMuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjV6TTIyIDEyYzAtNS41MjMtNC40NzctMTAtMTAtMTBTMiA2LjQ3NyAyIDEyYTkuOTYgOS45NiAwIDAgMCAxLjExNSA0LjU5MmwtMS4wNjggMy44MjNhMS4yNSAxLjI1IDAgMCAwIDEuNTQgMS41NGwzLjgyNi0xLjA2N0E5Ljk2IDkuOTYgMCAwIDAgMTIgMjJjNS41MjMgMCAxMC00LjQ3NyAxMC0xME0zLjUgMTJhOC41IDguNSAwIDEgMSA0LjM2NyA3LjQzbC0uMjctLjE1LTMuOTg2IDEuMTExIDEuMTEzLTMuOTg0LS4xNTEtLjI3QTguNDYgOC40NiAwIDAgMSAzLjUgMTJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhdF9zcGFya2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMDg4IDYuNDEyYTIuODQgMi44NCAwIDAgMC0xLjM0Ny0uOTU1bC0xLjM3OC0uNDQ4YS41NDQuNTQ0IDAgMCAxIDAtMS4wMjVsMS4zNzgtLjQ0OEEyLjg0IDIuODQgMCAwIDAgMTYuNSAxLjc3NGwuMDExLS4wMzQuNDQ4LTEuMzc3YS41NDQuNTQ0IDAgMCAxIDEuMDI3IDBsLjQ0NyAxLjM3N2EyLjg0IDIuODQgMCAwIDAgMS43OTkgMS43OTZsMS4zNzcuNDQ4LjAyOC4wMDdhLjU0NC41NDQgMCAwIDEgMCAxLjAyNWwtMS4zNzguNDQ4YTIuODQgMi44NCAwIDAgMC0xLjc5OCAxLjc5NmwtLjQ0OCAxLjM3Ny0uMDEzLjAzNGEuNTQ0LjU0NCAwIDAgMS0xLjAxMy0uMDM0bC0uNDQ4LTEuMzc3YTIuOCAyLjggMCAwIDAtLjQ1LS44NDhtNy42OTUgMy44MDEtLjc2Ni0uMjQ4YTEuNTggMS41OCAwIDAgMS0uOTk4LS45OTlsLS4yNS0uNzY0YS4zMDIuMzAyIDAgMCAwLS41NyAwbC0uMjQ4Ljc2NGExLjU4IDEuNTggMCAwIDEtLjk4NC45OTlsLS43NjUuMjQ4YS4zMDIuMzAyIDAgMCAwIDAgLjU3bC43NjUuMjQ5YTEuNTggMS41OCAwIDAgMSAxIDEuMDAybC4yNDguNzY0YS4zMDIuMzAyIDAgMCAwIC41NyAwbC4yNDktLjc2NGExLjU4IDEuNTggMCAwIDEgLjk5OS0uOTk5bC43NjUtLjI0OGEuMzAyLjMwMiAwIDAgMCAwLS41N3pNMTIgMmMuOTU3IDAgMS44ODMuMTM0IDIuNzU5LjM4NWExLjggMS44IDAgMCAxLS4zNjkuMTc0bC0xLjM0LjQ0YTEuNjUgMS42NSAwIDAgMC0uNzIxLjUwN0E4LjUgOC41IDAgMCAwIDMuNSAxMmMwIDEuNDcuMzczIDIuODgzIDEuMDczIDQuMTM3bC4xNS4yNy0xLjExMiAzLjk4NCAzLjk4Ny0xLjExMi4yNy4xNWE4LjUwMiA4LjUwMiAwIDAgMCAxMi41MDctNS45NjVxLjEzNi4yMDIuMzM1LjM0NWExLjI5IDEuMjkgMCAwIDAgMS4wOS4xOTVDMjAuODcgMTguNTY3IDE2LjgzNiAyMiAxMiAyMmE5Ljk2IDkuOTYgMCAwIDEtNC41ODctMS4xMTJsLTMuODI2IDEuMDY3YTEuMjUgMS4yNSAwIDAgMS0xLjU0LTEuNTRsMS4wNjgtMy44MjNBOS45NiA5Ljk2IDAgMCAxIDIgMTJDMiA2LjQ3NyA2LjQ3NyAyIDEyIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC41MyAxMi45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDQuNSA0LjVhLjc1Ljc1IDAgMCAwIDEuMDYgMGwxMS0xMWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDguNSAxNi45NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrX2NpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMiA2LjQ3NyAyIDEyIDJtMCAxLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN20tMS4yNSA5Ljk0IDQuNDctNC40N2EuNzUuNzUgMCAwIDEgMS4xMzMuOTc2bC0uMDczLjA4NC01IDVhLjc1Ljc1IDAgMCAxLS45NzYuMDczbC0uMDg0LS4wNzMtMi41LTIuNWEuNzUuNzUgMCAwIDEgLjk3Ni0xLjEzM2wuMDg0LjA3M3psNC40Ny00LjQ3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGVja21hcmtfY2lyY2xlX2ZpbGxlZFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMiA2LjQ3NyAyIDEyIDJtMy4yMiA2Ljk3LTQuNDcgNC40Ny0xLjk3LTEuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDBsNS01YS43NS43NSAwIDEgMC0xLjA2LTEuMDZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrX2xpc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02Ljc4IDQuNzhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwzLjc1IDUuNjlsLS40Ny0uNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxIDFhLjc1Ljc1IDAgMCAwIDEuMDYgMHptMTQuNDcgMTMuMjI3SDkuNzVsLS4xMDIuMDA3YS43NS43NSAwIDAgMCAuMTAyIDEuNDkzaDExLjVsLjEwMi0uMDA3YS43NS43NSAwIDAgMC0uMTAyLTEuNDkzbTAtNi41MDdIOS43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDkuNzUgMTNoMTEuNWwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAwLS4xMDItMS40OTNtMC02LjVIOS43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDkuNzUgNi41aDExLjVsLjEwMi0uMDA3QS43NS43NSAwIDAgMCAyMS4yNSA1TTYuNzggMTcuNzhhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMS45NyAxLjk3LS40Ny0uNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxIDFhLjc1Ljc1IDAgMCAwIDEuMDYgMHptMC03LjU2YS43NS43NSAwIDAgMSAwIDEuMDZsLTIuNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuOTctMS45N2EuNzUuNzUgMCAwIDEgMS4wNiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZWNrbWFya19zdGFyYnVyc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk05LjgzNiAyLjAzNHEuMTY4LjA1OC4zMjkuMTM2bDEuMjgzLjYzMmExLjI1IDEuMjUgMCAwIDAgMS4xMDQgMGwxLjI4My0uNjMyYTIuNzUgMi43NSAwIDAgMSAzLjY4MiAxLjI1M2wuMDczLjE2Mi4wNjMuMTY3LjQ2IDEuMzUzYy4xMjUuMzY4LjQxNC42NTYuNzgxLjc4MWwxLjM1NC40NmEyLjc1IDIuNzUgMCAwIDEgMS41ODEgMy44MTlsLS42MzEgMS4yODNhMS4yNSAxLjI1IDAgMCAwIDAgMS4xMDRsLjYzMSAxLjI4M2EyLjc1IDIuNzUgMCAwIDEtMS41ODEgMy44MThsLTEuMzU0LjQ2YTEuMjUgMS4yNSAwIDAgMC0uNzguNzgxbC0uNDYxIDEuMzU0YTIuNzUgMi43NSAwIDAgMS0zLjgxOCAxLjU4MWwtMS4yODMtLjYzMWExLjI1IDEuMjUgMCAwIDAtMS4xMDQgMGwtMS4yODMuNjMxYTIuNzUgMi43NSAwIDAgMS0zLjgxOC0xLjU4MWwtLjQ2LTEuMzU0YTEuMjUgMS4yNSAwIDAgMC0uNzgyLS43OGwtMS4zNTMtLjQ2MWEyLjc1IDIuNzUgMCAwIDEtMS41ODItMy44MThsLjYzMi0xLjI4M2ExLjI1IDEuMjUgMCAwIDAgMC0xLjEwNGwtLjYzMi0xLjI4M2EyLjc1IDIuNzUgMCAwIDEgMS41ODItMy44MThsMS4zNTMtLjQ2YTEuMjUgMS4yNSAwIDAgMCAuNzgxLS43ODJsLjQ2LTEuMzUzYTIuNzUgMi43NSAwIDAgMSAzLjQ5LTEuNzE4bS0yLjA3IDIuMi0uNDYgMS4zNTRhMi43NSAyLjc1IDAgMCAxLTEuNzE4IDEuNzE4bC0xLjM1My40NmExLjI1IDEuMjUgMCAwIDAtLjcxOSAxLjczNmwuNjMyIDEuMjgzYTIuNzUgMi43NSAwIDAgMSAwIDIuNDNsLS42MzIgMS4yODJhMS4yNSAxLjI1IDAgMCAwIC43MTkgMS43MzZsMS4zNTMuNDZhMi43NSAyLjc1IDAgMCAxIDEuNzE4IDEuNzE4bC40NiAxLjM1NGExLjI0OCAxLjI0OCAwIDAgMCAxLjczNi43MTlsMS4yODMtLjYzMmEyLjc1IDIuNzUgMCAwIDEgMi40MyAwbDEuMjgyLjYzMnEuMDc0LjAzNS4xNS4wNjFhMS4yNSAxLjI1IDAgMCAwIDEuNTg2LS43OGwuNDYtMS4zNTRhMi43NSAyLjc1IDAgMCAxIDEuNzE4LTEuNzE4bDEuMzU0LS40NnEuMDc1LS4wMjYuMTUtLjA2MmExLjI1IDEuMjUgMCAwIDAgLjU2OS0xLjY3NGwtLjYzMi0xLjI4M2EyLjc1IDIuNzUgMCAwIDEgMC0yLjQyOWwuNjMyLTEuMjgzYTEuMjUgMS4yNSAwIDAgMC0uNzE5LTEuNzM2bC0xLjM1NC0uNDZhMi43NSAyLjc1IDAgMCAxLTEuNzE4LTEuNzE4bC0uNDYtMS4zNTMtLjAyOS0uMDc2LS4wMzMtLjA3NC0uMDYyLS4xMTFhMS4yNSAxLjI1IDAgMCAwLTEuNjEyLS40NThsLTEuMjgzLjYzMmEyLjc1IDIuNzUgMCAwIDEtMi40MjkgMGwtMS4yODMtLjYzMmExLjI1IDEuMjUgMCAwIDAtMS43MzUuNzE5TTEwLjA1IDE0LjM5bDUuNDItNS40MmEuNzUuNzUgMCAwIDEgMS4xMzMuOTc3bC0uMDczLjA4NC02IDZhLjc1Ljc1IDAgMCAxLTEuMDMxLjAyOGwtLjA3NS0uMDc4LTIuNS0zYS43NS43NSAwIDAgMSAxLjA3NS0xLjA0bC4wNzcuMDh6bDUuNDItNS40MnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hldnJvbl9kb3duXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC4yMiA4LjQ3YS43NS43NSAwIDAgMSAxLjA2IDBMMTIgMTUuMTlsNi43Mi02LjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTcuMjUgNy4yNWEuNzUuNzUgMCAwIDEtMS4wNiAwTDQuMjIgOS41M2EuNzUuNzUgMCAwIDEgMC0xLjA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZXZyb25fbGVmdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE1LjUzIDQuMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNkw4LjgxIDEybDYuNzIgNi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC03LjI1LTcuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw3LjI1LTcuMjVhLjc1Ljc1IDAgMCAxIDEuMDYgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGV2cm9uX2xlZnRfZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTUuNzA3IDQuMjkzYTEgMSAwIDAgMSAwIDEuNDE0TDkuNDE0IDEybDYuMjkzIDYuMjkzYTEgMSAwIDAgMS0xLjQxNCAxLjQxNGwtNy03YTEgMSAwIDAgMSAwLTEuNDE0bDctN2ExIDEgMCAwIDEgMS40MTQgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGV2cm9uX3JpZ2h0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC40NyA0LjIyYS43NS43NSAwIDAgMCAwIDEuMDZMMTUuMTkgMTJsLTYuNzIgNi43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuMjUtNy4yNWEuNzUuNzUgMCAwIDAgMC0xLjA2TDkuNTMgNC4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZXZyb25fcmlnaHRfZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC4yOTMgNC4yOTNhMSAxIDAgMCAwIDAgMS40MTRMMTQuNTg2IDEybC02LjI5MyA2LjI5M2ExIDEgMCAxIDAgMS40MTQgMS40MTRsNy03YTEgMSAwIDAgMCAwLTEuNDE0bC03LTdhMSAxIDAgMCAwLTEuNDE0IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hldnJvbl91cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuMjkzIDE1LjcwN2ExIDEgMCAwIDAgMS40MTQgMEwxMiA5LjQxNGw2LjI5MyA2LjI5M2ExIDEgMCAwIDAgMS40MTQtMS40MTRsLTctN2ExIDEgMCAwIDAtMS40MTQgMGwtNyA3YTEgMSAwIDAgMCAwIDEuNDE0XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDMuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3TTIgMTJDMiA2LjQ3NyA2LjQ3NyAyIDEyIDJzMTAgNC40NzcgMTAgMTAtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbGlwYm9hcmRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04LjM3OSA1LjVINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDE0LjMzNi43NS43NS43NWgxMS41YS43NS43NSAwIDAgMCAuNzUtLjc1VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTI5Yy0uNDA0LjYwMy0xLjA5IDEtMS44NzEgMWgtMy41Yy0uNzggMC0xLjQ2Ny0uMzk3LTEuODcxLTFNMTUuOTg2IDRoMS43NjRBMi4yNSAyLjI1IDAgMCAxIDIwIDYuMjV2MTMuNUEyLjI1IDIuMjUgMCAwIDEgMTcuNzUgMjJINi4yNUEyLjI1IDIuMjUgMCAwIDEgNCAxOS43NVY2LjI1QTIuMjUgMi4yNSAwIDAgMSA2LjI1IDRoMS43NjRhMi4yNSAyLjI1IDAgMCAxIDIuMjM2LTJoMy41YTIuMjUgMi4yNSAwIDAgMSAyLjIzNiAyTTkuNSA0LjI1YzAgLjQxNC4zMzYuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41YS43NS43NSAwIDAgMC0uNzUuNzVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvY2tcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgME0xMiAyQzYuNDc3IDIgMiA2LjQ3NyAyIDEyczQuNDc3IDEwIDEwIDEwIDEwLTQuNDc3IDEwLTEwUzE3LjUyMyAyIDEyIDJtLS4wMDcgNC42NDhhLjc1Ljc1IDAgMCAwLTEuNDkzLjEwMnY2bC4wMDcuMTAyYS43NS43NSAwIDAgMCAuNzQzLjY0OGg0bC4xMDItLjAwN0EuNzUuNzUgMCAwIDAgMTUuMjUgMTJIMTJWNi43NXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYWRkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNC41YTQuNSA0LjUgMCAwIDAtNC40OTUgNC4yODUuNzUuNzUgMCAwIDEtLjc1LjcxNUg2LjVhMyAzIDAgMSAwIDAgNmgzLjU3NmE2LjYgNi42IDAgMCAwLS4wNTcgMS41SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYuMDAxIDYuMDAxIDAgMCAxIDExLjg0IDAgNC41IDQuNSAwIDAgMSA0LjA1MyA0Ljk3MyA2LjUgNi41IDAgMCAwLTEuOC0xLjg1N0EzIDMgMCAwIDAgMTcuNSA5LjVoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDQuNW0xMCAxMmE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwbS01IC41LjAwMSAyLjUwM2EuNS41IDAgMSAxLTEgMFYxN2gtMi41MDVhLjUuNSAwIDAgMSAwLTFIMTZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxNmgyLjQ5N2EuNS41IDAgMCAxIDAgMXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYXJjaGl2ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDUuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoNS4xNzdhMiAyIDAgMCAwIC4zMjMuMjMyVjE4SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYuMDAxIDYuMDAxIDAgMCAxIDExLjg0IDBBNC41IDQuNSAwIDAgMSAyMS43NDQgMTJoLTEuNjQ1YTMgMyAwIDAgMC0yLjU5OS0xLjVoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDUuNW0xIDcuNWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMXptNyAxMGEyIDIgMCAwIDAgMi0ydi00aC05djRhMiAyIDAgMCAwIDIgMnptLTQuNS00LjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYXJyb3dfZG93blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoMy41NzZhNi42IDYuNiAwIDAgMC0uMDU3IDEuNUg2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OCA2LjAwMSA2LjAwMSAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNTMgNC45NzMgNi41IDYuNSAwIDAgMC0xLjgtMS44NTdBMyAzIDAgMCAwIDE3LjUgOS41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA0LjVtMTAgMTJhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tNS0zYS41LjUgMCAwIDAtMSAwdjQuNzkzbC0xLjY0Ni0xLjY0N2EuNS41IDAgMCAwLS43MDguNzA4bDIuNSAyLjVhLjUuNSAwIDAgMCAuNzA4IDBsMi41LTIuNWEuNS41IDAgMCAwLS43MDgtLjcwOEwxNyAxOC4yOTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTc2YTYuNiA2LjYgMCAwIDAtLjA1NyAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDUzIDQuOTczIDYuNSA2LjUgMCAwIDAtMS44LTEuODU3QTMgMyAwIDAgMCAxNy41IDkuNWgtLjI1NmEuNzUuNzUgMCAwIDEtLjc0OS0uNzE1QTQuNSA0LjUgMCAwIDAgMTIgNC41bTEwIDEyYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBtLTcuMTQ2LTIuMzU0YS41LjUgMCAwIDAtLjcwOC43MDhsMS42NDcgMS42NDYtMS42NDcgMS42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwxLjY0Ni0xLjY0NyAxLjY0NiAxLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOEwxNy4yMDcgMTYuNWwxLjY0Ny0xLjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOEwxNi41IDE1Ljc5M3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfZG93bmxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTc2YTYuNiA2LjYgMCAwIDAtLjA1NyAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDUzIDQuOTczIDYuNSA2LjUgMCAwIDAtMS44LTEuODU3QTMgMyAwIDAgMCAxNy41IDkuNWgtLjI1NmEuNzUuNzUgMCAwIDEtLjc0OS0uNzE1QTQuNSA0LjUgMCAwIDAgMTIgNC41bTEwIDEyYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBtLTUtM2EuNS41IDAgMCAwLTEgMHY0Ljc5M2wtMS42NDYtMS42NDdhLjUuNSAwIDAgMC0uNzA4LjcwOGwyLjUgMi41YS41LjUgMCAwIDAgLjcwOCAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTcgMTguMjkzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbG91ZF9lZGl0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNS41YTQuNSA0LjUgMCAwIDAtNC40OTUgNC4yODUuNzUuNzUgMCAwIDEtLjc1LjcxNUg2LjVhMyAzIDAgMSAwIDAgNmg2LjM1NWwtLjM2NS4zNjVBMy43IDMuNyAwIDAgMCAxMS43MTcgMThINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDIuNDMzIDEgMy4yNyAzLjI3IDAgMCAwLTEuNzAxLjcxIDMgMyAwIDAgMC0xLjE1Mi0uMjNoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDUuNW03LjEgNi4xNy01LjkwMyA1LjkwMmEyLjcgMi43IDAgMCAwLS43MDYgMS4yNDdsLS40NTggMS44MzFhMS4wODcgMS4wODcgMCAwIDAgMS4zMTkgMS4zMThsMS44My0uNDU3YTIuNyAyLjcgMCAwIDAgMS4yNDgtLjcwN2w1LjkwMi01LjkwMkEyLjI4NiAyLjI4NiAwIDAgMCAxOS4xIDExLjY3XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX2xpbmtcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA1LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTA3Yy4wMjcuNTI3LjE0IDEuMDMyLjMyNiAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDc3IDQuMzEgNC43NiA0Ljc2IDAgMCAwLTIuMDA1LTEuNUEzIDMgMCAwIDAgMTcuNSAxMC41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA1LjVtMTAgMTAuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDE4LjI1IDE0bC4xNTQuMDA1YTIuMjUgMi4yNSAwIDAgMS0uMTU0IDQuNDk1bC0uMDAzLjAwNS0uMTAyLjAwN2EuNzUuNzUgMCAwIDAgLjEwOCAxLjQ5M1YyMGwuMi0uMDA1QTMuNzUgMy43NSAwIDAgMCAyMiAxNi4yNW0tNi41LTNhLjc1Ljc1IDAgMCAwLS43NS0uNzVsLS4yLjAwNWEzLjc1IDMuNzUgMCAwIDAgLjIgNy40OTVsLjEwMi0uMDA3YS43NS43NSAwIDAgMC0uMTAyLTEuNDkzbC0uMTU0LS4wMDVBMi4yNSAyLjI1IDAgMCAxIDE0Ljc1IDE0bC4xMDItLjAwN2EuNzUuNzUgMCAwIDAgLjY0OC0uNzQzbTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjVsLS4xMDIuMDA3QS43NS43NSAwIDAgMCAxNC43NSAxN2gzLjVsLjEwMi0uMDA3QS43NS43NSAwIDAgMCAxOSAxNi4yNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbG91ZF9vZmZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw0LjYzMyA0LjYzNGE2IDYgMCAwIDAtLjc3MyAyLjEwNUE0LjUgNC41IDAgMCAwIDYuNSAxOWgxMXEuMjEzIDAgLjQyLS4wMmwyLjggMi44YS43NS43NSAwIDAgMCAxLjA2LTEuMDZ6TTE2LjQ0IDE3LjVINi41YTMgMyAwIDEgMSAwLTZoLjI1NmMuNCAwIC43My0uMzE1Ljc0OS0uNzE1LjAzLS42MzEuMTktMS4yMjkuNDUzLTEuNzY2em00LjA2LTNjMCAuNzgyLS4zIDEuNDk0LS43OSAyLjAyOWwxLjA2MiAxLjA2YTQuNSA0LjUgMCAwIDAtMi44NTEtNy41NyA2IDYgMCAwIDAtOC45My00LjIxbDEuMTEgMS4xMWE0LjUgNC41IDAgMCAxIDYuMzk0IDMuODY2Ljc1Ljc1IDAgMCAwIC43NS43MTVoLjI1NWEzIDMgMCAwIDEgMyAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX3VwbG9hZFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoMy41NzZhNi42IDYuNiAwIDAgMC0uMDU3IDEuNUg2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OCA2LjAwMSA2LjAwMSAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNTMgNC45NzMgNi41IDYuNSAwIDAgMC0xLjgtMS44NTdBMyAzIDAgMCAwIDE3LjUgOS41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA0LjVtMTAgMTJhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tNiAzYS41LjUgMCAwIDAgMSAwdi00Ljc5M2wxLjY0NiAxLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtMi41LTIuNWEuNS41IDAgMCAwLS43MDggMGwtMi41IDIuNWEuNS41IDAgMCAwIC43MDguNzA4TDE2IDE0LjcwN3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY29kZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTguMDY2IDE4Ljk0MyA2LjUtMTQuNWEuNzUuNzUgMCAwIDEgMS40MDQuNTE4bC0uMDM2LjA5Ni02LjUgMTQuNWEuNzUuNzUgMCAwIDEtMS40MDQtLjUxOHpsNi41LTE0LjV6TTIuMjIgMTEuNDdsNC4yNS00LjI1YS43NS43NSAwIDAgMSAxLjEzMy45NzZsLS4wNzMuMDg1TDMuODEgMTJsMy43MiAzLjcxOWEuNzUuNzUgMCAwIDEtLjk3NiAxLjEzM2wtLjA4NC0uMDczLTQuMjUtNC4yNWEuNzUuNzUgMCAwIDEtLjA3My0uOTc2emw0LjI1LTQuMjV6bTE0LjI1LTQuMjVhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg0LjA3MyA0LjI1IDQuMjVhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00LjI1IDQuMjVhLjc1Ljc1IDAgMCAxLTEuMTMzLS45NzdsLjA3My0uMDg0TDIwLjE5IDEybC0zLjcyLTMuNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTMuODM5IDUuODU4YzIuOTQtMy45MTYgOS4wMy01LjA1NSAxMy4zNjQtMi4zNiA0LjI4IDIuNjYgNS44NTQgNy43NzcgNC4xIDEyLjU3Ny0xLjY1NSA0LjUzMy02LjAxNiA2LjMyOC05LjE1OSA0LjA0OC0xLjE3Ny0uODU0LTEuNjM0LTEuOTI1LTEuODU0LTMuNjY0bC0uMTA2LS45ODctLjA0NS0uMzk4Yy0uMTIzLS45MzQtLjMxMS0xLjM1Mi0uNzA1LTEuNTcyLS41MzUtLjI5OC0uODkyLS4zMDUtMS41OTUtLjAzM2wtLjM1MS4xNDYtLjE3OS4wNzhjLTEuMDE0LjQ0LTEuNjg4LjU5NS0yLjU0MS40MTZsLS4yLS4wNDctLjE2NC0uMDQ3Yy0yLjc4OS0uODY0LTMuMjAyLTQuNjQ3LS41NjUtOC4xNTdtLjk4NCA2LjcxNi4xMjMuMDM3LjEzNC4wM2MuNDM5LjA4Ny44MTQuMDE1IDEuNDM3LS4yNDJsLjYwMi0uMjU3YzEuMjAyLS40OTMgMS45ODUtLjU0IDMuMDQ2LjA1LjkxNy41MTIgMS4yNzUgMS4yOTggMS40NTcgMi42NmwuMDUzLjQ1OS4wNTUuNTMyLjA0Ny40MjJjLjE3MiAxLjM2MS40ODUgMi4wOSAxLjI0OCAyLjY0NCAyLjI3NSAxLjY1IDUuNTM0LjMwOSA2Ljg3LTMuMzQ5IDEuNTE2LTQuMTUyLjE3NC04LjUxNC0zLjQ4NC0xMC43ODktMy42NzUtMi4yODQtOC44OTktMS4zMDYtMTEuMzczIDEuOTg3LTIuMDc1IDIuNzYzLTEuODIgNS4yOC0uMjE1IDUuODE2bTExLjIyNS0xLjk5NGExLjI1IDEuMjUgMCAxIDEgMi40MTQtLjY0NyAxLjI1IDEuMjUgMCAwIDEtMi40MTQuNjQ3bS40OTQgMy40ODhhMS4yNSAxLjI1IDAgMSAxIDIuNDE1LS42NDcgMS4yNSAxLjI1IDAgMCAxLTIuNDE1LjY0N00xNC4wNyA3LjU3N2ExLjI1IDEuMjUgMCAxIDEgMi40MTUtLjY0NyAxLjI1IDEuMjUgMCAwIDEtMi40MTUuNjQ3bS0uMDI4IDguOTk4YTEuMjUgMS4yNSAwIDEgMSAyLjQxNC0uNjQ3IDEuMjUgMS4yNSAwIDAgMS0yLjQxNC42NDdtLTMuNDk3LTkuOTdhMS4yNSAxLjI1IDAgMSAxIDIuNDE1LS42NDYgMS4yNSAxLjI1IDAgMCAxLTIuNDE1LjY0NlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb2x1bW5fdHJpcGxlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC41IDIxQTIuNSAyLjUgMCAwIDEgMiAxOC41di0xM0EyLjUgMi41IDAgMCAxIDQuNSAzaDFBMi41IDIuNSAwIDAgMSA4IDUuNXYxM0EyLjUgMi41IDAgMCAxIDUuNSAyMXptLTEtMi41YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xM2ExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF6bTggMi41QTIuNSAyLjUgMCAwIDEgOSAxOC41di0xM0EyLjUgMi41IDAgMCAxIDExLjUgM2gxQTIuNSAyLjUgMCAwIDEgMTUgNS41djEzYTIuNSAyLjUgMCAwIDEtMi41IDIuNXptLTEtMi41YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xM2ExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF6bTUuNSAwYTIuNSAyLjUgMCAwIDAgMi41IDIuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTNBMi41IDIuNSAwIDAgMCAxOS41IDNoLTFBMi41IDIuNSAwIDAgMCAxNiA1LjV6bTIuNSAxYTEgMSAwIDAgMS0xLTF2LTEzYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDF6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNvbmRpdGlvbl9wb2ludFwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIm04IDE2IDgtOCA4IDgtOCA4elwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOS4zOSAxNC41MjcgMTcuNDc0IDIuNjA5YTIuMDg1IDIuMDg1IDAgMCAwLTIuOTQ2IDBMMi42MDkgMTQuNTI3YTIuMDg1IDIuMDg1IDAgMCAwIDAgMi45NDZsMTEuOTE4IDExLjkxOGEyLjA4NSAyLjA4NSAwIDAgMCAyLjk0NiAwbDExLjkxOC0xMS45MThhMi4wODUgMi4wODUgMCAwIDAgMC0yLjk0Nk0xNiAyOC4wMzYgMy45NjUgMTYgMTYgMy45NjQgMjguMDM2IDE2WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb3B5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS41MDMgNC42MjcgNS41IDYuNzV2MTAuNTA0YTMuMjUgMy4yNSAwIDAgMCAzLjI1IDMuMjVoOC42MTZhMi4yNSAyLjI1IDAgMCAxLTIuMTIyIDEuNUg4Ljc1QTQuNzUgNC43NSAwIDAgMSA0IDE3LjI1NFY2Ljc1YzAtLjk4LjYyNy0xLjgxNSAxLjUwMy0yLjEyM00xNy43NSAyQTIuMjUgMi4yNSAwIDAgMSAyMCA0LjI1djEzYTIuMjUgMi4yNSAwIDAgMS0yLjI1IDIuMjVoLTlhMi4yNSAyLjI1IDAgMCAxLTIuMjUtMi4yNXYtMTNBMi4yNSAyLjI1IDAgMCAxIDguNzUgMnptMCAxLjVoLTlhLjc1Ljc1IDAgMCAwLS43NS43NXYxM2MwIC40MTQuMzM2Ljc1Ljc1Ljc1aDlhLjc1Ljc1IDAgMCAwIC43NS0uNzV2LTEzYS43NS43NSAwIDAgMC0uNzUtLjc1XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImN1YmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02LjA0OSA3Ljk4M2EuNzUuNzUgMCAwIDEgLjk2Ny0uNDM1TDEyIDkuNDM4bDQuOTg0LTEuODlhLjc1Ljc1IDAgMSAxIC41MzIgMS40MDJsLTQuNzY2IDEuODF2NS40OWEuNzUuNzUgMCAxIDEtMS41IDB2LTUuNDlMNi40ODQgOC45NWEuNzUuNzUgMCAwIDEtLjQzNS0uOTY3bTQuNTQyLTUuNDcyYTMuNzUgMy43NSAwIDAgMSAyLjgxOCAwbDcuNDk4IDMuMDRBMS43NSAxLjc1IDAgMCAxIDIyIDcuMTczdjkuNjUzYTEuNzUgMS43NSAwIDAgMS0xLjA5MyAxLjYyMWwtNy40OTggMy4wNGEzLjc1IDMuNzUgMCAwIDEtMi44MTggMGwtNy40OTgtMy4wNEExLjc1IDEuNzUgMCAwIDEgMiAxNi44MjZWNy4xNzNBMS43NSAxLjc1IDAgMCAxIDMuMDkzIDUuNTV6bTIuMjU0IDEuMzlhMi4yNSAyLjI1IDAgMCAwLTEuNjkgMGwtNy40OTkgMy4wNGEuMjUuMjUgMCAwIDAtLjE1Ni4yMzJ2OS42NTNhLjI1LjI1IDAgMCAwIC4xNTYuMjMxbDcuNDk5IDMuMDRhMi4yNSAyLjI1IDAgMCAwIDEuNjkgMGw3LjQ5OS0zLjA0YS4yNS4yNSAwIDAgMCAuMTU2LS4yMzFWNy4xNzNhLjI1LjI1IDAgMCAwLS4xNTYtLjIzMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY3Vyc29yX2NsaWNrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOS4yNSAyYS43NS43NSAwIDAgMSAuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41QS43NS43NSAwIDAgMSA5LjI1IDJNNC40NyAzLjk3YS43NS43NSAwIDAgMSAxLjA2IDBsMS43NSAxLjc1YS43NS43NSAwIDEgMS0xLjA2IDEuMDZMNC40NyA1LjAzYS43NS43NSAwIDAgMSAwLTEuMDZtOS41NiAwYS43NS43NSAwIDAgMSAwIDEuMDZsLTEuNzUgMS43NWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDEuNzUtMS43NWEuNzUuNzUgMCAwIDEgMS4wNiAwTTIuNSA4Ljc1QS43NS43NSAwIDAgMSAzLjI1IDhoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1bTguMTc3LS4yNjRDOS44MjIgNy43NTIgOC41IDguMzYgOC41IDkuNDg3djExLjI3NGMwIDEuMjEgMS40OTUgMS43ODIgMi4zMDIuODhsMi42MTQtMi45MjNjLjI3Ni0uMzA4LjY2NC0uNDkgMS4wNzctLjUwN2wzLjg0LS4xNTRjMS4xOTctLjA0OCAxLjcxNS0xLjUzOS44MDUtMi4zMnpNMTAgMjAuMjg3VjkuODgxbDcuODEyIDYuNjk2LTMuMzguMTM1YTMuMDMgMy4wMyAwIDAgMC0yLjEzMyAxLjAwNnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGFzaGJvYXJkXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjQgMjFoMnY1aC0yem0tNC01aDJ2MTBoLTJ6bS05IDEwYTUuMDA2IDUuMDA2IDAgMCAxLTUtNWgyYTMgMyAwIDEgMCAzLTN2LTJhNSA1IDAgMCAxIDAgMTBcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAySDRhMiAyIDAgMCAwLTIgMnYyNGEyIDIgMCAwIDAgMiAyaDI0YTIuMDAzIDIuMDAzIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJtMCA5SDE0VjRoMTRaTTEyIDR2N0g0VjRaTTQgMjhWMTNoMjRsLjAwMiAxNVpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGFzaGJvYXJkX3JlZmVyZW5jZVwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQgMjB2Mmg0LjU4NkwyIDI4LjU4NiAzLjQxNCAzMCAxMCAyMy40MTRWMjhoMnYtOHptMjAgMWgydjVoLTJ6bS00LTVoMnYxMGgtMnptLTQgMmgydjhoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjggMkg0YTIgMiAwIDAgMC0yIDJ2MTJoMnYtM2gyNC4wMDFsLjAwMSAxNUgxNnYyaDEyYTIuMDAzIDIuMDAzIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJtLTE2IDlINFY0aDhabTIgMFY0aDE0djdaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRhdGFfYWNjZXNzb3JcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAyMGgtMnYyaDJ2Nkg0di02aDJ2LTJINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmgyNGEyIDIgMCAwIDAgMi0ydi02YTIgMiAwIDAgMC0yLTJcIlxuICAgIC8+XG4gICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjI1XCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIxIDEzYTIuOTYgMi45NiAwIDAgMC0xLjI4NS4zbC0yLjMtMi4zIDIuMy0yLjNBMi45NiAyLjk2IDAgMCAwIDIxIDlhMyAzIDAgMSAwLTMtMyAzIDMgMCAwIDAgLjMgMS4yODVsLTIuMyAyLjMtMi4zLTIuM0EzIDMgMCAwIDAgMTQgNmEzIDMgMCAxIDAtMyAzIDIuOTYgMi45NiAwIDAgMCAxLjI4NS0uM2wyLjMgMi4zLTIuMyAyLjNBMi45NiAyLjk2IDAgMCAwIDExIDEzYTMgMyAwIDEgMCAzIDMgMyAzIDAgMCAwLS4zLTEuMjg1bDIuMy0yLjMgMi4zIDIuM0EzIDMgMCAwIDAgMTggMTZhMyAzIDAgMSAwIDMtM20wLThhMSAxIDAgMSAxLTEgMSAxIDEgMCAwIDEgMS0xTTEwIDZhMSAxIDAgMSAxIDEgMSAxIDEgMCAwIDEtMS0xbTEgMTFhMSAxIDAgMSAxIDEtMSAxIDEgMCAwIDEtMSAxbTEwIDBhMSAxIDAgMSAxIDEtMSAxIDEgMCAwIDEtMSAxXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRlbGV0ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwIDVoNGEyIDIgMCAxIDAtNCAwTTguNSA1YTMuNSAzLjUgMCAxIDEgNyAwaDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjMybC0xLjE3IDEyLjExMUEzLjc1IDMuNzUgMCAwIDEgMTUuMDI2IDIySDguOTc0YTMuNzUgMy43NSAwIDAgMS0zLjczMy0zLjM4OUw0LjA3IDYuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNXptMiA0Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY3LjVhLjc1Ljc1IDAgMCAwIDEuNSAwek0xNC4yNSA5YS43NS43NSAwIDAgMSAuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YS43NS43NSAwIDAgMSAuNzUtLjc1bS03LjUxNiA5LjQ2N2EyLjI1IDIuMjUgMCAwIDAgMi4yNCAyLjAzM2g2LjA1MmEyLjI1IDIuMjUgMCAwIDAgMi4yNC0yLjAzM0wxOC40MjQgNi41SDUuNTc2elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkZWxldGVfYXJyb3dfYmFja1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTExLjUgNGExLjUgMS41IDAgMCAwLTMgMHptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1NGwtLjQ4NSA0LjE5NmE1LjUgNS41IDAgMCAwLS45ODYtLjE3NkwxNS40NCA1SDQuNTYxbDEuMTggMTAuMjNBMiAyIDAgMCAwIDcuNzI4IDE3SDkuNnEuMjc2LjUzOC42NTcgMUg3LjcyOGEzIDMgMCAwIDEtMi45OC0yLjY1NkwzLjU1NCA1SDIuNWEuNS41IDAgMCAxIDAtMXptNyAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOW0tLjg5Ni02LjM5Ni0uODk3Ljg5NmgxLjU0M0EyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtMS41NDNsLjg5Ny44OTZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMS43NTItMS43NTNhLjUuNSAwIDAgMSAuMDAyLS43MDVsMS43NS0xLjc1YS41LjUgMCAwIDEgLjcwOC43MDhcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGVsZXRlX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNCA1YTIgMiAwIDEgMC00IDB6TTguNSA1YTMuNSAzLjUgMCAxIDEgNyAwaDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjMybC0uNTAyIDUuMTk1YTYuNSA2LjUgMCAwIDAtMS40NTYtLjUyOGwuNDUyLTQuNjY3SDUuNTc2bDEuMTU4IDExLjk2N2EyLjI1IDIuMjUgMCAwIDAgMi4yNCAyLjAzM2gxLjc1OEE2LjUgNi41IDAgMCAwIDExLjgxIDIySDguOTc0YTMuNzUgMy43NSAwIDAgMS0zLjczMy0zLjM4OUw0LjA3IDYuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNXpNMjIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS03LjE0Ni0yLjM1NGEuNS41IDAgMCAwLS43MDguNzA4bDEuNjQ3IDEuNjQ2LTEuNjQ3IDEuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhsMS42NDYtMS42NDcgMS42NDYgMS42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMMTcuMjA3IDE3LjVsMS42NDctMS42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTYuNSAxNi43OTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRlbGV0ZV9saW5lc1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTExLjUgNGExLjUgMS41IDAgMCAwLTMgMHptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1NGwtLjgwOCA3SDE0LjYzbC44MDgtN0g0LjU2MWwxLjE4IDEwLjIzQTIgMiAwIDAgMCA3LjcyOCAxN2gyLjM1N2ExLjUgMS41IDAgMCAwIDAgMUg3LjcyOGEzIDMgMCAwIDEtMi45OC0yLjY1NkwzLjU1NCA1SDIuNWEuNS41IDAgMCAxIDAtMXptNCA5YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTF6bTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xem0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGVzY2VuZGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQgMi43NUEuNzUuNzUgMCAwIDEgNC43NSAySDkuNWEuNzUuNzUgMCAwIDEgLjYzNCAxLjE1MUw2LjExMyA5LjVIOS41YS43NS43NSAwIDEgMSAwIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uNjM0LTEuMTUxTDguMTM3IDMuNUg0Ljc1QS43NS43NSAwIDAgMSA0IDIuNzVtMi4zNjggOS43MjdhLjc1Ljc1IDAgMCAxIDEuNDAxLjAxbDMuMTg0IDguNWEuNzUuNzUgMCAwIDEtMS40MDUuNTI2TDguNzk0IDE5LjVINS4yMzhsLS43OSAyLjAyMmEuNzUuNzUgMCAwIDEtMS4zOTctLjU0NXpNOC4yMzIgMThsLTEuMTgtMy4xNUw1LjgyMyAxOHpNMTcuMjUgMmEuNzUuNzUgMCAwIDEgLjc1Ljc1djE2LjY5bDIuMjItMi4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0zLjUgMy41YS43NS43NSAwIDAgMS0xLjA2IDBsLTMuNS0zLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyLjIyIDIuMjJWMi43NWEuNzUuNzUgMCAwIDEgLjc1LS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkZXZpY2VzXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAgMzBINGEyIDIgMCAwIDEtMi0yVjE2YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJNNCAxNnYxMmg2VjE2WlwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTI4IDRINmEyIDIgMCAwIDAtMiAydjZoMlY2aDIydjE0SDE0djJoMnY0aC0ydjJoOXYtMmgtNXYtNGgxMGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkaXNtaXNzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtNC4zOTcgNC41NTQuMDczLS4wODRhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg0LjA3M0wxMiAxMC45MzlsNi40Ny02LjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDYxTDEzLjA2MSAxMmw2LjQ3IDYuNDdhLjc1Ljc1IDAgMCAxIC4wNzIuOTc2bC0uMDczLjA4NGEuNzUuNzUgMCAwIDEtLjk3Ni4wNzNsLS4wODQtLjA3M0wxMiAxMy4wNjFsLTYuNDcgNi40N2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2MUwxMC45MzkgMTJsLTYuNDctNi40N2EuNzUuNzUgMCAwIDEtLjA3Mi0uOTc2bC4wNzMtLjA4NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGlzbWlzc19jaXJjbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyYzUuNTIzIDAgMTAgNC40NzcgMTAgMTBzLTQuNDc3IDEwLTEwIDEwUzIgMTcuNTIzIDIgMTIgNi40NzcgMiAxMiAybTAgMS41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdtMy40NDYgNC44OTcuMDg0LjA3M2EuNzUuNzUgMCAwIDEgLjA3My45NzZsLS4wNzMuMDg0TDEzLjA2MSAxMmwyLjQ3IDIuNDdhLjc1Ljc1IDAgMCAxIC4wNzIuOTc2bC0uMDczLjA4NGEuNzUuNzUgMCAwIDEtLjk3Ni4wNzNsLS4wODQtLjA3M0wxMiAxMy4wNjFsLTIuNDcgMi40N2EuNzUuNzUgMCAwIDEtLjk3Ni4wNzJsLS4wODQtLjA3M2EuNzUuNzUgMCAwIDEtLjA3My0uOTc2bC4wNzMtLjA4NEwxMC45MzkgMTJsLTIuNDctMi40N2EuNzUuNzUgMCAwIDEtLjA3Mi0uOTc2bC4wNzMtLjA4NGEuNzUuNzUgMCAwIDEgLjk3Ni0uMDczbC4wODQuMDczTDEyIDEwLjkzOWwyLjQ3LTIuNDdhLjc1Ljc1IDAgMCAxIC45NzYtLjA3MlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkaXNtaXNzX2NpcmNsZV9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyYzUuNTIzIDAgMTAgNC40NzcgMTAgMTBzLTQuNDc3IDEwLTEwIDEwUzIgMTcuNTIzIDIgMTIgNi40NzcgMiAxMiAybTMuNTMgNi40Ny0uMDg0LS4wNzNhLjc1Ljc1IDAgMCAwLS44ODItLjAwN2wtLjA5NC4wOEwxMiAxMC45MzlsLTIuNDctMi40Ny0uMDg0LS4wNzJhLjc1Ljc1IDAgMCAwLS44ODItLjAwN2wtLjA5NC4wOC0uMDczLjA4NGEuNzUuNzUgMCAwIDAtLjAwNy44ODJsLjA4LjA5NEwxMC45MzkgMTJsLTIuNDcgMi40Ny0uMDcyLjA4NGEuNzUuNzUgMCAwIDAtLjAwNy44ODJsLjA4LjA5NC4wODQuMDczYS43NS43NSAwIDAgMCAuODgyLjAwN2wuMDk0LS4wOEwxMiAxMy4wNjFsMi40NyAyLjQ3LjA4NC4wNzJhLjc1Ljc1IDAgMCAwIC44ODIuMDA3bC4wOTQtLjA4LjA3My0uMDg0YS43NS43NSAwIDAgMCAuMDA3LS44ODJsLS4wOC0uMDk0TDEzLjA2MSAxMmwyLjQ3LTIuNDcuMDcyLS4wODRhLjc1Ljc1IDAgMCAwIC4wMDctLjg4MnpsLS4wODQtLjA3M3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGlzbWlzc19maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm00LjIxIDQuMzg3LjA4My0uMDk0YTEgMSAwIDAgMSAxLjMyLS4wODNsLjA5NC4wODNMMTIgMTAuNTg1bDYuMjkzLTYuMjkyYTEgMSAwIDEgMSAxLjQxNCAxLjQxNEwxMy40MTUgMTJsNi4yOTIgNi4yOTNhMSAxIDAgMCAxIC4wODMgMS4zMmwtLjA4My4wOTRhMSAxIDAgMCAxLTEuMzIuMDgzbC0uMDk0LS4wODNMMTIgMTMuNDE1bC02LjI5MyA2LjI5MmExIDEgMCAwIDEtMS40MTQtMS40MTRMMTAuNTg1IDEyIDQuMjkzIDUuNzA3YTEgMSAwIDAgMS0uMDgzLTEuMzJsLjA4My0uMDk0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYgMmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtNS44MjgtNS44MjhBMiAyIDAgMCAwIDEyLjE3MiAyem0tLjUgMmEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41em0xMS44OCA0LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudF9idWxsZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03IDEyLjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBtLjc1IDIuMjVhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41TTcgMTguMjVhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMG0zLjc1LTYuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTEwIDE1LjI1YS43NS43NSAwIDAgMSAuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NW0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptOC42NjQtOS4wODYtNS44MjktNS44MjgtLjA0OS0uMDQtLjAzNi0uMDNhMiAyIDAgMCAwLS4yMTktLjE4IDEgMSAwIDAgMC0uMDgtLjA0NGwtLjA0OC0uMDI0LS4wNS0uMDI5Yy0uMDU0LS4wMzEtLjEwOS0uMDYzLS4xNjYtLjA4N2EyIDIgMCAwIDAtLjYyNC0uMTM4cS0uMDMtLjAwMi0uMDU5LS4wMDdMMTIuMTcyIDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNE0xOC41IDIwYS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEtLjUtLjVWNGEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXptLTUtMTUuMzc5TDE3LjM3OCA4LjVIMTRhLjUuNSAwIDAgMS0uNS0uNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZG9jdW1lbnRfY29weVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuNTAzIDQuNjI3IDUuNSA2Ljc1djEwLjUwNGEzLjI1IDMuMjUgMCAwIDAgMy4yNSAzLjI1aDguNjE2YTIuMjUgMi4yNSAwIDAgMS0yLjEyMiAxLjVIOC43NUE0Ljc1IDQuNzUgMCAwIDEgNCAxNy4yNTRWNi43NWMwLS45OC42MjctMS44MTUgMS41MDMtMi4xMjNNMTMuMTI4IDJjLjU5NyAwIDEuMTcuMjM3IDEuNTkyLjY2bDQuNjE4IDQuNjJjLjQyMi40MjIuNjU5Ljk5NS42NTkgMS41OTF2OC4zODNhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNUg4Ljc1MmEyLjI1IDIuMjUgMCAwIDEtMi4yNS0yLjI1VjQuMjVBMi4yNSAyLjI1IDAgMCAxIDguNzUyIDJ6TTEzIDMuNUg4Ljc1MmEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjAwNGMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDguOTk1YS43NS43NSAwIDAgMCAuNzUtLjc1VjkuMDAzSDE1LjI1YTIuMjUgMi4yNSAwIDAgMS0yLjI0NS0yLjA5NUwxMyA2Ljc1NHptMS41IDEuMDYxLjAwMSAyLjE5M2MwIC4zOC4yODIuNjkzLjY0OC43NDNsLjEwMi4wMDcgMi4xOS0uMDAxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudF9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04Ljc1IDExLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bTAgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNXptMCAyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41em00LjgzNS0xNC40MTQgNS44MjkgNS44MjhBMiAyIDAgMCAxIDIwIDkuODI4VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg2LjE3MnEuMDQyLjAwMS4wODIuMDA3LjAzLjAwNS4wNTkuMDA3Yy4yMTUuMDE1LjQyNy4wNTYuNjI0LjEzOC4wNTcuMDI0LjExMi4wNTYuMTY2LjA4N2wuMDUuMDI5LjA0Ny4wMjRhMSAxIDAgMCAxIC4wODEuMDQ0Yy4wNzguMDUzLjE0OC4xMTYuMjE5LjE4bC4wMzYuMDN6TTE4IDIwLjVhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXYxNmEuNS41IDAgMCAwIC41LjV6bS0uNjIyLTEyTDEzLjUgNC42MjFWOGEuNS41IDAgMCAwIC41LjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X2xvY2tcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNWgtNnYxcTAgLjI1Ny0uMDUuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODI4YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC01LjgyOS01LjgyOC0uMDQ5LS4wNC0uMDM2LS4wM2EyIDIgMCAwIDAtLjIxOS0uMTggMSAxIDAgMCAwLS4wOC0uMDQ0bC0uMDQ4LS4wMjQtLjA1LS4wMjljLS4wNTQtLjAzMS0uMTA5LS4wNjMtLjE2Ni0uMDg3YTIgMiAwIDAgMC0uNjI0LS4xMzhxLS4wMy0uMDAyLS4wNTktLjAwN0wxMi4xNzIgMkg2YTIgMiAwIDAgMC0yIDJ2Ny41NWEzLjUgMy41IDAgMCAxIDEuNS0uOTA1VjRhLjUuNSAwIDAgMSAuNS0uNWg2VjhhMiAyIDAgMCAwIDIgMmg0LjV6bS01LTE1LjM3OUwxNy4zNzggOC41SDE0YS41LjUgMCAwIDEtLjUtLjV6TTQgMTVoLS41QTEuNSAxLjUgMCAwIDAgMiAxNi41djVBMS41IDEuNSAwIDAgMCAzLjUgMjNoNmExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTVBMS41IDEuNSAwIDAgMCA5LjUgMTVIOXYtMWEyLjUgMi41IDAgMCAwLTUgMHptMS41LTFhMSAxIDAgMSAxIDIgMHYxaC0yem0yIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3BhZ2VcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02LjI1IDJBMi4yNSAyLjI1IDAgMCAwIDQgNC4yNXYxNS41QTIuMjUgMi4yNSAwIDAgMCA2LjI1IDIyaDExLjVBMi4yNSAyLjI1IDAgMCAwIDIwIDE5Ljc1VjQuMjVBMi4yNSAyLjI1IDAgMCAwIDE3Ljc1IDJ6TTUuNSA0LjI1YS43NS43NSAwIDAgMSAuNzUtLjc1aDExLjVhLjc1Ljc1IDAgMCAxIC43NS43NXYxNS41YS43NS43NSAwIDAgMS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXpNNy43NSA2LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTcgMTYuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1TTcuNzUgMTFhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3NwYXJrbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4yNSAxMWgtOC41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVzLS4zNC0uNzUtLjc1LS43NW0wIDQuNWgtOC41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVzLS4zNC0uNzUtLjc1LS43NU03IDcuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNy40NWwtLjA5LS4yOHEtLjA3NS0uMjEtLjIxLS4zOWMtLjA0LS4wNS0uMDctLjA5LS4xMS0uMTMtLjE1LS4xNS0uMzMtLjI2LS41Mi0uMzJMMTMuMSA2LjVINy43NWMtLjQxIDAtLjc1LjM0LS43NS43NW0xMi44IDYuMDQtLjI2LS43OS0uOC0uMjljLS4wOS0uMDMtLjE2LS4wOC0uMjQtLjEydjcuNjZjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzVWNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNTNjLjAzLS4wNi4wNS0uMTMuMDktLjE5LjI0LS4zNC41OC0uNi45OS0uNzRsMS40MS0uNDZjLjA3LS4wMy4xNS0uMDcuMjItLjExSDYuMjVDNS4wMSAyIDQgMy4wMSA0IDQuMjV2MTUuNUM0IDIwLjk5IDUuMDEgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEuMDEgMi4yNS0yLjI1di02LjA4YTEuNyAxLjcgMCAwIDEtLjItLjM4bS0zLjk1LTcuMTRjLjA4LjA4LjE2LjE3LjIzLjI3LjIuMjUuMzUuNTQuNDUuODVsLjQ1IDEuMzhjLjA0LjExLjExLjIuMi4yNi4wOS4wNy4yLjEuMzEuMWEuNS41IDAgMCAwIC4zMS0uMWMuMDgtLjA2LjE1LS4xNC4xOS0uMjN2LS4wM2wuNDYtMS4zOGMuMTQtLjQyLjM3LS44LjY5LTEuMTEuMzEtLjMxLjY5LS41NSAxLjExLS42OWwxLjM4LS40NWMuMTEtLjA0LjItLjExLjI2LS4yYS41LjUgMCAwIDAgLjEtLjMxLjUuNSAwIDAgMC0uMS0uMzEuNjMuNjMgMCAwIDAtLjI2LS4yaC0uMDNsLTEuMzgtLjQ1Yy0uNDItLjE0LS44LS4zNy0xLjExLS42OWEyLjg1IDIuODUgMCAwIDEtLjY5LTEuMTFMMTcuOTcuMzdhLjUyLjUyIDAgMCAwLS4yLS4yNmMtLjA5LS4wNi0uMi0uMS0uMzEtLjFhLjUuNSAwIDAgMC0uMzEuMWMtLjA5LjA2LS4xNi4xNi0uMi4yNmwtLjQ1IDEuMzh2LjAzYy0uMTUuNC0uMzguNzctLjY3IDEuMDctLjMxLjMxLS42OC41NS0xLjEuNjlsLTEuMzguNDVjLS4xMS4wNC0uMi4xMS0uMjYuMmEuNS41IDAgMCAwLS4xLjMxYzAgLjExLjAzLjIyLjEuMzEuMDYuMDkuMTYuMTYuMjYuMmwxLjM4LjQ1Yy40Mi4xNC44LjM4IDEuMTEuNjl6bTcuOTMgNC4wN2MuMDY0IDAgLjEzLjA2LjE3LjExcy4wNS4xMS4wNS4xNy0uMDEuMTItLjA1LjE3LS4wOS4wOS0uMTUuMTFsLS43Ny4yNWMtLjIzLjA4LS40NC4yMS0uNjIuMzgtLjE3LjE3LS4zLjM4LS4zOC42MmwtLjI1Ljc2Yy0uMDIuMDYtLjA2LjExLS4xMS4xNWEuMjcuMjcgMCAwIDEtLjM0IDAgLjMzLjMzIDAgMCAxLS4xMS0uMTVsLS4yNS0uNzZjLS4wOC0uMjMtLjIxLS40NS0uMzgtLjYycy0uMzktLjMxLS42Mi0uMzhsLS43Ny0uMjVhLjMzLjMzIDAgMCAxLS4xNS0uMTEuMjcuMjcgMCAwIDEgMC0uMzRjLjA0LS4wNS4wOS0uMDkuMTUtLjExbC43Ny0uMjVjLjIzLS4wOC40NC0uMjEuNjEtLjM4cy4zLS4zOC4zNy0uNjFsLjI1LS43NmMuMDItLjA2LjA2LS4xMS4xMS0uMTVhLjI3LjI3IDAgMCAxIC4zNCAwYy4wNS4wNC4wOS4wOS4xMS4xNWwuMjUuNzZjLjA4LjIzLjIxLjQ0LjM4LjYyLjE3LjE3LjM4LjMuNjIuMzh6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3Rvb2xib3hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01LjUgNC4yNWEuNzUuNzUgMCAwIDEgLjc1LS43NUgxMlY4YTIgMiAwIDAgMCAyIDJoNC41djkuNzVhLjc1Ljc1IDAgMCAxLS43NS43NUgxM1YyMmg0Ljc1QTIuMjUgMi4yNSAwIDAgMCAyMCAxOS43NVY5LjY2NGMwLS40NjQtLjE4NC0uOTA5LS41MTMtMS4yMzdsLTUuOTE0LTUuOTE0QTEuNzUgMS43NSAwIDAgMCAxMi4zMzYgMkg2LjI1QTIuMjUgMi4yNSAwIDAgMCA0IDQuMjV2OC4wMThjLjI5NC0uMTcuNjM2LS4yNjggMS0uMjY4aC41ek0xNy40NCA4LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjU2ek00IDE2di0xLjVBMS41IDEuNSAwIDAgMSA1LjUgMTNoMkExLjUgMS41IDAgMCAxIDkgMTQuNVYxNmgxLjVhMS41IDEuNSAwIDAgMSAxLjUgMS41VjE5SDl2LS41YS41LjUgMCAwIDAtMSAwdi41SDV2LS41YS41LjUgMCAwIDAtMSAwdi41SDF2LTEuNUExLjUgMS41IDAgMCAxIDIuNSAxNnptMS0xLjVWMTZoM3YtMS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41TTkgMjBoM3YxLjVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMSAyMS41VjIwaDN2LjVhLjUuNSAwIDAgMCAxIDBWMjBoM3YuNWEuNS41IDAgMCAwIDEgMHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZG93bmxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAyMC41YS43NS43NSAwIDEgMSAwIDEuNWwtMTMgLjAwNWEuNzUuNzUgMCAxIDEgMC0xLjV6TTExLjY0OCAyLjAxNGwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4bC4wMDcuMTAyLS4wMDEgMTMuNjg1IDMuNzIyLTMuNzJhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg1LjA3M2EuNzUuNzUgMCAwIDEgLjA3Mi45NzZsLS4wNzMuMDg0LTQuOTk3IDQuOTk3YS43NS43NSAwIDAgMS0uOTc2LjA3M2wtLjA4NS0uMDczLTUuMDAzLTQuOTk2YS43NS43NSAwIDAgMSAuOTc2LTEuMTM0bC4wODQuMDcyIDMuNzE5IDMuNzE0TDExIDIuNzU2YS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkcml2ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuNDE1IDUuMjdBMi4yNSAyLjI1IDAgMCAxIDcuNDQxIDRoOS4xMThjLjg2MyAwIDEuNjUuNDkzIDIuMDI2IDEuMjdsMy4wOSA2LjM4OGMuMjE0LjQ0LjMyNS45MjUuMzI1IDEuNDE1djMuNjc3QTIuMjUgMi4yNSAwIDAgMSAxOS43NSAxOUg0LjI1QTIuMjUgMi4yNSAwIDAgMSAyIDE2Ljc1di0zLjY3N2MwLS40OS4xMS0uOTc0LjMyNC0xLjQxNXptMTEuODIuNjUzYS43NS43NSAwIDAgMC0uNjc2LS40MjNINy40NDFhLjc1Ljc1IDAgMCAwLS42NzYuNDIzTDQuMzEgMTFoMTUuMzgyek0zLjUgMTMuMjV2My41YzAgLjQxNC4zMzYuNzUuNzUuNzVoMTUuNWEuNzUuNzUgMCAwIDAgLjc1LS43NXYtMy41YS43NS43NSAwIDAgMC0uNzUtLjc1SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NU0xOCAxNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZWRpdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIwLjk1MiAzLjA0OGEzLjU4IDMuNTggMCAwIDAtNS4wNiAwTDMuOTQgMTVhMy4xIDMuMSAwIDAgMC0uODI1IDEuNDc2TDIuMDIgMjEuMDc4YS43NS43NSAwIDAgMCAuOTA0LjkwM2w0LjYwMS0xLjA5NmEzLjEgMy4xIDAgMCAwIDEuNDc3LS44MjVsMTEuOTUtMTEuOTVhMy41OCAzLjU4IDAgMCAwIDAtNS4wNm0tNCAxLjA2YTIuMDc4IDIuMDc4IDAgMSAxIDIuOTQgMi45NEwxOSA3LjkzOSAxNi4wNiA1ek0xNSA2LjA2MiAxNy45NCA5bC0xMCAxMGMtLjIxLjIxLS40NzQuMzU3LS43NjMuNDI2bC0zLjQxNi44MTQuODEzLTMuNDE2Yy4wNjktLjI5LjIxNy0uNTU0LjQyNy0uNzY0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJlbnRlcnByaXNlXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOCA4aDJ2NEg4em0wIDZoMnY0SDh6bTYtNmgydjRoLTJ6bTAgNmgydjRoLTJ6bS02IDZoMnY0SDh6bTYgMGgydjRoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMzAgMTRhMiAyIDAgMCAwLTItMmgtNlY0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjI2aDI4Wk00IDRoMTZ2MjRINFptMTggMjRWMTRoNnYxNFpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZXJyb3JfY2lyY2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMmM1LjUyMyAwIDEwIDQuNDc4IDEwIDEwcy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMiAyIDEyIDYuNDc3IDIgMTIgMm0wIDEuNjY3Yy00LjU5NSAwLTguMzMzIDMuNzM4LTguMzMzIDguMzMzUzcuNDA1IDIwLjMzMyAxMiAyMC4zMzNzOC4zMzMtMy43MzggOC4zMzMtOC4zMzNTMTYuNTk1IDMuNjY3IDEyIDMuNjY3bS0uMDAxIDEwLjgzNWEuOTk5Ljk5OSAwIDEgMSAwIDEuOTk4Ljk5OS45OTkgMCAwIDEgMC0xLjk5OE0xMS45OTQgN2EuNzUuNzUgMCAwIDEgLjc0NC42NDhsLjAwNy4xMDEuMDA0IDQuNTAyYS43NS43NSAwIDAgMS0xLjQ5My4xMDNsLS4wMDctLjEwMi0uMDA0LTQuNTAxYS43NS43NSAwIDAgMSAuNzUtLjc1MVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJldmVudF9hbGVydGluZ1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTI4IDE3djVINFY2aDExVjRINGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoOHY0SDh2MmgxNnYtMmgtNHYtNGg4YTIgMiAwIDAgMCAyLTJ2LTVaTTE4IDI4aC00di00aDRaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjkgMTRIMTdhMSAxIDAgMCAxLS44NTctMS41MTRsNi0xMGExIDEgMCAwIDEgMS43MTUgMGw2IDEwQTEgMSAwIDAgMSAyOSAxNG0tMTAuMjM0LTJoOC40NjhMMjMgNC45NDRaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImV4cG9ydFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIuNzUzIDQuNWEuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNi4xMDJMMy41IDE4LjI1NGEuNzUuNzUgMCAwIDEtMS40OTMuMTAyTDIgMTguMjU0IDIuMDAyIDUuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtMTIuODk0IDEuODA0LjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc2LS4wNzNsLjA4NC4wNzMgNC45OTcgNC45OTdhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00Ljk5NiA1LjAwM2EuNzUuNzUgMCAwIDEtMS4xMzQtLjk3NmwuMDcyLS4wODQgMy43MTEtMy43MTdINS43NTNhLjc1Ljc1IDAgMCAxLS43NDMtLjY0N2wtLjAwNy0uMTAyYS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3IDEzLjY5LS4wMDFMMTUuNzIgNy4yOGEuNzUuNzUgMCAwIDEtLjA3My0uOTc2bC4wNzMtLjA4NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZXllXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgOS4wMDVhNCA0IDAgMSAxIDAgOCA0IDQgMCAwIDEgMC04bTAgMS41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01TTEyIDUuNWM0LjYxMyAwIDguNTk2IDMuMTUgOS43MDEgNy41NjRhLjc1Ljc1IDAgMSAxLTEuNDU1LjM2NSA4LjUwNCA4LjUwNCAwIDAgMC0xNi40OTMuMDA0Ljc1Ljc1IDAgMCAxLTEuNDU2LS4zNjNBMTAgMTAgMCAwIDEgMTIgNS41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImV5ZV9oaWRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMi4yMiAyLjIyYS43NS43NSAwIDAgMC0uMDczLjk3NmwuMDczLjA4NCA0LjAzNCA0LjAzNWExMCAxMCAwIDAgMC0zLjk1NSA1Ljc1Ljc1Ljc1IDAgMCAwIDEuNDU1LjM2NCA4LjUgOC41IDAgMCAxIDMuNTgtNS4wMzRsMS44MSAxLjgxQTQgNCAwIDAgMCAxNC44IDE1Ljg2bDUuOTE5IDUuOTJhLjc1Ljc1IDAgMCAwIDEuMTMzLS45NzdsLS4wNzMtLjA4NC02LjExMy02LjExNC4wMDEtLjAwMi0xLjItMS4xOTgtMi44Ny0yLjg3aC4wMDJsLTIuODgtMi44NzcuMDAxLS4wMDItMS4xMzMtMS4xM0wzLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMG03Ljk4NCA5LjA0NSAzLjUzNSAzLjUzNmEyLjUgMi41IDAgMCAxLTMuNTM1LTMuNTM1TTEyIDUuNWMtMSAwLTEuOTcuMTQ4LTIuODg5LjQyNWwxLjIzNyAxLjIzNmE4LjUwMyA4LjUwMyAwIDAgMSA5Ljg5OSA2LjI3Mi43NS43NSAwIDAgMCAxLjQ1NS0uMzYzQTEwIDEwIDAgMCAwIDEyIDUuNW0uMTk1IDMuNTEgMy44MDEgMy44YTQuMDAzIDQuMDAzIDAgMCAwLTMuODAxLTMuOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmYWN0b3J5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS4xNyAyYTIuMjUgMi4yNSAwIDAgMC0yLjI0NyAyLjEyOWwtLjgzOCAxNS41QTIuMjUgMi4yNSAwIDAgMCA0LjMzMiAyMmgyLjgzNGEyLjI1IDIuMjUgMCAwIDAgMi4yNDYtMi4zNzFsLS44MzgtMTUuNUEyLjI1IDIuMjUgMCAwIDAgNi4zMjggMnptLS43NSAyLjIxYS43NS43NSAwIDAgMSAuNzQ5LS43MWgxLjE1OGEuNzUuNzUgMCAwIDEgLjc0OS43MWwuODM3IDE1LjVhLjc1Ljc1IDAgMCAxLS43NDguNzlINC4zMzJhLjc1Ljc1IDAgMCAxLS43NDktLjc5ek05LjUxMSAyMmMuMzk1LS40MTIuNjgzLS45MjguODE4LTEuNWgxLjE3di00LjI1YzAtLjk2Ni43ODMtMS43NSAxLjc1LTEuNzVoNGMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djQuMjVoLjc1YS43NS43NSAwIDAgMCAuNzUtLjc1VjcuNzEzbC01LjI0MSA0LjgzOGEuNzUuNzUgMCAwIDEtMS4yNi0uNTUxVjcuNzEzbC00LjAyNyAzLjcxOC0uMTA1LTEuOTQ0IDQuMzc0LTQuMDM4QS43NS43NSAwIDAgMSAxNS41IDZ2NC4yODdsNS4yNDEtNC44MzhBLjc1Ljc1IDAgMCAxIDIyIDZ2MTMuNzVBMi4yNSAyLjI1IDAgMCAxIDE5Ljc1IDIyem0zLjQ4OC01Ljc1djQuMjVoNC41di00LjI1YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC00YS4yNS4yNSAwIDAgMC0uMjUuMjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYgMmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtNS44MjgtNS44MjhBMiAyIDAgMCAwIDEyLjE3MiAyem0tLjUgMmEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41em0xMS44OCA0LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX2F1ZGlvXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjkgMzFhMSAxIDAgMCAxLS42MjQtLjIyTDIzLjY0OSAyN0gyMGExIDEgMCAwIDEtMS0xdi01YTEgMSAwIDAgMSAxLTFoMy42NWw0LjcyNi0zLjc4QTEgMSAwIDAgMSAzMCAxN3YxM2ExIDEgMCAwIDEtMSAxbS04LTZoM2ExIDEgMCAwIDEgLjYyNS4yMkwyOCAyNy45MnYtOC44NGwtMy4zNzUgMi43QTEgMSAwIDAgMSAyNCAyMmgtM1pcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNiAyOEg4VjRoOHY2YTIuMDA2IDIuMDA2IDAgMCAwIDIgMmg2djNoMnYtNWEuOTEuOTEgMCAwIDAtLjMtLjdsLTctN0EuOS45IDAgMCAwIDE4IDJIOGEyLjAwNiAyLjAwNiAwIDAgMC0yIDJ2MjRhMi4wMDYgMi4wMDYgMCAwIDAgMiAyaDhabTItMjMuNiA1LjYgNS42SDE4WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX3BkZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTcuNTAzIDEzLjAwMmEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtLjVIOC41YTEuNSAxLjUgMCAwIDAgMC0zem0uOTk3IDJoLS40OTd2LTFIOC41YS41LjUgMCAxIDEgMCAxbTYuNDk4LTEuNWEuNS41IDAgMCAxIC41LS41aDEuNTA1YS41LjUgMCAxIDEgMCAxaC0xLjAwNmwtLjAwMSAxLjAwMmgxLjAwN2EuNS41IDAgMCAxIDAgMWgtMS4wMDdsLjAwMi40OTdhLjUuNSAwIDAgMS0xIC4wMDJsLS4wMDMtLjk5OHYtLjAwMnptLTMuNDk4LS41YS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgLjUuNWguNDk4YTIgMiAwIDAgMCAwLTR6bS41IDN2LTJhMSAxIDAgMCAxIDAgMk0yMCAyMHYtMS4xNjRjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgyVjEyLjc1YzAtLjY5OC0uNDA5LTEuMy0xLTEuNTgydi0xLjM0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC01LjgyOS01LjgyOC0uMDQ5LS4wNC0uMDM2LS4wM2EyIDIgMCAwIDAtLjIxOS0uMTggMSAxIDAgMCAwLS4wOC0uMDQ0bC0uMDQ4LS4wMjQtLjA1LS4wMjljLS4wNTQtLjAzMS0uMTA5LS4wNjMtLjE2Ni0uMDg3YTIgMiAwIDAgMC0uNjI0LS4xMzhxLS4wMy0uMDAyLS4wNTktLjAwN0wxMi4xNzIgMkg2YTIgMiAwIDAgMC0yIDJ2Ny4xNjhjLS41OTEuMjgxLTEgLjg4NC0xIDEuNTgydjQuNTA0YzAgLjY5OC40MDkgMS4zIDEgMS41ODJWMjBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ybS0yIC41SDZhLjUuNSAwIDAgMS0uNS0uNXYtLjk5NmgxM1YyMGEuNS41IDAgMCAxLS41LjVtLjUtMTAuNXYxaC0xM1Y0YS41LjUgMCAwIDEgLjUtLjVoNlY4YTIgMiAwIDAgMCAyIDJ6bS0xLjEyMi0xLjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyMXptLTEyLjYyOCA0aDE0LjVhLjI1LjI1IDAgMCAxIC4yNS4yNXY0LjUwNGEuMjUuMjUgMCAwIDEtLjI1LjI1SDQuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWMTIuNzVhLjI1LjI1IDAgMCAxIC4yNS0uMjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV9zcGFya2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMDg4IDYuNDEyYTIuODQgMi44NCAwIDAgMC0xLjM0Ny0uOTU1bC0xLjM3OC0uNDQ4YS41NDQuNTQ0IDAgMCAxIDAtMS4wMjVsMS4zNzgtLjQ0OEEyLjg0IDIuODQgMCAwIDAgMTYuNSAxLjc3NGwuMDExLS4wMzQuNDQ4LTEuMzc3YS41NDQuNTQ0IDAgMCAxIDEuMDI3IDBsLjQ0NyAxLjM3N2EyLjg0IDIuODQgMCAwIDAgMS43OTkgMS43OTZsMS4zNzcuNDQ4LjAyOC4wMDdhLjU0NC41NDQgMCAwIDEgMCAxLjAyNWwtMS4zNzguNDQ4YTIuODQgMi44NCAwIDAgMC0xLjc5OCAxLjc5NmwtLjQ0OCAxLjM3Ny0uMDEzLjAzNGEuNTQ0LjU0NCAwIDAgMS0xLjAxMy0uMDM0bC0uNDQ4LTEuMzc3YTIuOCAyLjggMCAwIDAtLjQ1LS44NDhtNy42OTUgMy44MDEtLjc2Ni0uMjQ4YTEuNTggMS41OCAwIDAgMS0uOTk4LS45OTlsLS4yNS0uNzY0YS4zMDIuMzAyIDAgMCAwLS41NyAwbC0uMjQ4Ljc2NGExLjU4IDEuNTggMCAwIDEtLjk4NC45OTlsLS43NjUuMjQ4YS4zMDIuMzAyIDAgMCAwIDAgLjU3bC43NjUuMjQ5YTEuNTggMS41OCAwIDAgMSAxIDEuMDAybC4yNDguNzY0YS4zMDIuMzAyIDAgMCAwIC41NyAwbC4yNDktLjc2NGExLjU4IDEuNTggMCAwIDEgLjk5OS0uOTk5bC43NjUtLjI0OGEuMzAyLjMwMiAwIDAgMCAwLS41N3pNNS4yNSAzaDcuNzk3YTEuNjUgMS42NSAwIDAgMC0uNzY3LjU2OUExLjYgMS42IDAgMCAwIDEyIDQuNUg1LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTIuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDkuMjVWNy4zMjdxLjA1Mi4xMDguMDkuMjIybC40MSAxLjQ1Yy4xMDYuMzEuMzA1LjU3OS41Ny43N3EuMi4xMzguNDMuMjFWMTRoNHYzLjc1QTMuMjUgMy4yNSAwIDAgMSAxNy43NSAyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjUuMjVBMi4yNSAyLjI1IDAgMCAxIDUuMjUgM00xNyAxOS41aC43NWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1VjE1LjVIMTd6TTcuMjUgN2EuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptLS43NSA0Ljc1YS43NS43NSAwIDAgMSAuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NU03LjI1IDE1YS43NS43NSAwIDAgMCAwIDEuNWgzYS43NS43NSAwIDAgMCAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV90ZXh0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC43NSAxMS41YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41em0wIDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bTAgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNXptNC44MzUtMTQuNDE0IDUuODI5IDUuODI4QTIgMiAwIDAgMSAyMCA5LjgyOFYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoNi4xNzJxLjA0Mi4wMDEuMDgyLjAwNy4wMy4wMDUuMDU5LjAwN2MuMjE1LjAxNS40MjcuMDU2LjYyNC4xMzguMDU3LjAyNC4xMTIuMDU2LjE2Ni4wODdsLjA1LjAyOS4wNDcuMDI0YTEgMSAwIDAgMSAuMDgxLjA0NGMuMDc4LjA1My4xNDguMTE2LjIxOS4xOGwuMDM2LjAzek0xOCAyMC41YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjV2MTZhLjUuNSAwIDAgMCAuNS41em0tLjYyMi0xMkwxMy41IDQuNjIxVjhhLjUuNSAwIDAgMCAuNS41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX3ZpZGVvXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMzAgMTktNCAzLjJWMjBhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTIuMmw0IDMuMlptLTE0IDd2LTZoOGwuMDAyIDZaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMjhIOFY0aDh2NmEyLjAwNiAyLjAwNiAwIDAgMCAyIDJoNnYzaDJ2LTVhLjkxLjkxIDAgMCAwLS4zLS43bC03LTdBLjkuOSAwIDAgMCAxOCAySDhhMi4wMDYgMi4wMDYgMCAwIDAtMiAydjI0YTIuMDA2IDIuMDA2IDAgMCAwIDIgMmg0Wm02LTIzLjYgNS42IDUuNkgxOFpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV96aXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgOFY2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoMi44NzlhLjc1Ljc1IDAgMCAxIC41My4yMmwxLjUzIDEuNTMtMS41MyAxLjUzYS43NS43NSAwIDAgMS0uNTMuMjJ6bTEuNzUtNUEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djExLjVBMy4yNSAzLjI1IDAgMCAwIDUuMjUgMjFoMTMuNUEzLjI1IDMuMjUgMCAwIDAgMjIgMTcuNzV2LTlhMy4yNSAzLjI1IDAgMCAwLTMuMjUtMy4yNWgtNy4xOUw5LjcyIDMuNjU5QTIuMjUgMi4yNSAwIDAgMCA4LjEyOSAzem04LjI1IDR2My4yNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1SDE1djJoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTVWMTZoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTV2Mkg1LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzVWOS41aDQuNjI5YTIuMjUgMi4yNSAwIDAgMCAxLjU5LS42NTlMMTEuNTYyIDd6bTMgMTIuNVYxNmguMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMjVWMTFoLjc1YS43NS43NSAwIDAgMCAuNzUtLjc1VjdoLjc1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OWExLjc1IDEuNzUgMCAwIDEtMS43NSAxLjc1em0wLTEyLjV2Mi41SDE1Vjd6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImZpbHRlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzLjUgMTZhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMSAwLTEuNXptMy01YS43NS43NSAwIDAgMSAwIDEuNWgtOWEuNzUuNzUgMCAwIDEgMC0xLjV6bTMtNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTE1YS43NS43NSAwIDAgMSAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmluZ2VycHJpbnRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNC44NTggMTIuMTU4Yy41Ni41NzMuODc3IDEuMjY4IDEuMTA2IDIuMjI4bC4xLjQ1Ni4xNzguOTQ3Yy4wOS40NDUuMTU4LjY5Mi4yNTUuOTA4cS40NDkgMS4wMTIgMS41OTUgMi4wNjVhLjc1Ljc1IDAgMCAxLTEuMDEzIDEuMTA2cS0xLjM2My0xLjI0Ni0xLjk1Mi0yLjU2Yy0uMTQ5LS4zMzQtLjI0LS42NS0uMzQ3LTEuMThsLS4yMS0xLjEtLjAxMy0uMDZjLS4xOC0uODUtLjQwNC0xLjM4NS0uNzcyLTEuNzYyLS43MTMtLjczLTIuMzU3LS41MzctMi43OTcuMTU4LS41NjIuODg5LS43MDUgMi4zOTYtLjI2IDMuOTE2cS41MTggMS43NjEgMS4zNzMgMy40NjdhLjc1Ljc1IDAgMCAxLTEuMzQuNjcyIDIyLjMgMjIuMyAwIDAgMS0xLjQ3MS0zLjcxN2MtLjU2Mi0xLjkxMi0uMzc2LTMuODY0LjQzLTUuMTQuOTUzLTEuNTA2IDMuNzQyLTEuODM0IDUuMTM4LS40MDRtLTIuMzY2IDIuMzE1YS43NS43NSAwIDAgMSAuNzc1LjcyNSA3LjkzIDcuOTMgMCAwIDAgMS40NDQgNC4zMDRsLjE5Ni4yNjYuMy4zOWEuNzUuNzUgMCAwIDEtMS4xMTQuOTk4bC0uMDc0LS4wODMtLjMtLjM5YTkuNDMgOS40MyAwIDAgMS0xLjk1MS01LjQzNS43NS43NSAwIDAgMSAuNzI0LS43NzVNOC43ODIgOS4zOWMyLjExMy0xLjU2MyA0Ljg3NS0xLjQ3OCA2LjczMy0uMjg0LjkzLjU5OCAxLjYzNSAxLjI5NSAyLjEwMyAyLjA5M2EuNzUuNzUgMCAwIDEtMS4yOTQuNzZjLS4zNDItLjU4NC0uODc4LTEuMTE1LTEuNjItMS41OTEtMS4zNjItLjg3Ni0zLjQ1MS0uOTQtNS4wMjkuMjI4LTEuNjM4IDEuMjEzLTIuMzI4IDMuMjkxLTIuMTIzIDUuNDgycS4xNzIgMS44NCAxLjExNCAzLjcyNGEuNzUuNzUgMCAwIDEtMS4zNDIuNjdRNi4yNiAxOC4zNDYgNi4wNiAxNi4yMTljLS4yNS0yLjY3LjYxLTUuMjYzIDIuNzI0LTYuODI4bTkuMTggNC4zMDFhLjc1Ljc1IDAgMCAxIC43ODguNzFjLjAzMS42MDQuMTggMS4wOTcuNDQyIDEuNDk0LjIyLjMzMy40MTQuNTI1LjU2My42bC4wNjEuMDI0YS43NS43NSAwIDAgMS0uNDM0IDEuNDM2Yy0uNTQ3LS4xNjUtMS4wMTctLjU4OC0xLjQ0My0xLjIzNS0uNDE2LS42My0uNjQzLTEuMzgyLS42ODctMi4yNDFhLjc1Ljc1IDAgMCAxIC43MS0uNzg4bS03LjQ1MS03LjU4OWEuNzUuNzUgMCAwIDEtLjM3Ny45OTJjLTEuODQuODI4LTMuMTk0IDIuMDA4LTQuMDgzIDMuNTQ4LTEuMTE0IDEuOTI4LTEuNDE0IDQuMTgxLTEuMTY1IDYuMDhhLjc1Ljc1IDAgMSAxLTEuNDg3LjE5NmMtLjI4OS0yLjIwMS4wNTUtNC43NzggMS4zNTMtNy4wMjZDNS44MDQgOC4wNzEgNy40IDYuNjggOS41MTkgNS43MjZhLjc1Ljc1IDAgMCAxIC45OTIuMzc2bTIuMzQzLS43ODdjMS44My4wMzcgMy42NTIuODc4IDUuNDU5IDIuNDg2IDEuODIzIDEuNjIyIDIuOTIxIDMuODI3IDMuMjk0IDYuNThhLjc1Ljc1IDAgMSAxLTEuNDg2LjIwMmMtLjMyNy0yLjQxMi0xLjI2MS00LjI4Ny0yLjgwNS01LjY2MS0xLjU2LTEuMzg4LTMuMDU1LTIuMDc4LTQuNDkzLTIuMTA3YS43NS43NSAwIDEgMSAuMDMxLTEuNW0tNi44NzEuMDE0YS43NS43NSAwIDAgMS0uMDYyIDEuMDZxLS40MDMuMzU3LS44NDMuODU0LS40MTUuNDY4LS44NDYgMS4yMTNhLjc1Ljc1IDAgMSAxLTEuMy0uNzUgOSA5IDAgMCAxIDEuMDI0LTEuNDU4cS40OTctLjU2Ljk2OC0uOThhLjc1Ljc1IDAgMCAxIDEuMDU5LjA2MW02LjU4NS0yLjk2NmMyLjE5My4xMDMgNC4wMy43MDMgNS41MyAxLjg2MWEuNzUuNzUgMCAwIDEtLjkxNyAxLjE4OGMtMS4yNDUtLjk2Mi0yLjc4NS0xLjQ2MS00LjY4My0xLjU1LTEuOTAzLS4wOS0zLjQ2Mi4yODQtNC43MTUuOTc5LS4zODQuMjEzLS44MTQuMTA2LTEuMDMxLS4yNDdhLjc0Ljc0IDAgMCAxIC4yNDYtMS4wMzFjMS41MzYtLjkwNCAzLjM4My0xLjMwMiA1LjU3LTEuMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmbGFnLWRlXCIgdmlld0JveD1cIjAgMCA2NDAgNDgwXCI+XG4gICAgPHBhdGggZmlsbD1cIiNmYzBcIiBkPVwiTTAgMzIwaDY0MHYxNjBIMHpcIiAvPlxuICAgIDxwYXRoIGZpbGw9XCIjMDAwMDAxXCIgZD1cIk0wIDBoNjQwdjE2MEgwelwiIC8+XG4gICAgPHBhdGggZmlsbD1cInJlZFwiIGQ9XCJNMCAxNjBoNjQwdjE2MEgwelwiIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmxhZy1lblwiIHZpZXdCb3g9XCIwIDAgNjQwIDQ4MFwiPlxuICAgIDxwYXRoIGZpbGw9XCIjMDEyMTY5XCIgZD1cIk0wIDBoNjQwdjQ4MEgwelwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgIGQ9XCJtNzUgMCAyNDQgMTgxTDU2MiAwaDc4djYyTDQwMCAyNDFsMjQwIDE3OHY2MWgtODBMMzIwIDMwMSA4MSA0ODBIMHYtNjBsMjM5LTE3OEwwIDY0VjB6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiI2M4MTAyZVwiXG4gICAgICBkPVwibTQyNCAyODEgMjE2IDE1OXY0MEwzNjkgMjgxem0tMTg0IDIwIDYgMzVMNTQgNDgwSDB6TTY0MCAwdjNMMzkxIDE5MWwyLTQ0TDU5MCAwek0wIDBsMjM5IDE3NmgtNjBMMCA0MnpcIlxuICAgIC8+XG4gICAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTTI0MSAwdjQ4MGgxNjBWMHpNMCAxNjB2MTYwaDY0MFYxNjB6XCIgLz5cbiAgICA8cGF0aCBmaWxsPVwiI2M4MTAyZVwiIGQ9XCJNMCAxOTN2OTZoNjQwdi05NnpNMjczIDB2NDgwaDk2VjB6XCIgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmbGFzaFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTcuNDI1IDIuODNBMS4yNSAxLjI1IDAgMCAxIDguNjAzIDJoNi40NTNhMS4yNSAxLjI1IDAgMCAxIDEuMTg2IDEuNjQ1TDE0Ljc5IDhoMy45NmMxLjEwMyAwIDEuNjY1IDEuMzI3Ljg5NyAyLjEyTDguNTg2IDIxLjUzNmMtMS4wNTQgMS4wODgtMi44NzIuMTA2LTIuNTQxLTEuMzcybDEuMjctNS42NjgtMS41Ny0uMDA2YTEuNzUgMS43NSAwIDAgMS0xLjY0MS0yLjMzN3ptMS4zNTQuNjctMy4yNjIgOS4xNTdhLjI1LjI1IDAgMCAwIC4yMzQuMzMzbDIuNTAyLjAxYS43NS43NSAwIDAgMSAuNzI5LjkxNGwtMS40NzMgNi41NzhMMTguMTU5IDkuNWgtNC40MWEuNzUuNzUgMCAwIDEtLjcxLS45ODdsMS42Ny01LjAxM3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmxvd19zdHJlYW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMCAyNGgtOC4xMzdhNCA0IDAgMCAwLS40MjktMS4wMkwyMS45OCAxMi40MzRBMy45OTQgMy45OTQgMCAxIDAgMjAuMTQxIDhIMTR2Mmg2LjE0MWE0IDQgMCAwIDAgLjQyNSAxLjAyTDEwLjAyIDIxLjU2NkEzLjk5NCAzLjk5NCAwIDEgMCAxMS44NTkgMjZIMjB2M2g4di04aC04em00LTE3YTIgMiAwIDEgMS0yIDIgMiAyIDAgMCAxIDItMk04IDI3YTIgMiAwIDEgMSAyLTIgMiAyIDAgMCAxLTIgMm0xNC00aDR2NGgtNHpNOS42OTMgMTIuNzVhNSA1IDAgMCAxIDAtNy41bDEuMzI0IDEuNWEzIDMgMCAwIDAgMCA0LjUwMXpcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03LjA0NyAxNS43NTFhOSA5IDAgMCAxIDAtMTMuNTAxbDEuMzI0IDEuNWE3IDcgMCAwIDAgMCAxMC41MDFaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImdsb2JlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OThjNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLTEwLjAwMiAxMFMyIDE3LjUyMyAyIDEyQzEuOTk5IDYuNDc2IDYuNDc2IDEuOTk4IDEyIDEuOTk4TTE0Ljk0IDE2LjVIOS4wNjFjLjY1MiAyLjQxNSAxLjc4NiA0LjAwMiAyLjk0IDQuMDAyczIuMjg2LTEuNTg4IDIuOTM4LTQuMDAybS03LjQzIDBINC43ODVhOC41MyA4LjUzIDAgMCAwIDQuMDk1IDMuNDFjLS41MjItLjgyLS45NTMtMS44NDYtMS4yNy0zLjAxNXptMTEuNzA1IDBoLTIuNzIyYy0uMzI0IDEuMzM1LS43OTIgMi41LTEuMzczIDMuNDExYTguNTMgOC41MyAwIDAgMCAzLjkxLTMuMTI3ek03LjA5NCAxMEgzLjczNmwtLjAwNS4wMTdBOC41IDguNSAwIDAgMCAzLjUgMTJhOC41IDguNSAwIDAgMCAuNTQ0IDNoMy4xNzNBMjAgMjAgMCAwIDEgNyAxMmMwLS42ODQuMDMyLTEuMzU0LjA5NS0yLjAwMW04LjMwMyAwSDguNjAzYTE5IDE5IDAgMCAwIC4xMzUgNWg2LjUyNGExOSAxOSAwIDAgMCAuMTM1LTVtNC44NjggMGgtMy4zNThjLjA2Mi42NDcuMDk1IDEuMzE3LjA5NSAyYTIwIDIwIDAgMCAxLS4yMTggM2gzLjE3M2E4LjUgOC41IDAgMCAwIC41NDUtM2MwLS42ODktLjA4Mi0xLjM1OS0uMjM3LTJNOC44OCA0LjA4OGwtLjAyMy4wMDhBOC41MyA4LjUzIDAgMCAwIDQuMjUgOC41aDMuMDQ4Yy4zMTQtMS43NTIuODYtMy4yNzggMS41ODMtNC40MW0zLjEyLS41OTEtLjExNy4wMDVDMTAuNjIgMy42MiA5LjM5NyA1LjYyMSA4LjgzIDguNWg2LjM0MmMtLjU2Ni0yLjg3LTEuNzgzLTQuODY5LTMuMDQ1LTQuOTk1em0zLjEyLjU5LjEwNi4xNzVjLjY3IDEuMTEyIDEuMTc3IDIuNTcyIDEuNDc1IDQuMjM3aDMuMDQ4YTguNTMgOC41MyAwIDAgMC00LjMzOS00LjI5elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJnbG9iZV9zZWFyY2hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjQ0MSA5Ljk1NWE0LjkyNiA0LjkyNiAwIDAgMCA2LjIzMyA3LjU3MWw0LjI1NiA0LjI1N2EuNzczLjc3MyAwIDAgMCAxLjE2OS0xLjAwN2wtLjA3NS0uMDg3bC00LjIxNy00LjIxOEE0LjkyNyA0LjkyNyAwIDAgMCAzLjQ0IDkuOTU1bTguNTg1LTcuOTU3Yy00Ljc1NiAwLTguNzM2IDMuMzE5LTkuNzUxIDcuNzY3cS4yMS0uMjcuNDYtLjUxN0E1LjkgNS45IDAgMCAxIDQuNTEgOC4wMjVBOC41MyA4LjUzIDAgMCAxIDguOTA2IDQuMDlsLS4xMDcuMTc0Yy0uNTM4Ljg5My0uOTcxIDIuMDExLTEuMjc1IDMuMjhjLjQ5OS4wNS45OTEuMTY0IDEuNDY1LjM0Yy42MzItMi42MjggMS44MjMtNC4zODUgMy4wMzctNC4zODVsLjExNS4wMDVjMS4yNjYuMTE2IDIuNDg4IDIuMTE4IDMuMDU2IDQuOTk2SDEwLjJhNiA2IDAgMCAxIDEuNTUgMS40OTlsMy42NzQuMDAxYTE5IDE5IDAgMCAxLS4xMzUgNWgtMi42NDZhNiA2IDAgMCAxLS4yOTkuODQybC0uMTI5LjI3MmwtLjEyMi4yMjlsLjE1OC4xNTdoMi43MTVjLS4yMDMuNzQ5LS40NSAxLjQxOC0uNzMyIDEuOTg1bDEuMTA2IDEuMTA3Yy40OTItLjg1OC44OTEtMS45MDggMS4xNzgtMy4wOWwyLjcyMy0uMDAyYTguNTQgOC41NCAwIDAgMS0zLjczNCAzLjI2bC4yMjUuMjIzbC4xMjUuMTRjLjIyLjI5Ni4zNDUuNjI1LjM3OC45NTNBMTAgMTAgMCAwIDAgMjIuMDI3IDEyYzAtNS41MjQtNC40NzgtMTAuMDAyLTEwLjAwMS0xMC4wMDJtLTIuNzEyIDkuMDVhMy4zOCAzLjM4IDAgMSAxLTQuNzggNC43OGEzLjM4IDMuMzggMCAwIDEgNC43OC00Ljc4TTE2LjkzMiAxMGwzLjM1OC0uMDAxbC4wMDguMDNjLjE1LjYzMy4yMyAxLjI5Mi4yMyAxLjk3YTguNSA4LjUgMCAwIDEtLjU0NSAzbC0zLjE3NC4wMDJjLjE0My0uOTUuMjE4LTEuOTU4LjIxOC0zLjAwMXEwLTEuMDI4LS4wOTUtMm0tMS43ODctNS45MTFsLjAyMy4wMDhBOC41MyA4LjUzIDAgMCAxIDE5Ljc3NiA4LjVoLTMuMDQ5Yy0uMzEzLTEuNzUzLS44Ni0zLjI3OC0xLjU4Mi00LjQxXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImdwdFwiIHZpZXdCb3g9XCIwIDAgNDggNDhcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJNMTguMzggMjcuOTR2LTE0LjRsMTEuMTktNi40NmM2LjItMy41OCAxNy4zIDUuMjUgMTIuNjQgMTMuMzNcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBkPVwibTE4LjM4IDIwLjk0IDEyLjQ3LTcuMiAxMS4xOSA2LjQ2YzYuMiAzLjU4IDQuMSAxNy42MS01LjIzIDE3LjYxXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgZD1cIm0yNC40NCAxNy40NCAxMi40NyA3LjJ2MTIuOTNjMCA3LjE2LTEzLjIgMTIuMzYtMTcuODYgNC4yOFwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJNMzAuNSAyMS4ydjE0LjE0TDE5LjMxIDQxLjhjLTYuMiAzLjU4LTE3LjMtNS4yNS0xMi42NC0xMy4zM1wiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJtMzAuNSAyNy45NC0xMi40NyA3LjItMTEuMTktNi40NmMtNi4yMS0zLjU5LTQuMTEtMTcuNjEgNS4yMi0xNy42MVwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJtMjQuNDQgMzEuNDQtMTIuNDctNy4yVjExLjMxYzAtNy4xNiAxMy4yLTEyLjM2IDE3Ljg2LTQuMjhcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiaGlzdG9yeVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE3LjUgNy41IDAgMSAxLTcuNDE5IDYuMzkyYy4wNjctLjQ1NC0uMjY1LS44OTItLjcyNC0uODkyYS43NS43NSAwIDAgMC0uNzUyLjYyM0E5IDkgMCAxIDAgNiA1LjI5MlY0LjI1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjQxNC4zMzYuNzUuNzUuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVINi45YTcuNDcgNy40NyAwIDAgMSA1LjEtMm0uNSAzLjI1YS43NS43NSAwIDAgMC0xLjUgMHY0LjVjMCAuNDE0LjMzNi43NS43NS43NWgzYS43NS43NSAwIDAgMCAwLTEuNUgxMi41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJob21lX2NoZWNrbWFya1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzLjQ1IDIuNTMyYTIuMjUgMi4yNSAwIDAgMC0yLjkgMEwzLjggOC4yMjRhMi4yNSAyLjI1IDAgMCAwLS44IDEuNzJ2OS4zMWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDE0LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtOS4zMWEyLjI1IDIuMjUgMCAwIDAtLjgtMS43MnptLTEuOTMzIDEuMTQ3YS43NS43NSAwIDAgMSAuOTY2IDBsNi43NSA1LjY5MmEuNzUuNzUgMCAwIDEgLjI2Ny41NzN2OS4zMWEuMjUuMjUgMCAwIDEtLjI1LjI1SDQuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTkuMzFhLjc1Ljc1IDAgMCAxIC4yNjctLjU3M3ptNC4yNjcgNy42MDFhLjc1Ljc1IDAgMSAwLTEuMDYxLTEuMDZsLTMuOTczIDMuOTczLTEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIgMmEuNzUuNzUgMCAwIDAgMS4wNiAwelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJob3VyZ2xhc3NfcXVhcnRlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYuODg0IDE3LjE1QTMuMjQgMy4yNCAwIDAgMSA3LjkyIDE2aDguMTZhMy4yNCAzLjI0IDAgMCAxIDEuNDIgMi42NXYuNmEuMjUuMjUgMCAwIDEtLjI1LjI1SDYuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LS42YTMuMjQgMy4yNCAwIDAgMSAuMzg0LTEuNU02Ljc1IDJBMi43NSAyLjc1IDAgMCAwIDQgNC43NXYuNDJhNS43NSA1Ljc1IDAgMCAwIDIuNzkyIDQuOTNsMS44MSAxLjA4NmEuNzUuNzUgMCAwIDEgLjAzNiAxLjI2M2wtMi4xMjEgMS40NDNBNS43NSA1Ljc1IDAgMCAwIDQgMTguNjQ3di42MDNBMi43NSAyLjc1IDAgMCAwIDYuNzUgMjJoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMjAgMTkuMjV2LS42MDRhNS43NSA1Ljc1IDAgMCAwLTIuNTE3LTQuNzU0bC0yLjEyMS0xLjQ0M2EuNzUuNzUgMCAwIDEgLjAzNi0xLjI2M2wxLjgxLTEuMDg2QTUuNzUgNS43NSAwIDAgMCAyMCA1LjE3di0uNDJBMi43NSAyLjc1IDAgMCAwIDE3LjI1IDJ6TTUuNSA0Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEwLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2LjQyYTQuMjUgNC4yNSAwIDAgMS0yLjA2MyAzLjY0M0wxNC42MjcgOS45Yy0xLjQxLjg0NS0xLjQ2NyAyLjg2Ni0uMTA4IDMuNzlsMi4xMiAxLjQ0MmE0LjI1IDQuMjUgMCAwIDEgMS44NjEgMy41MTV2LjYwM2MwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINi43NWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di0uNjA0YTQuMjUgNC4yNSAwIDAgMSAxLjg2LTMuNTE0bDIuMTIxLTEuNDQyYzEuMzU5LS45MjQgMS4zMDItMi45NDUtLjEwNy0zLjc5bC0xLjgxLTEuMDg3QTQuMjUgNC4yNSAwIDAgMSA1LjUgNS4xN3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiaWRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPGcgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMy4wMDYgOS4xNjNjMC0uNzYuNjE2LTEuMzc1IDEuMzc1LTEuMzc1aDMuMzA1YzQuNTUxIDAgOC4yNzggMy42MzcgOC4yNzggOC4xNyAwIDQuNTMxLTMuNzI3IDguMTY5LTguMjc4IDguMTY5SDE0LjM4Yy0uNzYgMC0xLjM3NS0uNjE2LTEuMzc1LTEuMzc1em0yLjc1IDEyLjA4OWMwIC4wNjkuMDU2LjEyNS4xMjUuMTI1aDEuODA1YzMuMDc0IDAgNS41MjgtMi40NDcgNS41MjgtNS40MnMtMi40NTQtNS40Mi01LjUyOC01LjQySDE1Ljg4YS4xMjUuMTI1IDAgMCAwLS4xMjUuMTI2ek05LjM4NSA3Ljg5YTEuMzc0IDEuMzc0IDAgMCAxIDEuMzc3IDEuMzczbC4wMTQgMTMuMzg1YTEuMzc1IDEuMzc1IDAgMCAxLTIuNzUuMDAzTDguMDEyIDkuMjY2YTEuMzc1IDEuMzc1IDAgMCAxIDEuMzczLTEuMzc3XCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTYgMWE1IDUgMCAwIDAtNSA1djIwYTUgNSAwIDAgMCA1IDVoMjBhNSA1IDAgMCAwIDUtNVY2YTUgNSAwIDAgMC01LTV6TTMgNmEzIDMgMCAwIDEgMy0zaDIwYTMgMyAwIDAgMSAzIDN2MjBhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTN6XCJcbiAgICAgIC8+XG4gICAgPC9nPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImlkX2NhcmRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOCAxM2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDAgMmgtNmExIDEgMCAwIDEtMS0xbTEgNGExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMCAwIDAtMnptLTYtNGEyIDIgMCAxIDEtNCAwYTIgMiAwIDAgMSA0IDBtLTYgNC41QTEuNSAxLjUgMCAwIDEgOC41IDE2aDVhMS41IDEuNSAwIDAgMSAxLjUgMS41czAgMy41LTQgMy41cy00LTMuNS00LTMuNU0yIDcuMjVBMy4yNSAzLjI1IDAgMCAxIDUuMjUgNGgyMS41QTMuMjUgMy4yNSAwIDAgMSAzMCA3LjI1djE3LjVBMy4yNSAzLjI1IDAgMCAxIDI2Ljc1IDI4SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMjQuNzV6TTUuMjUgNkM0LjU2IDYgNCA2LjU2IDQgNy4yNXYxNy41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDIxLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjcuMjVDMjggNi41NiAyNy40NCA2IDI2Ljc1IDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImltYWdlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTcuNzUgM0EzLjI1IDMuMjUgMCAwIDEgMjEgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMSAxNy43NSAyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM3ptLjU4IDE2LjQwMS01LjgwNS01LjY4NmEuNzUuNzUgMCAwIDAtLjk2Ni0uMDcxbC0uMDg0LjA3LTUuODA3IDUuNjg3cS4yNzQuMDk3LjU4Mi4wOTloMTEuNWMuMjAzIDAgLjM5OS0uMDM1LjU4LS4wOTlsLTUuODA1LTUuNjg2ek0xNy43NSA0LjVINi4yNUExLjc1IDEuNzUgMCAwIDAgNC41IDYuMjV2MTEuNXEuMDAxLjMxMy4xMDMuNTk0bDUuODIzLTUuNzAxYTIuMjUgMi4yNSAwIDAgMSAzLjAyLS4xMTZsLjEyOC4xMTYgNS44MjIgNS43MDJxLjEwMi0uMjguMTA0LS41OTVWNi4yNWExLjc1IDEuNzUgMCAwIDAtMS43NS0xLjc1bS0yLjQ5OCAyYTIuMjUyIDIuMjUyIDAgMSAxIDAgNC41MDQgMi4yNTIgMi4yNTIgMCAwIDEgMC00LjUwNG0wIDEuNWEuNzUyLjc1MiAwIDEgMCAwIDEuNTA0Ljc1Mi43NTIgMCAwIDAgMC0xLjUwNFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbWFnZV9saWJyYXJ5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuNzQ4IDguOTk2YTEuMjQ4IDEuMjQ4IDAgMSAwIDAtMi40OTYgMS4yNDggMS4yNDggMCAwIDAgMCAyLjQ5Nk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXY5YTMuMjUgMy4yNSAwIDAgMCAzLjI1IDMuMjVoOWEzLjI1IDMuMjUgMCAwIDAgMy4yNS0zLjI1di05QTMuMjUgMy4yNSAwIDAgMCAxNS4yNSAzek00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDljLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY5YzAgLjIzMS0uMDQ1LjQ1Mi0uMTI2LjY1NGwtNC41ODctNC4yOTFhMi4yNSAyLjI1IDAgMCAwLTMuMDc0IDBsLTQuNTg3IDQuMjlhMS44IDEuOCAwIDAgMS0uMTI2LS42NTN6bTYuNzYyIDYuNDU4IDQuNTA1IDQuMjE0cS0uMjQ2LjA3Ni0uNTE3LjA3OGgtOXEtLjI3MSAwLS41MTctLjA3OGw0LjUwNC00LjIxNGEuNzUuNzUgMCAwIDEgMS4wMjUgME04Ljc1IDIxYTMuMjUgMy4yNSAwIDAgMS0yLjc0LTEuNWg5Ljc0YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzVWNi4wMTFhMy4yNSAzLjI1IDAgMCAxIDEuNSAyLjc0djdBNS4yNSA1LjI1IDAgMCAxIDE1Ljc1IDIxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbWFnZV9zZWFyY2hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMSA2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXY0LjUwN2E1LjUgNS41IDAgMCAxIDEuNS0uODgyVjYuMjVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTEuNXEtLjAwMi4zMTUtLjEwNC41OTVsLTUuODIyLTUuNzAyLS4xMjgtLjExNmEyLjI1IDIuMjUgMCAwIDAtMi4yNDMtLjM4Yy4yNTkuNDI1LjQ2MS44ODkuNTk4IDEuMzhhLjc1Ljc1IDAgMCAxIC43MjQuMTg4TDE4LjMzIDE5LjRhMS44IDEuOCAwIDAgMS0uNTgxLjA5OWgtNC43NzVsLjUxMi41MTNjLjI3OC4yNzcuNDQzLjYyNi40OTUuOTg3aDMuNzY4QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NXptLTMuNDk2IDIuNTAyYTIuMjUyIDIuMjUyIDAgMSAwLTQuNTA0IDAgMi4yNTIgMi4yNTIgMCAwIDAgNC41MDQgMG0tMy4wMDQgMGEuNzUyLjc1MiAwIDEgMSAxLjUwNCAwIC43NTIuNzUyIDAgMCAxLTEuNTA0IDBNOS45NSAxNy44OWE0LjUgNC41IDAgMSAwLTEuMTQ1Ljk3NmwyLjkxNSAyLjkxNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2ek02LjUgMThhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImltcG9ydFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIxLjI1IDQuNWEuNzUuNzUgMCAwIDEgLjc0My42NDhMMjIgNS4yNXYxMy4wMDRhLjc1Ljc1IDAgMCAxLTEuNDkzLjEwMmwtLjAwNy0uMTAyVjUuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtLTguNjAzIDEuODA0LjA3Mi0uMDg0YS43NS43NSAwIDAgMSAuOTc3LS4wNzNsLjA4NC4wNzMgNC45OTcgNC45OTdhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00Ljk5NyA1LjAwM2EuNzUuNzUgMCAwIDEtMS4xMzMtLjk3NmwuMDcyLS4wODQgMy43MTEtMy43MTdIMi43NWEuNzUuNzUgMCAwIDEtLjc0My0uNjQ3TDIgMTEuNzU1YS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3IDEzLjY5My0uMDAxLTMuNzI0LTMuNzI0YS43NS43NSAwIDAgMS0uMDcyLS45NzZsLjA3Mi0uMDg0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbmZvXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OThjNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLTEwLjAwMiAxMFMyIDE3LjUyMyAyIDEyQzEuOTk5IDYuNDc2IDYuNDc2IDEuOTk4IDEyIDEuOTk4bTAgMS41YTguNTAyIDguNTAyIDAgMSAwIDAgMTcuMDAzIDguNTAyIDguNTAyIDAgMCAwIDAtMTcuMDAzbS0uMDA0IDdhLjc1Ljc1IDAgMCAxIC43NDQuNjQ4bC4wMDcuMTAyLjAwNCA1LjUwMmEuNzUuNzUgMCAwIDEtMS40OTQuMTAybC0uMDA2LS4xMDEtLjAwNC01LjUwMmEuNzUuNzUgMCAwIDEgLjc1LS43NW0uMDA1LTMuNDk3YS45OTkuOTk5IDAgMSAxIDAgMS45OTcuOTk5Ljk5OSAwIDAgMSAwLTEuOTk3XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImlvdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5IDQuNDkyYTIuNSAyLjUgMCAwIDEtMy4wMTIgMi40NDhsLTEuMjggMi4xMTdBNCA0IDAgMCAxIDE2IDEyLjA2bDEuMjk2LjI2YTIuNSAyLjUgMCAxIDEtLjI3OSAxLjQ3NWwtMS4zMTktLjI2NmE0IDQgMCAwIDEtMS43NDQgMS45NjRsLjQ5NSAxLjUxMWguMDUxYTIuNSAyLjUgMCAxIDEtMS40NzIuNDc5bC0uNDk3LTEuNTE2YTQgNCAwIDAgMS0zLjc1Mi0xLjU5M2wtMS43OTQuODQ4cS4wMTUuMTM4LjAxNS4yOGEyLjUgMi41IDAgMSAxLS42MjMtMS42NTJsMS43NTQtLjgyOWE0IDQgMCAwIDEgLjc4NC0zLjU2NmwtLjk5MS0xLjEzYTIuNSAyLjUgMCAxIDEgMS4xNjQtLjk0OGwuOTgyIDEuMTJBNCA0IDAgMCAxIDEyIDguMDAxYy41MDUgMCAuOTg5LjA5MyAxLjQzNC4yNjRsMS4yNDUtMi4wNkEyLjUgMi41IDAgMSAxIDE5IDQuNDkybS0xLjUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBNNyA3LjAwMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJtNSA3LjVhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVtLTYuNSAxYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMG0xMCA0LjAwMmExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBtNC01LjAwMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwia2V5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTguMjUgN2ExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwTTE1LjUgMi4wNUE2LjU1NCA2LjU1NCAwIDAgMCA4Ljk1IDguNmMwIC4zODcuMDUuNzYuMTEgMS4xMDRhLjI4LjI4IDAgMCAxLS4wNy4yNDRsLTYuMjM1IDYuMjM2YTIuNzUgMi43NSAwIDAgMC0uODA2IDEuOTQ0VjIwLjNjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgyLjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtMS4yNUg5LjdjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0xLjc1aDEuNzVhMS4yNSAxLjI1IDAgMCAwIDEuMjUtMS4yMDRjLjQ5Ni4xMjggMS4wMi4yMDQgMS41NS4yMDRhNi41NTQgNi41NTQgMCAwIDAgNi41NS02LjU1YzAtMy42MzEtMi45NTMtNi40NS02LjU1LTYuNDVNMTAuNDUgOC42YTUuMDU0IDUuMDU0IDAgMCAxIDUuMDUtNS4wNWMyLjgwMiAwIDUuMDUgMi4xODEgNS4wNSA0Ljk1YTUuMDU0IDUuMDU0IDAgMCAxLTUuMDUgNS4wNWMtLjY4IDAtMS4zOC0uMTcxLTIuMDA1LS40NGEuNzUuNzUgMCAwIDAtMS4wNDYuNjl2Ljc1SDEwLjdjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djEuNzVINy43Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxLjVhLjI1LjI1IDAgMCAxLS4yNS4yNUgzLjdhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTIuMTcyYzAtLjMzMS4xMzItLjY1LjM2Ni0uODg0bDYuMjM2LTYuMjM1YTEuNzcgMS43NyAwIDAgMCAuNDg2LTEuNTY0IDUgNSAwIDAgMS0uMDg4LS44NDVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwia2V5X211bHRpcGxlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMnEuNDY1IDAgLjkwOC4wODJhNi41IDYuNSAwIDAgMC0xLjU4MiAxLjQ4M0EzLjUgMy41IDAgMCAwIDguNjIgNy45MWEuNzUuNzUgMCAwIDEtLjE5NC43MjVMMy41IDEzLjU2MVYxNi41aDJ2LTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVIOC41di0xLjI1YS43NS43NSAwIDAgMSAuMjItLjUzbDEuOTE1LTEuOTE1cS4zMzYuNy44MjMgMS4yOThMMTAgMTMuMDZ2MS42ODlhLjc1Ljc1IDAgMCAxLS43NS43NUg3djEuNzVhLjc1Ljc1IDAgMCAxLS43NS43NWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1di00YS43NS43NSAwIDAgMSAuMjItLjUzbDQuODU1LTQuODU1QTUgNSAwIDAgMSAxMiAybTQuNSAxLjVhNCA0IDAgMCAwLTEuODk0IDcuNTI0Ljc1Ljc1IDAgMCAxIC4zOTQuNjZ2Ny43MzRsMi4wMTcgMS44MzQgMi4xMjMtMS43OTktLjkyMS0uOTI0YS43NS43NSAwIDAgMSAwLTEuMDU4bC45NjctLjk3MS0uOTY3LS45N0EuNzUuNzUgMCAwIDEgMTggMTV2LTMuMzE2YS43NS43NSAwIDAgMSAuMzk0LS42NkE0IDQgMCAwIDAgMTYuNSAzLjVtLTUuNSA0YTUuNSA1LjUgMCAxIDEgOC41IDQuNjF2Mi41OGwxLjI3NiAxLjI4YS43NS43NSAwIDAgMSAwIDEuMDZsLS45NjcuOTcuOTY3Ljk3YS43NS43NSAwIDAgMS0uMDQ2IDEuMTAybC0zLjI0NSAyLjc1YS43NS43NSAwIDAgMS0uOTktLjAxN2wtMi43NS0yLjVhLjc1Ljc1IDAgMCAxLS4yNDUtLjU1NXYtNy42NEE1LjUgNS41IDAgMCAxIDExIDcuNW02LjUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibGFiZWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOS43NSAyQTIuMjUgMi4yNSAwIDAgMSAyMiA0LjI1djUuNDYyYTMuMjUgMy4yNSAwIDAgMS0uOTUyIDIuMjk4bC04LjUgOC41MDNhMy4yNTUgMy4yNTUgMCAwIDEtNC41OTcuMDAxTDMuNDg5IDE2LjA2YTMuMjUgMy4yNSAwIDAgMS0uMDA0LTQuNTk2bDguNS04LjUxYTMuMjUgMy4yNSAwIDAgMSAyLjMtLjk1M3ptMCAxLjVoLTUuNDY2Yy0uNDY0IDAtLjkxLjE4NS0xLjIzOC41MTNsLTguNTEyIDguNTIzYTEuNzUgMS43NSAwIDAgMCAuMDE1IDIuNDYybDQuNDYxIDQuNDU0YTEuNzU1IDEuNzU1IDAgMCAwIDIuNDc3IDBsOC41LTguNTAzYTEuNzUgMS43NSAwIDAgMCAuNTEzLTEuMjM3VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVNMTcgNS41MDJhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibGFiZWxzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTcuNSA2LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMG0tNi45OTItMy42MDJBMy4yNSAzLjI1IDAgMCAxIDEyLjc1IDJoNS40OTlBMi43NSAyLjc1IDAgMCAxIDIxIDQuNzV2NC45NTNhMy4yNSAzLjI1IDAgMCAxLS45NyAyLjMxNmwtNi45NDYgNi44MzVhMi4yNSAyLjI1IDAgMCAxLTMuMTY2LS4wMWwtNi4yNTYtNi4yMjZhMi4yNSAyLjI1IDAgMCAxIC4wMzQtMy4yMjN6bTIuMjQzLjYwMmMtLjQ1IDAtLjg4My4xNzMtMS4yMDguNDg0TDQuNzMgMTAuNDhhLjc1Ljc1IDAgMCAwLS4wMTEgMS4wNzVsNi4yNTcgNi4yMjZhLjc1Ljc1IDAgMCAwIDEuMDU1LjAwM2w2Ljk0NS02LjgzNGExLjc1IDEuNzUgMCAwIDAgLjUyMy0xLjI0N1Y0Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNXptNy45OCA5LjIzMi0xLjQ3NSAxLjQ1MXEtLjA2LjA4Mi0uMTM0LjE1NWwtNS4zMzQgNS4yMjlhMy4yNSAzLjI1IDAgMCAxLTQuNTc1LS4wMTNMNy4yODIgMTcuNjNsLTIuNDExLTIuMzg2YTEgMSAwIDAgMS0uMTA3LS4xMmwtMS42My0xLjYyMWEyLjc1IDIuNzUgMCAwIDAgLjY4MiAyLjgwN2w0LjM1NiA0LjMxMWE0Ljc1IDQuNzUgMCAwIDAgNi42NjYuMDE2bDUuMzM0LTUuMjI5YTIuNzUgMi43NSAwIDAgMCAuNjktMi44MTMgNCA0IDAgMCAxLS4xMzEuMTM2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxheWVyX2RpYWdvbmFsX3NwYXJrbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4wODggNy40MTJhMi44NCAyLjg0IDAgMCAwLTEuMzQ3LS45NTVsLTEuMzc4LS40NDhhLjU0NC41NDQgMCAwIDEgMC0xLjAyNWwxLjM3OC0uNDQ4QTIuODQgMi44NCAwIDAgMCAxNi41IDIuNzc0bC4wMTEtLjAzNC40NDgtMS4zNzdhLjU0NC41NDQgMCAwIDEgMS4wMjcgMGwuNDQ3IDEuMzc3YTIuODQgMi44NCAwIDAgMCAxLjc5OSAxLjc5NmwxLjM3Ny40NDguMDI4LjAwN2EuNTQ0LjU0NCAwIDAgMSAwIDEuMDI1bC0xLjM3OC40NDhhMi44NCAyLjg0IDAgMCAwLTEuNzk4IDEuNzk2bC0uNDQ4IDEuMzc3LS4wMTMuMDM0YS41NDQuNTQ0IDAgMCAxLTEuMDEzLS4wMzRsLS40NDgtMS4zNzdhMi44IDIuOCAwIDAgMC0uNDUtLjg0OG03LjY5NSAzLjgwMS0uNzY2LS4yNDhhMS41OCAxLjU4IDAgMCAxLS45OTgtLjk5OWwtLjI1LS43NjRhLjMwMi4zMDIgMCAwIDAtLjU3IDBsLS4yNDguNzY0YTEuNTggMS41OCAwIDAgMS0uOTg0Ljk5OWwtLjc2NS4yNDhhLjMwMi4zMDIgMCAwIDAgMCAuNTdsLjc2NS4yNDlhMS41OCAxLjU4IDAgMCAxIDEgMS4wMDJsLjI0OC43NjRhLjMwMi4zMDIgMCAwIDAgLjU3IDBsLjI0OS0uNzY0YTEuNTggMS41OCAwIDAgMSAuOTk5LS45OTlsLjc2NS0uMjQ4YS4zMDIuMzAyIDAgMCAwIDAtLjU3em0tMTIuOC05LjA3N2EyLjI1IDIuMjUgMCAwIDEgMi45NSAxLjU3MkwxMy4wNSA0YTEuNiAxLjYgMCAwIDAtLjU1LjMzMnYtLjA4YS43NS43NSAwIDAgMC0xLjAwNS0uNzA0bC02Ljg0IDIuNDc1QTEuNzUgMS43NSAwIDAgMCAzLjUgNy42Njd2Ni4wODJhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNUw1IDE0LjI3NXYxLjU5NWEyLjI1IDIuMjUgMCAwIDEtMy0yLjEyVjcuNjY2QTMuMjUgMy4yNSAwIDAgMSA0LjE0NCA0LjYxem0tMy4xNyA1LjU5NSA0LjM0Ni0xLjU3M0ExLjcgMS43IDAgMCAwIDEzIDdsLjY1Mi4yMTQtNS4zMjcgMS45MjhhMS4yNSAxLjI1IDAgMCAwLS44MjUgMS4xNzZ2Ni40MzJhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNWwuNDk1LS4xOHYxLjU5NmEyLjI1IDIuMjUgMCAwIDEtMy0yLjEyMnYtNi40MzJBMi43NSAyLjc1IDAgMCAxIDcuODE0IDcuNzNtMy42NyAzLjEyTDE1LjggOS4yODhsLjIwMS43MWMuMDg4LjI1Ny4yNC40ODEuNDM1LjY1NWwtNC40NCAxLjYwN2EuNzUuNzUgMCAwIDAtLjQ5NS43MDV2Ni43ODNhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNWw3LjUtMi43MTRhLjc1Ljc1IDAgMCAwIC40OTUtLjcwNXYtMi40NDhjLjIxNC4yNzYuNTEyLjQ2My45Ni40NjMuMjExIDAgLjM4OS0uMDQyLjU0LS4xMTR2Mi4xYTIuMjUgMi4yNSAwIDAgMS0xLjQ4NCAyLjExNWwtNy41IDIuNzE0QTIuMjUgMi4yNSAwIDAgMSAxMCAxOS43NDl2LTYuNzgzYTIuMjUgMi4yNSAwIDAgMSAxLjQ4NC0yLjExNlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaWdodGJ1bGJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyLjAwMWE3LjI1IDcuMjUgMCAwIDEgNy4yNSA3LjI1YzAgMi4wOTYtLjkgNC4wMi0yLjY2MyA1Ljc0MmEuNzUuNzUgMCAwIDAtLjE3NS4yNjVsLS4wMzIuMTAzLTEuMTMgNC44OTVhMi4yNSAyLjI1IDAgMCAxLTIuMDIgMS43MzdsLS4xNzMuMDA3aC0yLjExNGEyLjI1IDIuMjUgMCAwIDEtMi4xNDctMS41NzdsLS4wNDUtLjE2Ny0xLjEzLTQuODk1YS43NS43NSAwIDAgMC0uMjA2LS4zNjhjLTEuNjgtMS42NC0yLjU3Ny0zLjQ2My0yLjY1OS01LjQ0NGwtLjAwNi0uMjk4LjAwNC0uMjRBNy4yNSA3LjI1IDAgMCAxIDEyIDIuMDAyTTE0LjExNSAxOC41SDkuODg0bC4zMjkgMS40MmEuNzUuNzUgMCAwIDAgLjYyNy41NzNsLjEwMy4wMDhoMi4xMTRhLjc1Ljc1IDAgMCAwIC43LS40ODNsLjAzLS4wOTl6TTEyIDMuNTAxYTUuNzUgNS43NSAwIDAgMC01Ljc0NiA1LjUzbC0uMDA0LjIyLjAwNy4yNzdjLjA3NiAxLjU2My44IDMuMDIgMi4yMDYgNC4zOTIuMjY0LjI1OC40Ni41NzYuNTcxLjkyNmwuMDQ5LjE3OC40NTUgMS45NzVoNC45MjNsLjQ1OC0xLjk3NmEyLjI1IDIuMjUgMCAwIDEgLjQ5My0uOTdsLjEyNy0uMTMzYzEuNDA0LTEuMzczIDIuMTI4LTIuODI4IDIuMjA0LTQuMzkybC4wMDctLjI3Ny0uMDA0LS4yMkE1Ljc1IDUuNzUgMCAwIDAgMTIgMy41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpbmVfaG9yaXpvbnRhbFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIgMTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoMTguNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaW5rXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOS4yNSA3YS43NS43NSAwIDAgMSAuMTEgMS40OTJsLS4xMS4wMDhIN2EzLjUgMy41IDAgMCAwLS4yMDYgNi45OTRMNyAxNS41aDIuMjVhLjc1Ljc1IDAgMCAxIC4xMSAxLjQ5Mkw5LjI1IDE3SDdhNSA1IDAgMCAxLS4yNS05Ljk5NEw3IDd6TTE3IDdhNSA1IDAgMCAxIC4yNSA5Ljk5NEwxNyAxN2gtMi4yNWEuNzUuNzUgMCAwIDEtLjExLTEuNDkybC4xMS0uMDA4SDE3YTMuNSAzLjUgMCAwIDAgLjIwNi02Ljk5NEwxNyA4LjVoLTIuMjVhLjc1Ljc1IDAgMCAxLS4xMS0xLjQ5MkwxNC43NSA3ek03IDExLjI1aDEwYS43NS43NSAwIDAgMSAuMTAyIDEuNDkzTDE3IDEyLjc1SDdhLjc1Ljc1IDAgMCAxLS4xMDItMS40OTN6aDEwelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaW5rX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk05LjI1IDVhLjc1Ljc1IDAgMCAxIC4xMSAxLjQ5MmwtLjExLjAwOEg3YTMuNSAzLjUgMCAwIDAtLjIwNiA2Ljk5NEw3IDEzLjVoMi4yNWEuNzUuNzUgMCAwIDEgLjExIDEuNDkyTDkuMjUgMTVIN2E1IDUgMCAwIDEtLjI1LTkuOTk0TDcgNXpNMTcgNWE1IDUgMCAwIDEgNC40MyA3LjMyMiA2LjUgNi41IDAgMCAwLTEuMjk0LS43NjUgMy41IDMuNSAwIDAgMC0yLjkzLTUuMDVMMTcgNi40OTloLTIuMjVhLjc1Ljc1IDAgMCAxLS4xMS0xLjQ5MkwxNC43NSA1ek03IDkuMjVoMTBhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMTcgMTAuNzVIN2EuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3ptMTYgOC4yNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS03LjE0Ni0yLjM1NGEuNS41IDAgMCAwLS43MDguNzA4bDEuNjQ3IDEuNjQ2LTEuNjQ3IDEuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhsMS42NDYtMS42NDcgMS42NDYgMS42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMMTguMjA3IDE3LjVsMS42NDctMS42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTcuNSAxNi43OTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpbmtfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2NmEzLjI1IDMuMjUgMCAwIDAgMy4yNSAzLjI1SDcuNVYxNEg2LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV2LTZjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWg2Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2NkExLjc1IDEuNzUgMCAwIDEgMTIuMjUgMTRIMTF2MS41aDEuMjVhMy4yNSAzLjI1IDAgMCAwIDMuMjUtMy4yNXYtNkEzLjI1IDMuMjUgMCAwIDAgMTIuMjUgM3pNMTAgMTEuNzVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWgxLjI0OFY4LjVIMTEuNzVhMy4yNSAzLjI1IDAgMCAwLTMuMjUgMy4yNXY2QTMuMjUgMy4yNSAwIDAgMCAxMS43NSAyMWg2QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NXYtNmEzLjI1IDMuMjUgMCAwIDAtMy4yNS0zLjI1SDE2LjVWMTBoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djZhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NWgtNkExLjc1IDEuNzUgMCAwIDEgMTAgMTcuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpc3Rfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNy43NSA5LjI1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMm0zLjUtMS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptMCAzLjc1YS43NS43NSAwIDEgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMSAwIDAtMS41em0tLjc1IDQuNWEuNzUuNzUgMCAwIDEgLjc1LS43NWg1LjVhLjc1Ljc1IDAgMSAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVNOC43NSAxMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBtLTEgNC43NWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDAgNi4yNSAyMWgxMS41QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzek00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDExLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMS41YTEuNzUgMS43NSAwIDAgMS0xLjc1IDEuNzVINi4yNWExLjc1IDEuNzUgMCAwIDEtMS43NS0xLjc1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsb2NhdGlvbl9vblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuODQzIDQuNTY4YTguNzA3IDguNzA3IDAgMCAxIDEyLjMxNCAxMi4zMTRsLTEuMTg3IDEuMTc0cS0xLjMxMiAxLjI4Ny0zLjQwNiAzLjMxMmEyLjI1IDIuMjUgMCAwIDEtMy4xMjggMGwtMy40OTEtMy4zOTZxLS42NTktLjY0Ni0xLjEwMi0xLjA5YTguNzA3IDguNzA3IDAgMCAxIDAtMTIuMzE0bTExLjI1MyAxLjA2QTcuMjA3IDcuMjA3IDAgMSAwIDYuOTAzIDE1LjgyMmwxLjQ4OCAxLjQ2OHExLjIyOCAxLjIwMSAzLjA4OCAzYS43NS43NSAwIDAgMCAxLjA0MiAwbDMuMzk1LTMuM3EuNzA1LS42OTEgMS4xOC0xLjE2OGE3LjIwNyA3LjIwNyAwIDAgMCAwLTEwLjE5Mk0xMiA3Ljk5OWEzLjAwMiAzLjAwMiAwIDEgMSAwIDYuMDA0QTMuMDAyIDMuMDAyIDAgMCAxIDEyIDhtMCAxLjVhMS41MDIgMS41MDIgMCAxIDAgMCAzLjAwNCAxLjUwMiAxLjUwMiAwIDAgMCAwLTMuMDAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvY2F0aW9uX3NlYXJjaGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4bC4wMDcuMTAydjEuNzg4YTcuNSA3LjUgMCAwIDEgNi43MTMgNi43MTRsLjAzNy0uMDAyaDEuNzVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNsLS4xMDIuMDA3LTEuNzg4LS4wMDFhNy41IDcuNSAwIDAgMS02LjcxNCA2LjcxNGwuMDAyLjAzN3YxLjc1YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMi4wMDEtMS43ODhhNy41IDcuNSAwIDAgMS02LjcxNC02LjcxNGwtLjAzNy4wMDJIMi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M2wuMTAyLS4wMDdoMS43ODhhNy41IDcuNSAwIDAgMSA2LjcxNC02LjcxM0wxMS4yNSA0LjVWMi43NUEuNzUuNzUgMCAwIDEgMTIgMm0wIDRhNiA2IDAgMSAwIDAgMTIgNiA2IDAgMCAwIDAtMTJtMCAyYTQgNCAwIDEgMSAwIDggNCA0IDAgMCAxIDAtOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsb2NrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMTUuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM004IDZhNCA0IDAgMSAxIDggMHYxaC43NUEzLjI1IDMuMjUgMCAwIDEgMjAgMTAuMjV2Ny41QTMuMjUgMy4yNSAwIDAgMSAxNi43NSAyMWgtOS41QTMuMjUgMy4yNSAwIDAgMSA0IDE3Ljc1di03LjVBMy4yNSAzLjI1IDAgMCAxIDcuMjUgN0g4em00LTIuNUEyLjUgMi41IDAgMCAwIDkuNSA2djFoNVY2QTIuNSAyLjUgMCAwIDAgMTIgMy41bS00Ljc1IDVhMS43NSAxLjc1IDAgMCAwLTEuNzUgMS43NXY3LjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWg5LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNy41YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvY2tfb3BlblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE2IDVhMi41IDIuNSAwIDAgMSA1IDB2LjI1YS43NS43NSAwIDAgMCAxLjUgMFY1YTQgNCAwIDAgMC04IDB2Mkg3LjI1QTMuMjUgMy4yNSAwIDAgMCA0IDEwLjI1djcuNUEzLjI1IDMuMjUgMCAwIDAgNy4yNSAyMWg5LjVBMy4yNSAzLjI1IDAgMCAwIDIwIDE3Ljc1di03LjVBMy4yNSAzLjI1IDAgMCAwIDE2Ljc1IDdIMTZ6TTcuMjUgOC41aDkuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djcuNWExLjc1IDEuNzUgMCAwIDEtMS43NSAxLjc1aC05LjVhMS43NSAxLjc1IDAgMCAxLTEuNzUtMS43NXYtNy41YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVtNC43NSA3YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvZ2luXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjYgMzBIMTRhMiAyIDAgMCAxLTItMnYtM2gydjNoMTJWNEgxNHYzaC0yVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjI0YTIgMiAwIDAgMS0yIDJcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNC41OSAyMC41OSAxOC4xNyAxN0g0di0yaDE0LjE3bC0zLjU4LTMuNTlMMTYgMTBsNiA2LTYgNnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibG9nb3V0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC41MDIgMTEuNWExLjAwMiAxLjAwMiAwIDEgMSAwIDIuMDA0IDEuMDAyIDEuMDAyIDAgMCAxIDAtMi4wMDVNMTIgNC4zNTN2Ni42NWg3LjQ0MkwxNy43MiA5LjI4YS43NS43NSAwIDAgMS0uMDczLS45NzdsLjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc2LS4wNzJsLjA4NC4wNzIgMi45OTcgMi45OThhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NC0yLjk5NiAzLjAwM2EuNzUuNzUgMCAwIDEtMS4xMzQtLjk3NWwuMDcyLS4wODQgMS43MTMtMS43MTdoLTcuNDMxTDEyIDE5LjI1YS43NS43NSAwIDAgMS0uODguNzM4bC04LjUtMS41MDFhLjc1Ljc1IDAgMCAxLS42Mi0uNzM5VjUuNzVhLjc1Ljc1IDAgMCAxIC42MjgtLjc0bDguNS0xLjM5NmEuNzUuNzUgMCAwIDEgLjg3Mi43NG0tMS41Ljg4My03IDEuMTV2MTAuNzMybDcgMS4yMzZ6TTEzIDE4LjVoLjc2NWwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAwIC42NDgtLjc0NGwtLjAwNy00LjI1SDEzem0uMDAyLTguNUwxMyA4LjcyNVY1aC43NDVhLjc1Ljc1IDAgMCAxIC43NDMuNjQ3bC4wMDcuMTAxLjAwNyA0LjI1MnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibWFpbFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMjUgNGgxMy41YTMuMjUgMy4yNSAwIDAgMSAzLjI0NSAzLjA2NkwyMiA3LjI1djkuNWEzLjI1IDMuMjUgMCAwIDEtMy4wNjYgMy4yNDVMMTguNzUgMjBINS4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNDUtMy4wNjZMMiAxNi43NXYtOS41YTMuMjUgMy4yNSAwIDAgMSAzLjA2Ni0zLjI0NXpoMTMuNXpNMjAuNSA5LjM3M2wtOC4xNSA0LjI5YS43NS43NSAwIDAgMS0uNjAzLjA0M2wtLjA5Ni0uMDQyTDMuNSA5LjM3NHY3LjM3NmExLjc1IDEuNzUgMCAwIDAgMS42MDYgMS43NDRsLjE0NC4wMDZoMTMuNWExLjc1IDEuNzUgMCAwIDAgMS43NDQtMS42MDdsLjAwNi0uMTQzek0xOC43NSA1LjVINS4yNWExLjc1IDEuNzUgMCAwIDAtMS43NDQgMS42MDZMMy41IDcuMjV2LjQyOWw4LjUgNC40NzQgOC41LTQuNDc1VjcuMjVhMS43NSAxLjc1IDAgMCAwLTEuNjA3LTEuNzQ0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtYXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm05LjIwMyA0IC4wNDctLjAwMi4wNDYuMDAxLjA2OC4wMDcuMDE2LjAwNHEuMTI5LjAyLjI1LjA5MmwuMDUzLjAzNCA1LjA3IDMuNTY1TDE5LjgyIDQuMTRhLjc1Ljc1IDAgMCAxIDEuMTc0LjUxbC4wMDcuMTA0djEwLjYzMmEuNzUuNzUgMCAwIDEtLjIzOC41NDhsLS4wOC4wNjYtNS41IDMuODY2YS43NC43NCAwIDAgMS0uODI4LjAyM0w5LjI1IDE2LjI5N2wtNS4wNyAzLjU2NWEuNzUuNzUgMCAwIDEtMS4xNzQtLjUxbC0uMDA3LS4xMDRWOC42MTZhLjc1Ljc1IDAgMCAxIC4yMzgtLjU0OGwuMDgtLjA2NiA1LjUtMy44NjZhLjguOCAwIDAgMSAuMi0uMTAxbC4xMjMtLjAyOHptMTAuMjk4IDIuMTk3LTQgMi44MTJ2OC43OTlsNC0yLjgxMnpNOC41IDYuMTkzbC00IDIuODEydjguOGw0LTIuODEzem0xLjUwMiAwdjguOGw0IDIuODExVjkuMDA1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAxMWEuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNy4xMDJ2LjVhNi43NSA2Ljc1IDAgMCAxLTYuMjQ5IDYuNzMybC0uMDAxIDIuMjY4YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMnYtMi4yNjhhNi43NSA2Ljc1IDAgMCAxLTYuMjQ2LTYuNDk2TDUgMTIuMjV2LS41YS43NS43NSAwIDAgMSAxLjQ5My0uMTAybC4wMDcuMTAydi41YTUuMjUgNS4yNSAwIDAgMCA1LjAzNCA1LjI0NmwuMjE2LjAwNGguNWE1LjI1IDUuMjUgMCAwIDAgNS4yNDYtNS4wMzRsLjAwNC0uMjE2di0uNWEuNzUuNzUgMCAwIDEgLjc1LS43NU0xMiAyYTQgNCAwIDAgMSA0IDR2NmE0IDQgMCAwIDEtOCAwVjZhNCA0IDAgMCAxIDQtNG0wIDEuNUEyLjUgMi41IDAgMCAwIDkuNSA2djZhMi41IDIuNSAwIDAgMCA1IDBWNkEyLjUgMi41IDAgMCAwIDEyIDMuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNfcmVjb3JkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTEgMTcuNWMwIDEuMDk2LjI3MSAyLjEyOS43NSAzLjAzNXYuNzE1YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMnYtMi4yNjhhNi43NSA2Ljc1IDAgMCAxLTYuMjQ2LTYuNDk2TDQgMTIuMjV2LS41YS43NS43NSAwIDAgMSAxLjQ5My0uMTAybC4wMDcuMTAydi41YTUuMjUgNS4yNSAwIDAgMCA1LjAzNCA1LjI0NmwuMjE2LjAwNHptLjE3NS0xLjUwNEE2LjUxIDYuNTEgMCAwIDEgMTUgMTEuNDk4VjZhNCA0IDAgMCAwLTggMHY2YTQgNCAwIDAgMCA0LjE3NSAzLjk5Nk0yMCAxNy41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwbTMgMGE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS05LjUgMGE0IDQgMCAxIDAgOCAwIDQgNCAwIDAgMC04IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibWljcm9jaGlwX2FpXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk04Ljc1IDRhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMjVIN0ExLjc1IDEuNzUgMCAwIDAgNS4yNSA3di4yNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djIuNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djIuNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1VjE3YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoLjI1VjIwYS43NS43NSAwIDAgMCAxLjUgMHYtMS4yNWgyLjVWMjBhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjI1aDIuNVYyMGEuNzUuNzUgMCAwIDAgMS41IDB2LTEuMjVIMTdBMS43NSAxLjc1IDAgMCAwIDE4Ljc1IDE3di0uMjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1di0yLjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1di0yLjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1VjdBMS43NSAxLjc1IDAgMCAwIDE3IDUuMjVoLS4yNVY0YS43NS43NSAwIDAgMC0xLjUgMHYxLjI1aC0yLjVWNGEuNzUuNzUgMCAwIDAtMS41IDB2MS4yNWgtMi41em0tMiAzQS4yNS4yNSAwIDAgMSA3IDYuNzVoMTBhLjI1LjI1IDAgMCAxIC4yNS4yNXYxMGEuMjUuMjUgMCAwIDEtLjI1LjI1SDdhLjI1LjI1IDAgMCAxLS4yNS0uMjV6bTUuMDQ5IDcuNzUzLS4yNzUtLjc3Mkg5LjQ5N2wtLjI3NS43NzJhLjc1Ljc1IDAgMCAxLTEuNDEzLS41MDRsMS43LTQuNzcuMDAzLS4wMDkuMDA0LS4wMWMuMTUyLS4zOTIuNTE2LS43MTEuOTk0LS43MTEuNDc5IDAgLjg0Mi4zMTkuOTk1LjcxMmwuMDAzLjAwOS4wMDQuMDEgMS43IDQuNzdhLjc1Ljc1IDAgMCAxLTEuNDEzLjUwM20tMS4yODktMy42MTUuNDc5IDEuMzQzaC0uOTU4em0zLjc0LTEuNjRhLjc1Ljc1IDAgMCAxIDEuNSAwdjUuMDAzYS43NS43NSAwIDEgMS0xLjUgMHpcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNyb3NvZnRcIiB2aWV3Qm94PVwiMCAwIDIxIDIxXCI+XG4gICAgPHBhdGggZmlsbD1cIiNmMjUwMjJcIiBkPVwiTTEgMWg5djlIMXpcIiAvPlxuICAgIDxwYXRoIGZpbGw9XCIjMDBhNGVmXCIgZD1cIk0xIDExaDl2OUgxelwiIC8+XG4gICAgPHBhdGggZmlsbD1cIiM3ZmJhMDBcIiBkPVwiTTExIDFoOXY5aC05elwiIC8+XG4gICAgPHBhdGggZmlsbD1cIiNmZmI5MDBcIiBkPVwiTTExIDExaDl2OWgtOXpcIiAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cIm1vb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMC4wMjYgMTcuMDAxYy0yLjc2MiA0Ljc4NC04Ljg3OSA2LjQyMy0xMy42NjMgMy42NjFBMTAgMTAgMCAwIDEgMy4xMyAxNy42OGEuNzUuNzUgMCAwIDEgLjM2NS0xLjEzMmMzLjc2Ny0xLjM0OCA1Ljc4NS0yLjkxIDYuOTU2LTUuMTQ2IDEuMjMzLTIuMzUzIDEuNTUxLTQuOTMuNjg5LTguNDYzYS43NS43NSAwIDAgMSAuNzY5LS45MjcgOS45NiA5Ljk2IDAgMCAxIDQuNDU3IDEuMzI3YzQuNzg0IDIuNzYyIDYuNDIzIDguODc5IDMuNjYgMTMuNjYybS04LjI0Ny00LjkwM2MtMS4yNTIgMi4zODktMy4zMTIgNC4xLTYuODE4IDUuNDk5YTguNSA4LjUgMCAwIDAgMi4xNTIgMS43NjYgOC41MDIgOC41MDIgMCAwIDAgOC41MDItMTQuNzI1IDguNSA4LjUgMCAwIDAtMi43OTItMS4wMTVjLjY0NyAzLjM4NC4yMyA2LjA0My0xLjA0NSA4LjQ3NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtb3JlX2hvcml6b250YWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03Ljc1IDEyYTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBtNiAwYTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBNMTggMTMuNzVhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtb3JlX3ZlcnRpY2FsXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNy43NWExLjc1IDEuNzUgMCAxIDEgMC0zLjUgMS43NSAxLjc1IDAgMCAxIDAgMy41bTAgNmExLjc1IDEuNzUgMCAxIDEgMC0zLjUgMS43NSAxLjc1IDAgMCAxIDAgMy41TTEwLjI1IDE4YTEuNzUgMS43NSAwIDEgMCAzLjUgMCAxLjc1IDEuNzUgMCAwIDAtMy41IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibmF2aWdhdGlvblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5Ljk1OCAyLjEwNGMxLjIxMy0uNDY3IDIuNDA1LjcyNSAxLjkzOCAxLjkzOEwxNS4zNiAyMS4wMzhjLS41MjIgMS4zNi0yLjQ4IDEuMjUyLTIuODUtLjE1NmwtMS44NDUtNy4wMTFhLjc1Ljc1IDAgMCAwLS41MzUtLjUzNWwtNy4wMS0xLjg0NWMtMS40MDktLjM3LTEuNTE2LTIuMzI4LS4xNTctMi44NXptLjUzOCAxLjRMMy41IDEwLjA0bDcuMDExIDEuODQ1YTIuMjUgMi4yNSAwIDAgMSAxLjYwMyAxLjYwM2wxLjg0NSA3LjAxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJub3RpZmljYXRpb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAxLjk5NmE3LjQ5IDcuNDkgMCAwIDEgNy40OTYgNy4yNWwuMDA0LjI1djQuMDk3bDEuMzggMy4xNTZhMS4yNSAxLjI1IDAgMCAxLTEuMTQ1IDEuNzVMMTUgMTguNTAyYTMgMyAwIDAgMS01Ljk5NS4xNzdMOSAxOC40OTlINC4yNzVhMS4yNSAxLjI1IDAgMCAxLTEuMTQ3LTEuNzQ3TDQuNSAxMy41OTRWOS40OTZjMC00LjE1NSAzLjM1Mi03LjUgNy41LTcuNU0xMy41IDE4LjVsLTMgLjAwMmExLjUgMS41IDAgMCAwIDIuOTkzLjE0NXpNMTIgMy40OTZjLTMuMzIgMC02IDIuNjc0LTYgNnY0LjQxTDQuNjU2IDE3aDE0LjY5N0wxOCAxMy45MDdWOS41MDlsLS4wMDMtLjIyNUE1Ljk5IDUuOTkgMCAwIDAgMTIgMy40OTZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibm90aWZpY2F0aW9uX29mZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTUuMjIgNi4yOC0zLTNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxOC41IDE4LjVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMy4yOC0zLjI4LTIuNDQuMDAxYTMgMyAwIDAgMS01Ljk5NS4xNzdMOSAxOC40OTlINC4yNzVhMS4yNSAxLjI1IDAgMCAxLTEuMTQ3LTEuNzQ3TDQuNSAxMy41OTRWOS40OTZjMC0xLjE1Mi4yNTgtMi4yNDIuNzItMy4yMTZNMTUuOTQgMTcgNi4zNjQgNy40MjVBNiA2IDAgMCAwIDYgOS40OTZ2NC40MUw0LjY1NiAxN3ptLTIuNDQgMS41LTMgLjAwMWExLjUgMS41IDAgMCAwIDIuOTkzLjE0NXptNC41LTQuNTkzLjcwOCAxLjYyIDIuMTg4IDIuMTg3YTEuMjUgMS4yNSAwIDAgMC0uMDE2LS45NjVsLTEuMzgtMy4xNTZWOS40OTZsLS4wMDQtLjI1QTcuNDkgNy40OSAwIDAgMCAxMiAxLjk5NSA3LjQ4IDcuNDggMCAwIDAgNy4wNDMgMy44NmwxLjA2NCAxLjA2NEE1Ljk4IDUuOTggMCAwIDEgMTIgMy40OTZhNS45OSA1Ljk5IDAgMCAxIDUuOTk3IDUuNzg4bC4wMDMuMjI1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJvZmZlci1yZXF1ZXN0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNzUgMTEuNWEuNzUuNzUgMCAwIDAtLjcyLjU0Yy40MjMuMjc1LjgxMy41OTggMS4xNi45Nmg1LjA2YS43NS43NSAwIDAgMCAwLTEuNXpNNS41IDR2Ny4wNzZhNi41IDYuNSAwIDAgMC0xLjUuNDIyVjRhMiAyIDAgMCAxIDItMmg2LjE3MnEuMDQyLjAwMS4wODIuMDA3LjAzLjAwNS4wNTkuMDA3Yy4yMTUuMDE1LjQyNy4wNTYuNjI0LjEzOC4wNTcuMDI0LjExMi4wNTYuMTY2LjA4N2wuMDUuMDI5LjA0Ny4wMjRhMSAxIDAgMCAxIC4wODEuMDQ0Yy4wNzguMDUzLjE0OC4xMTYuMjE5LjE4bC4wMzYuMDMuMDQ5LjA0IDUuODI5IDUuODI4QTIgMiAwIDAgMSAyMCA5LjgyOFYyMGEyIDIgMCAwIDEtMiAyaC02LjgxYTYuNSA2LjUgMCAwIDAgMS4wNzgtMS41SDE4YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjVtMTAuNzUgMTVoLTMuNDI0QTYuNSA2LjUgMCAwIDAgMTMgMTcuNWgzLjI1YS43NS43NSAwIDAgMSAwIDEuNW0wLTNoLTMuNDI0YTYuNSA2LjUgMCAwIDAtLjU1OC0xLjVoMy45ODJhLjc1Ljc1IDAgMCAxIDAgMS41TTEzLjUgNC42MjFWOGEuNS41IDAgMCAwIC41LjVoMy4zNzh6TTYuNSAyM2E1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExbTMtNWEuNS41IDAgMCAwIDAtMUg0LjcwN2wxLjY0Ny0xLjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOGwtMi41IDIuNWEuNS41IDAgMCAwIDAgLjcwOGwyLjUgMi41YS41LjUgMCAwIDAgLjcwOC0uNzA4TDQuNzA3IDE4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJwYXJlbnRfY2hpbGRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDExdjRIOWEyIDIgMCAwIDAtMiAydjRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMkg5di00aDE0djRoLTNhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTN2LTRhMiAyIDAgMCAwLTItMmgtNnYtNFpNMTIgMjhINHYtNGg4Wm0xNiAwaC04di00aDhaTTQgNGgyNHY2SDRaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInBlb3BsZV9jb21tdW5pdHlcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03LjUgMy41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zTTQuNSA1YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMG0tLjczMiA0QzIuNzkgOSAyIDkuNzkxIDIgMTAuNzY4di4zNmMwIC4yMDcgMCAxLjQwOC43IDIuNTc1LjU0OC45MSAxLjQ3NyAxLjcyNyAyLjk3NSAyLjA5M2EyLjc4IDIuNzggMCAwIDEgMS4wNjItMS4zMzVjLTEuNjAzLS4xNzEtMi4zNjEtLjg4My0yLjc1LTEuNTMtLjQ4NC0uODA2LS40ODctMS42NjQtLjQ4Ny0xLjgwNnYtLjM1N2MwLS4xNDguMTItLjI2OC4yNjgtLjI2OEg4LjAzQTQgNCAwIDAgMSA4LjUzNSA5em0xMS42OTcgMGMuMjYxLjQ1Mi40MzcuOTU5LjUwNCAxLjVoNC4yNjNjLjE0OCAwIC4yNjguMTIuMjY4LjI2OHYuMzU3YzAgLjE0Mi0uMDAzIDEtLjQ4NyAxLjgwNS0uMzg5LjY0OC0xLjE0NyAxLjM2LTIuNzUgMS41MzEuNDguMzIuODU2Ljc4NiAxLjA2MiAxLjMzNSAxLjQ5OC0uMzY2IDIuNDI3LTEuMTgzIDIuOTc0LTIuMDkzLjcwMS0xLjE2Ny43MDEtMi4zNjcuNzAxLTIuNTc2di0uMzZDMjIgOS43OTIgMjEuMjA5IDkgMjAuMjMyIDl6TTE1IDVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBtMS41LTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02TTEyIDkuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM005IDExYTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMG0tMi41IDUuNzY4QzYuNSAxNS43OSA3LjI5MSAxNSA4LjI2OCAxNWg3LjQ2NGMuOTc3IDAgMS43NjguNzkxIDEuNzY4IDEuNzY4di4zNmMwIC4yMDcgMCAxLjQwOC0uNyAyLjU3NUMxNi4wNTcgMjAuOTM3IDE0LjYxMyAyMiAxMiAyMnMtNC4wNTgtMS4wNjMtNC44LTIuMjk3Yy0uNy0xLjE2Ny0uNy0yLjM2Ny0uNy0yLjU3NnptMS43NjgtLjI2OGEuMjcuMjcgMCAwIDAtLjI2OC4yNjh2LjM1N2MwIC4xNDIuMDAzIDEgLjQ4NyAxLjgwNS40NDYuNzQzIDEuMzc3IDEuNTcgMy41MTMgMS41N3MzLjA2Ny0uODI3IDMuNTEzLTEuNTdjLjQ4NC0uODA1LjQ4Ny0xLjY2My40ODctMS44MDV2LS4zNTdhLjI3LjI3IDAgMCAwLS4yNjgtLjI2OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwicGVyc29uX3N3YXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS43NSAxMy45OTdjLjk4MSAwIDEuODE1LjYyOCAyLjEyMyAxLjUwM2gtMi4wNTZsLS4wNjYtLjAwM0g0LjI0OWEuNzUuNzUgMCAwIDAtLjc0OS43NXYuNTc3YzAgLjUzNS4xOTEgMS4wNTQuNTM5IDEuNDYgMS4yNTMgMS40NjkgMy4yMiAyLjIxNCA1Ljk1NyAyLjIxNGguMTY4Yy4wODYuMTgzLjIwMy4zNTIuMzUuNDk4bC45MzQuOTMzYTE1IDE1IDAgMCAxLTEuNDUyLjA3Yy0zLjE0NSAwLTUuNTMxLS45MDYtNy4wOTgtMi43NEEzLjc1IDMuNzUgMCAwIDEgMiAxNi44MjR2LS41NzhhMi4yNSAyLjI1IDAgMCAxIDIuMjQ5LTIuMjQ5ek05Ljk5NyAyLjAwMmE1IDUgMCAxIDEgMCAxMCA1IDUgMCAwIDEgMC0xMG0wIDEuNWEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN200Ljc4NCAxNC4yODJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi41IDIuNWEuNzUuNzUgMCAwIDAgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNjFsLTEuMjItMS4yMmg2Ljg4bC0xLjIyIDEuMjJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLjUtMi40OThhLjc1Ljc1IDAgMCAwIDAtMS4wNmwtMi41LTIuNTAyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMS4yMTggMS4yMmgtNi44Nzd6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInBob25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTUuNzUgMkEyLjI1IDIuMjUgMCAwIDEgMTggNC4yNXYxNS41QTIuMjUgMi4yNSAwIDAgMSAxNS43NSAyMmgtNy41QTIuMjUgMi4yNSAwIDAgMSA2IDE5Ljc1VjQuMjVBMi4yNSAyLjI1IDAgMCAxIDguMjUgMnptMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDE0LjMzNi43NS43NS43NWg3LjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NW0tMi41MDEgMTRhLjc1Ljc1IDAgMCAxIC4wMDIgMS41bC0yLjUuMDA0YS43NS43NSAwIDAgMS0uMDAyLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwicXVlc3Rpb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0YTUgNSAwIDAgMC01IDUgMSAxIDAgMCAwIDIgMGMwLTEuNjU4IDEuMzQyLTMgMy0zczMgMS4zNDIgMyAzYzAgLjgxNi0uMTk5IDEuMjk0LS40MzggMS42MjktLjI2Mi4zNjUtLjYyNS42MzgtMS4xMjguOTg1bC0uMTE2LjA3OGMtLjQ0Ny4zMDYtMS4wMjMuNjk5LTEuNDY5IDEuMjQ3LS41MjcuNjQ4LS44NDkgMS40NjctLjg0OSAyLjU2MXYuNWExIDEgMCAxIDAgMiAwdi0uNWMwLS42NTYuMTc4LTEuMDI0LjQtMS4yOTkuMjU3LS4zMTQuNjAzLS41NTIgMS4xMTQtLjkwM2wuMDUzLS4wMzdjLjQ5Ni0uMzQgMS4xMzMtLjc4NiAxLjYyLTEuNDY4QzE2LjcgMTEuMDgxIDE3IDEwLjE4MyAxNyA5YTUgNSAwIDAgMC01LTVtMCAxNy4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInF1ZXN0aW9uX2NpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3OCAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjIgMiAxMiA2LjQ3NyAyIDEyIDJtMCAxLjY2N2MtNC41OTUgMC04LjMzMyAzLjczOC04LjMzMyA4LjMzM1M3LjQwNSAyMC4zMzMgMTIgMjAuMzMzczguMzMzLTMuNzM4IDguMzMzLTguMzMzUzE2LjU5NSAzLjY2NyAxMiAzLjY2N00xMiAxNS41YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMm0wLTguNzVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NWMwIDEuMDEtLjI5NyAxLjU3NC0xLjA1MSAyLjM1OWwtLjE2OS4xNzFjLS42MjIuNjIyLS43OC44ODYtLjc4IDEuNDdhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtMS4wMS4yOTctMS41NzQgMS4wNTEtMi4zNTlsLjE2OS0uMTcxYy42MjItLjYyMi43OC0uODg2Ljc4LTEuNDdhMS4yNSAxLjI1IDAgMCAwLTIuNDkzLS4xMjhsLS4wMDcuMTI4YS43NS43NSAwIDAgMS0xLjUgMEEyLjc1IDIuNzUgMCAwIDEgMTIgNi43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyYWRpb19idXR0b25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyMi4wMDJjNS41MjQgMCAxMC4wMDItNC40NzggMTAuMDAyLTEwLjAwMSAwLTUuNTI0LTQuNDc4LTEwLjAwMi0xMC4wMDItMTAuMDAyUzEuOTk4IDYuNDc3IDEuOTk4IDEyLjAwMWMwIDUuNTIzIDQuNDc4IDEwLjAwMSAxMC4wMDIgMTAuMDAxbTAtMS41QTguNTAyIDguNTAyIDAgMSAxIDEyIDMuNWE4LjUwMiA4LjUwMiAwIDAgMSAwIDE3LjAwM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyYWRpb19idXR0b25fZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OTljNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLjAwMS0xMC4wMDIgMTAuMDAxUzEuOTk4IDE3LjUyNCAxLjk5OCAxMi4wMDFDMS45OTggNi40NzcgNi40NzYgMS45OTkgMTIgMS45OTltMCAxLjVhOC41MDIgOC41MDIgMCAxIDAgMCAxNy4wMDNBOC41MDIgOC41MDIgMCAwIDAgMTIgMy41TTExLjk5NiA2YTUuOTk4IDUuOTk4IDAgMSAxIDAgMTEuOTk2IDUuOTk4IDUuOTk4IDAgMCAxIDAtMTEuOTk2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInJlY29yZF9zdG9wXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNG0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwbTUtMmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyb2NrZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMy4wNTcgNy40M2EyLjUgMi41IDAgMSAxIDMuNTM2IDMuNTM2IDIuNSAyLjUgMCAwIDEtMy41MzYtMy41MzVtMi40NzUgMS4wNjFhMSAxIDAgMSAwLTEuNDE0IDEuNDE1IDEgMSAwIDAgMCAxLjQxNC0xLjQxNW01Ljk3Ny00LjE2OWEyLjc1IDIuNzUgMCAwIDAtMS44MTEtMS44MWwtLjY2My0uMjA2YTYuNzUgNi43NSAwIDAgMC02Ljc3MyAxLjY3NGwtLjk5Ni45OTZhMy41IDMuNSAwIDAgMC00LjU3LjMyN0w1LjQ1NSA2LjU0NWEuNzUuNzUgMCAwIDAgMCAxLjA2bDEuNTkxIDEuNTkyLS4xOC4xOGExLjc1IDEuNzUgMCAwIDAgMCAyLjQ3NGwuNDk2LjQ5Ni0xLjM5Ni43OTZhLjc1Ljc1IDAgMCAwLS4xNTggMS4xODFsMy44ODkgMy44OWEuNzUuNzUgMCAwIDAgMS4xODEtLjE1OGwuNzk4LTEuMzk1LjQ5Ny40OTdhMS43NSAxLjc1IDAgMCAwIDIuNDc1IDBsLjE3Ny0uMTc3IDEuNTkgMS41OWEuNzUuNzUgMCAwIDAgMS4wNiAwbDEuMjQyLTEuMjQzYTMuNSAzLjUgMCAwIDAgLjMyOC00LjU2N2wuOTk4LS45OThhNi43NSA2Ljc1IDAgMCAwIDEuNjczLTYuNzc3em0tMi4yNTYtLjM3OGMuMzkzLjEyMi43MDEuNDMuODIzLjgyM2wuMjA3LjY2NWE1LjI1IDUuMjUgMCAwIDEtMS4zMDIgNS4yN2wtNS4zOTUgNS4zOTVhLjI1LjI1IDAgMCAxLS4zNTMgMGwtNS4zMDctNS4zMDZhLjI1LjI1IDAgMCAxIDAtLjM1NGw1LjM5Ny01LjM5NmE1LjI1IDUuMjUgMCAwIDEgNS4yNjgtMS4zMDJ6bS0xLjI4OSA5Ljg5N2MuNDUzLjc2Ni4zNSAxLjc2OS0uMzA4IDIuNDI3bC0uNzEyLjcxMi0xLjA2LTEuMDZ6TTcuNzU4IDYuMzYzYTIgMiAwIDAgMSAyLjQyOC0uMzA3bC0yLjA4IDIuMDgtMS4wNi0xLjA2em0yLjgxOCA5LjE5OS0uNTE0Ljg5Ny0yLjUtMi41Ljg5OC0uNTEzek02LjY5IDE4LjM5NGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ3NiAyLjQ3NGEuNzUuNzUgMCAwIDAgMS4wNjEgMS4wNjF6TTQuNzQ1IDE1LjM5YS43NS43NSAwIDAgMSAwIDEuMDZsLTEuMDYgMS4wNjFhLjc1Ljc1IDAgMCAxLTEuMDYxLTEuMDZsMS4wNi0xLjA2MWEuNzUuNzUgMCAwIDEgMS4wNjEgMG0zLjg4NyA0Ljk1MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDYuNTEzIDIwLjM0YS43NS43NSAwIDAgMCAxLjA2IDEuMDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNhdmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g5Ljk2NWEzLjI1IDMuMjUgMCAwIDEgMi4yOTguOTUybDIuMDM1IDIuMDM1Yy42MS42MS45NTIgMS40MzcuOTUyIDIuMjk5djkuOTY0QTIuNzUgMi43NSAwIDAgMSAxOC4yNSAyMUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE4LjI1ek01Ljc1IDQuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNUg2di01LjI1QTIuMjUgMi4yNSAwIDAgMSA4LjI1IDEyaDcuNUEyLjI1IDIuMjUgMCAwIDEgMTggMTQuMjV2NS4yNWguMjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjguMjg2YzAtLjQ2NS0uMTg0LS45MS0uNTEzLTEuMjM4bC0yLjAzNS0yLjAzNWExLjc1IDEuNzUgMCAwIDAtLjk1Mi0uNDlWNy4yNWEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI1aC00LjVBMi4yNSAyLjI1IDAgMCAxIDcgNy4yNVY0LjV6bTEwLjc1IDE1di01LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjI1em0tOC0xNXYyLjc1YzAgLjQxNC4zMzYuNzUuNzUuNzVoNC41YS43NS43NSAwIDAgMCAuNzUtLjc1VjQuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2F2ZV9hbGxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01Ljc1IDE4QTIuNzUgMi43NSAwIDAgMSAzIDE1LjI1di05LjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g2Ljk2NGEzLjI1IDMuMjUgMCAwIDEgMi4yOTkuOTUybDIuMDM1IDIuMDM1Yy42MS42MS45NTIgMS40MzcuOTUyIDIuMjk5djYuOTY0QTIuNzUgMi43NSAwIDAgMSAxNS4yNSAxOHpNNC41IDUuNzV2OS41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDZ2LTMuMjVBMi4yNSAyLjI1IDAgMCAxIDguMjUgMTFoNC41QTIuMjUgMi4yNSAwIDAgMSAxNSAxMy4yNXYzLjI1aC4yNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWOC4yODZjMC0uNDY1LS4xODQtLjkxLS41MTMtMS4yMzhMMTQgNS4wNjFWNi4yNWEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI1aC0yLjVBMi4yNSAyLjI1IDAgMCAxIDcgNi4yNVY0LjVINS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVtOSAxMC43NXYtMy4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMC0uNzUuNzV2My4yNXptLTUtMTAuMjVjMCAuNDE0LjMzNi43NS43NS43NWgyLjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNC41aC00ek0xMC43NSAyMWE0Ljc0IDQuNzQgMCAwIDEtMy40NjQtMS41aDguOTY0YTMuMjUgMy4yNSAwIDAgMCAzLjI1LTMuMjVWOC40NGwuNTQ4LjU0OGMuNjEuNjA5Ljk1MiAxLjQzNi45NTIgMi4yOTh2NC45NjRBNC43NSA0Ljc1IDAgMCAxIDE2LjI1IDIxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzY2FuX3RleHRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01LjI1IDMuNUExLjc1IDEuNzUgMCAwIDAgMy41IDUuMjV2M2EuNzUuNzUgMCAwIDEtMS41IDB2LTNBMy4yNSAzLjI1IDAgMCAxIDUuMjUgMmgzYS43NS43NSAwIDAgMSAwIDEuNXptMCAxN2ExLjc1IDEuNzUgMCAwIDEtMS43NS0xLjc1di0zYS43NS43NSAwIDAgMC0xLjUgMHYzQTMuMjUgMy4yNSAwIDAgMCA1LjI1IDIyaDNhLjc1Ljc1IDAgMCAwIDAtMS41ek0yMC41IDUuMjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtM2EuNzUuNzUgMCAwIDEgMC0xLjVoM0EzLjI1IDMuMjUgMCAwIDEgMjIgNS4yNXYzYS43NS43NSAwIDAgMS0xLjUgMHpNMTguNzUgMjAuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1di0zYS43NS43NSAwIDAgMSAxLjUgMHYzQTMuMjUgMy4yNSAwIDAgMSAxOC43NSAyMmgtM2EuNzUuNzUgMCAwIDEgMC0xLjV6TTcuNzUgN2EuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNXpNNyAxMS43NWEuNzUuNzUgMCAwIDEgLjc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVNNy43NSAxNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2NyZWVuXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2OC41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE4aDE0LjVBMi43NSAyLjc1IDAgMCAwIDIyIDE1LjI1di04LjVBMi43NSAyLjc1IDAgMCAwIDE5LjI1IDR6TTMuNSA2Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDE0LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2OC41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg0Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV6TTUuNzUgMTkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNlYXJjaFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuNSAxMGE1LjUgNS41IDAgMSAxIDExIDAgNS41IDUuNSAwIDAgMS0xMSAwTTEwIDNhNyA3IDAgMSAwIDQuMzkxIDEyLjQ1Mmw1LjMyOSA1LjMyOGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC01LjMyOC01LjMyOUE3IDcgMCAwIDAgMTAgM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzZW5kXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS42OTQgMTIgMi4yOTkgMy4yNzJhLjc1Ljc1IDAgMCAxIC45NDItLjk4MmwuMDkzLjAzOSAxOCA5YS43NS43NSAwIDAgMSAuMDk3IDEuMjg0bC0uMDk3LjA1OC0xOCA5Yy0uNTgzLjI5MS0xLjIxNy0uMjQ1LTEuMDY1LS44NDhsLjAzLS4wOTV6TDIuMjk5IDMuMjcyek00LjQwMiA0LjU0bDIuNjEgNi43MWg2LjYyN2EuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNy4xMDJhLjc1Ljc1IDAgMCAxLS42NDkuNzQzbC0uMTAxLjAwN0g3LjAxbC0yLjYwOSA2LjcxTDE5LjMyMiAxMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2V0dGluZ3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMi4wMTIgMi4yNWMuNzM0LjAwOCAxLjQ2NS4wOTMgMi4xODIuMjUzYS43NS43NSAwIDAgMSAuNTgyLjY0OWwuMTcgMS41MjdhMS4zODQgMS4zODQgMCAwIDAgMS45MjcgMS4xMTZsMS40LS42MTVhLjc1Ljc1IDAgMCAxIC44NS4xNzQgOS44IDkuOCAwIDAgMSAyLjIwNSAzLjc5Mi43NS43NSAwIDAgMS0uMjcyLjgyNWwtMS4yNDEuOTE2YTEuMzggMS4zOCAwIDAgMCAwIDIuMjI2bDEuMjQzLjkxNWEuNzUuNzUgMCAwIDEgLjI3Mi44MjYgOS44IDkuOCAwIDAgMS0yLjIwNCAzLjc5Mi43NS43NSAwIDAgMS0uODQ5LjE3NWwtMS40MDYtLjYxN2ExLjM4IDEuMzggMCAwIDAtMS45MjYgMS4xMTRsLS4xNyAxLjUyNmEuNzUuNzUgMCAwIDEtLjU3MS42NDcgOS41IDkuNSAwIDAgMS00LjQwNiAwIC43NS43NSAwIDAgMS0uNTcyLS42NDdsLS4xNjktMS41MjRhMS4zODIgMS4zODIgMCAwIDAtMS45MjUtMS4xMWwtMS40MDYuNjE2YS43NS43NSAwIDAgMS0uODUtLjE3NSA5LjggOS44IDAgMCAxLTIuMjAzLTMuNzk2Ljc1Ljc1IDAgMCAxIC4yNzItLjgyNmwxLjI0My0uOTE2YTEuMzggMS4zOCAwIDAgMCAwLTIuMjI2bC0xLjI0My0uOTE0YS43NS43NSAwIDAgMS0uMjcyLS44MjYgOS44IDkuOCAwIDAgMSAyLjIwNS0zLjc5Mi43NS43NSAwIDAgMSAuODUtLjE3NGwxLjQuNjE1YTEuMzg3IDEuMzg3IDAgMCAwIDEuOTMtMS4xMThsLjE3LTEuNTI2YS43NS43NSAwIDAgMSAuNTgzLS42NXExLjA3NC0uMjM4IDIuMjAxLS4yNTJtMCAxLjVhOSA5IDAgMCAwLTEuMzU0LjExN2wtLjExLjk3N0EyLjg4NiAyLjg4NiAwIDAgMSA2LjUyNiA3LjE3bC0uODk5LS4zOTRBOC4zIDguMyAwIDAgMCA0LjI4IDkuMDkybC43OTcuNTg3YTIuODggMi44OCAwIDAgMSAuMDAxIDQuNjQzbC0uNzk5LjU4OGMuMzIuODQyLjc3NiAxLjYyNiAxLjM0OCAyLjMyMmwuOTA1LS4zOTdhMi44ODIgMi44ODIgMCAwIDEgNC4wMTcgMi4zMThsLjEwOS45ODRjLjg5LjE1IDEuNzk5LjE1IDIuNjg4IDBsLjExLS45ODRhMi44OCAyLjg4IDAgMCAxIDQuMDE4LTIuMzIybC45MDQuMzk2YTguMyA4LjMgMCAwIDAgMS4zNDgtMi4zMThsLS43OTgtLjU4OGEyLjg4IDIuODggMCAwIDEtLjAwMS00LjY0M2wuNzk3LS41ODdhOC4zIDguMyAwIDAgMC0xLjM0OC0yLjMxN2wtLjg5Ny4zOTNhMi44ODQgMi44ODQgMCAwIDEtNC4wMjMtMi4zMjRsLS4xMDktLjk3NmE5IDkgMCAwIDAtMS4zMzQtLjExN00xMiA4LjI1YTMuNzUgMy43NSAwIDEgMSAwIDcuNSAzLjc1IDMuNzUgMCAwIDEgMC03LjVtMCAxLjVhMi4yNSAyLjI1IDAgMSAwIDAgNC41IDIuMjUgMi4yNSAwIDAgMCAwLTQuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGllbGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zIDUuNzVBLjc1Ljc1IDAgMCAxIDMuNzUgNWMyLjY2MyAwIDUuMjU4LS45NDMgNy44LTIuODVhLjc1Ljc1IDAgMCAxIC45IDBDMTQuOTkyIDQuMDU3IDE3LjU4NyA1IDIwLjI1IDVhLjc1Ljc1IDAgMCAxIC43NS43NVYxMWMwIDUuMDAxLTIuOTU4IDguNjc2LTguNzI1IDEwLjk0OGEuNzUuNzUgMCAwIDEtLjU1IDBDNS45NTggMTkuNjc2IDMgMTYgMyAxMXptMS41LjcyOFYxMWMwIDQuMjU2IDIuNDUzIDcuMzc5IDcuNSA5LjQ0MiA1LjA0Ny0yLjA2MyA3LjUtNS4xODYgNy41LTkuNDQyVjYuNDc4Yy0yLjU3Ny0uMTUyLTUuMDgtMS4wOS03LjUtMi44LTIuNDIgMS43MS00LjkyMyAyLjY0OC03LjUgMi44XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNoaWVsZF9kaXNtaXNzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIuNDUgMi4xNUMxNC45OTIgNC4wNTcgMTcuNTg3IDUgMjAuMjUgNWEuNzUuNzUgMCAwIDEgLjc1Ljc1VjExYzAgNS4wMDEtMi45NTggOC42NzYtOC43MjUgMTAuOTQ4YS43NS43NSAwIDAgMS0uNTUgMEM1Ljk1OCAxOS42NzYgMyAxNiAzIDExVjUuNzVBLjc1Ljc1IDAgMCAxIDMuNzUgNWMyLjY2MyAwIDUuMjU4LS45NDMgNy44LTIuODVhLjc1Ljc1IDAgMCAxIC45IDBNMTIgMy42NzhjLTIuNDIgMS43MS00LjkyMyAyLjY0OC03LjUgMi44VjExYzAgNC4yNTYgMi40NTMgNy4zNzkgNy41IDkuNDQyIDUuMDQ3LTIuMDYzIDcuNS01LjE4NiA3LjUtOS40NDJWNi40NzhjLTIuNTc3LS4xNTItNS4wOC0xLjA5LTcuNS0yLjhNOS4yOCA4LjIyMmwyLjcyNCAyLjcyMyAyLjcyNS0yLjcyM2EuNzUuNzUgMCAwIDEgLjk3NS0uMDczbC4wODQuMDczYS43NS43NSAwIDAgMSAuMDczLjk3NWwtLjA3My4wODQtMi43MjQgMi43MjMgMi43MjQgMi43MjVhLjc0OS43NDkgMCAxIDEtMS4wNiAxLjA1OWwtMi43MjQtMi43MjQtMi43MjMgMi43MjRhLjc1Ljc1IDAgMCAxLS45NzUuMDczbC0uMDg0LS4wNzNhLjc1Ljc1IDAgMCAxLS4wNzMtLjk3NWwuMDczLS4wODQgMi43MjMtMi43MjUtMi43MjMtMi43MjNBLjc1Ljc1IDAgMCAxIDkuMjggOC4yMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGllbGRfbG9ja1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTMgNS43NUEuNzUuNzUgMCAwIDEgMy43NSA1YzIuNjYzIDAgNS4yNTgtLjk0MyA3LjgtMi44NWEuNzUuNzUgMCAwIDEgLjkgMEMxNC45OTIgNC4wNTcgMTcuNTg3IDUgMjAuMjUgNWEuNzUuNzUgMCAwIDEgLjc1Ljc1VjExcTAgLjI3MS0uMDEyLjUzOWEzLjUgMy41IDAgMCAwLTEuNDg4LS44OTRWNi40NzhjLTIuNTc3LS4xNTItNS4wOC0xLjA5LTcuNS0yLjgtMi40MiAxLjcxLTQuOTIzIDIuNjQ4LTcuNSAyLjhWMTFjMCA0LjI1NiAyLjQ1MyA3LjM3OSA3LjUgOS40NDJhMjEgMjEgMCAwIDAgMS0uNDM5VjIxLjVxMCAuMDc1LjAwNC4xNDYtLjM1Ni4xNTUtLjczLjMwMmEuNzUuNzUgMCAwIDEtLjU0OSAwQzUuOTU4IDE5LjY3NiAzIDE2IDMgMTF6TTE2IDE1di0xYTIuNSAyLjUgMCAwIDEgNSAwdjFoLjVhMS41IDEuNSAwIDAgMSAxLjUgMS41djVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6bTEuNS0xdjFoMnYtMWExIDEgMCAxIDAtMiAwbTIgNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2hpZWxkX3BlcnNvblwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwIDkuNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRtMCA1YzIuNSAwIDMuNS0xLjI1NSAzLjUtMi41YTEuNSAxLjUgMCAwIDAtMS41LTEuNUg4QTEuNSAxLjUgMCAwIDAgNi41IDEyYzAgMS4yNSAxIDIuNSAzLjUgMi41bS4yNzctMTIuNDE2YS41LjUgMCAwIDAtLjU1NCAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMjk0IDIuNDIxQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuODkxIDIuMzA3IDYuNzMgNi44MiA4LjQ2N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5MyAxNi4yMyAxNyAxMy4zOSAxNyA5LjVWNWEuNS41IDAgMCAwLS40My0uNDk1IDE1LjA1IDE1LjA1IDAgMCAxLTYuMjkzLTIuNDIxTTQgNS40MjhhMTYgMTYgMCAwIDAgNS42LTIuMDgybC40LS4yNDkuNC4yNDlBMTYgMTYgMCAwIDAgMTYgNS40MjhWOS41YzAgMy4zOTItMS45NjggNS44NjMtNiA3LjQ2My00LjAzMi0xLjYtNi00LjA3MS02LTcuNDYzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGlmdHNfYWN0aXZpdHlcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS4zMTQgMy41MjdhLjc1Ljc1IDAgMSAwLS4xMi0xLjQ5NUM2LjA0OSAyLjQ0MiAyIDYuNzQ4IDIgMTJjMCA1LjUyMyA0LjQ3NyAxMCAxMCAxMCA1LjI0OSAwIDkuNTUzLTQuMDQ0IDkuOTY3LTkuMTg2YS43NS43NSAwIDEgMC0xLjQ5NS0uMTIgOC41IDguNSAwIDEgMS05LjE1OC05LjE2N202LjM4MyAxLjE0N2EuNzUuNzUgMCAwIDEgMS4wNi0uMDQ2cS4zMjIuMjk0LjYxNi42MTdhLjc1Ljc1IDAgMCAxLTEuMTA1IDEuMDEzIDkgOSAwIDAgMC0uNTI1LS41MjUuNzUuNzUgMCAwIDEtLjA0Ni0xLjA2TTExLjI1IDZhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4TDEyIDYuNzVWMTJoMy4yNWEuNzUuNzUgMCAwIDEgLjEwMiAxLjQ5M2wtLjEwMi4wMDdoLTRhLjc1Ljc1IDAgMCAxLS43NDMtLjY0OWwtLjAwNy0uMTAxdi02YS43NS43NSAwIDAgMSAuNzUtLjc1bTIuNTMxLTMuMTFhLjc1Ljc1IDAgMCAxIC45MjUtLjUyIDEwIDEwIDAgMCAxIDEuMDc0LjM3Ljc1Ljc1IDAgMSAxLS41NjcgMS4zODhxLS40NDQtLjE4Mi0uOTEyLS4zMTNhLjc1Ljc1IDAgMCAxLS41Mi0uOTI1bTcuNDc4IDUuMzI1YS43NS43NSAwIDEgMC0xLjM4OS41NjggOCA4IDAgMCAxIC4zMTUuOTE1Ljc1Ljc1IDAgMSAwIDEuNDQ0LS40MDUgMTAgMTAgMCAwIDAtLjM3LTEuMDc4XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNoaWZ0c19jaGVja21hcmtcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDExLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMS41YTEuNzUgMS43NSAwIDAgMS0xLjc1IDEuNzVoLTUuMDYzYTYuNSA2LjUgMCAwIDEtLjcwOSAxLjVoNS43NzJBMy4yNSAzLjI1IDAgMCAwIDIxIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAwIDE3Ljc1IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djUuNzcyYTYuNSA2LjUgMCAwIDEgMS41LS43MDl6bTggLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjZjMCAuNDE0LjMzNi43NS43NS43NWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyLjV6TTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tMy4xNDYtMS44NTRhLjUuNSAwIDAgMC0uNzA4IDBMNS41IDE4LjI5M2wtLjg5Ni0uODk3YS41LjUgMCAwIDAtLjcwOC43MDhsMS4yNSAxLjI1YS41LjUgMCAwIDAgLjcwOCAwbDMtM2EuNS41IDAgMCAwIDAtLjcwOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGlmdHNfb3BlblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuNSA2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMCA2LjI1IDIxaDNhLjc1Ljc1IDAgMCAwIDAtMS41aC0zYTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV6TTE0Ljc0NyAzYS43NS43NSAwIDAgMCAwIDEuNWgzLjAwM2MuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djExLjVhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NWgtMy4wMDNhLjc1Ljc1IDAgMCAwIDAgMS41aDMuMDAzQTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzek0xMi41IDYuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjZjMCAuNDE0LjMzNi43NS43NS43NWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNsaWRlX3RleHRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02Ljc1IDhhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTYgMTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1TTYuNzUgMTRhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bS0yLTEwQTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2MTAuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAyMGgxNC41QTIuNzUgMi43NSAwIDAgMCAyMiAxNy4yNVY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxOS4yNSA0ek0zLjUgNi43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEwLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDQuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3F1YWxsc1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTguMDc3IDYuODg0QTQuMDcgNC4wNyAwIDAgMSAxMS45NzMgNEMxNC4xNzQgNCAxNiA1Ljc4MyAxNiA4YTQgNCAwIDAgMS00IDRIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTJBMi41IDIuNSAwIDAgMCAxNC41IDhjMC0xLjM3My0xLjEzOC0yLjUtMi41MjctMi41LTEuMTMgMC0yLjEzOC43NDMtMi40NiAxLjgxNWwtLjA0NS4xNWEuNzUuNzUgMCAxIDEtMS40MzYtLjQzem04LjIxMiA1LjEyOUEyLjk0IDIuOTQgMCAwIDEgMTkuMDcgMTAgMi45MyAyLjkzIDAgMCAxIDIyIDEyLjkzVjEzYTMgMyAwIDAgMS0zIDNoLTEuM2EyLjc1IDIuNzUgMCAwIDEtMi40NSA0aC0uMTM1YTIuNTYgMi41NiAwIDAgMS0yLjI4NS0xLjQxLjc1Ljc1IDAgMCAxIDEuMzQtLjY3M2MuMTguMzU3LjU0NS41ODMuOTQ1LjU4M2guMTM1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNUgxOWExLjUgMS41IDAgMCAwIDEuNS0xLjV2LS4wN2MwLS43OS0uNjQtMS40My0xLjQzLTEuNDMtLjYxIDAtMS4xNjMuNC0xLjM1OC45ODdhLjc1Ljc1IDAgMCAxLTEuNDI0LS40NzRcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3RhclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwLjc4OCAzLjEwMmMuNDk1LTEuMDAzIDEuOTI2LTEuMDAzIDIuNDIxIDBsMi4zNTggNC43NzggNS4yNzMuNzY2YzEuMTA3LjE2IDEuNTQ5IDEuNTIyLjc0OCAyLjMwM2wtMy44MTYgMy43MTkuOTAxIDUuMjVjLjE5IDEuMTA0LS45NjggMS45NDUtMS45NTkgMS40MjRsLTQuNzE2LTIuNDgtNC43MTUgMi40OGMtLjk5LjUyLTIuMTQ4LS4zMi0xLjk2LTEuNDIzbC45MDEtNS4yNTEtMy44MTUtMy43MmMtLjgwMS0uNzgtLjM1OS0yLjE0MS43NDgtMi4zMDJMOC40MyA3Ljg4em0xLjIxLjkzN0w5Ljc0IDguNjE0YTEuMzUgMS4zNSAwIDAgMS0xLjAxNi43MzlsLTUuMDUuNzM0IDMuNjU0IDMuNTYyYy4zMTguMzEuNDYzLjc1Ny4zODggMS4xOTVsLS44NjIgNS4wMjkgNC41MTYtMi4zNzVhMS4zNSAxLjM1IDAgMCAxIDEuMjU3IDBsNC41MTYgMi4zNzUtLjg2Mi01LjAzYTEuMzUgMS4zNSAwIDAgMSAuMzg4LTEuMTk0bDMuNjU0LTMuNTYyLTUuMDUtLjczNGExLjM1IDEuMzUgMCAwIDEtMS4wMTYtLjczOXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3Rhcl9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMC43ODggMy4xMDJjLjQ5NS0xLjAwMyAxLjkyNi0xLjAwMyAyLjQyMSAwbDIuMzU4IDQuNzc4IDUuMjczLjc2NmMxLjEwNy4xNiAxLjU0OSAxLjUyMi43NDggMi4zMDNsLTMuODE2IDMuNzE5LjkwMSA1LjI1Yy4xOSAxLjEwNC0uOTY4IDEuOTQ1LTEuOTU5IDEuNDI0bC00LjcxNi0yLjQ4LTQuNzE1IDIuNDhjLS45OS41Mi0yLjE0OC0uMzItMS45Ni0xLjQyM2wuOTAxLTUuMjUxLTMuODE1LTMuNzJjLS44MDEtLjc4LS4zNTktMi4xNDEuNzQ4LTIuMzAyTDguNDMgNy44OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3RhdHVzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiIzIxMjEyMVwiXG4gICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgIGQ9XCJNMTkuNzUgNEEyLjI1IDIuMjUgMCAwIDEgMjIgNi4yNXYxMS41QTIuMjUgMi4yNSAwIDAgMSAxOS43NSAyMEg0LjI1QTIuMjUgMi4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVBMi4yNSAyLjI1IDAgMCAxIDQuMjUgNFptMCAxLjVINC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djExLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNS41YS43NS43NSAwIDAgMCAuNzUtLjc1VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCIjMjEyMTIxXCJcbiAgICAgIGQ9XCJNOS40MiA4LjQxNWEuNzUuNzUgMCAwIDAtMS4zNDguMDE0TDYuMzgyIDEySDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuMTA3YS43NS43NSAwIDAgMCAuNjc4LS40M2wxLjIzNC0yLjYwNiAyLjU2IDUuMTIxYS43NS43NSAwIDAgMCAxLjI3OS4xMDRsMi42OTgtMy43MzYgMS4xMyAxLjI5QS43NS43NSAwIDAgMCAxNyAxMy41aDQuMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjkxbC0xLjUyNi0xLjc0NGEuNzUuNzUgMCAwIDAtMS4xNzIuMDU1bC0yLjUyNSAzLjQ5NnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3VidHJhY3Rfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMjUgMTEuMjVoLTguNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNU02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMCA2LjI1IDIxaDExLjVBMy4yNSAzLjI1IDAgMCAwIDIxIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAwIDE3Ljc1IDN6TTQuNSA2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djExLjVhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NUg2LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInN1blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJhLjc1Ljc1IDAgMCAxIC43NS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVBLjc1Ljc1IDAgMCAxIDEyIDJtMCAxNWE1IDUgMCAxIDAgMC0xMCA1IDUgMCAwIDAgMCAxMG0wLTEuNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN205LjI1LTIuNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41ek0xMiAxOWEuNzUuNzUgMCAwIDEgLjc1Ljc1djEuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTEuNUEuNzUuNzUgMCAwIDEgMTIgMTltLTcuNzUtNi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjV6bS0uMDMtOC41M2EuNzUuNzUgMCAwIDEgMS4wNiAwbDEuNSAxLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtMS41LTEuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bTEuMDYgMTUuNTZhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjUtMS41YS43NS43NSAwIDEgMSAxLjA2IDEuMDZ6bTE0LjUtMTUuNTZhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS41IDEuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDEuNS0xLjVhLjc1Ljc1IDAgMCAwIDAtMS4wNm0tMS4wNiAxNS41NmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41YS43NS43NSAwIDEgMC0xLjA2IDEuMDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInN5bmNcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4yNSA1LjE4YS43NS43NSAwIDAgMCAuMTQyIDEuMDUxIDcuMjUxIDcuMjUxIDAgMCAxLTMuNTk5IDEyLjk3NmwuNjc3LS42NzdhLjc1Ljc1IDAgMCAwLS45NzctMS4xMzNsLS4wODQuMDczLTIgMmEuNzUuNzUgMCAwIDAtLjA3My45NzZsLjA3My4wODQgMiAyYS43NS43NSAwIDAgMCAxLjEzMy0uOTc2bC0uMDcyLS4wODQtLjc1LS43NWE4Ljc1IDguNzUgMCAwIDAgNC41ODEtMTUuNjguNzUuNzUgMCAwIDAtMS4wNTEuMTQxbS01LjcyLTMuNzFhLjc1Ljc1IDAgMCAwIDAgMS4wNmwuNzUuNzVhOC43NSA4Ljc1IDAgMCAwLTQuODUgMTUuNDcuNzUuNzUgMCAxIDAgLjk1Ni0xLjE1NyA3LjI1MSA3LjI1MSAwIDAgMSAzLjgyLTEyLjhsLS42NzYuNjc3YS43NS43NSAwIDEgMCAxLjA2MSAxLjA2bDItMmEuNzUuNzUgMCAwIDAgMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMCAwLTEuMDYgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ0YXNrc1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5Ljk5NSA0LjA5N0EyLjI1IDIuMjUgMCAwIDAgMTcuNzUgMkg2LjI1bC0uMTU0LjAwNUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI1MXYxNS40OThsLjAwNS4xNTRBMi4yNSAyLjI1IDAgMCAwIDYuMjUgMjJoNy41NjhsLTEuNS0xLjVINi4yNWwtLjEwMi0uMDA3YS43NS43NSAwIDAgMS0uNjQ4LS43NDNWNC4yNTFsLjAwNy0uMTAyYS43NS43NSAwIDAgMSAuNzQzLS42NDhoMTEuNWwuMTAyLjAwN2EuNzUuNzUgMCAwIDEgLjY0OC43NDN2MTEuNTY3bDEuMTU5LTEuMTU5cS4xNi0uMTYuMzQtLjI4VjQuMjV6bS0zLjcwNyAxNy45MDJoLS4wNzZhLjc1Ljc1IDAgMCAxLS40OTMtLjIxOWwtMi41LTIuNTAyYS43NS43NSAwIDAgMSAxLjA2Mi0xLjA2bDEuOTY5IDEuOTcxIDQuNDctNC40N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2MWwtNSA1YS43NS43NSAwIDAgMS0uNDkyLjIxOU0xMy44NCAxNi41YTIgMiAwIDAgMC0uMTgyIDBoLTIuNDEzYS43NS43NSAwIDAgMSAwLTEuNWg1LjAwNGEuNzUuNzUgMCAxIDEgMCAxLjV6TTkgNy43NTJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwbTEuNDk2LS4wMDJhLjc1Ljc1IDAgMCAxIC43NS0uNzVoNS4wMDRhLjc1Ljc1IDAgMSAxIDAgMS41aC01LjAwNGEuNzUuNzUgMCAwIDEtLjc1LS43NW0uNzUgMy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS4wMDRhLjc1Ljc1IDAgMSAwIDAtMS41ek04IDEyLjc1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMm0xIDIuOTk4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ0aW1lclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDVhOC41IDguNSAwIDEgMSAwIDE3IDguNSA4LjUgMCAwIDEgMC0xN20wIDEuNWE3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNE0xMiA4YS43NS43NSAwIDAgMSAuNzQzLjY0OGwuMDA3LjEwMnY0LjVhLjc1Ljc1IDAgMCAxLTEuNDkzLjEwMmwtLjAwNy0uMTAydi00LjVBLjc1Ljc1IDAgMCAxIDEyIDhtNy4xNDctMi44ODYuMDgzLjA2IDEuMTU4Ljk2NGEuNzUuNzUgMCAwIDEtLjg3NyAxLjIxMmwtLjA4Mi0uMDYtMS4xNTktLjk2NGEuNzUuNzUgMCAwIDEgLjg3Ny0xLjIxMk0xNC4yNSAyLjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMTQuMjUgNGgtNC41YS43NS43NSAwIDAgMS0uMTAyLTEuNDkzTDkuNzUgMi41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ1cGxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAzLjUxYS43NS43NSAwIDEgMCAwLTEuNWwtMTMtLjAwNGEuNzUuNzUgMCAxIDAgMCAxLjV6bS02LjYwMiAxOC40ODguMTAyLjAwN2EuNzUuNzUgMCAwIDAgLjc0My0uNjQ5bC4wMDctLjEwMS0uMDAxLTEzLjY4NSAzLjcyMiAzLjcyYS43NS43NSAwIDAgMCAuOTc2LjA3M2wuMDg1LS4wNzNhLjc1Ljc1IDAgMCAwIC4wNzItLjk3N2wtLjA3My0uMDg0LTQuOTk3LTQuOTk2YS43NS43NSAwIDAgMC0uOTc2LS4wNzNsLS4wODUuMDcyTDYuMjIgMTAuMjNhLjc1Ljc1IDAgMCAwIC45NzYgMS4xMzRsLjA4NC0uMDczIDMuNzE5LTMuNzEzTDExIDIxLjI1NWMwIC4zOC4yODIuNjkzLjY0OC43NDNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwidXNlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1NSAxNGEyLjI1IDIuMjUgMCAwIDEgMi4yNDggMi4yNXYuNTc1YzAgLjg5NC0uMzIgMS43NTktLjkgMi40MzgtMS41NyAxLjgzMy0zLjk1NyAyLjczOC03LjEwMyAyLjczOHMtNS41MzItLjkwNS03LjA5OC0yLjc0YTMuNzUgMy43NSAwIDAgMS0uODk4LTIuNDM0di0uNTc4QTIuMjUgMi4yNSAwIDAgMSA2LjI1MyAxNHptMCAxLjVINi4yNTJhLjc1Ljc1IDAgMCAwLS43NS43NXYuNTc3YzAgLjUzNS4xOTIgMS4wNTMuNTQgMS40NiAxLjI1MyAxLjQ2OSAzLjIyIDIuMjE0IDUuOTU3IDIuMjE0IDIuNzM5IDAgNC43MDYtLjc0NSA1Ljk2My0yLjIxM2EyLjI1IDIuMjUgMCAwIDAgLjU0LTEuNDYzdi0uNTc2YS43NS43NSAwIDAgMC0uNzQ4LS43NDlNMTIgMi4wMDVhNSA1IDAgMSAxIDAgMTAgNSA1IDAgMCAxIDAtMTBtMCAxLjVhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwidXNlcl9tdWx0aXBsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE0Ljc1NCAxMGMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djQuNzQ5YTQuNTAxIDQuNTAxIDAgMCAxLTkuMDAyIDBWMTEuNzVjMC0uOTY2Ljc4My0xLjc1IDEuNzUtMS43NXptMCAxLjVIOS4yNTJhLjI1LjI1IDAgMCAwLS4yNS4yNXY0Ljc0OWEzLjAwMSAzLjAwMSAwIDAgMCA2LjAwMiAwVjExLjc1YS4yNS4yNSAwIDAgMC0uMjUtLjI1TTMuNzUgMTBoMy4zODFhMi43NCAyLjc0IDAgMCAwLS42MTggMS41SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYzLjI0OWEyLjUgMi41IDAgMCAwIDMuMDgyIDIuNDMzYy4wODUuNTA0LjI0Ljk4NS40NTMgMS40MzJRNi41MzkgMTguOTk5IDYgMTlhNCA0IDAgMCAxLTQtNC4wMDFWMTEuNzVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NW0xMy4xMjUgMGgzLjM3NWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1VjE1YTQgNCAwIDAgMS01LjAzIDMuODY2Yy4yMTQtLjQ0OC4zNjktLjkyOS40NTUtMS40MzNxLjI3Ny4wNjYuNTc1LjA2N2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTMuMjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTIuNzU3YTIuNzQgMi43NCAwIDAgMC0uNjE4LTEuNU0xMiAzYTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNm02LjUgMWEyLjUgMi41IDAgMSAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW0tMTMgMGEyLjUgMi41IDAgMSAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW02LjUuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM202LjUgMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJtLTEzIDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInVzZXJfcm9sZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE0IDE0SDQuMjUzYTIuMjUgMi4yNSAwIDAgMC0yLjI1IDIuMjV2LjU3N2MwIC44OTIuMzIgMS43NTYuOSAyLjQzNSAxLjU2NSAxLjgzNCAzLjk1MiAyLjc0IDcuMDk3IDIuNzRxMS4wNzIgMCAyLjAyNi0uMTQxYTIuNSAyLjUgMCAwIDEtLjAyNi0uMzZ2LTEuMTU0cS0uOTIuMTU0LTIgLjE1NGMtMi43MzggMC00LjcwNC0uNzQ1LTUuOTU3LTIuMjEzYTIuMjUgMi4yNSAwIDAgMS0uNTQtMS40NjF2LS41NzhhLjc1Ljc1IDAgMCAxIC43NS0uNzQ5aDcuOTU1QTIuNSAyLjUgMCAwIDEgMTQgMTQuMDV6TTEwIDIuMDA1YTUgNSAwIDEgMSAwIDEwIDUgNSAwIDAgMSAwLTEwbTAgMS41YTMuNSAzLjUgMCAxIDAgMCA3IDMuNSAzLjUgMCAwIDAgMC03TTE1IDE1aC0uNWExLjUgMS41IDAgMCAwLTEuNSAxLjV2NWExLjUgMS41IDAgMCAwIDEuNSAxLjVoNmExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTVhMS41IDEuNSAwIDAgMC0xLjUtMS41SDIwdi0xYTIuNSAyLjUgMCAwIDAtNSAwem0xLjUtMWExIDEgMCAwIDEgMiAwdjFoLTJ6bTIgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwid2FybmluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzIDE3YS45OTkuOTk5IDAgMSAwLTEuOTk4IDAgLjk5OS45OTkgMCAwIDAgMS45OTcgMG0tLjI2LTcuODUzYS43NS43NSAwIDAgMC0xLjQ5My4xMDNsLjAwNCA0LjUwMS4wMDcuMTAyYS43NS43NSAwIDAgMCAxLjQ5My0uMTAzbC0uMDA0LTQuNTAyem0xLjIzLTUuNDg4Yy0uODU3LTEuNTQ4LTMuMDgyLTEuNTQ4LTMuOTM4IDBMMi4yODYgMTcuNjZjLS44MyAxLjUuMjU1IDMuMzQgMS45NyAzLjM0aDE1LjQ5YzEuNzE0IDAgMi43OTktMS44NCAxLjk2OS0zLjM0em0tMi42MjYuNzI2YS43NS43NSAwIDAgMSAxLjMxMyAwbDcuNzQ2IDE0LjAwMmEuNzUuNzUgMCAwIDEtLjY1NyAxLjExM0g0LjI1NmEuNzUuNzUgMCAwIDEtLjY1Ny0xLjExM3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiem9vbV9maXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS40OSAyLjcwN2EuNzUuNzUgMCAwIDEgMS4wMy4wMDJsMi4yMDYgMi4wOWEuNzUuNzUgMCAxIDAgMS4wMzItMS4wODhMMTMuNTUxIDEuNjJhMi4yNSAyLjI1IDAgMCAwLTMuMDktLjAwNUw4LjIzNyAzLjcxQS43NS43NSAwIDAgMCA5LjI2NSA0Ljh6TTQuODAyIDkuMjYzYS43NS43NSAwIDAgMC0xLjA5MS0xLjAyOGwtMi4wOTUgMi4yMjRhMi4yNSAyLjI1IDAgMCAwIC4wMDUgMy4wOWwyLjA5MSAyLjIwN2EuNzUuNzUgMCAxIDAgMS4wODktMS4wMzJMMi43MSAxMi41MTdhLjc1Ljc1IDAgMCAxLS4wMDEtMS4wM3ptMTUuNDg1LTEuMDJBLjc1Ljc1IDAgMSAwIDE5LjIgOS4yNzVsMi4wOTggMi4yMTNhLjc1Ljc1IDAgMCAxIDAgMS4wMzNMMTkuMiAxNC43MzRhLjc1Ljc1IDAgMCAwIDEuMDg4IDEuMDMybDIuMDk5LTIuMjEzYTIuMjUgMi4yNSAwIDAgMCAwLTMuMDk3em0tNC41MjIgMTIuMDQ1YS43NS43NSAwIDAgMC0xLjAzMi0xLjA4OGwtMi4yMTIgMi4wOTdhLjc1Ljc1IDAgMCAxLTEuMDMyIDBMOS4yNzUgMTkuMmEuNzUuNzUgMCAwIDAtMS4wMzIgMS4wOWwyLjIxNiAyLjA5N2EyLjI1IDIuMjUgMCAwIDAgMy4wOTUgMHpNOS43NSA3QTIuNzUgMi43NSAwIDAgMCA3IDkuNzV2NC41QTIuNzUgMi43NSAwIDAgMCA5Ljc1IDE3aDQuNUEyLjc1IDIuNzUgMCAwIDAgMTcgMTQuMjV2LTQuNUEyLjc1IDIuNzUgMCAwIDAgMTQuMjUgN3pNOC41IDkuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLTQuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ6b29tX2luXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuNSAxMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMnYtMmEuNzUuNzUgMCAwIDAtMS41IDB2MmgtMmEuNzUuNzUgMCAxIDAgMCAxLjVoMnYyYS43NS43NSAwIDAgMCAxLjUgMHYtMmgyYS43NS43NSAwIDAgMCAuNzUtLjc1TTEwIDIuNzVhNy4yNSA3LjI1IDAgMCAxIDUuNjMgMTEuODE5bDQuOSA0LjlhLjc1Ljc1IDAgMCAxLS45NzYgMS4xMzRsLS4wODQtLjA3My00LjkwMS00LjlBNy4yNSA3LjI1IDAgMSAxIDEwIDIuNzVtMCAxLjVhNS43NSA1Ljc1IDAgMSAwIDAgMTEuNSA1Ljc1IDUuNzUgMCAwIDAgMC0xMS41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInpvb21fb3V0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIuNzUgOS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEgMC0xLjV6bTQuNS43NWE3LjI1IDcuMjUgMCAxIDAtMi42ODEgNS42M2w0LjkgNC45LjA4NS4wNzNhLjc1Ljc1IDAgMCAwIC45NzYtMS4xMzNsLTQuOS00LjkwMUE3LjIyIDcuMjIgMCAwIDAgMTcuMjUgMTBtLTEzIDBhNS43NSA1Ljc1IDAgMSAxIDExLjUgMCA1Ljc1IDUuNzUgMCAwIDEtMTEuNSAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbjwvc3ZnPlxuPHN2Z1xuICBjbGFzcz1cImljb25cIlxuICBbYXR0ci53aWR0aF09XCJzaXplXCJcbiAgW2F0dHIuaGVpZ2h0XT1cInNpemVcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbj5cbiAgPHVzZSBbYXR0ci5ocmVmXT1cIicjJyArIG5hbWVcIj48L3VzZT5cbjwvc3ZnPlxuIl19","import { Injectable } from '@angular/core';\nimport { clientCredentialsGrant, discovery, } from 'openid-client';\nimport * as i0 from \"@angular/core\";\nexport class ApiService {\n _baseUrl = 'https://adam.hahnpro.com';\n apiPath = '/api';\n realm = 'adam';\n httpClient = new HttpClient();\n get baseUrl() {\n return this._baseUrl;\n }\n get apiUrl() {\n return `${this.baseUrl}${this.apiPath}`;\n }\n get user() {\n return this.httpClient.user;\n }\n init(clientId, clientSecret, baseUrl, realm) {\n this._baseUrl = baseUrl || 'https://adam.hahnpro.com';\n this.realm = realm || 'adam';\n return this.httpClient.init(`${this.baseUrl}/auth/realms/${this.realm}`, clientId, clientSecret);\n }\n addMessage(message, threadId, assistantId, context) {\n console.log('addMessage', message, threadId, assistantId, context);\n return this.httpClient.post(`${this.apiUrl}/ai/message`, {\n message,\n threadId,\n assistantId,\n context,\n });\n }\n getAccessToken() {\n return this.httpClient.getAccessToken();\n }\n createThread(assistantId, isEphemeral) {\n return this.httpClient.post(`${this.apiUrl}/ai/threads`, {\n assistantId,\n isEphemeral,\n });\n }\n getThread(threadId) {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n getThreadMessages(threadId) {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}/messages`);\n }\n deleteThread(threadId) {\n return this.httpClient.delete(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n getAssistants() {\n return this.httpClient.get(`${this.apiUrl}/ai/assistants`);\n }\n getSpeechToken() {\n return this.httpClient.get(`${this.apiUrl}/ai/speech/token`);\n }\n getAssets(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assets`, { params });\n }\n getAssetTypes(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assettypes`, { params });\n }\n getContents(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/contents`, { params });\n }\n getEvents(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/events`, { params });\n }\n downloadContent(id, type) {\n const query = type ? '?type=' + type : '';\n return this.httpClient.get(`${this.apiUrl}/contents/${id}/download${query}`);\n }\n async loadUsersAsPermissions() {\n if (this.httpClient.user?.roles.includes('superuser')) {\n return this.httpClient.get(`${this.apiUrl}/user/permissions`);\n }\n else {\n return [];\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ApiService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ApiService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class HttpClient {\n config = null;\n token = null;\n expiresAt = 0;\n _user = null;\n async init(serverUrl, clientId, clientSecret) {\n this.config = await discovery(new URL(serverUrl), clientId, clientSecret);\n }\n delete = (url, config) => this.request('DELETE', url, config);\n get = (url, config) => this.request('GET', url, config);\n post = (url, data, config) => this.request('POST', url, config, data);\n put = (url, data, config) => this.request('PUT', url, config, data);\n get user() {\n return this._user;\n }\n request = async (method, url, config = {}, data) => {\n const token = await this.getAccessToken();\n if (config.params) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(config.params)) {\n params.append(key, String(value));\n }\n url += `?${params}`;\n }\n const response = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n body: data ? JSON.stringify(data) : undefined,\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return response.json();\n };\n async getAccessToken() {\n if (!this.config) {\n throw new Error('HttpClient not initialized');\n }\n if (!this.token || this.expiresAt <= Date.now()) {\n const tokenResponse = await clientCredentialsGrant(this.config);\n this.token = tokenResponse.access_token;\n this.expiresAt = Date.now() + (tokenResponse.expires_in ?? 0) * 1000;\n this.resolveUser(this.token);\n }\n return this.token;\n }\n resolveUser(token) {\n try {\n const tokenParts = token.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('Invalid JWT token format');\n }\n const payload = JSON.parse(atob(tokenParts[1]));\n this._user = {\n id: payload.sub,\n username: payload.preferred_username || payload.email,\n roles: payload.roles || [],\n activeOrg: payload.active_organization\n ? {\n id: payload.active_organization.id,\n name: payload.active_organization.name,\n }\n : undefined,\n };\n }\n catch (error) {\n console.error('Error parsing JWT token:', error);\n this._user = null;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7O0FBZ0J2QixNQUFNLE9BQU8sVUFBVTtJQUNiLFFBQVEsR0FBRywwQkFBMEIsQ0FBQztJQUN0QyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDZixVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUV0QyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUNGLFFBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLE9BQWdCLEVBQ2hCLEtBQWM7UUFFZCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsR0FBRyxJQUFJLENBQUMsT0FBTyxnQkFBZ0IsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUMzQyxRQUFRLEVBQ1IsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUNSLE9BQWUsRUFDZixRQUFp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QkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgY2xpZW50Q3JlZGVudGlhbHNHcmFudCxcbiAgZGlzY292ZXJ5LFxuICBDb25maWd1cmF0aW9uLFxufSBmcm9tICdvcGVuaWQtY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQWlBc3Npc3RhbnQsXG4gIEFzc2V0LFxuICBBc3NldFR5cGUsXG4gIENvbnRlbnQsXG4gIEV2ZW50LFxuICBNZXNzYWdlLFxuICBQYWdpbmF0ZWQsXG4gIFJlcXVlc3RQYXJhbWV0ZXIsXG4gIFNwZWVjaFRva2VuLFxuICBUaHJlYWQsXG4gIFRocmVhZFBvcHVsYXRlZCxcbn0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XG4gIHByaXZhdGUgX2Jhc2VVcmwgPSAnaHR0cHM6Ly9hZGFtLmhhaG5wcm8uY29tJztcbiAgcHJpdmF0ZSBhcGlQYXRoID0gJy9hcGknO1xuICBwcml2YXRlIHJlYWxtID0gJ2FkYW0nO1xuICBwcml2YXRlIGh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudCgpO1xuXG4gIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VVcmw7XG4gIH1cblxuICBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0ke3RoaXMuYXBpUGF0aH1gO1xuICB9XG5cbiAgZ2V0IHVzZXIoKTogVXNlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQudXNlcjtcbiAgfVxuXG4gIGluaXQoXG4gICAgY2xpZW50SWQ6IHN0cmluZyxcbiAgICBjbGllbnRTZWNyZXQ6IHN0cmluZyxcbiAgICBiYXNlVXJsPzogc3RyaW5nLFxuICAgIHJlYWxtPzogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLl9iYXNlVXJsID0gYmFzZVVybCB8fCAnaHR0cHM6Ly9hZGFtLmhhaG5wcm8uY29tJztcbiAgICB0aGlzLnJlYWxtID0gcmVhbG0gfHwgJ2FkYW0nO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuaW5pdChcbiAgICAgIGAke3RoaXMuYmFzZVVybH0vYXV0aC9yZWFsbXMvJHt0aGlzLnJlYWxtfWAsXG4gICAgICBjbGllbnRJZCxcbiAgICAgIGNsaWVudFNlY3JldCxcbiAgICApO1xuICB9XG5cbiAgYWRkTWVzc2FnZShcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgdGhyZWFkSWQ/OiBzdHJpbmcsXG4gICAgYXNzaXN0YW50SWQ/OiBzdHJpbmcsXG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApOiBQcm9taXNlPE1lc3NhZ2U+IHtcbiAgICBjb25zb2xlLmxvZygnYWRkTWVzc2FnZScsIG1lc3NhZ2UsIHRocmVhZElkLCBhc3Npc3RhbnRJZCwgY29udGV4dCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuYXBpVXJsfS9haS9tZXNzYWdlYCwge1xuICAgICAgbWVzc2FnZSxcbiAgICAgIHRocmVhZElkLFxuICAgICAgYXNzaXN0YW50SWQsXG4gICAgICBjb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjZXNzVG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldEFjY2Vzc1Rva2VuKCk7XG4gIH1cblxuICBjcmVhdGVUaHJlYWQoXG4gICAgYXNzaXN0YW50SWQ6IHN0cmluZyxcbiAgICBpc0VwaGVtZXJhbD86IGJvb2xlYW4sXG4gICk6IFByb21pc2U8VGhyZWFkUG9wdWxhdGVkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzYCwge1xuICAgICAgYXNzaXN0YW50SWQsXG4gICAgICBpc0VwaGVtZXJhbCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRocmVhZCh0aHJlYWRJZDogc3RyaW5nKTogUHJvbWlzZTxUaHJlYWRQb3B1bGF0ZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmFwaVVybH0vYWkvdGhyZWFkcy8ke3RocmVhZElkfWApO1xuICB9XG5cbiAgZ2V0VGhyZWFkTWVzc2FnZXModGhyZWFkSWQ6IHN0cmluZyk6IFByb21pc2U8UGFnaW5hdGVkPE1lc3NhZ2VbXT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcbiAgICAgIGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzLyR7dGhyZWFkSWR9L21lc3NhZ2VzYCxcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlVGhyZWFkKHRocmVhZElkOiBzdHJpbmcpOiBQcm9taXNlPFRocmVhZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzLyR7dGhyZWFkSWR9YCk7XG4gIH1cblxuICBnZXRBc3Npc3RhbnRzKCk6IFByb21pc2U8QWlBc3Npc3RhbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9haS9hc3Npc3RhbnRzYCk7XG4gIH1cblxuICBnZXRTcGVlY2hUb2tlbigpOiBQcm9taXNlPFNwZWVjaFRva2VuPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8U3BlZWNoVG9rZW4+KGAke3RoaXMuYXBpVXJsfS9haS9zcGVlY2gvdG9rZW5gKTtcbiAgfVxuXG4gIGdldEFzc2V0cyhwYXJhbXM6IFJlcXVlc3RQYXJhbWV0ZXIgPSB7fSk6IFByb21pc2U8UGFnaW5hdGVkPEFzc2V0W10+PiB7XG4gICAgcGFyYW1zLmxpbWl0ID0gcGFyYW1zLmxpbWl0IHx8IDA7XG4gICAgcGFyYW1zLnBhZ2UgPSBwYXJhbXMucGFnZSB8fCAxO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9hc3NldHNgLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIGdldEFzc2V0VHlwZXMoXG4gICAgcGFyYW1zOiBSZXF1ZXN0UGFyYW1ldGVyID0ge30sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkPEFzc2V0VHlwZVtdPj4ge1xuICAgIHBhcmFtcy5saW1pdCA9IHBhcmFtcy5saW1pdCB8fCAwO1xuICAgIHBhcmFtcy5wYWdlID0gcGFyYW1zLnBhZ2UgfHwgMTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmFwaVVybH0vYXNzZXR0eXBlc2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZ2V0Q29udGVudHMocGFyYW1zOiBSZXF1ZXN0UGFyYW1ldGVyID0ge30pOiBQcm9taXNlPFBhZ2luYXRlZDxDb250ZW50W10+PiB7XG4gICAgcGFyYW1zLmxpbWl0ID0gcGFyYW1zLmxpbWl0IHx8IDA7XG4gICAgcGFyYW1zLnBhZ2UgPSBwYXJhbXMucGFnZSB8fCAxO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9jb250ZW50c2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZ2V0RXZlbnRzKHBhcmFtczogUmVxdWVzdFBhcmFtZXRlciA9IHt9KTogUHJvbWlzZTxQYWdpbmF0ZWQ8RXZlbnRbXT4+IHtcbiAgICBwYXJhbXMubGltaXQgPSBwYXJhbXMubGltaXQgfHwgMDtcbiAgICBwYXJhbXMucGFnZSA9IHBhcmFtcy5wYWdlIHx8IDE7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5hcGlVcmx9L2V2ZW50c2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZG93bmxvYWRDb250ZW50KGlkOiBzdHJpbmcsIHR5cGU/OiBGaWxlVHlwZSk6IFByb21pc2U8QmxvYj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdHlwZSA/ICc/dHlwZT0nICsgdHlwZSA6ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxuICAgICAgYCR7dGhpcy5hcGlVcmx9L2NvbnRlbnRzLyR7aWR9L2Rvd25sb2FkJHtxdWVyeX1gLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBsb2FkVXNlcnNBc1Blcm1pc3Npb25zKCk6IFByb21pc2U8UGVybWlzc2lvbltdPiB7XG4gICAgaWYgKHRoaXMuaHR0cENsaWVudC51c2VyPy5yb2xlcy5pbmNsdWRlcygnc3VwZXJ1c2VyJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFBlcm1pc3Npb25bXT4oXG4gICAgICAgIGAke3RoaXMuYXBpVXJsfS91c2VyL3Blcm1pc3Npb25zYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVG9rZW5PcHRpb24gPSB7IHRva2VuPzogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBDb25maWcgPSBUb2tlbk9wdGlvbiAmIHtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHBhcmFtcz86IGFueTtcbn07XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ3VyYXRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZXhwaXJlc0F0ID0gMDtcbiAgcHJpdmF0ZSBfdXNlcjogVXNlciB8IG51bGwgPSBudWxsO1xuXG4gIGFzeW5jIGluaXQoc2VydmVyVXJsOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcsIGNsaWVudFNlY3JldDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCBkaXNjb3ZlcnkobmV3IFVSTChzZXJ2ZXJVcmwpLCBjbGllbnRJZCwgY2xpZW50U2VjcmV0KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUgPSA8VD4odXJsOiBzdHJpbmcsIGNvbmZpZz86IENvbmZpZykgPT5cbiAgICB0aGlzLnJlcXVlc3Q8VD4oJ0RFTEVURScsIHVybCwgY29uZmlnKTtcbiAgcHVibGljIGdldCA9IDxUPih1cmw6IHN0cmluZywgY29uZmlnPzogQ29uZmlnKSA9PlxuICAgIHRoaXMucmVxdWVzdDxUPignR0VUJywgdXJsLCBjb25maWcpO1xuICBwdWJsaWMgcG9zdCA9IDxUPih1cmw6IHN0cmluZywgZGF0YTogYW55LCBjb25maWc/OiBDb25maWcpID0+XG4gICAgdGhpcy5yZXF1ZXN0PFQ+KCdQT1NUJywgdXJsLCBjb25maWcsIGRhdGEpO1xuICBwdWJsaWMgcHV0ID0gPFQ+KHVybDogc3RyaW5nLCBkYXRhOiBhbnksIGNvbmZpZz86IENvbmZpZykgPT5cbiAgICB0aGlzLnJlcXVlc3Q8VD4oJ1BVVCcsIHVybCwgY29uZmlnLCBkYXRhKTtcblxuICBnZXQgdXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVxdWVzdCA9IGFzeW5jIDxUPihcbiAgICBtZXRob2Q6IE1ldGhvZCxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjb25maWc6IENvbmZpZyA9IHt9LFxuICAgIGRhdGE/OiBCb2R5SW5pdCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICk6IFByb21pc2U8VD4gPT4ge1xuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIGlmIChjb25maWcucGFyYW1zKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcucGFyYW1zKSkge1xuICAgICAgICBwYXJhbXMuYXBwZW5kKGtleSwgU3RyaW5nKHZhbHVlKSk7XG4gICAgICB9XG4gICAgICB1cmwgKz0gYD8ke3BhcmFtc31gO1xuICAgIH1cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmNvbmZpZy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IGRhdGEgPyBKU09OLnN0cmluZ2lmeShkYXRhKSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZS5zdGF0dXNUZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbiAgfTtcblxuICBhc3luYyBnZXRBY2Nlc3NUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSHR0cENsaWVudCBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMuZXhwaXJlc0F0IDw9IERhdGUubm93KCkpIHtcbiAgICAgIGNvbnN0IHRva2VuUmVzcG9uc2UgPSBhd2FpdCBjbGllbnRDcmVkZW50aWFsc0dyYW50KHRoaXMuY29uZmlnKTtcbiAgICAgIHRoaXMudG9rZW4gPSB0b2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbjtcbiAgICAgIHRoaXMuZXhwaXJlc0F0ID0gRGF0ZS5ub3coKSArICh0b2tlblJlc3BvbnNlLmV4cGlyZXNfaW4gPz8gMCkgKiAxMDAwO1xuICAgICAgdGhpcy5yZXNvbHZlVXNlcih0aGlzLnRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudG9rZW47XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVc2VyKHRva2VuOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdG9rZW5QYXJ0cyA9IHRva2VuLnNwbGl0KCcuJyk7XG4gICAgICBpZiAodG9rZW5QYXJ0cy5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpXVCB0b2tlbiBmb3JtYXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGF0b2IodG9rZW5QYXJ0c1sxXSkpO1xuICAgICAgdGhpcy5fdXNlciA9IHtcbiAgICAgICAgaWQ6IHBheWxvYWQuc3ViLFxuICAgICAgICB1c2VybmFtZTogcGF5bG9hZC5wcmVmZXJyZWRfdXNlcm5hbWUgfHwgcGF5bG9hZC5lbWFpbCxcbiAgICAgICAgcm9sZXM6IHBheWxvYWQucm9sZXMgfHwgW10sXG4gICAgICAgIGFjdGl2ZU9yZzogcGF5bG9hZC5hY3RpdmVfb3JnYW5pemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGlkOiBwYXlsb2FkLmFjdGl2ZV9vcmdhbml6YXRpb24uaWQsXG4gICAgICAgICAgICAgIG5hbWU6IHBheWxvYWQuYWN0aXZlX29yZ2FuaXphdGlvbi5uYW1lLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBKV1QgdG9rZW46JywgZXJyb3IpO1xuICAgICAgdGhpcy5fdXNlciA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZCA9XG4gIHwgJ2dldCdcbiAgfCAnR0VUJ1xuICB8ICdkZWxldGUnXG4gIHwgJ0RFTEVURSdcbiAgfCAnaGVhZCdcbiAgfCAnSEVBRCdcbiAgfCAnb3B0aW9ucydcbiAgfCAnT1BUSU9OUydcbiAgfCAncG9zdCdcbiAgfCAnUE9TVCdcbiAgfCAncHV0J1xuICB8ICdQVVQnXG4gIHwgJ3BhdGNoJ1xuICB8ICdQQVRDSCdcbiAgfCAncHVyZ2UnXG4gIHwgJ1BVUkdFJ1xuICB8ICdsaW5rJ1xuICB8ICdMSU5LJ1xuICB8ICd1bmxpbmsnXG4gIHwgJ1VOTElOSyc7XG5cbmV4cG9ydCB0eXBlIEZpbGVUeXBlID1cbiAgfCAnb3JpZ2luYWwnXG4gIHwgJ3ByZXZpZXctc20nXG4gIHwgJ3ByZXZpZXctbWQnXG4gIHwgJ3ByZXZpZXctbGcnXG4gIHwgJ3ByZXZpZXcteGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb24ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICBpZDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBhY3RpdmVPcmc/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHJvbGVzOiBzdHJpbmdbXTtcbn1cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { ApiService } from './api.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Service to resolve owner names based on their IDs. It utilizes caching to minimize\n * redundant requests and leverages authentication and user services to fetch owner details.\n */\nexport class OwnerResolverService {\n cache = new ResponseCache(1000, 24 * 60 * 60 * 1000);\n apiService = inject(ApiService);\n /**\n * Resolves the owner name for a given ID.\n */\n async resolveOwner(id) {\n return (await this.resolveOwners(id))?.[id];\n }\n /**\n * Resolves owner names for a list of IDs.\n */\n async resolveOwners(ids) {\n if (typeof ids === 'string') {\n ids = [ids];\n }\n const idsMap = new Map();\n const idsToFetch = new Set();\n if (Array.isArray(ids) && ids.length > 0) {\n for (const id of ids) {\n const cachedValue = this.cache.get(id);\n if (cachedValue) {\n idsMap.set(id, cachedValue);\n }\n else {\n const resolved = await this.resolveFromAuth(id, idsMap);\n if (!resolved) {\n idsToFetch.add(id);\n }\n }\n }\n if (idsToFetch.size > 0) {\n await this.fetchIds(idsToFetch, idsMap);\n }\n return Object.fromEntries(idsMap);\n }\n else {\n return {};\n }\n }\n /**\n * Attempts to resolve the owner name from the authentication service.\n */\n async resolveFromAuth(id, idsMap) {\n const { id: userId, username, activeOrg } = this.apiService.user;\n let name;\n if (id === userId) {\n name = username;\n }\n else if (activeOrg.id === id) {\n name = activeOrg.name;\n }\n if (name) {\n idsMap.set(id, name);\n this.cache.set(id, name);\n return true;\n }\n else {\n return false;\n }\n }\n async fetchIds(idsToFetch, idsMap) {\n try {\n const permissions = await this.apiService.loadUsersAsPermissions();\n const ids = permissions.reduce((acc, user) => {\n acc[user.value] = user.label;\n return acc;\n }, {});\n for (const id of Object.keys(idsToFetch)) {\n if (ids[id]) {\n idsMap.set(id, ids[id]);\n this.cache.set(id, ids[id]);\n }\n }\n }\n catch (error) {\n console.error(error);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: OwnerResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: OwnerResolverService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: OwnerResolverService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nclass ResponseCache {\n sizeLimit;\n ttl;\n cache = new Map();\n constructor(sizeLimit, ttl) {\n this.sizeLimit = sizeLimit;\n this.ttl = ttl;\n }\n get(key) {\n if (!this.cache.has(key)) {\n return undefined;\n }\n const [value, ts] = this.cache.get(key);\n // if the cache value is older than the ttl, delete it and return undefined\n if (this.ttl && Date.now() - ts > this.ttl) {\n this.cache.delete(key);\n return undefined;\n }\n // delete the key/value pair from cache and then set it again to put\n // the retrieved key/value pair back at the front for the map\n this.cache.delete(key);\n this.cache.set(key, [value, ts]);\n return value;\n }\n set(key, value) {\n this.cache.delete(key);\n if (this.cache.size === this.sizeLimit) {\n this.cache.delete(this.cache.keys().next().value);\n }\n this.cache.set(key, [value, Date.now()]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3duZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvb3duZXItcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFVO1FBQzNCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBc0I7UUFDeEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ3JC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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0byByZXNvbHZlIG93bmVyIG5hbWVzIGJhc2VkIG9uIHRoZWlyIElEcy4gSXQgdXRpbGl6ZXMgY2FjaGluZyB0byBtaW5pbWl6ZVxuICogcmVkdW5kYW50IHJlcXVlc3RzIGFuZCBsZXZlcmFnZXMgYXV0aGVudGljYXRpb24gYW5kIHVzZXIgc2VydmljZXMgdG8gZmV0Y2ggb3duZXIgZGV0YWlscy5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPd25lclJlc29sdmVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgUmVzcG9uc2VDYWNoZSgxMDAwLCAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgb3duZXIgbmFtZSBmb3IgYSBnaXZlbiBJRC5cbiAgICovXG4gIGFzeW5jIHJlc29sdmVPd25lcihpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMucmVzb2x2ZU93bmVycyhpZCkpPy5baWRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIG93bmVyIG5hbWVzIGZvciBhIGxpc3Qgb2YgSURzLlxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZU93bmVycyhpZHM6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gICAgaWYgKHR5cGVvZiBpZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZHMgPSBbaWRzXTtcbiAgICB9XG4gICAgY29uc3QgaWRzTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBjb25zdCBpZHNUb0ZldGNoID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZHMpICYmIGlkcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgICBjb25zdCBjYWNoZWRWYWx1ZSA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcbiAgICAgICAgaWYgKGNhY2hlZFZhbHVlKSB7XG4gICAgICAgICAgaWRzTWFwLnNldChpZCwgY2FjaGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlRnJvbUF1dGgoaWQsIGlkc01hcCk7XG4gICAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgaWRzVG9GZXRjaC5hZGQoaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaWRzVG9GZXRjaC5zaXplID4gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLmZldGNoSWRzKGlkc1RvRmV0Y2gsIGlkc01hcCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGlkc01hcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gcmVzb2x2ZSB0aGUgb3duZXIgbmFtZSBmcm9tIHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlRnJvbUF1dGgoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBpZHNNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgaWQ6IHVzZXJJZCwgdXNlcm5hbWUsIGFjdGl2ZU9yZyB9ID0gdGhpcy5hcGlTZXJ2aWNlLnVzZXI7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICBpZiAoaWQgPT09IHVzZXJJZCkge1xuICAgICAgbmFtZSA9IHVzZXJuYW1lO1xuICAgIH0gZWxzZSBpZiAoYWN0aXZlT3JnLmlkID09PSBpZCkge1xuICAgICAgbmFtZSA9IGFjdGl2ZU9yZy5uYW1lO1xuICAgIH1cblxuICAgIGlmIChuYW1lKSB7XG4gICAgICBpZHNNYXAuc2V0KGlkLCBuYW1lKTtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGlkLCBuYW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaElkcyhcbiAgICBpZHNUb0ZldGNoOiBTZXQ8c3RyaW5nPixcbiAgICBpZHNNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5sb2FkVXNlcnNBc1Blcm1pc3Npb25zKCk7XG4gICAgICBjb25zdCBpZHMgPSBwZXJtaXNzaW9ucy5yZWR1Y2UoKGFjYywgdXNlcikgPT4ge1xuICAgICAgICBhY2NbdXNlci52YWx1ZV0gPSB1c2VyLmxhYmVsO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuXG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKGlkc1RvRmV0Y2gpKSB7XG4gICAgICAgIGlmIChpZHNbaWRdKSB7XG4gICAgICAgICAgaWRzTWFwLnNldChpZCwgaWRzW2lkXSk7XG4gICAgICAgICAgdGhpcy5jYWNoZS5zZXQoaWQsIGlkc1tpZF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBSZXNwb25zZUNhY2hlIHtcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBbYW55LCBudW1iZXJdPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l6ZUxpbWl0OiBudW1iZXIsXG4gICAgcHJpdmF0ZSB0dGw/OiBudW1iZXIsXG4gICkge31cblxuICBnZXQoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgW3ZhbHVlLCB0c10gPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuXG4gICAgLy8gaWYgdGhlIGNhY2hlIHZhbHVlIGlzIG9sZGVyIHRoYW4gdGhlIHR0bCwgZGVsZXRlIGl0IGFuZCByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKHRoaXMudHRsICYmIERhdGUubm93KCkgLSB0cyA+IHRoaXMudHRsKSB7XG4gICAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBkZWxldGUgdGhlIGtleS92YWx1ZSBwYWlyIGZyb20gY2FjaGUgYW5kIHRoZW4gc2V0IGl0IGFnYWluIHRvIHB1dFxuICAgIC8vIHRoZSByZXRyaWV2ZWQga2V5L3ZhbHVlIHBhaXIgYmFjayBhdCB0aGUgZnJvbnQgZm9yIHRoZSBtYXBcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgW3ZhbHVlLCB0c10pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jYWNoZS5kZWxldGUoa2V5KTtcblxuICAgIGlmICh0aGlzLmNhY2hlLnNpemUgPT09IHRoaXMuc2l6ZUxpbWl0KSB7XG4gICAgICB0aGlzLmNhY2hlLmRlbGV0ZSh0aGlzLmNhY2hlLmtleXMoKS5uZXh0KCkudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldChrZXksIFt2YWx1ZSwgRGF0ZS5ub3coKV0pO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { ApiService } from '../core/api.service';\nimport { OwnerResolverService } from '../core/owner-resolver.service';\nimport * as i0 from \"@angular/core\";\nexport class ContextService {\n cache = new Map();\n status = new Map();\n apiService = inject(ApiService);\n ownerResolver = inject(OwnerResolverService);\n reset() {\n this.cache.clear();\n this.status.clear();\n }\n async loadReferences(references) {\n const assetIds = [];\n const contentIds = [];\n const eventIds = [];\n const assetTypeIds = [];\n for (const reference of references) {\n if (this.cache.has(reference.id) &&\n this.status.get(reference.id)?.isComplete) {\n continue;\n }\n if (reference.resourceType === 'asset') {\n assetIds.push(reference.id);\n }\n else if (reference.resourceType === 'asset-type') {\n assetTypeIds.push(reference.id);\n }\n else if (reference.resourceType === 'content') {\n contentIds.push(reference.id);\n }\n else if (reference.resourceType === 'event') {\n eventIds.push(reference.id);\n }\n }\n if (assetIds.length > 0) {\n assetIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getAssets({ filter: `_id=@${assetIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((a) => a.owner?.id));\n const foundIds = new Set();\n for (const asset of response.docs) {\n if (asset.owner?.id) {\n asset.owner.name =\n owners[asset.owner.id] || asset.owner.id;\n }\n this.cache.set(asset.id, asset);\n this.status.set(asset.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(asset.id);\n }\n for (const id of assetIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n assetIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (assetTypeIds.length > 0) {\n assetTypeIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getAssetTypes({ filter: `_id=@${assetTypeIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((a) => a.owner?.id));\n const foundIds = new Set();\n for (const assetType of response.docs) {\n if (assetType.owner?.id) {\n assetType.owner.name =\n owners[assetType.owner.id] || assetType.owner.id;\n }\n this.cache.set(assetType.id, assetType);\n this.status.set(assetType.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(assetType.id);\n }\n for (const id of assetTypeIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n assetTypeIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (contentIds.length > 0) {\n contentIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getContents({\n filter: `_id=@${contentIds.join(',')}`,\n populate: 'analysis',\n })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((c) => c.owner?.id));\n const foundIds = new Set();\n for (const content of response.docs) {\n if (content.owner?.id) {\n content.owner.name =\n owners[content.owner.id] || content.owner.id;\n }\n this.cache.set(content.id, content);\n this.status.set(content.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(content.id);\n }\n for (const id of contentIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n contentIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (eventIds.length > 0) {\n eventIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getEvents({ filter: `_id=@${eventIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((e) => e.owner?.id));\n const foundIds = new Set();\n for (const event of response.docs) {\n if (event.owner?.id) {\n event.owner.name =\n owners[event.owner.id] || event.owner.id;\n }\n this.cache.set(event.id, event);\n this.status.set(event.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(event.id);\n }\n for (const id of eventIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n const assetIds = response.docs.map((e) => ({\n id: e.assetRef,\n resourceType: 'asset',\n }));\n this.loadReferences(assetIds);\n })\n .catch((error) => {\n console.error(error);\n eventIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n }\n getContext(id) {\n return this.cache.get(id);\n }\n assetForContent(contentId) {\n for (const resource of this.cache.values()) {\n if (resource.attachments?.includes(contentId)) {\n return resource;\n }\n }\n return null;\n }\n assetForEvent(event) {\n if (event.assetRef) {\n return this.cache.get(event.assetRef);\n }\n else {\n return null;\n }\n }\n getIdForName(name) {\n for (const resource of this.cache.values()) {\n if (resource.name?.toLowerCase() ===\n name.toLowerCase() ||\n resource.filename?.toLowerCase() === name.toLowerCase()) {\n return resource.id;\n }\n }\n return null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ContextService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ContextService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFVdEUsTUFBTSxPQUFPLGNBQWM7SUFDekIsS0FBSyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO0lBQy9ELE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUVsQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLGFBQWEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUU5RCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQThCO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUV4QixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVB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dGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBBc3NldCwgQXNzZXRUeXBlLCBDb250ZW50LCBFdmVudCB9IGZyb20gJ0BoYWhucHJvL2hwYy1hcGknO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3duZXJSZXNvbHZlclNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL293bmVyLXJlc29sdmVyLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXR1cyB7XG4gIGlzQ29tcGxldGU/OiBib29sZWFuO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgbm90Rm91bmQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBBc3NldCB8IEFzc2V0VHlwZSB8IENvbnRlbnQgfCBFdmVudD4oKTtcbiAgc3RhdHVzID0gbmV3IE1hcDxzdHJpbmcsIFN0YXR1cz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3duZXJSZXNvbHZlciA9IGluamVjdChPd25lclJlc29sdmVyU2VydmljZSk7XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgIHRoaXMuc3RhdHVzLmNsZWFyKCk7XG4gIH1cblxuICBhc3luYyBsb2FkUmVmZXJlbmNlcyhyZWZlcmVuY2VzOiBDb250ZXh0UmVmZXJlbmNlW10pIHtcbiAgICBjb25zdCBhc3NldElkcyA9IFtdO1xuICAgIGNvbnN0IGNvbnRlbnRJZHMgPSBbXTtcbiAgICBjb25zdCBldmVudElkcyA9IFtdO1xuICAgIGNvbnN0IGFzc2V0VHlwZUlkcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmNhY2hlLmhhcyhyZWZlcmVuY2UuaWQpICYmXG4gICAgICAgIHRoaXMuc3RhdHVzLmdldChyZWZlcmVuY2UuaWQpPy5pc0NvbXBsZXRlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocmVmZXJlbmNlLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0Jykge1xuICAgICAgICBhc3NldElkcy5wdXNoKHJlZmVyZW5jZS5pZCk7XG4gICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZS5yZXNvdXJjZVR5cGUgPT09ICdhc3NldC10eXBlJykge1xuICAgICAgICBhc3NldFR5cGVJZHMucHVzaChyZWZlcmVuY2UuaWQpO1xuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcpIHtcbiAgICAgICAgY29udGVudElkcy5wdXNoKHJlZmVyZW5jZS5pZCk7XG4gICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZS5yZXNvdXJjZVR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgZXZlbnRJZHMucHVzaChyZWZlcmVuY2UuaWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhc3NldElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBhc3NldElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEFzc2V0cyh7IGZpbHRlcjogYF9pZD1AJHthc3NldElkcy5qb2luKCcsJyl9YCB9KVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSBhd2FpdCB0aGlzLm93bmVyUmVzb2x2ZXIucmVzb2x2ZU93bmVycyhcbiAgICAgICAgICAgIHJlc3BvbnNlLmRvY3MubWFwKChhKSA9PiBhLm93bmVyPy5pZCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBmb3VuZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGFzc2V0Lm93bmVyPy5pZCkge1xuICAgICAgICAgICAgICAoYXNzZXQub3duZXIgYXMgYW55KS5uYW1lID1cbiAgICAgICAgICAgICAgICBvd25lcnNbYXNzZXQub3duZXIuaWRdIHx8IGFzc2V0Lm93bmVyLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoYXNzZXQuaWQsIGFzc2V0KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChhc3NldC5pZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiB0cnVlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm91bmRJZHMuYWRkKGFzc2V0LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBhc3NldElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgYXNzZXRJZHMuZm9yRWFjaCgoaWQpID0+XG4gICAgICAgICAgICB0aGlzLnN0YXR1cy5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoYXNzZXRUeXBlSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFzc2V0VHlwZUlkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEFzc2V0VHlwZXMoeyBmaWx0ZXI6IGBfaWQ9QCR7YXNzZXRUeXBlSWRzLmpvaW4oJywnKX1gIH0pXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG93bmVycyA9IGF3YWl0IHRoaXMub3duZXJSZXNvbHZlci5yZXNvbHZlT3duZXJzKFxuICAgICAgICAgICAgcmVzcG9uc2UuZG9jcy5tYXAoKGEpID0+IGEub3duZXI/LmlkKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGZvdW5kSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgZm9yIChjb25zdCBhc3NldFR5cGUgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGFzc2V0VHlwZS5vd25lcj8uaWQpIHtcbiAgICAgICAgICAgICAgKGFzc2V0VHlwZS5vd25lciBhcyBhbnkpLm5hbWUgPVxuICAgICAgICAgICAgICAgIG93bmVyc1thc3NldFR5cGUub3duZXIuaWRdIHx8IGFzc2V0VHlwZS5vd25lci5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGFzc2V0VHlwZS5pZCwgYXNzZXRUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChhc3NldFR5cGUuaWQsIHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvdW5kSWRzLmFkZChhc3NldFR5cGUuaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGNvbnN0IGlkIG9mIGFzc2V0VHlwZUlkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgYXNzZXRUeXBlSWRzLmZvckVhY2goKGlkKSA9PlxuICAgICAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnRJZHMubGVuZ3RoID4gMCkge1xuICAgICAgY29udGVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldENvbnRlbnRzKHtcbiAgICAgICAgICBmaWx0ZXI6IGBfaWQ9QCR7Y29udGVudElkcy5qb2luKCcsJyl9YCxcbiAgICAgICAgICBwb3B1bGF0ZTogJ2FuYWx5c2lzJyxcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3duZXJzID0gYXdhaXQgdGhpcy5vd25lclJlc29sdmVyLnJlc29sdmVPd25lcnMoXG4gICAgICAgICAgICByZXNwb25zZS5kb2NzLm1hcCgoYykgPT4gYy5vd25lcj8uaWQpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZm91bmRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbnRlbnQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQub3duZXI/LmlkKSB7XG4gICAgICAgICAgICAgIChjb250ZW50Lm93bmVyIGFzIGFueSkubmFtZSA9XG4gICAgICAgICAgICAgICAgb3duZXJzW2NvbnRlbnQub3duZXIuaWRdIHx8IGNvbnRlbnQub3duZXIuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChjb250ZW50LmlkLCBjb250ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChjb250ZW50LmlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IHRydWUsXG4gICAgICAgICAgICAgIGlzRXJyb3I6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmb3VuZElkcy5hZGQoY29udGVudC5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgY29udGVudElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgY29udGVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChldmVudElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEV2ZW50cyh7IGZpbHRlcjogYF9pZD1AJHtldmVudElkcy5qb2luKCcsJyl9YCB9KVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSBhd2FpdCB0aGlzLm93bmVyUmVzb2x2ZXIucmVzb2x2ZU93bmVycyhcbiAgICAgICAgICAgIHJlc3BvbnNlLmRvY3MubWFwKChlKSA9PiBlLm93bmVyPy5pZCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBmb3VuZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGV2ZW50Lm93bmVyPy5pZCkge1xuICAgICAgICAgICAgICAoZXZlbnQub3duZXIgYXMgYW55KS5uYW1lID1cbiAgICAgICAgICAgICAgICBvd25lcnNbZXZlbnQub3duZXIuaWRdIHx8IGV2ZW50Lm93bmVyLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoZXZlbnQuaWQsIGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChldmVudC5pZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiB0cnVlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm91bmRJZHMuYWRkKGV2ZW50LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBldmVudElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFzc2V0SWRzID0gcmVzcG9uc2UuZG9jcy5tYXAoXG4gICAgICAgICAgICAoZSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBpZDogZS5hc3NldFJlZixcbiAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgICAgIH0pIGFzIENvbnRleHRSZWZlcmVuY2UsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmxvYWRSZWZlcmVuY2VzKGFzc2V0SWRzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIGV2ZW50SWRzLmZvckVhY2goKGlkKSA9PlxuICAgICAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dChpZDogc3RyaW5nKTogQXNzZXQgfCBBc3NldFR5cGUgfCBDb250ZW50IHwgRXZlbnQge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChpZCk7XG4gIH1cblxuICBhc3NldEZvckNvbnRlbnQoY29udGVudElkOiBzdHJpbmcpOiBBc3NldCB8IG51bGwge1xuICAgIGZvciAoY29uc3QgcmVzb3VyY2Ugb2YgdGhpcy5jYWNoZS52YWx1ZXMoKSkge1xuICAgICAgaWYgKChyZXNvdXJjZSBhcyBBc3NldCkuYXR0YWNobWVudHM/LmluY2x1ZGVzKGNvbnRlbnRJZCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlIGFzIEFzc2V0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzc2V0Rm9yRXZlbnQoZXZlbnQ6IEV2ZW50KTogQXNzZXQgfCBudWxsIHtcbiAgICBpZiAoZXZlbnQuYXNzZXRSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChldmVudC5hc3NldFJlZikgYXMgQXNzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldElkRm9yTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIHRoaXMuY2FjaGUudmFsdWVzKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHJlc291cmNlIGFzIEFzc2V0IHwgQXNzZXRUeXBlIHwgRXZlbnQpLm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgbmFtZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICAgIChyZXNvdXJjZSBhcyBDb250ZW50KS5maWxlbmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlLmlkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRSZWZlcmVuY2Uge1xuICByZWZlcmVuY2VfaWQ6IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiAnYXNzZXQnIHwgJ2Fzc2V0LXR5cGUnIHwgJ2NvbnRlbnQnIHwgJ2V2ZW50JyB8ICd3ZWItc291cmNlJztcbiAgcGFnZU51bWJlcj86IG51bWJlcjtcbiAgZmlyc3RPY2N1cnJlbmNlPzogYm9vbGVhbjtcbiAgcmV0cmlldmFsRGF0ZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG4iXX0=","import { NgModule, isDevMode } from '@angular/core';\nimport { DefaultTranspiler, TRANSLOCO_LOADER, TRANSLOCO_TRANSPILER, TranslocoModule, provideTransloco, } from '@jsverse/transloco';\nimport { Injectable } from '@angular/core';\nimport { of } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport const translations = {\n en: {\n accepted: 'Accepted',\n access_restricted: 'Access restricted',\n access_unrestricted: 'Access unrestricted',\n account: 'Account',\n action: 'Action',\n actions: 'Actions',\n active: 'Active',\n add_attachment: 'Add Attachment',\n add_attribute: 'Add Attribute',\n add_new: 'Add New',\n add_new_member: 'Add new member',\n add_new_organization: 'Add new Organization',\n add_to_clipboard: 'Add to clipboard',\n address: 'Address',\n administration: 'Administration',\n ai: {\n abort: 'Abort',\n accept: 'Accept',\n accessed_at: 'Accessed at',\n adam_ai_intro: 'Engage in real-time conversations with Adam AI, your expert assistant in Asset Intelligence. Get instant, intelligent insights and solutions tailored to your needs.',\n agent_unavailable: 'Agent unavailable',\n ai_placeholder: 'How can ADAM help you today?',\n and: 'and',\n ask_about_asset: 'Ask ADAM AI about this asset',\n ask_adam: 'Ask Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistants',\n chat_deleted: 'Chat deleted',\n chats: 'Chats',\n clear_history: 'Clear History',\n complete_and_create_report: 'Complete and create report',\n context: 'Referenced Context',\n context_found: 'Found related context',\n context_none: 'No related Assets or files found. Consider revising your prompt.',\n context_search: 'Searching for related Assets and files...',\n continue_chat: 'Continue Chat',\n continue_previous_chat: 'Continue previous Chat',\n cookies: 'Cookies',\n create_new_chat: 'Create New Chat',\n create_new_event: 'Create new Event with the help of Adam AI',\n de: 'Deutsch',\n delete_chat: 'Delete Chat',\n delete_item: 'Delete Item',\n delete_item_message: '{count, plural, one {Are you sure you want to delete this item?<br><br><b>{{ items }}</b>} other {Are you sure you want to delete these # items?}}',\n delete_item_message_general: 'Are you sure you want to delete this item?',\n delete_item_title: '{count, plural, one {Delete Item} other {Delete Multiple Items}}',\n document: 'Document',\n en: 'English',\n failed_to_create_chat: 'Failed to create chat',\n failed_to_delete_chat: 'Failed to delete chat',\n failed_to_initialize_chat: 'Failed to initialize chat',\n failed_to_load_assistants: 'Failed to load assistants',\n failed_to_load_chats: 'Failed to load chat history',\n failed_to_process_message: 'The message could not be processed. Please try again.',\n failed_to_send_message: 'Failed to send message',\n failed_to_update_model: 'Failed to update model',\n file_type: {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter': 'Your request was blocked due to content filters. Please try rephrasing your question and try again.',\n error: 'Something went wrong. Please try again later.',\n length: 'The request is too long to process. Please try again or start a new conversation.',\n unknown: 'Something went wrong. Please try again later.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Ask Adam AI for help',\n last_message: 'Last Message',\n model: 'GPT Model',\n model_updated: 'Model updated',\n no_chats_found: 'No chats found',\n no_messages: 'No messages yet',\n none_of_those: 'None of those',\n of_document: 'of document',\n openai_disclaimer: 'In the preview version of the Asset Web Assistant, your data will be processed by OpenAI outside the EU. Do you agree with this?',\n previous_chats: 'Previous Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Provide a detailed maintenance plan for my asset',\n title: 'Asset Info',\n },\n intro: {\n prompt: 'What is Adam AI and how can it help me with asset management?',\n title: 'Introduction',\n },\n },\n prompts: {\n asset: 'I have a question related to the Asset.',\n help: 'Please help me solve this task.',\n incident: 'Please create a new incident.',\n report: 'I have completed the task. Please create a report for it.',\n },\n reference_not_found: 'Reference not found',\n retry: 'Retry',\n select_asset: 'Select Asset',\n send_message: 'Send Message',\n source: 'Source',\n stop_recording: 'Stop Recording',\n suggested_prompts: 'Suggested prompts to get started with ADAM AI',\n threads: 'Threads',\n toast_error_delete_entry: 'Could not delete {{entry}}.',\n toast_success_delete_entry: '{{entry}} deleted.',\n tools: {\n createAxaltaEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createReport: {\n completed: 'Report was created',\n failed: 'Report could not be created',\n pending: 'Creating Report',\n processing: 'Creating Report',\n },\n getAdditionalDataTemplate: {\n completed: 'Additional data was retrieved',\n failed: 'Additional data could not be retrieved',\n pending: 'Retrieving Additional data',\n processing: 'Retrieving Additional data',\n },\n getAssetData: {\n completed: 'Asset data was retrieved',\n failed: 'Asset data could not be retrieved',\n pending: 'Retrieving Asset data',\n processing: 'Retrieving Asset data',\n },\n getReportTemplate: {\n completed: 'Report template was retrieved',\n failed: 'Report template could not be retrieved',\n pending: 'Retrieving Report template',\n processing: 'Retrieving Report template',\n },\n searchForAssetAxalta: {\n completed: 'Search for Asset completed',\n failed: 'Search for Asset failed',\n pending: 'Searching for Asset',\n processing: 'Searching for Asset',\n },\n searchForAssetWithId: {\n completed: 'Search for Asset with ID completed',\n failed: 'Search for Asset with ID failed',\n pending: 'Searching for Asset with ID',\n processing: 'Searching for Asset with ID',\n },\n searchForAssets: {\n completed: 'Search for Assets completed',\n failed: 'Search for Assets failed',\n pending: 'Searching for Assets',\n processing: 'Searching for Assets',\n },\n searchForDocuments: {\n completed: 'Search for Documents completed',\n failed: 'Search for Documents failed',\n pending: 'Searching for Documents',\n processing: 'Searching for Documents',\n },\n searchForEvents: {\n completed: 'Search for Events completed',\n failed: 'Search for Events failed',\n pending: 'Searching for Events',\n processing: 'Searching for Events',\n },\n },\n use_microphone: 'Use Microphone',\n use_web_search: 'Search in Web',\n view_previous_chats: 'View Previous Chats',\n web_source: 'Web Source',\n },\n alert: 'Alert',\n alerts: 'Alerts',\n allowed_to: \"You're allowed to\",\n and: 'and',\n applications: 'Applications',\n apps: 'Applications',\n appstore: 'App Store',\n ascending: 'Ascending',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Type',\n assets: 'Assets',\n assettype: 'Asset Type',\n assettypes: 'Asset Types',\n attachment: 'Attachment',\n attachments: 'Attachments',\n audit_logs: 'Audit Logs',\n author: 'Author',\n authorization_type: 'Authorization Type',\n average: 'Average',\n back: 'Back',\n back_to_organizations: 'Back to organizations',\n bucket_time_range: 'Bucket Time Range (Default is 24h)',\n by: 'by',\n 'cad-preview': {\n 'cad-direction-y': 'Set Y as up vector',\n 'cad-direction-z': 'Set Z as up vector',\n 'cad-fixed-vector': 'Fixed up vector',\n 'cad-menu-center': 'Center',\n 'cad-menu-flip-vector': 'Flip',\n 'cad-unfixed-vector': 'Unfixed vector',\n 'cad-viewer-flip-camera-mode-orthogonal': 'Turn on the Orthographic camera',\n 'cad-viewer-flip-camera-mode-perspective': 'Turn on the Perspective camera',\n 'error-default-filetype': 'Invalid filetype',\n 'error-invalid-filetype': '{{filetype}} is not supported. Try compressing files in a ZIP file if this is a CAD-drawing',\n },\n calendar: 'Calendar',\n cancel: 'Cancel',\n catalog: 'Catalog',\n 'category.delete': 'Remove category',\n 'cert.add.new': 'Add new Certificate',\n 'cert.delete': 'Remove Certificate',\n 'cert.edit': 'Edit Certificate',\n 'cert.name': \"Certificate's name\",\n cert_add_new_description: 'Management of organization related certificates',\n certificate: 'Certificate',\n 'certificate.add.new': 'Add new Certificate',\n certification: {\n date_issue: 'Date of Issue',\n expiration_date: 'Expiration date',\n institution: 'Certification Institution',\n number: 'Certificate number',\n },\n children: 'Children',\n choose: 'Choose',\n choose_file: 'Choose file',\n city: 'City',\n color: 'Color',\n column_settings: 'Column Settings',\n comment: 'Comment',\n company_manager: 'Company Manager',\n company_matching: 'Company Matching',\n complete_subscription: 'Complete Subscription',\n confirm: 'Confirm',\n consent_management: {\n accept_all: 'Accept all',\n accept_all_note: 'By clicking \"Accept all\", you agree to the use of essential and analytics cookies.',\n always_enabled: 'Always enabled',\n cookie_groups: {\n analytics: {\n description: 'These cookies gather data on website usage, such as which pages are visited, to help us identify the most popular pages and understand how visitors navigate the site. <br /> Website usage data is captured using persistent first and third-party cookies and other tracking technologies to determine the popularity of products and online activity.',\n title: 'Analytics cookies',\n },\n essential: {\n description: 'These cookies are essential for the operation of the website. They are usually only set in response to your actions, such as setting your privacy preferences. These cookies do not store any personally identifiable information.',\n title: 'Essential cookies',\n },\n },\n cookie_intro: 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.',\n cookie_intro_extended: 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.<br />We use Microsoft Clarity to analyse how our website is used and to improve our products. By using our site, you consent to us and Microsoft collecting and using this data.',\n cookie_learn_more: 'To learn more, please view our',\n cookie_preferences_center: 'Cookie Preferences Center',\n cookie_settings: 'Cookie Settings',\n cookie_usage: 'Cookie usage',\n manage_preferences: 'Manage preferences',\n reject_all: 'Reject all',\n save_preferences: 'Save preferences',\n },\n content: 'Content',\n 'content.file_type': {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n 'content.show_preview': 'Show Preview',\n 'content.size': 'Size',\n 'content.toast_downloading_content': 'Downloading content...',\n 'content.toast_error_download_content': 'Could not download content.',\n 'content.toast_success_download_content': 'Content downloaded successfully.',\n content_drop_zone_text: 'Drag & Drop File',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'Copy ID',\n count: 'Count',\n created: 'Created',\n critical: 'Critical',\n current_organization: 'Current Organization',\n danger_zone: 'Danger Zone',\n dashboards: 'Dashboards',\n data: 'Data',\n date: 'Date',\n day: 'Day',\n days: 'Days',\n de: 'Deutsch',\n default: 'Default',\n delete: 'Delete',\n delete_attachment: 'Delete Attachment',\n delete_member: 'Remove member',\n delete_revision: 'Delete Revision',\n delete_title: 'Delete Title',\n deleted: 'Deleted',\n delimiter: 'Delimiter, like ; or :',\n descending: 'Descending',\n description: 'Description',\n details: 'Details',\n domain: 'Domain',\n 'domain.delete': 'Delete Domain name',\n domain_name: 'Domain name',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'Add new domain',\n domains: 'Domains',\n download: 'Download',\n download_attachment: 'Download Attachment',\n drag_drop_file: {\n error: {\n file_too_large: \"The file '{{fileName}}' exceeds the maximum allowed size of {{maxFileSize}} and has been ignored.\",\n file_type_not_allowed: \"The file type of '{{fileName}}' is not allowed and has been rejected.\",\n },\n max_file_size: 'Maximum file size',\n prompt_1: 'Drag & drop {limit, plural, one {file} other {files}} here or ',\n prompt_2: 'click to browse',\n warning: {\n max_file_count: 'You have selected {{fileCount}} files, but the maximum allowed is {{maxFileCount}}. Only the first {{maxFileCount}} files have been accepted.',\n },\n },\n duration: 'Duration',\n edit: 'Edit',\n edit_attachment: 'Edit Attachment',\n edit_event_level: 'Edit Event Level',\n edit_title: 'Edit Title',\n editor: 'Editor',\n email: 'Email',\n employees: 'Employees',\n en: 'English',\n encoding: 'Encoding',\n endpoints: 'Notification Endpoints',\n english: 'English',\n entries: 'Entries',\n error: 'Error',\n error_loading: 'Failed to load {item}',\n error_message_update: 'Could not update User Settings',\n errors: 'Errors',\n event: 'Event',\n event_level: 'Event Level',\n events: 'Events',\n filename: 'Filename',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Function',\n flowfunctions: 'Flow Functions',\n flowmodel: 'Flow Model',\n flowmodule: 'Flow Module',\n flowmodules: 'Flow Modules',\n flows: 'Flows',\n form_error_delimiter: 'Delimiter required.',\n form_error_details: 'Details Form has Errors.',\n form_error_email: 'Email is required.',\n form_error_empty_method: 'The method must be not empty.',\n form_error_empty_url: 'The URL must be not empty.',\n form_error_encoding: 'Encoding need to set.',\n form_error_expiry_date: 'Expiry date is required.',\n form_error_group: 'At least one group must be selected.',\n form_error_length: 'Name must be at least {{length}} characters long.',\n form_error_max_length: 'Must be no more than {{length}} characters',\n form_error_min_length: 'Must be at least {{length}} characters',\n form_error_name: 'Name is required.',\n form_error_name_pattern: 'Only letters, numbers, spaces, hyphens (-), and underscores (_) are allowed',\n form_error_read: 'At least one read permission must be selected.',\n form_error_read_write: 'At least one read/write permission must be selected.',\n form_error_required: 'Field is required',\n form_error_role_pattern: 'Only lowercase letters, hyphens (-), and underscores (_) are allowed',\n form_error_schema_req: 'Schema is required.',\n form_error_select_file: 'A file must be selected.',\n form_error_select_type: 'An asset type must be selected.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Property has to be unique: ',\n form_error_view: 'View is needed.',\n general: 'General',\n german: 'German',\n global: 'Global',\n group: 'Group',\n group_by: 'Group by',\n history: 'History',\n hour_format: '{{time}}-hour Time Format',\n id: 'ID',\n inactive: 'Inactive',\n info: 'Info',\n invite_new_employee: 'Invite new employee',\n invite_new_employee_description: 'Inviting new employees and assigning them to specific roles',\n invite_new_member: 'Invite new member',\n invite_new_member_description: 'Inviting new member and assigning them to specific roles',\n 'jsf_widgets.content.error.resolving_content_failed': 'Could not resolve Content',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID not set',\n 'jsf_widgets.content_reference.error.loading_attachments_failed': 'Could not load Asset Attachments',\n 'jsf_widgets.cron.error.invalid_expression': 'Not a valid cron expression',\n 'jsf_widgets.duration.error.invalid_duration': 'Not a valid duration',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed': 'Could not load Permissions of all users',\n 'jsf_widgets.permission.error.load_permissions_failed': 'Could not load Permissions',\n 'jsf_widgets.resource_reference.error.searching_failed': 'Search could not be completed',\n keys: 'Keys',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Edit Labels',\n labels_edit_default: 'Edit Global Default Labels',\n language: 'Language',\n last_updated: 'Last updated',\n leave: 'Leave',\n legal_notice: 'Legal Notice',\n list: 'List',\n loading: 'loading...',\n logo: 'Logo',\n manage_groups: 'Manage Groups',\n manage_identity_providers: 'Role that allows to manage the configured identity providers of the company',\n manage_invitations: 'Role that allows to manage open invitations of the company',\n manage_members: 'Role that allows to manage the members of the company',\n manage_organization: 'Role that allows to manage the company and its details',\n manage_roles: 'Role that allows to manage the roles of the company',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Message',\n method: 'Method',\n modules: 'Modules',\n month: 'Month',\n months: 'Months',\n my_tasks: 'My Tasks',\n name: 'Name',\n new_feminine: 'New',\n new_masculine: 'New',\n new_neutral: 'New',\n new_tag: 'New Label',\n next: 'Next',\n next_step: 'Next',\n no_description: 'No description',\n no_labels: 'No Labels',\n no_preview: 'No preview available',\n no_result: 'No results found!',\n not_assigned: 'Not assigned',\n notification_close_tooltip: 'Close',\n notification_info_empty_list: 'No notifications available',\n notification_open_manager_tooltip: 'Open Notification Manager',\n notification_open_tooltip: 'Open',\n notification_read_all_tooltip: 'Mark all as read',\n notification_read_tooltip: 'Mark as read',\n notification_rules: 'Notification Rules',\n notification_toast_info: 'Received a new notification!',\n notification_unread_tooltip: 'Mark as unread',\n notificationendpoint: 'Notification Endpoint',\n notificationendpoints: 'Notification Endpoints',\n notificationrule: 'Notification Rule',\n notificationrules: 'Notification Rules',\n notifications: 'Notifications',\n offer_requests: 'Offer Requests',\n offers: 'Offers',\n ok: 'OK',\n open: 'Open',\n opened: 'Opened',\n organization: 'Organization',\n 'organization.delete': 'Delete Organization',\n 'organization.delete_as_superuser': 'Delete Organization as Superuser',\n 'organization.request_delete': 'Request Organization Deletion',\n organization_delete_message: 'Should the Organization <b>{organization}</b> and all associated data really be deleted?',\n organization_overview: 'Organization Overview',\n organization_request_delete_description: 'You hereby request the deletion of your Organization. Please note that the deletion of an Organization is irrevocable and all data belonging to the Organization will also be deleted.',\n organization_tenders: 'Organization Tenders',\n organizations: 'Organizations',\n overview: 'Overview',\n owner: {\n edit_permission: 'Members of {{org}} are allowed to view and edit',\n managed_by: 'Managed by',\n view_permission: 'Members of {{org}} are allowed to view',\n },\n page: 'Page',\n parent: 'Parent',\n password: 'Password',\n pending: 'Pending',\n period: 'Period',\n permissions: 'Permissions',\n phone_number: 'Phone Number',\n preview: 'Preview',\n previous: 'Previous',\n privacy_policy: 'Privacy Policy',\n profile: 'Profile',\n properties: 'Properties',\n property: 'Property',\n quarter: 'Quarter',\n read_permissions: 'Read Permissions',\n read_permissions_edit_default: 'Edit Default Read/Write Permissions',\n read_write_permissions: 'Read/Write Permissions',\n reference: 'Reference',\n references: 'References',\n reset: 'Reset',\n response_type: 'Response Type',\n revision: 'Revision',\n 'role.add.new': 'Add role',\n 'role.delete': 'Remove role',\n 'role.edit': 'Edit role description',\n 'role.edit.info': 'Each role must have a unique name and cannot be modified after creating of the role. Only lowercase letters, hyphens (-), and underscores (_) are allowed in the name.',\n 'role.name': 'Name of the role',\n role_add_new_description: 'Establishing new roles within your organization and distributing them to resources or assigning them to members as needed.',\n role_admin: 'Admin Role',\n role_info: 'Roles to assign the user. Admin role gets all roles. View role gets view only.',\n role_view: 'View Role',\n roles: 'Roles',\n rollback_version: 'Roll back To selected version',\n save: 'Save',\n schema: 'Schema',\n search: 'Search...',\n 'search.no_results': 'No results found',\n search_asset_types: 'Search asset types...',\n search_assets: 'Search assets...',\n search_for_page: 'Search for a page',\n search_roles: 'Search roles...',\n search_tsm: 'Search timeseries...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Select',\n select_file: 'Select File',\n selected_file: 'Selected File',\n 'service.add.new': 'Add Service',\n 'service.delete': 'Remove Service',\n services: 'Services',\n settings: 'Settings',\n setup_certs_description: 'Setup associated certificates',\n show: 'Show',\n show_differences: 'Show differences',\n show_preview: 'Show Preview',\n sign_in: 'Sign in',\n sign_out: 'Sign out',\n signed_in_as: 'Signed in as',\n sort: 'Sort',\n statistic_queries: 'Statistic Queries',\n status: 'Status',\n supertype: 'Supertype',\n system: 'System',\n tags: 'Labels',\n task: 'Task',\n tasks: 'Tasks',\n time: 'Time',\n time_series: 'Time Series',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Time Series',\n title: 'Title',\n toast_active_organization_error: 'Failed to change active organization.',\n toast_active_organization_loading: 'Changing active organization...',\n toast_active_organization_success: 'Successfully changed active organization.',\n toast_error: 'Error!',\n toast_error_add_employee: \"Couldn't send the invitation of the new employee\",\n toast_error_add_member: \"Couldn't send the invitation of the new member\",\n toast_error_add_role: \"Couldn't add role\",\n toast_error_authenticate: 'Could not authenticate.',\n toast_error_create_tsm: 'Could not create Time Series.',\n toast_error_index_content: 'Error when retrieving indexing status',\n toast_error_invitation_send: 'Could not send invitation',\n toast_error_load_cert: 'Could not load certificates',\n toast_error_load_event_causes: 'Could not load Event causes override.',\n toast_error_load_item: 'Could not load {{item}}.',\n toast_error_load_list: 'Could not load list.',\n toast_error_load_org_roles: 'Could not load roles of the active company.',\n toast_error_load_permissions: 'Could not load Permissions',\n toast_error_load_permissions_all_users: 'Could not load Permissions of all users',\n toast_error_load_preview: 'Could not load preview.',\n toast_error_load_role: 'Could not load roles',\n toast_error_load_service: 'Could not load services',\n toast_error_load_tender: 'Could not load tender.',\n toast_error_organization_delete: 'Could not delete organization',\n toast_error_organization_name_exists: 'Organization with name {{name}} already exists',\n toast_error_rollback_version: 'Cannot roll back to selected version',\n toast_error_save_item: 'Could not save {{item}}',\n toast_error_update_attachment: '{count, plural, one {Could not update attachment} other {Could not update # attachments}}',\n toast_error_update_event_causes: 'Could not update Event causes override.',\n toast_error_update_service: 'Could not update services',\n toast_error_upload_file: '{count, plural, one {Could not upload {{file}}} other {Could not upload # files}}',\n toast_error_upload_file_max: 'No more than {{max}} files may be uploaded at the same time.',\n toast_form_error_required: '{{param}} cannot be empty',\n toast_form_error_required_selection: 'You must select at least one {{param}}',\n toast_form_error_required_selection_feminine: 'You must select at least one {{param}}',\n toast_info: 'Info!',\n toast_success: 'Success!',\n toast_success_add_employee: 'The invitation of the new employee has been sent successfully',\n toast_success_add_member: 'The invitation of the new member has been sent successfully',\n toast_success_add_role: 'Role has been added successfully',\n toast_success_invitation_send: 'Invitation sent',\n toast_success_update_attachment: '{count, plural, one {Attachment updated} other {# Attachments updated}}',\n toast_success_update_service: 'Service updated.',\n toast_success_upload_file: '{count, plural, one {Upload of {{file}} completed} other {Upload of # files completed}}',\n toast_warning: 'Warning!',\n toast_warning_invalid_form_data: 'Invalid form data. Please check the form for errors.',\n toast_warning_invalid_schema: 'Properties Schema is invalid',\n toast_warning_rollback_version: \"These referenced elements of the revision don't exist anymore: {{entries}}\",\n tour_start: 'Start tour',\n type: 'Type',\n unknown: 'unknown',\n unverified: 'Unverified',\n updated: 'Updated',\n updated_by: 'Updated by',\n upload_date: 'Upload Date',\n upload_file: 'Upload File',\n url: 'URL',\n user: 'User',\n user_roles: 'User Roles',\n username: 'Username',\n vat: 'VAT-ID',\n vat_example: 'VAT-ID must be from Germany (DE followed by 9 digits, e.g. DE123456789) or Austria (ATU followed by 8 digits, e.g. ATU12345678)',\n verified: 'Verified',\n view: 'View',\n view_identity_providers: 'Role that allows to view the configured identity providers of the company',\n view_invitations: 'Role that allows to view all open invitations of the company',\n view_members: 'Role that allows to view all current members of the company',\n view_organization: 'Role that allows to view the company',\n view_roles: 'Role that allows to view all roles of the company',\n warning: 'Warning',\n week: 'Week',\n write_permissions: 'Write Permissions',\n year: 'Year',\n years: 'Years',\n zip_code: 'Postal Code',\n zip_code_error: 'The Postal Code must be valid and not be longer than 10 digits.',\n },\n de: {\n accepted: 'Angenommen',\n access_restricted: 'Zugriff beschränkt',\n access_unrestricted: 'Unbeschränkter Zugriff',\n account: 'Nutzerkonto',\n action: 'Aktion',\n actions: 'Aktionen',\n active: 'Aktiv',\n add_attachment: 'Anhang Hinzufügen',\n add_attribute: 'Attribut Hinzufügen',\n add_new: 'Neue Hinzufügen',\n add_new_member: 'Neues Mitglied hinzufügen',\n add_new_organization: 'Neue Organisation hinzufügen',\n add_to_clipboard: 'Zur Zwischenablage hinzufügen',\n address: 'Adresse',\n administration: 'Verwaltung',\n ai: {\n abort: 'Abbrechen',\n accept: 'Akzeptieren',\n accessed_at: 'Zugegriffen am',\n adam_ai_intro: 'Unterhalten Sie sich in Echtzeit mit Adam AI, Ihrem Expertenassistenten für Asset Intelligence. Erhalten Sie intelligente Einblicke und Lösungen, die auf Ihre Bedürfnisse zugeschnitten sind.',\n agent_unavailable: 'Agent nicht verfügbar',\n ai_placeholder: 'Wie kann ADAM Ihnen heute helfen?',\n and: 'und',\n ask_about_asset: 'ADAM AI über dieses Asset fragen',\n ask_adam: 'Frag Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistenten',\n chat_deleted: 'Chat gelöscht',\n chats: 'Chats',\n clear_history: 'Verlauf löschen',\n complete_and_create_report: 'Abschließen und Bericht erstellen',\n context: 'Referenzierter Kontext',\n context_found: 'Kontext gefunden',\n context_none: 'Keine zugehörigen Assets oder Dateien gefunden.',\n context_search: 'Suche nach zugehörigen Assets und Dateien...',\n continue_chat: 'Chat fortsetzen',\n continue_previous_chat: 'Vorherigen Chat fortsetzen',\n cookies: 'Cookies',\n create_new_chat: 'Neuen Chat erstellen',\n create_new_event: 'Neue Meldung mit Hilfe von Adam erstellen',\n de: 'Deutsch',\n delete_chat: 'Chat löschen',\n delete_item: 'Eintrag löschen',\n delete_item_message: '{count, plural, one {Möchten Sie dieses Element wirklich löschen?<br><br><b>{{ items }}</b>} other {Möchten Sie diese # Elemente wirklich löschen?}}',\n delete_item_message_general: 'Möchten Sie dieses Element wirklich löschen?',\n delete_item_title: '{count, plural, one {Element löschen} other {Mehrere Elemente löschen}}',\n document: 'Dokument',\n en: 'English',\n failed_to_create_chat: 'Chat konnte nicht erstellt werden',\n failed_to_delete_chat: 'Chat konnte nicht gelöscht werden',\n failed_to_initialize_chat: 'Chat konnte nicht initialisiert werden',\n failed_to_load_assistants: 'Assistenten konnten nicht geladen werden',\n failed_to_load_chats: 'Chat-Verlauf konnte nicht geladen werden',\n failed_to_process_message: 'Die Nachricht konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut.',\n failed_to_send_message: 'Nachricht konnte nicht gesendet werden',\n failed_to_update_model: 'Modell konnte nicht aktualisiert werden',\n file_type: {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter': 'Ihre Anfrage wurde aufgrund von Inhaltsfiltern blockiert. Bitte formulieren Sie Ihre Frage um und versuchen Sie es erneut.',\n error: 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n length: 'Die Anfrage ist zu lang, um verarbeitet zu werden. Bitte versuchen Sie es erneut oder starten Sie einen neuen Chat.',\n unknown: 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Frag Adam AI um Hilfe',\n last_message: 'Letzte Nachricht',\n model: 'GPT-Modell',\n model_updated: 'Modell aktualisiert',\n no_chats_found: 'Keine Chats gefunden',\n no_messages: 'Noch keine Nachrichten',\n none_of_those: 'Keines davon',\n of_document: 'des Dokuments',\n openai_disclaimer: 'In der Vorschauversion des Asset Web Assistenten werden Ihre Daten von OpenAI außerhalb der EU verarbeitet. Sind Sie damit einverstanden?',\n previous_chats: 'Vorherige Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Erstelle einen detaillierten Wartungsplan für mein Asset',\n title: 'Asset-Info',\n },\n intro: {\n prompt: 'Was ist Adam AI und wie kann es mir bei der Asset-Verwaltung helfen?',\n title: 'Einführung',\n },\n },\n prompts: {\n asset: 'Ich habe eine Frage zu dem Asset.',\n help: 'Bitte hilf mir bei der Lösung dieser Aufgabe.',\n incident: 'Bitte erstelle eine neue Meldung.',\n report: 'Ich habe die Aufgabe abgeschlossen. Bitte erstelle einen Bericht dazu.',\n },\n reference_not_found: 'Referenz nicht gefunden',\n retry: 'Erneut versuchen',\n select_asset: 'Asset auswählen',\n send_message: 'Nachricht senden',\n source: 'Quelle',\n stop_recording: 'Aufnahme stoppen',\n suggested_prompts: 'Vorgeschlagene Prompts für den Einstieg in ADAM AI',\n threads: 'Chats',\n toast_error_delete_entry: '{{entry}} konnte nicht gelöscht werden.',\n toast_success_delete_entry: '{{entry}} gelöscht.',\n tools: {\n createAxaltaEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createReport: {\n completed: 'Bericht wurde erstellt',\n failed: 'Bericht konnte nicht erstellt werden',\n pending: 'Bericht wird erstellt',\n processing: 'Bericht wird erstellt',\n },\n getAdditionalDataTemplate: {\n completed: 'Zusatzdaten wurden abgerufen',\n failed: 'Zusatzdaten konnten nicht abgerufen werden',\n pending: 'Zusatzdaten werden abgerufen',\n processing: 'Zusatzdaten werden abgerufen',\n },\n getAssetData: {\n completed: 'Assetdaten wurden abgerufen',\n failed: 'Assetdaten konnten nicht abgerufen werden',\n pending: 'Assetdaten werden abgerufen',\n processing: 'Assetdaten werden abgerufen',\n },\n getReportTemplate: {\n completed: 'Berichtsvorlage wurde abgerufen',\n failed: 'Berichtsvorlage konnte nicht abgerufen werden',\n pending: 'Berichtsvorlage wird abgerufen',\n processing: 'Berichtsvorlage wird abgerufen',\n },\n searchForAssetAxalta: {\n completed: 'Suche nach Asset abgeschlossen',\n failed: 'Suche nach Asset fehlgeschlagen',\n pending: 'Suche nach Asset',\n processing: 'Suche nach Asset',\n },\n searchForAssetWithId: {\n completed: 'Suche nach Asset mit ID abgeschlossen',\n failed: 'Suche nach Asset mit ID fehlgeschlagen',\n pending: 'Suche nach Asset mit ID',\n processing: 'Suche nach Asset mit ID',\n },\n searchForAssets: {\n completed: 'Suche nach Assets abgeschlossen',\n failed: 'Suche nach Assets fehlgeschlagen',\n pending: 'Suche nach Assets',\n processing: 'Suche nach Assets',\n },\n searchForDocuments: {\n completed: 'Suche nach Dokumenten abgeschlossen',\n failed: 'Suche nach Dokumenten fehlgeschlagen',\n pending: 'Suche nach Dokumenten',\n processing: 'Suche nach Dokumenten',\n },\n searchForEvents: {\n completed: 'Suche nach Ereignissen abgeschlossen',\n failed: 'Suche nach Ereignissen fehlgeschlagen',\n pending: 'Suche nach Ereignissen',\n processing: 'Suche nach Ereignissen',\n },\n },\n use_microphone: 'Mikrofon verwenden',\n use_web_search: 'Im Web suchen',\n view_previous_chats: 'Vorherige Chats anzeigen',\n web_source: 'Web-Quelle',\n },\n alert: 'Alarm',\n alerts: 'Alarme',\n allowed_to: 'Sie dürfen',\n and: 'und',\n applications: 'Anwendungen',\n apps: 'Applikationen',\n appstore: 'App Store',\n ascending: 'Aufsteigend',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Typ',\n assets: 'Assets',\n assettype: 'Asset Typ',\n assettypes: 'Asset Typen',\n attachment: 'Anhang',\n attachments: 'Anhänge',\n audit_logs: 'Audit Logs',\n author: 'Autor',\n authorization_type: 'Authorization Type',\n average: 'Durchschnitt',\n back: 'Zurück',\n back_to_organizations: 'Zurück zu Organisationen',\n bucket_time_range: 'Bucket Zeitspanne (Default ist 24h)',\n by: 'von',\n calendar: 'Kalender',\n cancel: 'Abbrechen',\n catalog: 'Katalog',\n 'category.delete': 'Dienstleistungskatalog entfernen ',\n 'cert.add.new': 'Zertifikat hinzufügen',\n 'cert.delete': 'Zertifikat entfernen',\n 'cert.edit': 'Zertifikat editieren',\n 'cert.name': 'Zertifikatsname',\n cert_add_new_description: 'Verwaltung Organisationsbezogener Zertifikate',\n certificate: 'Zertifikate',\n 'certificate.add.new': 'Zertifikat hinzufügen',\n certification: {\n date_issue: 'Ausstelldatum',\n expiration_date: 'Ablaufsdatum',\n institution: 'Zertifizierungseinrichtung',\n number: 'Zertifikatsnummer',\n },\n children: 'Kinder',\n choose: 'Auswählen',\n choose_file: 'Datei auswählen',\n city: 'Stadt',\n color: 'Farbe',\n column_settings: 'Spalten-Einstellungen',\n comment: 'Kommentar',\n company_manager: 'Unternehmen Manager',\n company_matching: 'Company-Matching',\n complete_subscription: 'Abonnement abschließen',\n confirm: 'Bestätigen',\n consent_management: {\n accept_all: 'Alle akzeptieren',\n accept_all_note: 'Durch Klicken auf \"Alle akzeptieren\" stimmen Sie der Verwendung von essentiellen und analytischen Cookies zu.',\n always_enabled: 'Immer aktiv',\n cookie_groups: {\n analytics: {\n description: 'Diese Cookies sammeln Daten über die Nutzung der Website, z.B. welche Seiten besucht werden, um uns zu helfen, die beliebtesten Seiten zu identifizieren und zu verstehen, wie Besucher auf der Website navigieren.<br />Daten zur Nutzung der Website werden mithilfe von dauerhaften Cookies von Erst- und Drittanbietern und anderen Tracking-Technologien erfasst, um die Beliebtheit von Produkten und Online-Aktivitäten zu ermitteln.',\n title: 'Analytische Cookies',\n },\n essential: {\n description: 'Diese Cookies sind für den Betrieb der Webseite unbedingt erforderlich. Sie werden in der Regel nur als Reaktion auf Ihre Handlungen gesetzt, wie z. B. die Einstellung Ihrer Datenschutzeinstellungen. Diese Cookies speichern keine persönlich identifizierbaren Informationen.',\n title: 'Erforderliche Cookies',\n },\n },\n cookie_intro: 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.',\n cookie_intro_extended: 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.<br />Wir verwenden Microsoft Clarity, um zu analysieren, wie unsere Website genutzt wird, und um unsere Produkte zu verbessern. Durch die Nutzung unserer Website erklären Sie sich damit einverstanden, dass wir und Microsoft diese Daten sammeln und nutzen.',\n cookie_learn_more: 'Um mehr zu erfahren, lesen Sie bitte unsere',\n cookie_preferences_center: 'Cookie Einstellungen',\n cookie_settings: 'Cookie Einstellungen',\n cookie_usage: 'Nutzung von Cookies',\n manage_preferences: 'Einstellungen verwalten',\n reject_all: 'Alle ablehnen',\n save_preferences: 'Einstellungen speichern',\n },\n content: 'Inhalt',\n 'content.file_type': {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n 'content.show_preview': 'Vorschau anzeigen',\n 'content.size': 'Größe',\n 'content.toast_downloading_content': 'Datei wird heruntergeladen...',\n 'content.toast_error_download_content': 'Datei konnte nicht heruntergeladen werden.',\n 'content.toast_success_download_content': 'Datei erfolgreich heruntergeladen.',\n content_drop_zone_text: 'Drag & Drop Datei',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'ID kopieren',\n count: 'Anzahl',\n created: 'Erstellt',\n critical: 'Kritisch',\n current_organization: 'Aktuelles Organisation',\n danger_zone: 'Gefahrenzone',\n dashboards: 'Dashboards',\n data: 'Daten',\n date: 'Datum',\n day: 'Tag',\n days: 'Tage',\n de: 'Deutsch',\n default: 'Standard',\n delete: 'Löschen',\n delete_attachment: 'Anhang Löschen',\n delete_member: 'Mitglied Entfernen',\n delete_revision: 'Version löschen',\n delete_title: 'Titel löschen',\n deleted: 'Gelöscht',\n delimiter: 'Trennzeichen, wie ; oder :',\n descending: 'Absteigend',\n description: 'Beschreibung',\n details: 'Details',\n domain: 'Domäne',\n 'domain.delete': 'Domänenname löschen',\n domain_name: 'Domänenname',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'neue Domäne hinzufügen',\n domains: 'Domänen',\n download: 'Herunterladen',\n download_attachment: 'Anhang Herunterladen',\n drag_drop_file: {\n error: {\n file_too_large: \"Die Datei '{{fileName}}' überschreitet die maximal zulässige Größe von {{maxFileSize}} und wurde ignoriert.\",\n file_type_not_allowed: \"Der Dateityp von '{{fileName}}' ist nicht erlaubt und wurde abgelehnt.\",\n },\n max_file_size: 'Maximale Dateigröße',\n prompt_1: 'Drag & Drop {limit, plural, one {Datei} other {Dateien}} hier oder ',\n prompt_2: 'hier klicken, um Dateien zu durchsuchen',\n warning: {\n max_file_count: 'Sie haben {{fileCount}} Dateien ausgewählt, aber maximal sind {{maxFileCount}} erlaubt. Nur die ersten {{maxFileCount}} Dateien wurden akzeptiert.',\n },\n },\n duration: 'Laufzeit',\n edit: 'Editieren',\n edit_attachment: 'Anhang Editieren',\n edit_event_level: 'Ereignis-Level editieren',\n edit_title: 'Titel anpassen',\n editor: 'Editor',\n email: 'Email',\n employees: 'Mitarbeiter',\n en: 'English',\n encoding: 'Verschlüsselung',\n endpoints: 'Benachrichtigungsendpunkte',\n english: 'Englisch',\n entries: 'Einträge',\n error: 'Fehler',\n error_loading: '{item} konnte nicht geladen werden',\n error_message_update: 'Benutzer Einstellungen konnten nicht aktualisiert werden',\n errors: 'Fehler',\n event: 'Ereignis',\n event_level: 'Ereignis-Level',\n events: 'Ereignisse',\n filename: 'Dateiname',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Funktion',\n flowfunctions: 'Flow Funktionen',\n flowmodel: 'Flow Modell',\n flowmodule: 'Flow Modul',\n flowmodules: 'Flow Module',\n flows: 'Flows',\n form_error_delimiter: 'Trennzeichen wird benötigt.',\n form_error_details: 'Auf der Details Seite sind fehlerhafte Einträge.',\n form_error_email: 'Email wird benötigt.',\n form_error_empty_method: 'Eine Methode muss ausgewählt werden.',\n form_error_empty_url: 'Das URL Feld muss ausgefüllt werden.',\n form_error_encoding: 'Eine Verschlüsselung muss angegeben werden.',\n form_error_expiry_date: 'Ein Ablaufdatum muss angegeben werden.',\n form_error_group: 'Zumindest eine Gruppe muss ausgewählt werden.',\n form_error_length: 'Der Name muss aus mindestens {{length}} Zeichen bestehen.',\n form_error_max_length: 'Darf maximal {{length}} Zeichen lang sein',\n form_error_min_length: 'Muss mindestens {{length}} Zeichen lang sein',\n form_error_name: 'Namens-Feld wird benötigt.',\n form_error_name_pattern: 'Nur Buchstaben, Zahlen, Leerzeichen, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_read: 'Mindestens ein Lese-Recht muss ausgewählt werden.',\n form_error_read_write: 'Mindestens ein Lese/Schreibe-Recht muss ausgewählt werden.',\n form_error_required: 'Pflichtfeld',\n form_error_role_pattern: 'Nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_schema_req: 'Ein Schema wird benötigt.',\n form_error_select_file: 'Eine Datei muss ausgewählt werden.',\n form_error_select_type: 'Ein Asset Typ muss ausgewählt werden.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Der Wert muss eindeutig sein: ',\n form_error_view: 'View is needed.',\n general: 'Allgemein',\n german: 'Deutsch',\n global: 'Global',\n group: 'Gruppe',\n group_by: 'Gruppieren nach',\n history: 'Verlauf',\n hour_format: '{{time}}-Stunden-Zeitformat',\n id: 'ID',\n inactive: 'Inaktiv',\n info: 'Info',\n invite_new_employee: 'Neuen Mitarbeiter einladen',\n invite_new_employee_description: 'Einladung neuer Mitarbeiter und deren Zuweisung zu bestimmten Rollen',\n invite_new_member: 'Neues Mitglied einladen',\n invite_new_member_description: 'Einladung neuer Mitglied und deren Zuweisung zu bestimmten Rollen',\n 'jsf_widgets.content.error.resolving_content_failed': 'Inhalt konnte nicht aufgelöst werden',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID ist nicht gesetzt',\n 'jsf_widgets.content_reference.error.loading_attachments_failed': 'Asset Anhänge konnten nicht geladen werden',\n 'jsf_widgets.cron.error.invalid_expression': 'Kein gültiger cron Ausdruck',\n 'jsf_widgets.duration.error.invalid_duration': 'Keine gültige Dauer',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed': 'Rechte aller Benutzer konnten nicht geladen werden',\n 'jsf_widgets.permission.error.load_permissions_failed': 'Rechte konnten nicht geladen werden',\n 'jsf_widgets.resource_reference.error.searching_failed': 'Suche konnte nicht abgeschlossen werden',\n keys: 'Schlüssel',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Labels bearbeiten',\n labels_edit_default: 'Globale Standard-Labels bearbeiten',\n language: 'Sprache',\n last_updated: 'Zuletzt aktualisiert',\n leave: 'Verlassen',\n legal_notice: 'Impressum',\n list: 'Liste',\n loading: 'lade...',\n logo: 'Logo',\n manage_groups: 'Gruppen verwalten',\n manage_identity_providers: 'Rolle, die zur Verwaltung der konfigurierten Identitätsanbieter ermächtigt',\n manage_invitations: 'Rolle, die zur Verwaltung der offenen Mitarbeitereinladungen ermächtigt',\n manage_members: 'Rolle, die zur Verwaltung der Mitgliedern ermächtigt',\n manage_organization: 'Rolle, die zur Verwaltung des Unternehmens und dessen Eigenschaften ermächtigt',\n manage_roles: 'Rolle, die zur Verwaltung der Unternehmensrollen ermächtigt',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Nachricht',\n method: 'Funktion',\n modules: 'Module',\n month: 'Monat',\n months: 'Monate',\n my_tasks: 'Meine Aufgaben',\n name: 'Name',\n new_feminine: 'Neue',\n new_masculine: 'Neuer',\n new_neutral: 'Neues',\n new_tag: 'Neues Label',\n next: 'Nächste',\n next_step: 'Weiter',\n no_description: 'Keine Beschreibung',\n no_labels: 'Keine Labels',\n no_preview: 'Keine Vorschau verfügbar',\n no_result: 'Keine Ergebnisse!',\n not_assigned: 'Nicht zugewiesen',\n notification_close_tooltip: 'Schließen',\n notification_info_empty_list: 'Keine Benachrichtigungen vorhanden',\n notification_open_manager_tooltip: 'Notification Manager öffnen',\n notification_open_tooltip: 'Öffnen',\n notification_read_all_tooltip: 'Alles als gelesen markieren',\n notification_read_tooltip: 'Als gelesen markieren',\n notification_rules: 'Benachrichtigungsregel',\n notification_toast_info: 'Neue Benachrichtigung erhalten!',\n notification_unread_tooltip: 'Als ungelesen markieren',\n notificationendpoint: 'Benachrichtigungsendpunkt',\n notificationendpoints: 'Benachrichtigungsendpunkte',\n notificationrule: 'Benachrichtigungsregel',\n notificationrules: 'Benachrichtigungsregeln',\n notifications: 'Benachrichtigungen',\n offer_requests: 'Anfragen',\n offers: 'Angebote',\n ok: 'OK',\n open: 'Öffnen',\n opened: 'Geöffnet',\n organization: 'Organisation',\n 'organization.delete': 'Organisation löschen',\n 'organization.delete_as_superuser': 'Organisation löschen als Superuser',\n 'organization.request_delete': 'Löschen der Organisation beantragen',\n organization_delete_message: 'Soll die Organisation <b>{organization}</b> mitsamt aller zugehöriger Daten wirklich gelöscht werden?',\n organization_overview: 'Organisations-Profil',\n organization_request_delete_description: 'Hiermit beantragen Sie das Löschen ihrer Organisation. Bitte beachten Sie, dass das Löschen einer Organisation unwiderruflich ist und alle zur Organisation gehörigen Daten ebenfalls gelöscht werden.',\n organization_tenders: 'Ausschreibungen der Organisations',\n organizations: 'Organisationen',\n overview: 'Übersicht',\n owner: {\n edit_permission: 'Mitglieder von {{org}} dürfen ansehen und bearbeiten',\n managed_by: 'Verwaltet von',\n view_permission: 'Mitglieder von {{org}} dürfen ansehen',\n },\n page: 'Seite',\n parent: 'Elternteil',\n password: 'Passwort',\n pending: 'Ausstehend',\n period: 'Zeitraum',\n permissions: 'Rechte',\n phone_number: 'Telefonnummer',\n preview: 'Vorschau',\n previous: 'Vorherige',\n privacy_policy: 'Datenschutzerklärung',\n profile: 'Profil',\n properties: 'Eigenschaften',\n property: 'Eigenschaft',\n quarter: 'Quartal',\n read_permissions: 'Lese Rechte',\n read_permissions_edit_default: 'Standard Lese-/Schreibe-Rechte bearbeiten',\n read_write_permissions: 'Lese/Schreibe-Rechte',\n reference: 'Referenz',\n references: 'Referenzen',\n reset: 'Zurücksetzen',\n response_type: 'Response Type',\n revision: 'Version',\n 'role.add.new': 'Rolle hinzufügen',\n 'role.delete': 'Rolle entfernen',\n 'role.edit': 'Rolle editieren',\n 'role.edit.info': 'Jede Rolle muss einen eindeutigen Namen haben und kann nach der Erstellung der Rolle nicht mehr geändert werden. Es sind nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) im Namen erlaubt.',\n 'role.name': 'Name der Rolle',\n role_add_new_description: 'Einrichtung neuer Rollen in Ihrer Organisation und deren Zuweisung nach Bedarf zu Ressourcen bzw. Mitgliedern',\n role_admin: 'Adminrechte',\n role_info: 'Rollen, die dem Benutzer zugewiesen werden sollen. Adminrechte erhält alle Rollen. Leserechte erhält nur die View-Rechte',\n role_view: 'Leserechte',\n roles: 'Rollen',\n rollback_version: 'Auf die ausgewählte Version zurücksetzen',\n save: 'Speichern',\n schema: 'Schema',\n search: 'Suche...',\n 'search.no_results': 'Keine Ergebnisse gefunden',\n search_asset_types: 'Suche Asset Types...',\n search_assets: 'Suche Assets...',\n search_for_page: 'Seite suchen',\n search_roles: 'Suche Rollen...',\n search_tsm: 'Suche Zeitreihen...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Auswählen',\n select_file: 'Datei Auswählen',\n selected_file: 'Ausgewählte Datei',\n 'service.add.new': 'Dienstleistung hinzufügen',\n 'service.delete': 'Dienstleistung entfernen',\n services: 'Dienstleistungen',\n settings: 'Einstellungen',\n setup_certs_description: 'Einrichtung zugehöriger Zertifikate',\n show: 'Zeige',\n show_differences: 'Zeige Unterschiede',\n show_preview: 'Vorschau anzeigen',\n sign_in: 'Einloggen',\n sign_out: 'Ausloggen',\n signed_in_as: 'Angemeldet als',\n sort: 'Sortierung',\n statistic_queries: 'Statistik Anfragen',\n status: 'Status',\n supertype: 'Obertyp',\n system: 'System',\n tags: 'Label',\n task: 'Aufgabe',\n tasks: 'Aufgaben',\n time: 'Zeit',\n time_series: 'Zeitreihen',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Zeitreihen',\n title: 'Titel',\n toast_active_organization_error: 'Aktive Organisation konnte nicht geändert werden.',\n toast_active_organization_loading: 'Aktive Organisation wird geändert...',\n toast_active_organization_success: 'Aktive Organisation erfolgreich geändert.',\n toast_error: 'Fehler!',\n toast_error_add_employee: 'Die Einladung des neuen Mitarbeiters konnte nicht versendet werden',\n toast_error_add_member: 'Die Einladung des neuen Mitglieds konnte nicht versendet werden',\n toast_error_add_role: 'Die Rolle konnte nicht hinzugefügt werden',\n toast_error_authenticate: 'Authentifizierung fehlgeschlagen.',\n toast_error_create_tsm: 'Zeitreihe konnte nicht erstellt werden.',\n toast_error_index_content: 'Fehler beim Abrufen des Indizierungsstatus.',\n toast_error_invitation_send: 'Einladung konnte nicht gesendet werden',\n toast_error_load_cert: 'Zertifikate konnten nicht geladen werden',\n toast_error_load_event_causes: 'Eventursachen-Override konnte nicht geladen werden.',\n toast_error_load_item: '{{item}} konnte nicht geladen werden.',\n toast_error_load_list: 'Liste konnte nicht geladen werden.',\n toast_error_load_org_roles: 'Rollen des aktiven Unternehmens konnten nicht geladen werden',\n toast_error_load_permissions: 'Rechte konnten nicht geladen werden',\n toast_error_load_permissions_all_users: 'Rechte aller Benutzer konnten nicht geladen werden',\n toast_error_load_preview: 'Vorschau konnte nicht geladen werden.',\n toast_error_load_role: 'Rollen konnten nicht geladen werden',\n toast_error_load_service: 'Dienstleistungen konnten nicht geladen werden',\n toast_error_load_tender: 'Ausschreibung konnte nicht geladen werden.',\n toast_error_organization_delete: 'Organisation konnte nicht gelöscht werden.',\n toast_error_organization_name_exists: 'Eine Organisation mit dem Namen {{name}} existiert bereits',\n toast_error_rollback_version: 'Fehler beim Zurücksetzen auf die ausgewählte Version',\n toast_error_save_item: '{{item}} konnte nicht gespeichert werden',\n toast_error_update_attachment: '{count, plural, one {Anhang konnte nicht aktualisiert werden} other {# Anhänge konnten nicht aktualisiert werden}}',\n toast_error_update_event_causes: 'Eventursachen-Override konnte nicht aktualisiert werden.',\n toast_error_update_service: 'Dienstleistung konnte nicht aktualisiert werden',\n toast_error_upload_file: '{count, plural, one {Datei konnte nicht hochgeladen werden {{file}}} other {# Dateien konnten nicht hochgeladen werden}}',\n toast_error_upload_file_max: 'Es dürfen nicht mehr als {{max}} Dateien Zeitgleich hochgeladen werden.',\n toast_form_error_required: '{{param}} darf nicht leer sein',\n toast_form_error_required_selection: 'Es muss mindestens ein {{param}} ausgewählt werden',\n toast_form_error_required_selection_feminine: 'Es muss mindestens eine {{param}} ausgewählt werden',\n toast_info: 'Info!',\n toast_success: 'Erfolgreich!',\n toast_success_add_employee: 'Die Einladung des neuen Mitarbeiters wurde erfolgreich versendet',\n toast_success_add_member: 'Die Einladung des neuen Mitglieds wurde erfolgreich versendet',\n toast_success_add_role: 'Die Rolle wurde erfolgreich hinzugefügt',\n toast_success_invitation_send: 'Einladung gesendet',\n toast_success_update_attachment: '{count, plural, one {Anhang aktualisiert} other {# Anhänge aktualisiert}}',\n toast_success_update_service: 'Dienstleistung wurde aktualisiert',\n toast_success_upload_file: '{count, plural, one {Datei wurde erfolgreich hochgeladen: {{file}}} other {# Dateien wurden erfolgreich hochgeladen}}',\n toast_warning: 'Warnung!',\n toast_warning_invalid_form_data: 'Ungültige Daten im Formular. Bitte überprüfen Sie das Formular auf Fehler.',\n toast_warning_invalid_schema: 'Das angegebene Schema ist nicht gültig.',\n toast_warning_rollback_version: 'Folgende referenzierte Elemente existieren in der Revision nicht mehr: {{entries}}',\n tour_start: 'Starte Tour',\n type: 'Typ',\n unknown: 'Unbekannt',\n unverified: 'Unverifiziert',\n updated: 'Bearbeitet',\n updated_by: 'Aktualisiert von',\n upload_date: 'Hochgeladen am',\n upload_file: 'Datei hochladen',\n url: 'URL',\n user: 'Benutzer',\n user_roles: 'Benutzerrollen',\n username: 'Benutzername',\n vat: 'USt-IdNr./UID',\n vat_example: 'Es muss eine gültige USt-IdNr. (DE gefolgt von 9 Ziffern, z.B. DE123456789) oder UID (ATU gefolgt von 8 Ziffern, z.B. ATU12345678) angegeben werden',\n verified: 'Verifiziert',\n view: 'Ansehen',\n view_identity_providers: 'Rolle, die den Lesezugriff auf die konfigurierten Identitätsanbieter ermöglicht',\n view_invitations: 'Rolle, die den Lesezugriff auf offene Mitarbeitereinladungen ermöglicht',\n view_members: 'Rolle, die den Lesezugriff auf alle bestehenden Mitarbeiter ermöglicht',\n view_organization: 'Rolle, die den Lesezugriff auf das Unternehmen ermöglicht',\n view_roles: 'Rolle, die den Lesezugriff auf Unternehmensrollen ermöglicht',\n warning: 'Warnung',\n week: 'Woche',\n write_permissions: 'Schreibe-Rechte',\n year: 'Jahr',\n years: 'Jahre',\n zip_code: 'Postleitzahl',\n zip_code_error: 'Die Postleitzahl muss gültig sein und darf maximal 10 Zeichen enthalten.',\n },\n};\nexport class AiTranslocoLoader {\n getTranslation(lang) {\n return of(translations[lang] || {});\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoLoader, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoLoader, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class AiTranslocoModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoModule, imports: [TranslocoModule], exports: [TranslocoModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoModule, providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ], imports: [TranslocoModule, TranslocoModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiTranslocoModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3RyYW5zbG9jby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBRXBCLGVBQWUsRUFDZixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixFQUFFLEVBQUU7UUFDRixRQUFRLEVBQUUsVUFBVTtRQUNwQixpQkFBaUIsRUFBRSxtQkFBbUI7UUFDdEMsbUJBQW1CLEVBQUUscUJBQXFCO1FBQzFDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsYUFBYSxFQUFFLGVBQWU7UUFDOUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsY0FBYyxFQUFFLGdCQUFnQjtRQUNoQyxvQkFBb0IsRUFBRSxzQkFBc0I7UUFDNUMsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixXQUFXLEVBQUUsYUFBYTtZQUMxQixhQUFhLEVBQ1gsc0tBQXNLO1lBQ3hLLGlCQUFpQixFQUFFLG1CQUFtQjtZQUN0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USxFQUFFLGlCQUFpQixFQUFFO1lBQzlELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtZQUMxRCxnQkFBZ0IsQ0FBQztnQkFDZixNQUFNLEVBQUU7b0JBQ04sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztvQkFDNUIsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLG9CQUFvQixFQUFFLElBQUk7b0JBQzFCLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRTtpQkFDdkI7Z0JBQ0QsTUFBTSxFQUFFLGlCQUFpQjthQUMxQixDQUFDO1NBQ0gsWUFkUyxlQUFlLEVBQ2YsZUFBZTs7MkZBZWQsaUJBQWlCO2tCQWpCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTt3QkFDOUQsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUMxRCxnQkFBZ0IsQ0FBQzs0QkFDZixNQUFNLEVBQUU7Z0NBQ04sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztnQ0FDNUIsV0FBVyxFQUFFLElBQUk7Z0NBQ2pCLG9CQUFvQixFQUFFLElBQUk7Z0NBQzFCLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRTs2QkFDdkI7NEJBQ0QsTUFBTSxFQUFFLGlCQUFpQjt5QkFDMUIsQ0FBQztxQkFDSDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERlZmF1bHRUcmFuc3BpbGVyLFxuICBUUkFOU0xPQ09fTE9BREVSLFxuICBUUkFOU0xPQ09fVFJBTlNQSUxFUixcbiAgVHJhbnNsb2NvTG9hZGVyLFxuICBUcmFuc2xvY29Nb2R1bGUsXG4gIHByb3ZpZGVUcmFuc2xvY28sXG59IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRpb25zID0ge1xuICBlbjoge1xuICAgIGFjY2VwdGVkOiAnQWNjZXB0ZWQnLFxuICAgIGFjY2Vzc19yZXN0cmljdGVkOiAnQWNjZXNzIHJlc3RyaWN0ZWQnLFxuICAgIGFjY2Vzc191bnJlc3RyaWN0ZWQ6ICdBY2Nlc3MgdW5yZXN0cmljdGVkJyxcbiAgICBhY2NvdW50OiAnQWNjb3VudCcsXG4gICAgYWN0aW9uOiAnQWN0aW9uJyxcbiAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgYWN0aXZlOiAnQWN0aXZlJyxcbiAgICBhZGRfYXR0YWNobWVudDogJ0FkZCBBdHRhY2htZW50JyxcbiAgICBhZGRfYXR0cmlidXRlOiAnQWRkIEF0dHJpYnV0ZScsXG4gICAgYWRkX25ldzogJ0FkZCBOZXcnLFxuICAgIGFkZF9uZXdfbWVtYmVyOiAnQWRkIG5ldyBtZW1iZXInLFxuICAgIGFkZF9uZXdfb3JnYW5pemF0aW9uOiAnQWRkIG5ldyBPcmdhbml6YXRpb24nLFxuICAgIGFkZF90b19jbGlwYm9hcmQ6ICdBZGQgdG8gY2xpcGJvYXJkJyxcbiAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgYWRtaW5pc3RyYXRpb246ICdBZG1pbmlzdHJhdGlvbicsXG4gICAgYWk6IHtcbiAgICAgIGFib3J0OiAnQWJvcnQnLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGFjY2Vzc2VkX2F0OiAnQWNjZXNzZWQgYXQnLFxuICAgICAgYWRhbV9haV9pbnRybzpcbiAgICAgICAgJ0VuZ2FnZSBpbiByZWFsLXRpbWUgY29udmVyc2F0aW9ucyB3aXRoIEFkYW0gQUksIHlvdXIgZXhwZXJ0IGFzc2lzdGFudCBpbiBBc3NldCBJbnRlbGxpZ2VuY2UuIEdldCBpbnN0YW50LCBpbnRlbGxpZ2VudCBpbnNpZ2h0cyBhbmQgc29sdXRpb25zIHRhaWxvcmVkIHRvIHlvdXIgbmVlZHMuJyxcbiAgICAgIGFnZW50X3VuYXZhaWxhYmxlOiAnQWdlbnQgdW5hdmFpbGFibGUnLFxuICAgICAgYWlfcGxhY2Vob2xkZXI6ICdIb3cgY2FuIEFEQU0gaGVscCB5b3UgdG9kYXk/JyxcbiAgICAgIGFuZDogJ2FuZCcsXG4gICAgICBhc2tfYWJvdXRfYXNzZXQ6ICdBc2sgQURBTSBBSSBhYm91dCB0aGlzIGFzc2V0JyxcbiAgICAgIGFza19hZGFtOiAnQXNrIEFkYW0gQUknLFxuICAgICAgYXNzZXRfaW50ZWxsaWdlbmNlOiAnQXNzZXQgSW50ZWxsaWdlbmNlJyxcbiAgICAgIGFzc2lzdGFudHM6ICdBc3Npc3RhbnRzJyxcbiAgICAgIGNoYXRfZGVsZXRlZDogJ0NoYXQgZGVsZXRlZCcsXG4gICAgICBjaGF0czogJ0NoYXRzJyxcbiAgICAgIGNsZWFyX2hpc3Rvcnk6ICdDbGVhciBIaXN0b3J5JyxcbiAgICAgIGNvbXBsZXRlX2FuZF9jcmVhdGVfcmVwb3J0OiAnQ29tcGxldGUgYW5kIGNyZWF0ZSByZXBvcnQnLFxuICAgICAgY29udGV4dDogJ1JlZmVyZW5jZWQgQ29udGV4dCcsXG4gICAgICBjb250ZXh0X2ZvdW5kOiAnRm91bmQgcmVsYXRlZCBjb250ZXh0JyxcbiAgICAgIGNvbnRleHRfbm9uZTpcbiAgICAgICAgJ05vIHJlbGF0ZWQgQXNzZXRzIG9yIGZpbGVzIGZvdW5kLiBDb25zaWRlciByZXZpc2luZyB5b3VyIHByb21wdC4nLFxuICAgICAgY29udGV4dF9zZWFyY2g6ICdTZWFyY2hpbmcgZm9yIHJlbGF0ZWQgQXNzZXRzIGFuZCBmaWxlcy4uLicsXG4gICAgICBjb250aW51ZV9jaGF0OiAnQ29udGludWUgQ2hhdCcsXG4gICAgICBjb250aW51ZV9wcmV2aW91c19jaGF0OiAnQ29udGludWUgcHJldmlvdXMgQ2hhdCcsXG4gICAgICBjb29raWVzOiAnQ29va2llcycsXG4gICAgICBjcmVhdGVfbmV3X2NoYXQ6ICdDcmVhdGUgTmV3IENoYXQnLFxuICAgICAgY3JlYXRlX25ld19ldmVudDogJ0NyZWF0ZSBuZXcgRXZlbnQgd2l0aCB0aGUgaGVscCBvZiBBZGFtIEFJJyxcbiAgICAgIGRlOiAnRGV1dHNjaCcsXG4gICAgICBkZWxldGVfY2hhdDogJ0RlbGV0ZSBDaGF0JyxcbiAgICAgIGRlbGV0ZV9pdGVtOiAnRGVsZXRlIEl0ZW0nLFxuICAgICAgZGVsZXRlX2l0ZW1fbWVzc2FnZTpcbiAgICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPzxicj48YnI+PGI+e3sgaXRlbXMgfX08L2I+fSBvdGhlciB7QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGVzZSAjIGl0ZW1zP319JyxcbiAgICAgIGRlbGV0ZV9pdGVtX21lc3NhZ2VfZ2VuZXJhbDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPycsXG4gICAgICBkZWxldGVfaXRlbV90aXRsZTpcbiAgICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0RlbGV0ZSBJdGVtfSBvdGhlciB7RGVsZXRlIE11bHRpcGxlIEl0ZW1zfX0nLFxuICAgICAgZG9jdW1lbnQ6ICdEb2N1bWVudCcsXG4gICAgICBlbjogJ0VuZ2xpc2gnLFxuICAgICAgZmFpbGVkX3RvX2NyZWF0ZV9jaGF0OiAnRmFpbGVkIHRvIGNyZWF0ZSBjaGF0JyxcbiAgICAgIGZhaWxlZF90b19kZWxldGVfY2hhdDogJ0ZhaWxlZCB0byBkZWxldGUgY2hhdCcsXG4gICAgICBmYWlsZWRfdG9faW5pdGlhbGl6ZV9jaGF0OiAnRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhdCcsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9hc3Npc3RhbnRzOiAnRmFpbGVkIHRvIGxvYWQgYXNzaXN0YW50cycsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9jaGF0czogJ0ZhaWxlZCB0byBsb2FkIGNoYXQgaGlzdG9yeScsXG4gICAgICBmYWlsZWRfdG9fcHJvY2Vzc19tZXNzYWdlOlxuICAgICAgICAnVGhlIG1lc3NhZ2UgY291bGQgbm90IGJlIHByb2Nlc3NlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgZmFpbGVkX3RvX3NlbmRfbWVzc2FnZTogJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UnLFxuICAgICAgZmFpbGVkX3RvX3VwZGF0ZV9tb2RlbDogJ0ZhaWxlZCB0byB1cGRhdGUgbW9kZWwnLFxuICAgICAgZmlsZV90eXBlOiB7XG4gICAgICAgIGFyY2hpdmU6ICdBcmNoaXZlJyxcbiAgICAgICAgYXVkaW86ICdBdWRpbycsXG4gICAgICAgIGltYWdlOiAnSW1hZ2UnLFxuICAgICAgICBwZGY6ICdQREYnLFxuICAgICAgICB0ZXh0OiAnVGV4dCcsXG4gICAgICAgIHVua25vd246ICdVbmtub3duJyxcbiAgICAgICAgdmlkZW86ICdWaWRlbycsXG4gICAgICB9LFxuICAgICAgZmluaXNoX3JlYXNvbjoge1xuICAgICAgICAnY29udGVudC1maWx0ZXInOlxuICAgICAgICAgICdZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgZHVlIHRvIGNvbnRlbnQgZmlsdGVycy4gUGxlYXNlIHRyeSByZXBocmFzaW5nIHlvdXIgcXVlc3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBlcnJvcjogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICAgICAgIGxlbmd0aDpcbiAgICAgICAgICAnVGhlIHJlcXVlc3QgaXMgdG9vIGxvbmcgdG8gcHJvY2Vzcy4gUGxlYXNlIHRyeSBhZ2FpbiBvciBzdGFydCBhIG5ldyBjb252ZXJzYXRpb24uJyxcbiAgICAgICAgdW5rbm93bjogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICAgICB9LFxuICAgICAgJ2dwdC00byc6ICdHUFQtNG8nLFxuICAgICAgJ2dwdC00by0yMDI0LTA4LTA2JzogJ0dQVC00bycsXG4gICAgICAnZ3B0LTRvLTIwMjQtMTEtMjAnOiAnR1BULTRvJyxcbiAgICAgICdncHQtNG8tbWluaSc6ICdHUFQtNG8gTWluaScsXG4gICAgICAnZ3B0LTRvLW1pbmktMjAyNC0wNy0xOCc6ICdHUFQtNG8gTWluaScsXG4gICAgICBoZWxwX21lOiAnQXNrIEFkYW0gQUkgZm9yIGhlbHAnLFxuICAgICAgbGFzdF9tZXNzYWdlOiAnTGFzdCBNZXNzYWdlJyxcbiAgICAgIG1vZGVsOiAnR1BUIE1vZGVsJyxcbiAgICAgIG1vZGVsX3VwZGF0ZWQ6ICdNb2RlbCB1cGRhdGVkJyxcbiAgICAgIG5vX2NoYXRzX2ZvdW5kOiAnTm8gY2hhdHMgZm91bmQnLFxuICAgICAgbm9fbWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQnLFxuICAgICAgbm9uZV9vZl90aG9zZTogJ05vbmUgb2YgdGhvc2UnLFxuICAgICAgb2ZfZG9jdW1lbnQ6ICdvZiBkb2N1bWVudCcsXG4gICAgICBvcGVuYWlfZGlzY2xhaW1lcjpcbiAgICAgICAgJ0luIHRoZSBwcmV2aWV3IHZlcnNpb24gb2YgdGhlIEFzc2V0IFdlYiBBc3Npc3RhbnQsIHlvdXIgZGF0YSB3aWxsIGJlIHByb2Nlc3NlZCBieSBPcGVuQUkgb3V0c2lkZSB0aGUgRVUuIERvIHlvdSBhZ3JlZSB3aXRoIHRoaXM/JyxcbiAgICAgIHByZXZpb3VzX2NoYXRzOiAnUHJldmlvdXMgQ2hhdHMnLFxuICAgICAgcHJvbXB0X3N1Z2dlc3Rpb25zOiB7XG4gICAgICAgICdhc3NldC1pbmZvJzoge1xuICAgICAgICAgIHByb21wdDogJ1Byb3ZpZGUgYSBkZXRhaWxlZCBtYWludGVuYW5jZSBwbGFuIGZvciBteSBhc3NldCcsXG4gICAgICAgICAgdGl0bGU6ICdBc3NldCBJbmZvJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW50cm86IHtcbiAgICAgICAgICBwcm9tcHQ6XG4gICAgICAgICAgICAnV2hhdCBpcyBBZGFtIEFJIGFuZCBob3cgY2FuIGl0IGhlbHAgbWUgd2l0aCBhc3NldCBtYW5hZ2VtZW50PycsXG4gICAgICAgICAgdGl0bGU6ICdJbnRyb2R1Y3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb21wdHM6IHtcbiAgICAgICAgYXNzZXQ6ICdJIGhhdmUgYSBxdWVzdGlvbiByZWxhdGVkIHRvIHRoZSBBc3NldC4nLFxuICAgICAgICBoZWxwOiAnUGxlYXNlIGhlbHAgbWUgc29sdmUgdGhpcyB0YXNrLicsXG4gICAgICAgIGluY2lkZW50OiAnUGxlYXNlIGNyZWF0ZSBhIG5ldyBpbmNpZGVudC4nLFxuICAgICAgICByZXBvcnQ6ICdJIGhhdmUgY29tcGxldGVkIHRoZSB0YXNrLiBQbGVhc2UgY3JlYXRlIGEgcmVwb3J0IGZvciBpdC4nLFxuICAgICAgfSxcbiAgICAgIHJlZmVyZW5jZV9ub3RfZm91bmQ6ICdSZWZlcmVuY2Ugbm90IGZvdW5kJyxcbiAgICAgIHJldHJ5OiAnUmV0cnknLFxuICAgICAgc2VsZWN0X2Fzc2V0OiAnU2VsZWN0IEFzc2V0JyxcbiAgICAgIHNlbmRfbWVzc2FnZTogJ1NlbmQgTWVzc2FnZScsXG4gICAgICBzb3VyY2U6ICdTb3VyY2UnLFxuICAgICAgc3RvcF9yZWNvcmRpbmc6ICdTdG9wIFJlY29yZGluZycsXG4gICAgICBzdWdnZXN0ZWRfcHJvbXB0czogJ1N1Z2dlc3RlZCBwcm9tcHRzIHRvIGdldCBzdGFydGVkIHdpdGggQURBTSBBSScsXG4gICAgICB0aHJlYWRzOiAnVGhyZWFkcycsXG4gICAgICB0b2FzdF9lcnJvcl9kZWxldGVfZW50cnk6ICdDb3VsZCBub3QgZGVsZXRlIHt7ZW50cnl9fS4nLFxuICAgICAgdG9hc3Rfc3VjY2Vzc19kZWxldGVfZW50cnk6ICd7e2VudHJ5fX0gZGVsZXRlZC4nLFxuICAgICAgdG9vbHM6IHtcbiAgICAgICAgY3JlYXRlQXhhbHRhRXZlbnQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdFdmVudCB3YXMgY3JlYXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnRXZlbnQgY291bGQgbm90IGJlIGNyZWF0ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdDcmVhdGluZyBFdmVudCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0NyZWF0aW5nIEV2ZW50JyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlRXZlbnQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdFdmVudCB3YXMgY3JlYXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnRXZlbnQgY291bGQgbm90IGJlIGNyZWF0ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdDcmVhdGluZyBFdmVudCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0NyZWF0aW5nIEV2ZW50JyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlUmVwb3J0OiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnUmVwb3J0IHdhcyBjcmVhdGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdSZXBvcnQgY291bGQgbm90IGJlIGNyZWF0ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdDcmVhdGluZyBSZXBvcnQnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdDcmVhdGluZyBSZXBvcnQnLFxuICAgICAgICB9LFxuICAgICAgICBnZXRBZGRpdGlvbmFsRGF0YVRlbXBsYXRlOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnQWRkaXRpb25hbCBkYXRhIHdhcyByZXRyaWV2ZWQnLFxuICAgICAgICAgIGZhaWxlZDogJ0FkZGl0aW9uYWwgZGF0YSBjb3VsZCBub3QgYmUgcmV0cmlldmVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnUmV0cmlldmluZyBBZGRpdGlvbmFsIGRhdGEnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdSZXRyaWV2aW5nIEFkZGl0aW9uYWwgZGF0YScsXG4gICAgICAgIH0sXG4gICAgICAgIGdldEFzc2V0RGF0YToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0Fzc2V0IGRhdGEgd2FzIHJldHJpZXZlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnQXNzZXQgZGF0YSBjb3VsZCBub3QgYmUgcmV0cmlldmVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnUmV0cmlldmluZyBBc3NldCBkYXRhJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnUmV0cmlldmluZyBBc3NldCBkYXRhJyxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0UmVwb3J0VGVtcGxhdGU6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdSZXBvcnQgdGVtcGxhdGUgd2FzIHJldHJpZXZlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnUmVwb3J0IHRlbXBsYXRlIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdSZXRyaWV2aW5nIFJlcG9ydCB0ZW1wbGF0ZScsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1JldHJpZXZpbmcgUmVwb3J0IHRlbXBsYXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yQXNzZXRBeGFsdGE6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdTZWFyY2ggZm9yIEFzc2V0IGNvbXBsZXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnU2VhcmNoIGZvciBBc3NldCBmYWlsZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdTZWFyY2hpbmcgZm9yIEFzc2V0JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnU2VhcmNoaW5nIGZvciBBc3NldCcsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckFzc2V0V2l0aElkOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU2VhcmNoIGZvciBBc3NldCB3aXRoIElEIGNvbXBsZXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnU2VhcmNoIGZvciBBc3NldCB3aXRoIElEIGZhaWxlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ1NlYXJjaGluZyBmb3IgQXNzZXQgd2l0aCBJRCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1NlYXJjaGluZyBmb3IgQXNzZXQgd2l0aCBJRCcsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckFzc2V0czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1NlYXJjaCBmb3IgQXNzZXRzIGNvbXBsZXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnU2VhcmNoIGZvciBBc3NldHMgZmFpbGVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU2VhcmNoaW5nIGZvciBBc3NldHMnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTZWFyY2hpbmcgZm9yIEFzc2V0cycsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckRvY3VtZW50czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1NlYXJjaCBmb3IgRG9jdW1lbnRzIGNvbXBsZXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnU2VhcmNoIGZvciBEb2N1bWVudHMgZmFpbGVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU2VhcmNoaW5nIGZvciBEb2N1bWVudHMnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTZWFyY2hpbmcgZm9yIERvY3VtZW50cycsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckV2ZW50czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1NlYXJjaCBmb3IgRXZlbnRzIGNvbXBsZXRlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnU2VhcmNoIGZvciBFdmVudHMgZmFpbGVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU2VhcmNoaW5nIGZvciBFdmVudHMnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTZWFyY2hpbmcgZm9yIEV2ZW50cycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdXNlX21pY3JvcGhvbmU6ICdVc2UgTWljcm9waG9uZScsXG4gICAgICB1c2Vfd2ViX3NlYXJjaDogJ1NlYXJjaCBpbiBXZWInLFxuICAgICAgdmlld19wcmV2aW91c19jaGF0czogJ1ZpZXcgUHJldmlvdXMgQ2hhdHMnLFxuICAgICAgd2ViX3NvdXJjZTogJ1dlYiBTb3VyY2UnLFxuICAgIH0sXG4gICAgYWxlcnQ6ICdBbGVydCcsXG4gICAgYWxlcnRzOiAnQWxlcnRzJyxcbiAgICBhbGxvd2VkX3RvOiBcIllvdSdyZSBhbGxvd2VkIHRvXCIsXG4gICAgYW5kOiAnYW5kJyxcbiAgICBhcHBsaWNhdGlvbnM6ICdBcHBsaWNhdGlvbnMnLFxuICAgIGFwcHM6ICdBcHBsaWNhdGlvbnMnLFxuICAgIGFwcHN0b3JlOiAnQXBwIFN0b3JlJyxcbiAgICBhc2NlbmRpbmc6ICdBc2NlbmRpbmcnLFxuICAgIGFzc2V0OiAnQXNzZXQnLFxuICAgIGFzc2V0X2ludGVsbGlnZW5jZTogJ0Fzc2V0IEludGVsbGlnZW5jZScsXG4gICAgYXNzZXRfbWFuYWdlcjogJ0Fzc2V0IE1hbmFnZXInLFxuICAgIGFzc2V0X3R5cGU6ICdBc3NldCBUeXBlJyxcbiAgICBhc3NldHM6ICdBc3NldHMnLFxuICAgIGFzc2V0dHlwZTogJ0Fzc2V0IFR5cGUnLFxuICAgIGFzc2V0dHlwZXM6ICdBc3NldCBUeXBlcycsXG4gICAgYXR0YWNobWVudDogJ0F0dGFjaG1lbnQnLFxuICAgIGF0dGFjaG1lbnRzOiAnQXR0YWNobWVudHMnLFxuICAgIGF1ZGl0X2xvZ3M6ICdBdWRpdCBMb2dzJyxcbiAgICBhdXRob3I6ICdBdXRob3InLFxuICAgIGF1dGhvcml6YXRpb25fdHlwZTogJ0F1dGhvcml6YXRpb24gVHlwZScsXG4gICAgYXZlcmFnZTogJ0F2ZXJhZ2UnLFxuICAgIGJhY2s6ICdCYWNrJyxcbiAgICBiYWNrX3RvX29yZ2FuaXphdGlvbnM6ICdCYWNrIHRvIG9yZ2FuaXphdGlvbnMnLFxuICAgIGJ1Y2tldF90aW1lX3JhbmdlOiAnQnVja2V0IFRpbWUgUmFuZ2UgKERlZmF1bHQgaXMgMjRoKScsXG4gICAgYnk6ICdieScsXG4gICAgJ2NhZC1wcmV2aWV3Jzoge1xuICAgICAgJ2NhZC1kaXJlY3Rpb24teSc6ICdTZXQgWSBhcyB1cCB2ZWN0b3InLFxuICAgICAgJ2NhZC1kaXJlY3Rpb24teic6ICdTZXQgWiBhcyB1cCB2ZWN0b3InLFxuICAgICAgJ2NhZC1maXhlZC12ZWN0b3InOiAnRml4ZWQgdXAgdmVjdG9yJyxcbiAgICAgICdjYWQtbWVudS1jZW50ZXInOiAnQ2VudGVyJyxcbiAgICAgICdjYWQtbWVudS1mbGlwLXZlY3Rvcic6ICdGbGlwJyxcbiAgICAgICdjYWQtdW5maXhlZC12ZWN0b3InOiAnVW5maXhlZCB2ZWN0b3InLFxuICAgICAgJ2NhZC12aWV3ZXItZmxpcC1jYW1lcmEtbW9kZS1vcnRob2dvbmFsJzpcbiAgICAgICAgJ1R1cm4gb24gdGhlIE9ydGhvZ3JhcGhpYyBjYW1lcmEnLFxuICAgICAgJ2NhZC12aWV3ZXItZmxpcC1jYW1lcmEtbW9kZS1wZXJzcGVjdGl2ZSc6XG4gICAgICAgICdUdXJuIG9uIHRoZSBQZXJzcGVjdGl2ZSBjYW1lcmEnLFxuICAgICAgJ2Vycm9yLWRlZmF1bHQtZmlsZXR5cGUnOiAnSW52YWxpZCBmaWxldHlwZScsXG4gICAgICAnZXJyb3ItaW52YWxpZC1maWxldHlwZSc6XG4gICAgICAgICd7e2ZpbGV0eXBlfX0gaXMgbm90IHN1cHBvcnRlZC4gVHJ5IGNvbXByZXNzaW5nIGZpbGVzIGluIGEgWklQIGZpbGUgaWYgdGhpcyBpcyBhIENBRC1kcmF3aW5nJyxcbiAgICB9LFxuICAgIGNhbGVuZGFyOiAnQ2FsZW5kYXInLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgY2F0YWxvZzogJ0NhdGFsb2cnLFxuICAgICdjYXRlZ29yeS5kZWxldGUnOiAnUmVtb3ZlIGNhdGVnb3J5JyxcbiAgICAnY2VydC5hZGQubmV3JzogJ0FkZCBuZXcgQ2VydGlmaWNhdGUnLFxuICAgICdjZXJ0LmRlbGV0ZSc6ICdSZW1vdmUgQ2VydGlmaWNhdGUnLFxuICAgICdjZXJ0LmVkaXQnOiAnRWRpdCBDZXJ0aWZpY2F0ZScsXG4gICAgJ2NlcnQubmFtZSc6IFwiQ2VydGlmaWNhdGUncyBuYW1lXCIsXG4gICAgY2VydF9hZGRfbmV3X2Rlc2NyaXB0aW9uOiAnTWFuYWdlbWVudCBvZiBvcmdhbml6YXRpb24gcmVsYXRlZCBjZXJ0aWZpY2F0ZXMnLFxuICAgIGNlcnRpZmljYXRlOiAnQ2VydGlmaWNhdGUnLFxuICAgICdjZXJ0aWZpY2F0ZS5hZGQubmV3JzogJ0FkZCBuZXcgQ2VydGlmaWNhdGUnLFxuICAgIGNlcnRpZmljYXRpb246IHtcbiAgICAgIGRhdGVfaXNzdWU6ICdEYXRlIG9mIElzc3VlJyxcbiAgICAgIGV4cGlyYXRpb25fZGF0ZTogJ0V4cGlyYXRpb24gZGF0ZScsXG4gICAgICBpbnN0aXR1dGlvbjogJ0NlcnRpZmljYXRpb24gSW5zdGl0dXRpb24nLFxuICAgICAgbnVtYmVyOiAnQ2VydGlmaWNhdGUgbnVtYmVyJyxcbiAgICB9LFxuICAgIGNoaWxkcmVuOiAnQ2hpbGRyZW4nLFxuICAgIGNob29zZTogJ0Nob29zZScsXG4gICAgY2hvb3NlX2ZpbGU6ICdDaG9vc2UgZmlsZScsXG4gICAgY2l0eTogJ0NpdHknLFxuICAgIGNvbG9yOiAnQ29sb3InLFxuICAgIGNvbHVtbl9zZXR0aW5nczogJ0NvbHVtbiBTZXR0aW5ncycsXG4gICAgY29tbWVudDogJ0NvbW1lbnQnLFxuICAgIGNvbXBhbnlfbWFuYWdlcjogJ0NvbXBhbnkgTWFuYWdlcicsXG4gICAgY29tcGFueV9tYXRjaGluZzogJ0NvbXBhbnkgTWF0Y2hpbmcnLFxuICAgIGNvbXBsZXRlX3N1YnNjcmlwdGlvbjogJ0NvbXBsZXRlIFN1YnNjcmlwdGlvbicsXG4gICAgY29uZmlybTogJ0NvbmZpcm0nLFxuICAgIGNvbnNlbnRfbWFuYWdlbWVudDoge1xuICAgICAgYWNjZXB0X2FsbDogJ0FjY2VwdCBhbGwnLFxuICAgICAgYWNjZXB0X2FsbF9ub3RlOlxuICAgICAgICAnQnkgY2xpY2tpbmcgXCJBY2NlcHQgYWxsXCIsIHlvdSBhZ3JlZSB0byB0aGUgdXNlIG9mIGVzc2VudGlhbCBhbmQgYW5hbHl0aWNzIGNvb2tpZXMuJyxcbiAgICAgIGFsd2F5c19lbmFibGVkOiAnQWx3YXlzIGVuYWJsZWQnLFxuICAgICAgY29va2llX2dyb3Vwczoge1xuICAgICAgICBhbmFseXRpY3M6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdUaGVzZSBjb29raWVzIGdhdGhlciBkYXRhIG9uIHdlYnNpdGUgdXNhZ2UsIHN1Y2ggYXMgd2hpY2ggcGFnZXMgYXJlIHZpc2l0ZWQsIHRvIGhlbHAgdXMgaWRlbnRpZnkgdGhlIG1vc3QgcG9wdWxhciBwYWdlcyBhbmQgdW5kZXJzdGFuZCBob3cgdmlzaXRvcnMgbmF2aWdhdGUgdGhlIHNpdGUuIDxiciAvPiBXZWJzaXRlIHVzYWdlIGRhdGEgaXMgY2FwdHVyZWQgdXNpbmcgcGVyc2lzdGVudCBmaXJzdCBhbmQgdGhpcmQtcGFydHkgY29va2llcyBhbmQgb3RoZXIgdHJhY2tpbmcgdGVjaG5vbG9naWVzIHRvIGRldGVybWluZSB0aGUgcG9wdWxhcml0eSBvZiBwcm9kdWN0cyBhbmQgb25saW5lIGFjdGl2aXR5LicsXG4gICAgICAgICAgdGl0bGU6ICdBbmFseXRpY3MgY29va2llcycsXG4gICAgICAgIH0sXG4gICAgICAgIGVzc2VudGlhbDoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ1RoZXNlIGNvb2tpZXMgYXJlIGVzc2VudGlhbCBmb3IgdGhlIG9wZXJhdGlvbiBvZiB0aGUgd2Vic2l0ZS4gVGhleSBhcmUgdXN1YWxseSBvbmx5IHNldCBpbiByZXNwb25zZSB0byB5b3VyIGFjdGlvbnMsIHN1Y2ggYXMgc2V0dGluZyB5b3VyIHByaXZhY3kgcHJlZmVyZW5jZXMuIFRoZXNlIGNvb2tpZXMgZG8gbm90IHN0b3JlIGFueSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbi4nLFxuICAgICAgICAgIHRpdGxlOiAnRXNzZW50aWFsIGNvb2tpZXMnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvb2tpZV9pbnRybzpcbiAgICAgICAgJ1RoaXMgd2Vic2l0ZSB1c2VzIGNvb2tpZXMgYW5kIG90aGVyIHRyYWNraW5nIHRlY2hub2xvZ2llcyB0byBlbmFibGUgZXNzZW50aWFsIHNpdGUgZnVuY3Rpb25hbGl0eSwgaW1wcm92ZSB0aGUgdXNlciBleHBlcmllbmNlLCBhcyB3ZWxsIGFzIGZvciBhbmFseXRpY3MgYW5kIHBlcnNvbmFsaXNhdGlvbiBwdXJwb3Nlcy4nLFxuICAgICAgY29va2llX2ludHJvX2V4dGVuZGVkOlxuICAgICAgICAnVGhpcyB3ZWJzaXRlIHVzZXMgY29va2llcyBhbmQgb3RoZXIgdHJhY2tpbmcgdGVjaG5vbG9naWVzIHRvIGVuYWJsZSBlc3NlbnRpYWwgc2l0ZSBmdW5jdGlvbmFsaXR5LCBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2UsIGFzIHdlbGwgYXMgZm9yIGFuYWx5dGljcyBhbmQgcGVyc29uYWxpc2F0aW9uIHB1cnBvc2VzLjxiciAvPldlIHVzZSBNaWNyb3NvZnQgQ2xhcml0eSB0byBhbmFseXNlIGhvdyBvdXIgd2Vic2l0ZSBpcyB1c2VkIGFuZCB0byBpbXByb3ZlIG91ciBwcm9kdWN0cy4gQnkgdXNpbmcgb3VyIHNpdGUsIHlvdSBjb25zZW50IHRvIHVzIGFuZCBNaWNyb3NvZnQgY29sbGVjdGluZyBhbmQgdXNpbmcgdGhpcyBkYXRhLicsXG4gICAgICBjb29raWVfbGVhcm5fbW9yZTogJ1RvIGxlYXJuIG1vcmUsIHBsZWFzZSB2aWV3IG91cicsXG4gICAgICBjb29raWVfcHJlZmVyZW5jZXNfY2VudGVyOiAnQ29va2llIFByZWZlcmVuY2VzIENlbnRlcicsXG4gICAgICBjb29raWVfc2V0dGluZ3M6ICdDb29raWUgU2V0dGluZ3MnLFxuICAgICAgY29va2llX3VzYWdlOiAnQ29va2llIHVzYWdlJyxcbiAgICAgIG1hbmFnZV9wcmVmZXJlbmNlczogJ01hbmFnZSBwcmVmZXJlbmNlcycsXG4gICAgICByZWplY3RfYWxsOiAnUmVqZWN0IGFsbCcsXG4gICAgICBzYXZlX3ByZWZlcmVuY2VzOiAnU2F2ZSBwcmVmZXJlbmNlcycsXG4gICAgfSxcbiAgICBjb250ZW50OiAnQ29udGVudCcsXG4gICAgJ2NvbnRlbnQuZmlsZV90eXBlJzoge1xuICAgICAgYXJjaGl2ZTogJ0FyY2hpdmUnLFxuICAgICAgYXVkaW86ICdBdWRpbycsXG4gICAgICBpbWFnZTogJ0ltYWdlJyxcbiAgICAgIHBkZjogJ1BERicsXG4gICAgICB0ZXh0OiAnVGV4dCcsXG4gICAgICB1bmtub3duOiAnVW5rbm93bicsXG4gICAgICB2aWRlbzogJ1ZpZGVvJyxcbiAgICB9LFxuXG4gICAgJ2NvbnRlbnQuc2hvd19wcmV2aWV3JzogJ1Nob3cgUHJldmlldycsXG4gICAgJ2NvbnRlbnQuc2l6ZSc6ICdTaXplJyxcbiAgICAnY29udGVudC50b2FzdF9kb3dubG9hZGluZ19jb250ZW50JzogJ0Rvd25sb2FkaW5nIGNvbnRlbnQuLi4nLFxuICAgICdjb250ZW50LnRvYXN0X2Vycm9yX2Rvd25sb2FkX2NvbnRlbnQnOiAnQ291bGQgbm90IGRvd25sb2FkIGNvbnRlbnQuJyxcbiAgICAnY29udGVudC50b2FzdF9zdWNjZXNzX2Rvd25sb2FkX2NvbnRlbnQnOlxuICAgICAgJ0NvbnRlbnQgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHkuJyxcbiAgICBjb250ZW50X2Ryb3Bfem9uZV90ZXh0OiAnRHJhZyAmIERyb3AgRmlsZScsXG4gICAgY29udGVudF9tYW5hZ2VyOiAnQ29udGVudCBNYW5hZ2VyJyxcbiAgICBjb250ZW50czogJ0NvbnRlbnRzJyxcbiAgICBjb3B5X2lkOiAnQ29weSBJRCcsXG4gICAgY291bnQ6ICdDb3VudCcsXG4gICAgY3JlYXRlZDogJ0NyZWF0ZWQnLFxuICAgIGNyaXRpY2FsOiAnQ3JpdGljYWwnLFxuICAgIGN1cnJlbnRfb3JnYW5pemF0aW9uOiAnQ3VycmVudCBPcmdhbml6YXRpb24nLFxuICAgIGRhbmdlcl96b25lOiAnRGFuZ2VyIFpvbmUnLFxuICAgIGRhc2hib2FyZHM6ICdEYXNoYm9hcmRzJyxcbiAgICBkYXRhOiAnRGF0YScsXG4gICAgZGF0ZTogJ0RhdGUnLFxuICAgIGRheTogJ0RheScsXG4gICAgZGF5czogJ0RheXMnLFxuICAgIGRlOiAnRGV1dHNjaCcsXG4gICAgZGVmYXVsdDogJ0RlZmF1bHQnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZScsXG4gICAgZGVsZXRlX2F0dGFjaG1lbnQ6ICdEZWxldGUgQXR0YWNobWVudCcsXG4gICAgZGVsZXRlX21lbWJlcjogJ1JlbW92ZSBtZW1iZXInLFxuICAgIGRlbGV0ZV9yZXZpc2lvbjogJ0RlbGV0ZSBSZXZpc2lvbicsXG4gICAgZGVsZXRlX3RpdGxlOiAnRGVsZXRlIFRpdGxlJyxcbiAgICBkZWxldGVkOiAnRGVsZXRlZCcsXG4gICAgZGVsaW1pdGVyOiAnRGVsaW1pdGVyLCBsaWtlIDsgb3IgOicsXG4gICAgZGVzY2VuZGluZzogJ0Rlc2NlbmRpbmcnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgIGRldGFpbHM6ICdEZXRhaWxzJyxcbiAgICBkb21haW46ICdEb21haW4nLFxuICAgICdkb21haW4uZGVsZXRlJzogJ0RlbGV0ZSBEb21haW4gbmFtZScsXG4gICAgZG9tYWluX25hbWU6ICdEb21haW4gbmFtZScsXG4gICAgZG9tYWluX25hbWVfcGxhY2Vob2xkZXI6ICd3d3cuZG9tYWluLmNvbScsXG4gICAgZG9tYWluX25ldzogJ0FkZCBuZXcgZG9tYWluJyxcbiAgICBkb21haW5zOiAnRG9tYWlucycsXG4gICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgZG93bmxvYWRfYXR0YWNobWVudDogJ0Rvd25sb2FkIEF0dGFjaG1lbnQnLFxuICAgIGRyYWdfZHJvcF9maWxlOiB7XG4gICAgICBlcnJvcjoge1xuICAgICAgICBmaWxlX3Rvb19sYXJnZTpcbiAgICAgICAgICBcIlRoZSBmaWxlICd7e2ZpbGVOYW1lfX0nIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxsb3dlZCBzaXplIG9mIHt7bWF4RmlsZVNpemV9fSBhbmQgaGFzIGJlZW4gaWdub3JlZC5cIixcbiAgICAgICAgZmlsZV90eXBlX25vdF9hbGxvd2VkOlxuICAgICAgICAgIFwiVGhlIGZpbGUgdHlwZSBvZiAne3tmaWxlTmFtZX19JyBpcyBub3QgYWxsb3dlZCBhbmQgaGFzIGJlZW4gcmVqZWN0ZWQuXCIsXG4gICAgICB9LFxuICAgICAgbWF4X2ZpbGVfc2l6ZTogJ01heGltdW0gZmlsZSBzaXplJyxcbiAgICAgIHByb21wdF8xOlxuICAgICAgICAnRHJhZyAmIGRyb3Age2xpbWl0LCBwbHVyYWwsIG9uZSB7ZmlsZX0gb3RoZXIge2ZpbGVzfX0gaGVyZSBvciAnLFxuICAgICAgcHJvbXB0XzI6ICdjbGljayB0byBicm93c2UnLFxuICAgICAgd2FybmluZzoge1xuICAgICAgICBtYXhfZmlsZV9jb3VudDpcbiAgICAgICAgICAnWW91IGhhdmUgc2VsZWN0ZWQge3tmaWxlQ291bnR9fSBmaWxlcywgYnV0IHRoZSBtYXhpbXVtIGFsbG93ZWQgaXMge3ttYXhGaWxlQ291bnR9fS4gT25seSB0aGUgZmlyc3Qge3ttYXhGaWxlQ291bnR9fSBmaWxlcyBoYXZlIGJlZW4gYWNjZXB0ZWQuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkdXJhdGlvbjogJ0R1cmF0aW9uJyxcbiAgICBlZGl0OiAnRWRpdCcsXG4gICAgZWRpdF9hdHRhY2htZW50OiAnRWRpdCBBdHRhY2htZW50JyxcbiAgICBlZGl0X2V2ZW50X2xldmVsOiAnRWRpdCBFdmVudCBMZXZlbCcsXG4gICAgZWRpdF90aXRsZTogJ0VkaXQgVGl0bGUnLFxuICAgIGVkaXRvcjogJ0VkaXRvcicsXG4gICAgZW1haWw6ICdFbWFpbCcsXG4gICAgZW1wbG95ZWVzOiAnRW1wbG95ZWVzJyxcbiAgICBlbjogJ0VuZ2xpc2gnLFxuICAgIGVuY29kaW5nOiAnRW5jb2RpbmcnLFxuICAgIGVuZHBvaW50czogJ05vdGlmaWNhdGlvbiBFbmRwb2ludHMnLFxuICAgIGVuZ2xpc2g6ICdFbmdsaXNoJyxcbiAgICBlbnRyaWVzOiAnRW50cmllcycsXG4gICAgZXJyb3I6ICdFcnJvcicsXG4gICAgZXJyb3JfbG9hZGluZzogJ0ZhaWxlZCB0byBsb2FkIHtpdGVtfScsXG4gICAgZXJyb3JfbWVzc2FnZV91cGRhdGU6ICdDb3VsZCBub3QgdXBkYXRlIFVzZXIgU2V0dGluZ3MnLFxuICAgIGVycm9yczogJ0Vycm9ycycsXG4gICAgZXZlbnQ6ICdFdmVudCcsXG4gICAgZXZlbnRfbGV2ZWw6ICdFdmVudCBMZXZlbCcsXG4gICAgZXZlbnRzOiAnRXZlbnRzJyxcbiAgICBmaWxlbmFtZTogJ0ZpbGVuYW1lJyxcbiAgICBmbG93OiAnRmxvdycsXG4gICAgZmxvd19zdHVkaW86ICdGbG93IFN0dWRpbycsXG4gICAgZmxvd2RlcGxveW1lbnQ6ICdGbG93IERlcGxveW1lbnQnLFxuICAgIGZsb3dkZXBsb3ltZW50czogJ0Zsb3cgRGVwbG95bWVudHMnLFxuICAgIGZsb3dmdW5jdGlvbjogJ0Zsb3cgRnVuY3Rpb24nLFxuICAgIGZsb3dmdW5jdGlvbnM6ICdGbG93IEZ1bmN0aW9ucycsXG4gICAgZmxvd21vZGVsOiAnRmxvdyBNb2RlbCcsXG4gICAgZmxvd21vZHVsZTogJ0Zsb3cgTW9kdWxlJyxcbiAgICBmbG93bW9kdWxlczogJ0Zsb3cgTW9kdWxlcycsXG4gICAgZmxvd3M6ICdGbG93cycsXG4gICAgZm9ybV9lcnJvcl9kZWxpbWl0ZXI6ICdEZWxpbWl0ZXIgcmVxdWlyZWQuJyxcbiAgICBmb3JtX2Vycm9yX2RldGFpbHM6ICdEZXRhaWxzIEZvcm0gaGFzIEVycm9ycy4nLFxuICAgIGZvcm1fZXJyb3JfZW1haWw6ICdFbWFpbCBpcyByZXF1aXJlZC4nLFxuICAgIGZvcm1fZXJyb3JfZW1wdHlfbWV0aG9kOiAnVGhlIG1ldGhvZCBtdXN0IGJlIG5vdCBlbXB0eS4nLFxuICAgIGZvcm1fZXJyb3JfZW1wdHlfdXJsOiAnVGhlIFVSTCBtdXN0IGJlIG5vdCBlbXB0eS4nLFxuICAgIGZvcm1fZXJyb3JfZW5jb2Rpbmc6ICdFbmNvZGluZyBuZWVkIHRvIHNldC4nLFxuICAgIGZvcm1fZXJyb3JfZXhwaXJ5X2RhdGU6ICdFeHBpcnkgZGF0ZSBpcyByZXF1aXJlZC4nLFxuICAgIGZvcm1fZXJyb3JfZ3JvdXA6ICdBdCBsZWFzdCBvbmUgZ3JvdXAgbXVzdCBiZSBzZWxlY3RlZC4nLFxuICAgIGZvcm1fZXJyb3JfbGVuZ3RoOiAnTmFtZSBtdXN0IGJlIGF0IGxlYXN0IHt7bGVuZ3RofX0gY2hhcmFjdGVycyBsb25nLicsXG4gICAgZm9ybV9lcnJvcl9tYXhfbGVuZ3RoOiAnTXVzdCBiZSBubyBtb3JlIHRoYW4ge3tsZW5ndGh9fSBjaGFyYWN0ZXJzJyxcbiAgICBmb3JtX2Vycm9yX21pbl9sZW5ndGg6ICdNdXN0IGJlIGF0IGxlYXN0IHt7bGVuZ3RofX0gY2hhcmFjdGVycycsXG4gICAgZm9ybV9lcnJvcl9uYW1lOiAnTmFtZSBpcyByZXF1aXJlZC4nLFxuICAgIGZvcm1fZXJyb3JfbmFtZV9wYXR0ZXJuOlxuICAgICAgJ09ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBoeXBoZW5zICgtKSwgYW5kIHVuZGVyc2NvcmVzIChfKSBhcmUgYWxsb3dlZCcsXG4gICAgZm9ybV9lcnJvcl9yZWFkOiAnQXQgbGVhc3Qgb25lIHJlYWQgcGVybWlzc2lvbiBtdXN0IGJlIHNlbGVjdGVkLicsXG4gICAgZm9ybV9lcnJvcl9yZWFkX3dyaXRlOlxuICAgICAgJ0F0IGxlYXN0IG9uZSByZWFkL3dyaXRlIHBlcm1pc3Npb24gbXVzdCBiZSBzZWxlY3RlZC4nLFxuICAgIGZvcm1fZXJyb3JfcmVxdWlyZWQ6ICdGaWVsZCBpcyByZXF1aXJlZCcsXG4gICAgZm9ybV9lcnJvcl9yb2xlX3BhdHRlcm46XG4gICAgICAnT25seSBsb3dlcmNhc2UgbGV0dGVycywgaHlwaGVucyAoLSksIGFuZCB1bmRlcnNjb3JlcyAoXykgYXJlIGFsbG93ZWQnLFxuICAgIGZvcm1fZXJyb3Jfc2NoZW1hX3JlcTogJ1NjaGVtYSBpcyByZXF1aXJlZC4nLFxuICAgIGZvcm1fZXJyb3Jfc2VsZWN0X2ZpbGU6ICdBIGZpbGUgbXVzdCBiZSBzZWxlY3RlZC4nLFxuICAgIGZvcm1fZXJyb3Jfc2VsZWN0X3R5cGU6ICdBbiBhc3NldCB0eXBlIG11c3QgYmUgc2VsZWN0ZWQuJyxcbiAgICBmb3JtX2Vycm9yX3NvdXJjZTogJ1NvdXJjZSBpcyBuZWVkZWQuJyxcbiAgICBmb3JtX2Vycm9yX3VuaXF1ZTogJ1Byb3BlcnR5IGhhcyB0byBiZSB1bmlxdWU6ICcsXG4gICAgZm9ybV9lcnJvcl92aWV3OiAnVmlldyBpcyBuZWVkZWQuJyxcbiAgICBnZW5lcmFsOiAnR2VuZXJhbCcsXG4gICAgZ2VybWFuOiAnR2VybWFuJyxcbiAgICBnbG9iYWw6ICdHbG9iYWwnLFxuICAgIGdyb3VwOiAnR3JvdXAnLFxuICAgIGdyb3VwX2J5OiAnR3JvdXAgYnknLFxuICAgIGhpc3Rvcnk6ICdIaXN0b3J5JyxcbiAgICBob3VyX2Zvcm1hdDogJ3t7dGltZX19LWhvdXIgVGltZSBGb3JtYXQnLFxuICAgIGlkOiAnSUQnLFxuICAgIGluYWN0aXZlOiAnSW5hY3RpdmUnLFxuICAgIGluZm86ICdJbmZvJyxcbiAgICBpbnZpdGVfbmV3X2VtcGxveWVlOiAnSW52aXRlIG5ldyBlbXBsb3llZScsXG4gICAgaW52aXRlX25ld19lbXBsb3llZV9kZXNjcmlwdGlvbjpcbiAgICAgICdJbnZpdGluZyBuZXcgZW1wbG95ZWVzIGFuZCBhc3NpZ25pbmcgdGhlbSB0byBzcGVjaWZpYyByb2xlcycsXG4gICAgaW52aXRlX25ld19tZW1iZXI6ICdJbnZpdGUgbmV3IG1lbWJlcicsXG4gICAgaW52aXRlX25ld19tZW1iZXJfZGVzY3JpcHRpb246XG4gICAgICAnSW52aXRpbmcgbmV3IG1lbWJlciBhbmQgYXNzaWduaW5nIHRoZW0gdG8gc3BlY2lmaWMgcm9sZXMnLFxuICAgICdqc2Zfd2lkZ2V0cy5jb250ZW50LmVycm9yLnJlc29sdmluZ19jb250ZW50X2ZhaWxlZCc6XG4gICAgICAnQ291bGQgbm90IHJlc29sdmUgQ29udGVudCcsXG4gICAgJ2pzZl93aWRnZXRzLmNvbnRlbnRfcmVmZXJlbmNlLmVycm9yLmFzc2V0X2lkX21pc3NpbmcnOiAnQXNzZXQgSUQgbm90IHNldCcsXG4gICAgJ2pzZl93aWRnZXRzLmNvbnRlbnRfcmVmZXJlbmNlLmVycm9yLmxvYWRpbmdfYXR0YWNobWVudHNfZmFpbGVkJzpcbiAgICAgICdDb3VsZCBub3QgbG9hZCBBc3NldCBBdHRhY2htZW50cycsXG4gICAgJ2pzZl93aWRnZXRzLmNyb24uZXJyb3IuaW52YWxpZF9leHByZXNzaW9uJzogJ05vdCBhIHZhbGlkIGNyb24gZXhwcmVzc2lvbicsXG4gICAgJ2pzZl93aWRnZXRzLmR1cmF0aW9uLmVycm9yLmludmFsaWRfZHVyYXRpb24nOiAnTm90IGEgdmFsaWQgZHVyYXRpb24nLFxuICAgICdqc2Zfd2lkZ2V0cy5wZXJtaXNzaW9uLmVycm9yLmxvYWRfcGVybWlzc2lvbnNfYWxsX3VzZXJzX2ZhaWxlZCc6XG4gICAgICAnQ291bGQgbm90IGxvYWQgUGVybWlzc2lvbnMgb2YgYWxsIHVzZXJzJyxcbiAgICAnanNmX3dpZGdldHMucGVybWlzc2lvbi5lcnJvci5sb2FkX3Blcm1pc3Npb25zX2ZhaWxlZCc6XG4gICAgICAnQ291bGQgbm90IGxvYWQgUGVybWlzc2lvbnMnLFxuICAgICdqc2Zfd2lkZ2V0cy5yZXNvdXJjZV9yZWZlcmVuY2UuZXJyb3Iuc2VhcmNoaW5nX2ZhaWxlZCc6XG4gICAgICAnU2VhcmNoIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQnLFxuICAgIGtleXM6ICdLZXlzJyxcbiAgICBsYWJlbDogJ0xhYmVsJyxcbiAgICBsYWJlbHM6ICdMYWJlbHMnLFxuICAgIGxhYmVsc19lZGl0OiAnRWRpdCBMYWJlbHMnLFxuICAgIGxhYmVsc19lZGl0X2RlZmF1bHQ6ICdFZGl0IEdsb2JhbCBEZWZhdWx0IExhYmVscycsXG4gICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG4gICAgbGFzdF91cGRhdGVkOiAnTGFzdCB1cGRhdGVkJyxcbiAgICBsZWF2ZTogJ0xlYXZlJyxcbiAgICBsZWdhbF9ub3RpY2U6ICdMZWdhbCBOb3RpY2UnLFxuICAgIGxpc3Q6ICdMaXN0JyxcbiAgICBsb2FkaW5nOiAnbG9hZGluZy4uLicsXG4gICAgbG9nbzogJ0xvZ28nLFxuICAgIG1hbmFnZV9ncm91cHM6ICdNYW5hZ2UgR3JvdXBzJyxcbiAgICBtYW5hZ2VfaWRlbnRpdHlfcHJvdmlkZXJzOlxuICAgICAgJ1JvbGUgdGhhdCBhbGxvd3MgdG8gbWFuYWdlIHRoZSBjb25maWd1cmVkIGlkZW50aXR5IHByb3ZpZGVycyBvZiB0aGUgY29tcGFueScsXG4gICAgbWFuYWdlX2ludml0YXRpb25zOlxuICAgICAgJ1JvbGUgdGhhdCBhbGxvd3MgdG8gbWFuYWdlIG9wZW4gaW52aXRhdGlvbnMgb2YgdGhlIGNvbXBhbnknLFxuICAgIG1hbmFnZV9tZW1iZXJzOiAnUm9sZSB0aGF0IGFsbG93cyB0byBtYW5hZ2UgdGhlIG1lbWJlcnMgb2YgdGhlIGNvbXBhbnknLFxuICAgIG1hbmFnZV9vcmdhbml6YXRpb246XG4gICAgICAnUm9sZSB0aGF0IGFsbG93cyB0byBtYW5hZ2UgdGhlIGNvbXBhbnkgYW5kIGl0cyBkZXRhaWxzJyxcbiAgICBtYW5hZ2Vfcm9sZXM6ICdSb2xlIHRoYXQgYWxsb3dzIHRvIG1hbmFnZSB0aGUgcm9sZXMgb2YgdGhlIGNvbXBhbnknLFxuICAgIG1hbmFnZXI6ICdBcHAgTWFuYWdlcicsXG4gICAgbWF4aW11bTogJ01heGltdW0nLFxuICAgIG1lbWJlcjogJ01pdGdsaWVkJyxcbiAgICBtZXNzYWdlOiAnTWVzc2FnZScsXG4gICAgbWV0aG9kOiAnTWV0aG9kJyxcbiAgICBtb2R1bGVzOiAnTW9kdWxlcycsXG4gICAgbW9udGg6ICdNb250aCcsXG4gICAgbW9udGhzOiAnTW9udGhzJyxcbiAgICBteV90YXNrczogJ015IFRhc2tzJyxcbiAgICBuYW1lOiAnTmFtZScsXG4gICAgbmV3X2ZlbWluaW5lOiAnTmV3JyxcbiAgICBuZXdfbWFzY3VsaW5lOiAnTmV3JyxcbiAgICBuZXdfbmV1dHJhbDogJ05ldycsXG4gICAgbmV3X3RhZzogJ05ldyBMYWJlbCcsXG4gICAgbmV4dDogJ05leHQnLFxuICAgIG5leHRfc3RlcDogJ05leHQnLFxuICAgIG5vX2Rlc2NyaXB0aW9uOiAnTm8gZGVzY3JpcHRpb24nLFxuICAgIG5vX2xhYmVsczogJ05vIExhYmVscycsXG4gICAgbm9fcHJldmlldzogJ05vIHByZXZpZXcgYXZhaWxhYmxlJyxcbiAgICBub19yZXN1bHQ6ICdObyByZXN1bHRzIGZvdW5kIScsXG4gICAgbm90X2Fzc2lnbmVkOiAnTm90IGFzc2lnbmVkJyxcbiAgICBub3RpZmljYXRpb25fY2xvc2VfdG9vbHRpcDogJ0Nsb3NlJyxcbiAgICBub3RpZmljYXRpb25faW5mb19lbXB0eV9saXN0OiAnTm8gbm90aWZpY2F0aW9ucyBhdmFpbGFibGUnLFxuICAgIG5vdGlmaWNhdGlvbl9vcGVuX21hbmFnZXJfdG9vbHRpcDogJ09wZW4gTm90aWZpY2F0aW9uIE1hbmFnZXInLFxuICAgIG5vdGlmaWNhdGlvbl9vcGVuX3Rvb2x0aXA6ICdPcGVuJyxcbiAgICBub3RpZmljYXRpb25fcmVhZF9hbGxfdG9vbHRpcDogJ01hcmsgYWxsIGFzIHJlYWQnLFxuICAgIG5vdGlmaWNhdGlvbl9yZWFkX3Rvb2x0aXA6ICdNYXJrIGFzIHJlYWQnLFxuICAgIG5vdGlmaWNhdGlvbl9ydWxlczogJ05vdGlmaWNhdGlvbiBSdWxlcycsXG4gICAgbm90aWZpY2F0aW9uX3RvYXN0X2luZm86ICdSZWNlaXZlZCBhIG5ldyBub3RpZmljYXRpb24hJyxcbiAgICBub3RpZmljYXRpb25fdW5yZWFkX3Rvb2x0aXA6ICdNYXJrIGFzIHVucmVhZCcsXG4gICAgbm90aWZpY2F0aW9uZW5kcG9pbnQ6ICdOb3RpZmljYXRpb24gRW5kcG9pbnQnLFxuICAgIG5vdGlmaWNhdGlvbmVuZHBvaW50czogJ05vdGlmaWNhdGlvbiBFbmRwb2ludHMnLFxuICAgIG5vdGlmaWNhdGlvbnJ1bGU6ICdOb3RpZmljYXRpb24gUnVsZScsXG4gICAgbm90aWZpY2F0aW9ucnVsZXM6ICdOb3RpZmljYXRpb24gUnVsZXMnLFxuICAgIG5vdGlmaWNhdGlvbnM6ICdOb3RpZmljYXRpb25zJyxcbiAgICBvZmZlcl9yZXF1ZXN0czogJ09mZmVyIFJlcXVlc3RzJyxcbiAgICBvZmZlcnM6ICdPZmZlcnMnLFxuICAgIG9rOiAnT0snLFxuICAgIG9wZW46ICdPcGVuJyxcbiAgICBvcGVuZWQ6ICdPcGVuZWQnLFxuICAgIG9yZ2FuaXphdGlvbjogJ09yZ2FuaXphdGlvbicsXG4gICAgJ29yZ2FuaXphdGlvbi5kZWxldGUnOiAnRGVsZXRlIE9yZ2FuaXphdGlvbicsXG4gICAgJ29yZ2FuaXphdGlvbi5kZWxldGVfYXNfc3VwZXJ1c2VyJzogJ0RlbGV0ZSBPcmdhbml6YXRpb24gYXMgU3VwZXJ1c2VyJyxcbiAgICAnb3JnYW5pemF0aW9uLnJlcXVlc3RfZGVsZXRlJzogJ1JlcXVlc3QgT3JnYW5pemF0aW9uIERlbGV0aW9uJyxcbiAgICBvcmdhbml6YXRpb25fZGVsZXRlX21lc3NhZ2U6XG4gICAgICAnU2hvdWxkIHRoZSBPcmdhbml6YXRpb24gPGI+e29yZ2FuaXphdGlvbn08L2I+IGFuZCBhbGwgYXNzb2NpYXRlZCBkYXRhIHJlYWxseSBiZSBkZWxldGVkPycsXG4gICAgb3JnYW5pemF0aW9uX292ZXJ2aWV3OiAnT3JnYW5pemF0aW9uIE92ZXJ2aWV3JyxcbiAgICBvcmdhbml6YXRpb25fcmVxdWVzdF9kZWxldGVfZGVzY3JpcHRpb246XG4gICAgICAnWW91IGhlcmVieSByZXF1ZXN0IHRoZSBkZWxldGlvbiBvZiB5b3VyIE9yZ2FuaXphdGlvbi4gUGxlYXNlIG5vdGUgdGhhdCB0aGUgZGVsZXRpb24gb2YgYW4gT3JnYW5pemF0aW9uIGlzIGlycmV2b2NhYmxlIGFuZCBhbGwgZGF0YSBiZWxvbmdpbmcgdG8gdGhlIE9yZ2FuaXphdGlvbiB3aWxsIGFsc28gYmUgZGVsZXRlZC4nLFxuICAgIG9yZ2FuaXphdGlvbl90ZW5kZXJzOiAnT3JnYW5pemF0aW9uIFRlbmRlcnMnLFxuICAgIG9yZ2FuaXphdGlvbnM6ICdPcmdhbml6YXRpb25zJyxcbiAgICBvdmVydmlldzogJ092ZXJ2aWV3JyxcbiAgICBvd25lcjoge1xuICAgICAgZWRpdF9wZXJtaXNzaW9uOiAnTWVtYmVycyBvZiB7e29yZ319IGFyZSBhbGxvd2VkIHRvIHZpZXcgYW5kIGVkaXQnLFxuICAgICAgbWFuYWdlZF9ieTogJ01hbmFnZWQgYnknLFxuICAgICAgdmlld19wZXJtaXNzaW9uOiAnTWVtYmVycyBvZiB7e29yZ319IGFyZSBhbGxvd2VkIHRvIHZpZXcnLFxuICAgIH0sXG4gICAgcGFnZTogJ1BhZ2UnLFxuICAgIHBhcmVudDogJ1BhcmVudCcsXG4gICAgcGFzc3dvcmQ6ICdQYXNzd29yZCcsXG4gICAgcGVuZGluZzogJ1BlbmRpbmcnLFxuICAgIHBlcmlvZDogJ1BlcmlvZCcsXG4gICAgcGVybWlzc2lvbnM6ICdQZXJtaXNzaW9ucycsXG4gICAgcGhvbmVfbnVtYmVyOiAnUGhvbmUgTnVtYmVyJyxcbiAgICBwcmV2aWV3OiAnUHJldmlldycsXG4gICAgcHJldmlvdXM6ICdQcmV2aW91cycsXG4gICAgcHJpdmFjeV9wb2xpY3k6ICdQcml2YWN5IFBvbGljeScsXG4gICAgcHJvZmlsZTogJ1Byb2ZpbGUnLFxuICAgIHByb3BlcnRpZXM6ICdQcm9wZXJ0aWVzJyxcbiAgICBwcm9wZXJ0eTogJ1Byb3BlcnR5JyxcbiAgICBxdWFydGVyOiAnUXVhcnRlcicsXG4gICAgcmVhZF9wZXJtaXNzaW9uczogJ1JlYWQgUGVybWlzc2lvbnMnLFxuICAgIHJlYWRfcGVybWlzc2lvbnNfZWRpdF9kZWZhdWx0OiAnRWRpdCBEZWZhdWx0IFJlYWQvV3JpdGUgUGVybWlzc2lvbnMnLFxuICAgIHJlYWRfd3JpdGVfcGVybWlzc2lvbnM6ICdSZWFkL1dyaXRlIFBlcm1pc3Npb25zJyxcbiAgICByZWZlcmVuY2U6ICdSZWZlcmVuY2UnLFxuICAgIHJlZmVyZW5jZXM6ICdSZWZlcmVuY2VzJyxcbiAgICByZXNldDogJ1Jlc2V0JyxcbiAgICByZXNwb25zZV90eXBlOiAnUmVzcG9uc2UgVHlwZScsXG4gICAgcmV2aXNpb246ICdSZXZpc2lvbicsXG4gICAgJ3JvbGUuYWRkLm5ldyc6ICdBZGQgcm9sZScsXG4gICAgJ3JvbGUuZGVsZXRlJzogJ1JlbW92ZSByb2xlJyxcbiAgICAncm9sZS5lZGl0JzogJ0VkaXQgcm9sZSBkZXNjcmlwdGlvbicsXG4gICAgJ3JvbGUuZWRpdC5pbmZvJzpcbiAgICAgICdFYWNoIHJvbGUgbXVzdCBoYXZlIGEgdW5pcXVlIG5hbWUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZCBhZnRlciBjcmVhdGluZyBvZiB0aGUgcm9sZS4gT25seSBsb3dlcmNhc2UgbGV0dGVycywgaHlwaGVucyAoLSksIGFuZCB1bmRlcnNjb3JlcyAoXykgYXJlIGFsbG93ZWQgaW4gdGhlIG5hbWUuJyxcbiAgICAncm9sZS5uYW1lJzogJ05hbWUgb2YgdGhlIHJvbGUnLFxuICAgIHJvbGVfYWRkX25ld19kZXNjcmlwdGlvbjpcbiAgICAgICdFc3RhYmxpc2hpbmcgbmV3IHJvbGVzIHdpdGhpbiB5b3VyIG9yZ2FuaXphdGlvbiBhbmQgZGlzdHJpYnV0aW5nIHRoZW0gdG8gcmVzb3VyY2VzIG9yIGFzc2lnbmluZyB0aGVtIHRvIG1lbWJlcnMgYXMgbmVlZGVkLicsXG4gICAgcm9sZV9hZG1pbjogJ0FkbWluIFJvbGUnLFxuICAgIHJvbGVfaW5mbzpcbiAgICAgICdSb2xlcyB0byBhc3NpZ24gdGhlIHVzZXIuIEFkbWluIHJvbGUgZ2V0cyBhbGwgcm9sZXMuIFZpZXcgcm9sZSBnZXRzIHZpZXcgb25seS4nLFxuICAgIHJvbGVfdmlldzogJ1ZpZXcgUm9sZScsXG4gICAgcm9sZXM6ICdSb2xlcycsXG4gICAgcm9sbGJhY2tfdmVyc2lvbjogJ1JvbGwgYmFjayBUbyBzZWxlY3RlZCB2ZXJzaW9uJyxcbiAgICBzYXZlOiAnU2F2ZScsXG4gICAgc2NoZW1hOiAnU2NoZW1hJyxcbiAgICBzZWFyY2g6ICdTZWFyY2guLi4nLFxuICAgICdzZWFyY2gubm9fcmVzdWx0cyc6ICdObyByZXN1bHRzIGZvdW5kJyxcbiAgICBzZWFyY2hfYXNzZXRfdHlwZXM6ICdTZWFyY2ggYXNzZXQgdHlwZXMuLi4nLFxuICAgIHNlYXJjaF9hc3NldHM6ICdTZWFyY2ggYXNzZXRzLi4uJyxcbiAgICBzZWFyY2hfZm9yX3BhZ2U6ICdTZWFyY2ggZm9yIGEgcGFnZScsXG4gICAgc2VhcmNoX3JvbGVzOiAnU2VhcmNoIHJvbGVzLi4uJyxcbiAgICBzZWFyY2hfdHNtOiAnU2VhcmNoIHRpbWVzZXJpZXMuLi4nLFxuICAgIHNlY3JldDogJ1NlY3JldCcsXG4gICAgc2VjcmV0czogJ1NlY3JldHMnLFxuICAgIHNlbGVjdDogJ1NlbGVjdCcsXG4gICAgc2VsZWN0X2ZpbGU6ICdTZWxlY3QgRmlsZScsXG4gICAgc2VsZWN0ZWRfZmlsZTogJ1NlbGVjdGVkIEZpbGUnLFxuICAgICdzZXJ2aWNlLmFkZC5uZXcnOiAnQWRkIFNlcnZpY2UnLFxuICAgICdzZXJ2aWNlLmRlbGV0ZSc6ICdSZW1vdmUgU2VydmljZScsXG4gICAgc2VydmljZXM6ICdTZXJ2aWNlcycsXG4gICAgc2V0dGluZ3M6ICdTZXR0aW5ncycsXG4gICAgc2V0dXBfY2VydHNfZGVzY3JpcHRpb246ICdTZXR1cCBhc3NvY2lhdGVkIGNlcnRpZmljYXRlcycsXG4gICAgc2hvdzogJ1Nob3cnLFxuICAgIHNob3dfZGlmZmVyZW5jZXM6ICdTaG93IGRpZmZlcmVuY2VzJyxcbiAgICBzaG93X3ByZXZpZXc6ICdTaG93IFByZXZpZXcnLFxuICAgIHNpZ25faW46ICdTaWduIGluJyxcbiAgICBzaWduX291dDogJ1NpZ24gb3V0JyxcbiAgICBzaWduZWRfaW5fYXM6ICdTaWduZWQgaW4gYXMnLFxuICAgIHNvcnQ6ICdTb3J0JyxcbiAgICBzdGF0aXN0aWNfcXVlcmllczogJ1N0YXRpc3RpYyBRdWVyaWVzJyxcbiAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgIHN1cGVydHlwZTogJ1N1cGVydHlwZScsXG4gICAgc3lzdGVtOiAnU3lzdGVtJyxcbiAgICB0YWdzOiAnTGFiZWxzJyxcbiAgICB0YXNrOiAnVGFzaycsXG4gICAgdGFza3M6ICdUYXNrcycsXG4gICAgdGltZTogJ1RpbWUnLFxuICAgIHRpbWVfc2VyaWVzOiAnVGltZSBTZXJpZXMnLFxuICAgIHRpbWVfc2VyaWVzX21hbmFnZXI6ICdUaW1lIFNlcmllcyBNYW5hZ2VyJyxcbiAgICB0aW1lc2VyaWVzOiAnVGltZSBTZXJpZXMnLFxuICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fZXJyb3I6ICdGYWlsZWQgdG8gY2hhbmdlIGFjdGl2ZSBvcmdhbml6YXRpb24uJyxcbiAgICB0b2FzdF9hY3RpdmVfb3JnYW5pemF0aW9uX2xvYWRpbmc6ICdDaGFuZ2luZyBhY3RpdmUgb3JnYW5pemF0aW9uLi4uJyxcbiAgICB0b2FzdF9hY3RpdmVfb3JnYW5pemF0aW9uX3N1Y2Nlc3M6XG4gICAgICAnU3VjY2Vzc2Z1bGx5IGNoYW5nZWQgYWN0aXZlIG9yZ2FuaXphdGlvbi4nLFxuICAgIHRvYXN0X2Vycm9yOiAnRXJyb3IhJyxcbiAgICB0b2FzdF9lcnJvcl9hZGRfZW1wbG95ZWU6XG4gICAgICBcIkNvdWxkbid0IHNlbmQgdGhlIGludml0YXRpb24gb2YgdGhlIG5ldyBlbXBsb3llZVwiLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9tZW1iZXI6IFwiQ291bGRuJ3Qgc2VuZCB0aGUgaW52aXRhdGlvbiBvZiB0aGUgbmV3IG1lbWJlclwiLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9yb2xlOiBcIkNvdWxkbid0IGFkZCByb2xlXCIsXG4gICAgdG9hc3RfZXJyb3JfYXV0aGVudGljYXRlOiAnQ291bGQgbm90IGF1dGhlbnRpY2F0ZS4nLFxuICAgIHRvYXN0X2Vycm9yX2NyZWF0ZV90c206ICdDb3VsZCBub3QgY3JlYXRlIFRpbWUgU2VyaWVzLicsXG4gICAgdG9hc3RfZXJyb3JfaW5kZXhfY29udGVudDogJ0Vycm9yIHdoZW4gcmV0cmlldmluZyBpbmRleGluZyBzdGF0dXMnLFxuICAgIHRvYXN0X2Vycm9yX2ludml0YXRpb25fc2VuZDogJ0NvdWxkIG5vdCBzZW5kIGludml0YXRpb24nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfY2VydDogJ0NvdWxkIG5vdCBsb2FkIGNlcnRpZmljYXRlcycsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9ldmVudF9jYXVzZXM6ICdDb3VsZCBub3QgbG9hZCBFdmVudCBjYXVzZXMgb3ZlcnJpZGUuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX2l0ZW06ICdDb3VsZCBub3QgbG9hZCB7e2l0ZW19fS4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfbGlzdDogJ0NvdWxkIG5vdCBsb2FkIGxpc3QuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX29yZ19yb2xlczogJ0NvdWxkIG5vdCBsb2FkIHJvbGVzIG9mIHRoZSBhY3RpdmUgY29tcGFueS4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcGVybWlzc2lvbnM6ICdDb3VsZCBub3QgbG9hZCBQZXJtaXNzaW9ucycsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9wZXJtaXNzaW9uc19hbGxfdXNlcnM6XG4gICAgICAnQ291bGQgbm90IGxvYWQgUGVybWlzc2lvbnMgb2YgYWxsIHVzZXJzJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3ByZXZpZXc6ICdDb3VsZCBub3QgbG9hZCBwcmV2aWV3LicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9yb2xlOiAnQ291bGQgbm90IGxvYWQgcm9sZXMnLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfc2VydmljZTogJ0NvdWxkIG5vdCBsb2FkIHNlcnZpY2VzJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3RlbmRlcjogJ0NvdWxkIG5vdCBsb2FkIHRlbmRlci4nLFxuICAgIHRvYXN0X2Vycm9yX29yZ2FuaXphdGlvbl9kZWxldGU6ICdDb3VsZCBub3QgZGVsZXRlIG9yZ2FuaXphdGlvbicsXG4gICAgdG9hc3RfZXJyb3Jfb3JnYW5pemF0aW9uX25hbWVfZXhpc3RzOlxuICAgICAgJ09yZ2FuaXphdGlvbiB3aXRoIG5hbWUge3tuYW1lfX0gYWxyZWFkeSBleGlzdHMnLFxuICAgIHRvYXN0X2Vycm9yX3JvbGxiYWNrX3ZlcnNpb246ICdDYW5ub3Qgcm9sbCBiYWNrIHRvIHNlbGVjdGVkIHZlcnNpb24nLFxuICAgIHRvYXN0X2Vycm9yX3NhdmVfaXRlbTogJ0NvdWxkIG5vdCBzYXZlIHt7aXRlbX19JyxcbiAgICB0b2FzdF9lcnJvcl91cGRhdGVfYXR0YWNobWVudDpcbiAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtDb3VsZCBub3QgdXBkYXRlIGF0dGFjaG1lbnR9IG90aGVyIHtDb3VsZCBub3QgdXBkYXRlICMgYXR0YWNobWVudHN9fScsXG4gICAgdG9hc3RfZXJyb3JfdXBkYXRlX2V2ZW50X2NhdXNlczogJ0NvdWxkIG5vdCB1cGRhdGUgRXZlbnQgY2F1c2VzIG92ZXJyaWRlLicsXG4gICAgdG9hc3RfZXJyb3JfdXBkYXRlX3NlcnZpY2U6ICdDb3VsZCBub3QgdXBkYXRlIHNlcnZpY2VzJyxcbiAgICB0b2FzdF9lcnJvcl91cGxvYWRfZmlsZTpcbiAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtDb3VsZCBub3QgdXBsb2FkIHt7ZmlsZX19fSBvdGhlciB7Q291bGQgbm90IHVwbG9hZCAjIGZpbGVzfX0nLFxuICAgIHRvYXN0X2Vycm9yX3VwbG9hZF9maWxlX21heDpcbiAgICAgICdObyBtb3JlIHRoYW4ge3ttYXh9fSBmaWxlcyBtYXkgYmUgdXBsb2FkZWQgYXQgdGhlIHNhbWUgdGltZS4nLFxuICAgIHRvYXN0X2Zvcm1fZXJyb3JfcmVxdWlyZWQ6ICd7e3BhcmFtfX0gY2Fubm90IGJlIGVtcHR5JyxcbiAgICB0b2FzdF9mb3JtX2Vycm9yX3JlcXVpcmVkX3NlbGVjdGlvbjpcbiAgICAgICdZb3UgbXVzdCBzZWxlY3QgYXQgbGVhc3Qgb25lIHt7cGFyYW19fScsXG4gICAgdG9hc3RfZm9ybV9lcnJvcl9yZXF1aXJlZF9zZWxlY3Rpb25fZmVtaW5pbmU6XG4gICAgICAnWW91IG11c3Qgc2VsZWN0IGF0IGxlYXN0IG9uZSB7e3BhcmFtfX0nLFxuICAgIHRvYXN0X2luZm86ICdJbmZvIScsXG4gICAgdG9hc3Rfc3VjY2VzczogJ1N1Y2Nlc3MhJyxcbiAgICB0b2FzdF9zdWNjZXNzX2FkZF9lbXBsb3llZTpcbiAgICAgICdUaGUgaW52aXRhdGlvbiBvZiB0aGUgbmV3IGVtcGxveWVlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5JyxcbiAgICB0b2FzdF9zdWNjZXNzX2FkZF9tZW1iZXI6XG4gICAgICAnVGhlIGludml0YXRpb24gb2YgdGhlIG5ldyBtZW1iZXIgaGFzIGJlZW4gc2VudCBzdWNjZXNzZnVsbHknLFxuICAgIHRvYXN0X3N1Y2Nlc3NfYWRkX3JvbGU6ICdSb2xlIGhhcyBiZWVuIGFkZGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgdG9hc3Rfc3VjY2Vzc19pbnZpdGF0aW9uX3NlbmQ6ICdJbnZpdGF0aW9uIHNlbnQnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBkYXRlX2F0dGFjaG1lbnQ6XG4gICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7QXR0YWNobWVudCB1cGRhdGVkfSBvdGhlciB7IyBBdHRhY2htZW50cyB1cGRhdGVkfX0nLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBkYXRlX3NlcnZpY2U6ICdTZXJ2aWNlIHVwZGF0ZWQuJyxcbiAgICB0b2FzdF9zdWNjZXNzX3VwbG9hZF9maWxlOlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge1VwbG9hZCBvZiB7e2ZpbGV9fSBjb21wbGV0ZWR9IG90aGVyIHtVcGxvYWQgb2YgIyBmaWxlcyBjb21wbGV0ZWR9fScsXG4gICAgdG9hc3Rfd2FybmluZzogJ1dhcm5pbmchJyxcbiAgICB0b2FzdF93YXJuaW5nX2ludmFsaWRfZm9ybV9kYXRhOlxuICAgICAgJ0ludmFsaWQgZm9ybSBkYXRhLiBQbGVhc2UgY2hlY2sgdGhlIGZvcm0gZm9yIGVycm9ycy4nLFxuICAgIHRvYXN0X3dhcm5pbmdfaW52YWxpZF9zY2hlbWE6ICdQcm9wZXJ0aWVzIFNjaGVtYSBpcyBpbnZhbGlkJyxcbiAgICB0b2FzdF93YXJuaW5nX3JvbGxiYWNrX3ZlcnNpb246XG4gICAgICBcIlRoZXNlIHJlZmVyZW5jZWQgZWxlbWVudHMgb2YgdGhlIHJldmlzaW9uIGRvbid0IGV4aXN0IGFueW1vcmU6IHt7ZW50cmllc319XCIsXG4gICAgdG91cl9zdGFydDogJ1N0YXJ0IHRvdXInLFxuICAgIHR5cGU6ICdUeXBlJyxcbiAgICB1bmtub3duOiAndW5rbm93bicsXG4gICAgdW52ZXJpZmllZDogJ1VudmVyaWZpZWQnLFxuICAgIHVwZGF0ZWQ6ICdVcGRhdGVkJyxcbiAgICB1cGRhdGVkX2J5OiAnVXBkYXRlZCBieScsXG4gICAgdXBsb2FkX2RhdGU6ICdVcGxvYWQgRGF0ZScsXG4gICAgdXBsb2FkX2ZpbGU6ICdVcGxvYWQgRmlsZScsXG4gICAgdXJsOiAnVVJMJyxcbiAgICB1c2VyOiAnVXNlcicsXG4gICAgdXNlcl9yb2xlczogJ1VzZXIgUm9sZXMnLFxuICAgIHVzZXJuYW1lOiAnVXNlcm5hbWUnLFxuICAgIHZhdDogJ1ZBVC1JRCcsXG4gICAgdmF0X2V4YW1wbGU6XG4gICAgICAnVkFULUlEIG11c3QgYmUgZnJvbSBHZXJtYW55IChERSBmb2xsb3dlZCBieSA5IGRpZ2l0cywgZS5nLiBERTEyMzQ1Njc4OSkgb3IgQXVzdHJpYSAoQVRVIGZvbGxvd2VkIGJ5IDggZGlnaXRzLCBlLmcuIEFUVTEyMzQ1Njc4KScsXG4gICAgdmVyaWZpZWQ6ICdWZXJpZmllZCcsXG4gICAgdmlldzogJ1ZpZXcnLFxuICAgIHZpZXdfaWRlbnRpdHlfcHJvdmlkZXJzOlxuICAgICAgJ1JvbGUgdGhhdCBhbGxvd3MgdG8gdmlldyB0aGUgY29uZmlndXJlZCBpZGVudGl0eSBwcm92aWRlcnMgb2YgdGhlIGNvbXBhbnknLFxuICAgIHZpZXdfaW52aXRhdGlvbnM6XG4gICAgICAnUm9sZSB0aGF0IGFsbG93cyB0byB2aWV3IGFsbCBvcGVuIGludml0YXRpb25zIG9mIHRoZSBjb21wYW55JyxcbiAgICB2aWV3X21lbWJlcnM6ICdSb2xlIHRoYXQgYWxsb3dzIHRvIHZpZXcgYWxsIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgY29tcGFueScsXG4gICAgdmlld19vcmdhbml6YXRpb246ICdSb2xlIHRoYXQgYWxsb3dzIHRvIHZpZXcgdGhlIGNvbXBhbnknLFxuICAgIHZpZXdfcm9sZXM6ICdSb2xlIHRoYXQgYWxsb3dzIHRvIHZpZXcgYWxsIHJvbGVzIG9mIHRoZSBjb21wYW55JyxcbiAgICB3YXJuaW5nOiAnV2FybmluZycsXG4gICAgd2VlazogJ1dlZWsnLFxuICAgIHdyaXRlX3Blcm1pc3Npb25zOiAnV3JpdGUgUGVybWlzc2lvbnMnLFxuICAgIHllYXI6ICdZZWFyJyxcbiAgICB5ZWFyczogJ1llYXJzJyxcbiAgICB6aXBfY29kZTogJ1Bvc3RhbCBDb2RlJyxcbiAgICB6aXBfY29kZV9lcnJvcjpcbiAgICAgICdUaGUgUG9zdGFsIENvZGUgbXVzdCBiZSB2YWxpZCBhbmQgbm90IGJlIGxvbmdlciB0aGFuIDEwIGRpZ2l0cy4nLFxuICB9LFxuICBkZToge1xuICAgIGFjY2VwdGVkOiAnQW5nZW5vbW1lbicsXG4gICAgYWNjZXNzX3Jlc3RyaWN0ZWQ6ICdadWdyaWZmIGJlc2NocsOkbmt0JyxcbiAgICBhY2Nlc3NfdW5yZXN0cmljdGVkOiAnVW5iZXNjaHLDpG5rdGVyIFp1Z3JpZmYnLFxuICAgIGFjY291bnQ6ICdOdXR6ZXJrb250bycsXG4gICAgYWN0aW9uOiAnQWt0aW9uJyxcbiAgICBhY3Rpb25zOiAnQWt0aW9uZW4nLFxuICAgIGFjdGl2ZTogJ0FrdGl2JyxcbiAgICBhZGRfYXR0YWNobWVudDogJ0FuaGFuZyBIaW56dWbDvGdlbicsXG4gICAgYWRkX2F0dHJpYnV0ZTogJ0F0dHJpYnV0IEhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRfbmV3OiAnTmV1ZSBIaW56dWbDvGdlbicsXG4gICAgYWRkX25ld19tZW1iZXI6ICdOZXVlcyBNaXRnbGllZCBoaW56dWbDvGdlbicsXG4gICAgYWRkX25ld19vcmdhbml6YXRpb246ICdOZXVlIE9yZ2FuaXNhdGlvbiBoaW56dWbDvGdlbicsXG4gICAgYWRkX3RvX2NsaXBib2FyZDogJ1p1ciBad2lzY2hlbmFibGFnZSBoaW56dWbDvGdlbicsXG4gICAgYWRkcmVzczogJ0FkcmVzc2UnLFxuICAgIGFkbWluaXN0cmF0aW9uOiAnVmVyd2FsdHVuZycsXG4gICAgYWk6IHtcbiAgICAgIGFib3J0OiAnQWJicmVjaGVuJyxcbiAgICAgIGFjY2VwdDogJ0FremVwdGllcmVuJyxcbiAgICAgIGFjY2Vzc2VkX2F0OiAnWnVnZWdyaWZmZW4gYW0nLFxuICAgICAgYWRhbV9haV9pbnRybzpcbiAgICAgICAgJ1VudGVyaGFsdGVuIFNpZSBzaWNoIGluIEVjaHR6ZWl0IG1pdCBBZGFtIEFJLCBJaHJlbSBFeHBlcnRlbmFzc2lzdGVudGVuIGbDvHIgQXNzZXQgSW50ZWxsaWdlbmNlLiBFcmhhbHRlbiBTaWUgaW50ZWxsaWdlbnRlIEVpbmJsaWNrZSB1bmQgTMO2c3VuZ2VuLCBkaWUgYXVmIElocmUgQmVkw7xyZm5pc3NlIHp1Z2VzY2huaXR0ZW4gc2luZC4nLFxuICAgICAgYWdlbnRfdW5hdmFpbGFibGU6ICdBZ2VudCBuaWNodCB2ZXJmw7xnYmFyJyxcbiAgICAgIGFpX3BsYWNlaG9sZGVyOiAnV2llIGthbm4gQURBTSBJaG5lbiBoZXV0ZSBoZWxmZW4/JyxcbiAgICAgIGFuZDogJ3VuZCcsXG4gICAgICBhc2tfYWJvdXRfYXNzZXQ6ICdBREFNIEFJIMO8YmVyIGRpZXNlcyBBc3NldCBmcmFnZW4nLFxuICAgICAgYXNrX2FkYW06ICdGcmFnIEFkYW0gQUknLFxuICAgICAgYXNzZXRfaW50ZWxsaWdlbmNlOiAnQXNzZXQgSW50ZWxsaWdlbmNlJyxcbiAgICAgIGFzc2lzdGFudHM6ICdBc3Npc3RlbnRlbicsXG4gICAgICBjaGF0X2RlbGV0ZWQ6ICdDaGF0IGdlbMO2c2NodCcsXG4gICAgICBjaGF0czogJ0NoYXRzJyxcbiAgICAgIGNsZWFyX2hpc3Rvcnk6ICdWZXJsYXVmIGzDtnNjaGVuJyxcbiAgICAgIGNvbXBsZXRlX2FuZF9jcmVhdGVfcmVwb3J0OiAnQWJzY2hsaWXDn2VuIHVuZCBCZXJpY2h0IGVyc3RlbGxlbicsXG4gICAgICBjb250ZXh0OiAnUmVmZXJlbnppZXJ0ZXIgS29udGV4dCcsXG4gICAgICBjb250ZXh0X2ZvdW5kOiAnS29udGV4dCBnZWZ1bmRlbicsXG4gICAgICBjb250ZXh0X25vbmU6ICdLZWluZSB6dWdlaMO2cmlnZW4gQXNzZXRzIG9kZXIgRGF0ZWllbiBnZWZ1bmRlbi4nLFxuICAgICAgY29udGV4dF9zZWFyY2g6ICdTdWNoZSBuYWNoIHp1Z2Vow7ZyaWdlbiBBc3NldHMgdW5kIERhdGVpZW4uLi4nLFxuICAgICAgY29udGludWVfY2hhdDogJ0NoYXQgZm9ydHNldHplbicsXG4gICAgICBjb250aW51ZV9wcmV2aW91c19jaGF0OiAnVm9yaGVyaWdlbiBDaGF0IGZvcnRzZXR6ZW4nLFxuICAgICAgY29va2llczogJ0Nvb2tpZXMnLFxuICAgICAgY3JlYXRlX25ld19jaGF0OiAnTmV1ZW4gQ2hhdCBlcnN0ZWxsZW4nLFxuICAgICAgY3JlYXRlX25ld19ldmVudDogJ05ldWUgTWVsZHVuZyBtaXQgSGlsZmUgdm9uIEFkYW0gZXJzdGVsbGVuJyxcbiAgICAgIGRlOiAnRGV1dHNjaCcsXG4gICAgICBkZWxldGVfY2hhdDogJ0NoYXQgbMO2c2NoZW4nLFxuICAgICAgZGVsZXRlX2l0ZW06ICdFaW50cmFnIGzDtnNjaGVuJyxcbiAgICAgIGRlbGV0ZV9pdGVtX21lc3NhZ2U6XG4gICAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtNw7ZjaHRlbiBTaWUgZGllc2VzIEVsZW1lbnQgd2lya2xpY2ggbMO2c2NoZW4/PGJyPjxicj48Yj57eyBpdGVtcyB9fTwvYj59IG90aGVyIHtNw7ZjaHRlbiBTaWUgZGllc2UgIyBFbGVtZW50ZSB3aXJrbGljaCBsw7ZzY2hlbj99fScsXG4gICAgICBkZWxldGVfaXRlbV9tZXNzYWdlX2dlbmVyYWw6XG4gICAgICAgICdNw7ZjaHRlbiBTaWUgZGllc2VzIEVsZW1lbnQgd2lya2xpY2ggbMO2c2NoZW4/JyxcbiAgICAgIGRlbGV0ZV9pdGVtX3RpdGxlOlxuICAgICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7RWxlbWVudCBsw7ZzY2hlbn0gb3RoZXIge01laHJlcmUgRWxlbWVudGUgbMO2c2NoZW59fScsXG4gICAgICBkb2N1bWVudDogJ0Rva3VtZW50JyxcbiAgICAgIGVuOiAnRW5nbGlzaCcsXG4gICAgICBmYWlsZWRfdG9fY3JlYXRlX2NoYXQ6ICdDaGF0IGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4nLFxuICAgICAgZmFpbGVkX3RvX2RlbGV0ZV9jaGF0OiAnQ2hhdCBrb25udGUgbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbicsXG4gICAgICBmYWlsZWRfdG9faW5pdGlhbGl6ZV9jaGF0OiAnQ2hhdCBrb25udGUgbmljaHQgaW5pdGlhbGlzaWVydCB3ZXJkZW4nLFxuICAgICAgZmFpbGVkX3RvX2xvYWRfYXNzaXN0YW50czogJ0Fzc2lzdGVudGVuIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgICAgZmFpbGVkX3RvX2xvYWRfY2hhdHM6ICdDaGF0LVZlcmxhdWYga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICAgIGZhaWxlZF90b19wcm9jZXNzX21lc3NhZ2U6XG4gICAgICAgICdEaWUgTmFjaHJpY2h0IGtvbm50ZSBuaWNodCB2ZXJhcmJlaXRldCB3ZXJkZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LicsXG4gICAgICBmYWlsZWRfdG9fc2VuZF9tZXNzYWdlOiAnTmFjaHJpY2h0IGtvbm50ZSBuaWNodCBnZXNlbmRldCB3ZXJkZW4nLFxuICAgICAgZmFpbGVkX3RvX3VwZGF0ZV9tb2RlbDogJ01vZGVsbCBrb25udGUgbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbicsXG4gICAgICBmaWxlX3R5cGU6IHtcbiAgICAgICAgYXJjaGl2ZTogJ0FyY2hpdicsXG4gICAgICAgIGF1ZGlvOiAnQXVkaW8nLFxuICAgICAgICBpbWFnZTogJ0JpbGQnLFxuICAgICAgICBwZGY6ICdQREYnLFxuICAgICAgICB0ZXh0OiAnVGV4dCcsXG4gICAgICAgIHVua25vd246ICdVbmJla2FubnQnLFxuICAgICAgICB2aWRlbzogJ1ZpZGVvJyxcbiAgICAgIH0sXG4gICAgICBmaW5pc2hfcmVhc29uOiB7XG4gICAgICAgICdjb250ZW50LWZpbHRlcic6XG4gICAgICAgICAgJ0locmUgQW5mcmFnZSB3dXJkZSBhdWZncnVuZCB2b24gSW5oYWx0c2ZpbHRlcm4gYmxvY2tpZXJ0LiBCaXR0ZSBmb3JtdWxpZXJlbiBTaWUgSWhyZSBGcmFnZSB1bSB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuJyxcbiAgICAgICAgZXJyb3I6XG4gICAgICAgICAgJ0VzIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgZXJuZXV0LicsXG4gICAgICAgIGxlbmd0aDpcbiAgICAgICAgICAnRGllIEFuZnJhZ2UgaXN0IHp1IGxhbmcsIHVtIHZlcmFyYmVpdGV0IHp1IHdlcmRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQgb2RlciBzdGFydGVuIFNpZSBlaW5lbiBuZXVlbiBDaGF0LicsXG4gICAgICAgIHVua25vd246XG4gICAgICAgICAgJ0VzIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgZXJuZXV0LicsXG4gICAgICB9LFxuICAgICAgJ2dwdC00byc6ICdHUFQtNG8nLFxuICAgICAgJ2dwdC00by0yMDI0LTA4LTA2JzogJ0dQVC00bycsXG4gICAgICAnZ3B0LTRvLTIwMjQtMTEtMjAnOiAnR1BULTRvJyxcbiAgICAgICdncHQtNG8tbWluaSc6ICdHUFQtNG8gTWluaScsXG4gICAgICAnZ3B0LTRvLW1pbmktMjAyNC0wNy0xOCc6ICdHUFQtNG8gTWluaScsXG4gICAgICBoZWxwX21lOiAnRnJhZyBBZGFtIEFJIHVtIEhpbGZlJyxcbiAgICAgIGxhc3RfbWVzc2FnZTogJ0xldHp0ZSBOYWNocmljaHQnLFxuICAgICAgbW9kZWw6ICdHUFQtTW9kZWxsJyxcbiAgICAgIG1vZGVsX3VwZGF0ZWQ6ICdNb2RlbGwgYWt0dWFsaXNpZXJ0JyxcbiAgICAgIG5vX2NoYXRzX2ZvdW5kOiAnS2VpbmUgQ2hhdHMgZ2VmdW5kZW4nLFxuICAgICAgbm9fbWVzc2FnZXM6ICdOb2NoIGtlaW5lIE5hY2hyaWNodGVuJyxcbiAgICAgIG5vbmVfb2ZfdGhvc2U6ICdLZWluZXMgZGF2b24nLFxuICAgICAgb2ZfZG9jdW1lbnQ6ICdkZXMgRG9rdW1lbnRzJyxcbiAgICAgIG9wZW5haV9kaXNjbGFpbWVyOlxuICAgICAgICAnSW4gZGVyIFZvcnNjaGF1dmVyc2lvbiBkZXMgQXNzZXQgV2ViIEFzc2lzdGVudGVuIHdlcmRlbiBJaHJlIERhdGVuIHZvbiBPcGVuQUkgYXXDn2VyaGFsYiBkZXIgRVUgdmVyYXJiZWl0ZXQuIFNpbmQgU2llIGRhbWl0IGVpbnZlcnN0YW5kZW4/JyxcbiAgICAgIHByZXZpb3VzX2NoYXRzOiAnVm9yaGVyaWdlIENoYXRzJyxcbiAgICAgIHByb21wdF9zdWdnZXN0aW9uczoge1xuICAgICAgICAnYXNzZXQtaW5mbyc6IHtcbiAgICAgICAgICBwcm9tcHQ6ICdFcnN0ZWxsZSBlaW5lbiBkZXRhaWxsaWVydGVuIFdhcnR1bmdzcGxhbiBmw7xyIG1laW4gQXNzZXQnLFxuICAgICAgICAgIHRpdGxlOiAnQXNzZXQtSW5mbycsXG4gICAgICAgIH0sXG4gICAgICAgIGludHJvOiB7XG4gICAgICAgICAgcHJvbXB0OlxuICAgICAgICAgICAgJ1dhcyBpc3QgQWRhbSBBSSB1bmQgd2llIGthbm4gZXMgbWlyIGJlaSBkZXIgQXNzZXQtVmVyd2FsdHVuZyBoZWxmZW4/JyxcbiAgICAgICAgICB0aXRsZTogJ0VpbmbDvGhydW5nJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwcm9tcHRzOiB7XG4gICAgICAgIGFzc2V0OiAnSWNoIGhhYmUgZWluZSBGcmFnZSB6dSBkZW0gQXNzZXQuJyxcbiAgICAgICAgaGVscDogJ0JpdHRlIGhpbGYgbWlyIGJlaSBkZXIgTMO2c3VuZyBkaWVzZXIgQXVmZ2FiZS4nLFxuICAgICAgICBpbmNpZGVudDogJ0JpdHRlIGVyc3RlbGxlIGVpbmUgbmV1ZSBNZWxkdW5nLicsXG4gICAgICAgIHJlcG9ydDpcbiAgICAgICAgICAnSWNoIGhhYmUgZGllIEF1ZmdhYmUgYWJnZXNjaGxvc3Nlbi4gQml0dGUgZXJzdGVsbGUgZWluZW4gQmVyaWNodCBkYXp1LicsXG4gICAgICB9LFxuICAgICAgcmVmZXJlbmNlX25vdF9mb3VuZDogJ1JlZmVyZW56IG5pY2h0IGdlZnVuZGVuJyxcbiAgICAgIHJldHJ5OiAnRXJuZXV0IHZlcnN1Y2hlbicsXG4gICAgICBzZWxlY3RfYXNzZXQ6ICdBc3NldCBhdXN3w6RobGVuJyxcbiAgICAgIHNlbmRfbWVzc2FnZTogJ05hY2hyaWNodCBzZW5kZW4nLFxuICAgICAgc291cmNlOiAnUXVlbGxlJyxcbiAgICAgIHN0b3BfcmVjb3JkaW5nOiAnQXVmbmFobWUgc3RvcHBlbicsXG4gICAgICBzdWdnZXN0ZWRfcHJvbXB0czogJ1Zvcmdlc2NobGFnZW5lIFByb21wdHMgZsO8ciBkZW4gRWluc3RpZWcgaW4gQURBTSBBSScsXG4gICAgICB0aHJlYWRzOiAnQ2hhdHMnLFxuICAgICAgdG9hc3RfZXJyb3JfZGVsZXRlX2VudHJ5OiAne3tlbnRyeX19IGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLicsXG4gICAgICB0b2FzdF9zdWNjZXNzX2RlbGV0ZV9lbnRyeTogJ3t7ZW50cnl9fSBnZWzDtnNjaHQuJyxcbiAgICAgIHRvb2xzOiB7XG4gICAgICAgIGNyZWF0ZUF4YWx0YUV2ZW50OiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnRXJlaWduaXMgd3VyZGUgZXJzdGVsbHQnLFxuICAgICAgICAgIGZhaWxlZDogJ0VyZWlnbmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdFcmVpZ25pcyB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnRXJlaWduaXMgd2lyZCBlcnN0ZWxsdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZUV2ZW50OiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnRXJlaWduaXMgd3VyZGUgZXJzdGVsbHQnLFxuICAgICAgICAgIGZhaWxlZDogJ0VyZWlnbmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdFcmVpZ25pcyB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnRXJlaWduaXMgd2lyZCBlcnN0ZWxsdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVJlcG9ydDoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0JlcmljaHQgd3VyZGUgZXJzdGVsbHQnLFxuICAgICAgICAgIGZhaWxlZDogJ0JlcmljaHQga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ0JlcmljaHQgd2lyZCBlcnN0ZWxsdCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0JlcmljaHQgd2lyZCBlcnN0ZWxsdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGdldEFkZGl0aW9uYWxEYXRhVGVtcGxhdGU6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdadXNhdHpkYXRlbiB3dXJkZW4gYWJnZXJ1ZmVuJyxcbiAgICAgICAgICBmYWlsZWQ6ICdadXNhdHpkYXRlbiBrb25udGVuIG5pY2h0IGFiZ2VydWZlbiB3ZXJkZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdadXNhdHpkYXRlbiB3ZXJkZW4gYWJnZXJ1ZmVuJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnWnVzYXR6ZGF0ZW4gd2VyZGVuIGFiZ2VydWZlbicsXG4gICAgICAgIH0sXG4gICAgICAgIGdldEFzc2V0RGF0YToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0Fzc2V0ZGF0ZW4gd3VyZGVuIGFiZ2VydWZlbicsXG4gICAgICAgICAgZmFpbGVkOiAnQXNzZXRkYXRlbiBrb25udGVuIG5pY2h0IGFiZ2VydWZlbiB3ZXJkZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdBc3NldGRhdGVuIHdlcmRlbiBhYmdlcnVmZW4nLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdBc3NldGRhdGVuIHdlcmRlbiBhYmdlcnVmZW4nLFxuICAgICAgICB9LFxuICAgICAgICBnZXRSZXBvcnRUZW1wbGF0ZToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0JlcmljaHRzdm9ybGFnZSB3dXJkZSBhYmdlcnVmZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ0JlcmljaHRzdm9ybGFnZSBrb25udGUgbmljaHQgYWJnZXJ1ZmVuIHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ0JlcmljaHRzdm9ybGFnZSB3aXJkIGFiZ2VydWZlbicsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0JlcmljaHRzdm9ybGFnZSB3aXJkIGFiZ2VydWZlbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckFzc2V0QXhhbHRhOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU3VjaGUgbmFjaCBBc3NldCBhYmdlc2NobG9zc2VuJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTdWNoZSBuYWNoIEFzc2V0IGZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU3VjaGUgbmFjaCBBc3NldCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1N1Y2hlIG5hY2ggQXNzZXQnLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hGb3JBc3NldFdpdGhJZDoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1N1Y2hlIG5hY2ggQXNzZXQgbWl0IElEIGFiZ2VzY2hsb3NzZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1N1Y2hlIG5hY2ggQXNzZXQgbWl0IElEIGZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU3VjaGUgbmFjaCBBc3NldCBtaXQgSUQnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTdWNoZSBuYWNoIEFzc2V0IG1pdCBJRCcsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckFzc2V0czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1N1Y2hlIG5hY2ggQXNzZXRzIGFiZ2VzY2hsb3NzZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1N1Y2hlIG5hY2ggQXNzZXRzIGZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU3VjaGUgbmFjaCBBc3NldHMnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTdWNoZSBuYWNoIEFzc2V0cycsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckRvY3VtZW50czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1N1Y2hlIG5hY2ggRG9rdW1lbnRlbiBhYmdlc2NobG9zc2VuJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTdWNoZSBuYWNoIERva3VtZW50ZW4gZmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdTdWNoZSBuYWNoIERva3VtZW50ZW4nLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTdWNoZSBuYWNoIERva3VtZW50ZW4nLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hGb3JFdmVudHM6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdTdWNoZSBuYWNoIEVyZWlnbmlzc2VuIGFiZ2VzY2hsb3NzZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1N1Y2hlIG5hY2ggRXJlaWduaXNzZW4gZmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdTdWNoZSBuYWNoIEVyZWlnbmlzc2VuJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnU3VjaGUgbmFjaCBFcmVpZ25pc3NlbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdXNlX21pY3JvcGhvbmU6ICdNaWtyb2ZvbiB2ZXJ3ZW5kZW4nLFxuICAgICAgdXNlX3dlYl9zZWFyY2g6ICdJbSBXZWIgc3VjaGVuJyxcbiAgICAgIHZpZXdfcHJldmlvdXNfY2hhdHM6ICdWb3JoZXJpZ2UgQ2hhdHMgYW56ZWlnZW4nLFxuICAgICAgd2ViX3NvdXJjZTogJ1dlYi1RdWVsbGUnLFxuICAgIH0sXG4gICAgYWxlcnQ6ICdBbGFybScsXG4gICAgYWxlcnRzOiAnQWxhcm1lJyxcbiAgICBhbGxvd2VkX3RvOiAnU2llIGTDvHJmZW4nLFxuICAgIGFuZDogJ3VuZCcsXG4gICAgYXBwbGljYXRpb25zOiAnQW53ZW5kdW5nZW4nLFxuICAgIGFwcHM6ICdBcHBsaWthdGlvbmVuJyxcbiAgICBhcHBzdG9yZTogJ0FwcCBTdG9yZScsXG4gICAgYXNjZW5kaW5nOiAnQXVmc3RlaWdlbmQnLFxuICAgIGFzc2V0OiAnQXNzZXQnLFxuICAgIGFzc2V0X2ludGVsbGlnZW5jZTogJ0Fzc2V0IEludGVsbGlnZW5jZScsXG4gICAgYXNzZXRfbWFuYWdlcjogJ0Fzc2V0IE1hbmFnZXInLFxuICAgIGFzc2V0X3R5cGU6ICdBc3NldCBUeXAnLFxuICAgIGFzc2V0czogJ0Fzc2V0cycsXG4gICAgYXNzZXR0eXBlOiAnQXNzZXQgVHlwJyxcbiAgICBhc3NldHR5cGVzOiAnQXNzZXQgVHlwZW4nLFxuICAgIGF0dGFjaG1lbnQ6ICdBbmhhbmcnLFxuICAgIGF0dGFjaG1lbnRzOiAnQW5ow6RuZ2UnLFxuICAgIGF1ZGl0X2xvZ3M6ICdBdWRpdCBMb2dzJyxcbiAgICBhdXRob3I6ICdBdXRvcicsXG4gICAgYXV0aG9yaXphdGlvbl90eXBlOiAnQXV0aG9yaXphdGlvbiBUeXBlJyxcbiAgICBhdmVyYWdlOiAnRHVyY2hzY2huaXR0JyxcbiAgICBiYWNrOiAnWnVyw7xjaycsXG4gICAgYmFja190b19vcmdhbml6YXRpb25zOiAnWnVyw7xjayB6dSBPcmdhbmlzYXRpb25lbicsXG4gICAgYnVja2V0X3RpbWVfcmFuZ2U6ICdCdWNrZXQgWmVpdHNwYW5uZSAoRGVmYXVsdCBpc3QgMjRoKScsXG4gICAgYnk6ICd2b24nLFxuICAgIGNhbGVuZGFyOiAnS2FsZW5kZXInLFxuICAgIGNhbmNlbDogJ0FiYnJlY2hlbicsXG4gICAgY2F0YWxvZzogJ0thdGFsb2cnLFxuICAgICdjYXRlZ29yeS5kZWxldGUnOiAnRGllbnN0bGVpc3R1bmdza2F0YWxvZyBlbnRmZXJuZW4gJyxcbiAgICAnY2VydC5hZGQubmV3JzogJ1plcnRpZmlrYXQgaGluenVmw7xnZW4nLFxuICAgICdjZXJ0LmRlbGV0ZSc6ICdaZXJ0aWZpa2F0IGVudGZlcm5lbicsXG4gICAgJ2NlcnQuZWRpdCc6ICdaZXJ0aWZpa2F0IGVkaXRpZXJlbicsXG4gICAgJ2NlcnQubmFtZSc6ICdaZXJ0aWZpa2F0c25hbWUnLFxuICAgIGNlcnRfYWRkX25ld19kZXNjcmlwdGlvbjogJ1ZlcndhbHR1bmcgT3JnYW5pc2F0aW9uc2Jlem9nZW5lciBaZXJ0aWZpa2F0ZScsXG4gICAgY2VydGlmaWNhdGU6ICdaZXJ0aWZpa2F0ZScsXG4gICAgJ2NlcnRpZmljYXRlLmFkZC5uZXcnOiAnWmVydGlmaWthdCBoaW56dWbDvGdlbicsXG4gICAgY2VydGlmaWNhdGlvbjoge1xuICAgICAgZGF0ZV9pc3N1ZTogJ0F1c3N0ZWxsZGF0dW0nLFxuICAgICAgZXhwaXJhdGlvbl9kYXRlOiAnQWJsYXVmc2RhdHVtJyxcbiAgICAgIGluc3RpdHV0aW9uOiAnWmVydGlmaXppZXJ1bmdzZWlucmljaHR1bmcnLFxuICAgICAgbnVtYmVyOiAnWmVydGlmaWthdHNudW1tZXInLFxuICAgIH0sXG4gICAgY2hpbGRyZW46ICdLaW5kZXInLFxuICAgIGNob29zZTogJ0F1c3fDpGhsZW4nLFxuICAgIGNob29zZV9maWxlOiAnRGF0ZWkgYXVzd8OkaGxlbicsXG4gICAgY2l0eTogJ1N0YWR0JyxcbiAgICBjb2xvcjogJ0ZhcmJlJyxcbiAgICBjb2x1bW5fc2V0dGluZ3M6ICdTcGFsdGVuLUVpbnN0ZWxsdW5nZW4nLFxuICAgIGNvbW1lbnQ6ICdLb21tZW50YXInLFxuICAgIGNvbXBhbnlfbWFuYWdlcjogJ1VudGVybmVobWVuIE1hbmFnZXInLFxuICAgIGNvbXBhbnlfbWF0Y2hpbmc6ICdDb21wYW55LU1hdGNoaW5nJyxcbiAgICBjb21wbGV0ZV9zdWJzY3JpcHRpb246ICdBYm9ubmVtZW50IGFic2NobGllw59lbicsXG4gICAgY29uZmlybTogJ0Jlc3TDpHRpZ2VuJyxcbiAgICBjb25zZW50X21hbmFnZW1lbnQ6IHtcbiAgICAgIGFjY2VwdF9hbGw6ICdBbGxlIGFremVwdGllcmVuJyxcbiAgICAgIGFjY2VwdF9hbGxfbm90ZTpcbiAgICAgICAgJ0R1cmNoIEtsaWNrZW4gYXVmIFwiQWxsZSBha3plcHRpZXJlblwiIHN0aW1tZW4gU2llIGRlciBWZXJ3ZW5kdW5nIHZvbiBlc3NlbnRpZWxsZW4gdW5kIGFuYWx5dGlzY2hlbiBDb29raWVzIHp1LicsXG4gICAgICBhbHdheXNfZW5hYmxlZDogJ0ltbWVyIGFrdGl2JyxcbiAgICAgIGNvb2tpZV9ncm91cHM6IHtcbiAgICAgICAgYW5hbHl0aWNzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnRGllc2UgQ29va2llcyBzYW1tZWxuIERhdGVuIMO8YmVyIGRpZSBOdXR6dW5nIGRlciBXZWJzaXRlLCB6LkIuIHdlbGNoZSBTZWl0ZW4gYmVzdWNodCB3ZXJkZW4sIHVtIHVucyB6dSBoZWxmZW4sIGRpZSBiZWxpZWJ0ZXN0ZW4gU2VpdGVuIHp1IGlkZW50aWZpemllcmVuIHVuZCB6dSB2ZXJzdGVoZW4sIHdpZSBCZXN1Y2hlciBhdWYgZGVyIFdlYnNpdGUgbmF2aWdpZXJlbi48YnIgLz5EYXRlbiB6dXIgTnV0enVuZyBkZXIgV2Vic2l0ZSB3ZXJkZW4gbWl0aGlsZmUgdm9uIGRhdWVyaGFmdGVuIENvb2tpZXMgdm9uIEVyc3QtIHVuZCBEcml0dGFuYmlldGVybiB1bmQgYW5kZXJlbiBUcmFja2luZy1UZWNobm9sb2dpZW4gZXJmYXNzdCwgdW0gZGllIEJlbGllYnRoZWl0IHZvbiBQcm9kdWt0ZW4gdW5kIE9ubGluZS1Ba3Rpdml0w6R0ZW4genUgZXJtaXR0ZWxuLicsXG4gICAgICAgICAgdGl0bGU6ICdBbmFseXRpc2NoZSBDb29raWVzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXNzZW50aWFsOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnRGllc2UgQ29va2llcyBzaW5kIGbDvHIgZGVuIEJldHJpZWIgZGVyIFdlYnNlaXRlIHVuYmVkaW5ndCBlcmZvcmRlcmxpY2guIFNpZSB3ZXJkZW4gaW4gZGVyIFJlZ2VsIG51ciBhbHMgUmVha3Rpb24gYXVmIElocmUgSGFuZGx1bmdlbiBnZXNldHp0LCB3aWUgei4gQi4gZGllIEVpbnN0ZWxsdW5nIElocmVyIERhdGVuc2NodXR6ZWluc3RlbGx1bmdlbi4gRGllc2UgQ29va2llcyBzcGVpY2hlcm4ga2VpbmUgcGVyc8O2bmxpY2ggaWRlbnRpZml6aWVyYmFyZW4gSW5mb3JtYXRpb25lbi4nLFxuICAgICAgICAgIHRpdGxlOiAnRXJmb3JkZXJsaWNoZSBDb29raWVzJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb29raWVfaW50cm86XG4gICAgICAgICdEaWVzZSBXZWJzaXRlIHZlcndlbmRldCBDb29raWVzIHVuZCBhbmRlcmUgVHJhY2tpbmctVGVjaG5vbG9naWVuLCB1bSB3ZXNlbnRsaWNoZSBGdW5rdGlvbmVuIGRlciBXZWJzaXRlIHp1IGVybcO2Z2xpY2hlbiwgZGllIEJlbnV0emVyZnJldW5kbGljaGtlaXQgenUgdmVyYmVzc2VybiBzb3dpZSB6dSBBbmFseXNlLSB1bmQgUGVyc29uYWxpc2llcnVuZ3N6d2Vja2VuLicsXG4gICAgICBjb29raWVfaW50cm9fZXh0ZW5kZWQ6XG4gICAgICAgICdEaWVzZSBXZWJzaXRlIHZlcndlbmRldCBDb29raWVzIHVuZCBhbmRlcmUgVHJhY2tpbmctVGVjaG5vbG9naWVuLCB1bSB3ZXNlbnRsaWNoZSBGdW5rdGlvbmVuIGRlciBXZWJzaXRlIHp1IGVybcO2Z2xpY2hlbiwgZGllIEJlbnV0emVyZnJldW5kbGljaGtlaXQgenUgdmVyYmVzc2VybiBzb3dpZSB6dSBBbmFseXNlLSB1bmQgUGVyc29uYWxpc2llcnVuZ3N6d2Vja2VuLjxiciAvPldpciB2ZXJ3ZW5kZW4gTWljcm9zb2Z0IENsYXJpdHksIHVtIHp1IGFuYWx5c2llcmVuLCB3aWUgdW5zZXJlIFdlYnNpdGUgZ2VudXR6dCB3aXJkLCB1bmQgdW0gdW5zZXJlIFByb2R1a3RlIHp1IHZlcmJlc3Nlcm4uIER1cmNoIGRpZSBOdXR6dW5nIHVuc2VyZXIgV2Vic2l0ZSBlcmtsw6RyZW4gU2llIHNpY2ggZGFtaXQgZWludmVyc3RhbmRlbiwgZGFzcyB3aXIgdW5kIE1pY3Jvc29mdCBkaWVzZSBEYXRlbiBzYW1tZWxuIHVuZCBudXR6ZW4uJyxcbiAgICAgIGNvb2tpZV9sZWFybl9tb3JlOiAnVW0gbWVociB6dSBlcmZhaHJlbiwgbGVzZW4gU2llIGJpdHRlIHVuc2VyZScsXG4gICAgICBjb29raWVfcHJlZmVyZW5jZXNfY2VudGVyOiAnQ29va2llIEVpbnN0ZWxsdW5nZW4nLFxuICAgICAgY29va2llX3NldHRpbmdzOiAnQ29va2llIEVpbnN0ZWxsdW5nZW4nLFxuICAgICAgY29va2llX3VzYWdlOiAnTnV0enVuZyB2b24gQ29va2llcycsXG4gICAgICBtYW5hZ2VfcHJlZmVyZW5jZXM6ICdFaW5zdGVsbHVuZ2VuIHZlcndhbHRlbicsXG4gICAgICByZWplY3RfYWxsOiAnQWxsZSBhYmxlaG5lbicsXG4gICAgICBzYXZlX3ByZWZlcmVuY2VzOiAnRWluc3RlbGx1bmdlbiBzcGVpY2hlcm4nLFxuICAgIH0sXG4gICAgY29udGVudDogJ0luaGFsdCcsXG4gICAgJ2NvbnRlbnQuZmlsZV90eXBlJzoge1xuICAgICAgYXJjaGl2ZTogJ0FyY2hpdicsXG4gICAgICBhdWRpbzogJ0F1ZGlvJyxcbiAgICAgIGltYWdlOiAnQmlsZCcsXG4gICAgICBwZGY6ICdQREYnLFxuICAgICAgdGV4dDogJ1RleHQnLFxuICAgICAgdW5rbm93bjogJ1VuYmVrYW5udCcsXG4gICAgICB2aWRlbzogJ1ZpZGVvJyxcbiAgICB9LFxuICAgICdjb250ZW50LnNob3dfcHJldmlldyc6ICdWb3JzY2hhdSBhbnplaWdlbicsXG4gICAgJ2NvbnRlbnQuc2l6ZSc6ICdHcsO2w59lJyxcbiAgICAnY29udGVudC50b2FzdF9kb3dubG9hZGluZ19jb250ZW50JzogJ0RhdGVpIHdpcmQgaGVydW50ZXJnZWxhZGVuLi4uJyxcbiAgICAnY29udGVudC50b2FzdF9lcnJvcl9kb3dubG9hZF9jb250ZW50JzpcbiAgICAgICdEYXRlaSBrb25udGUgbmljaHQgaGVydW50ZXJnZWxhZGVuIHdlcmRlbi4nLFxuICAgICdjb250ZW50LnRvYXN0X3N1Y2Nlc3NfZG93bmxvYWRfY29udGVudCc6XG4gICAgICAnRGF0ZWkgZXJmb2xncmVpY2ggaGVydW50ZXJnZWxhZGVuLicsXG4gICAgY29udGVudF9kcm9wX3pvbmVfdGV4dDogJ0RyYWcgJiBEcm9wIERhdGVpJyxcbiAgICBjb250ZW50X21hbmFnZXI6ICdDb250ZW50IE1hbmFnZXInLFxuICAgIGNvbnRlbnRzOiAnQ29udGVudHMnLFxuICAgIGNvcHlfaWQ6ICdJRCBrb3BpZXJlbicsXG4gICAgY291bnQ6ICdBbnphaGwnLFxuICAgIGNyZWF0ZWQ6ICdFcnN0ZWxsdCcsXG4gICAgY3JpdGljYWw6ICdLcml0aXNjaCcsXG4gICAgY3VycmVudF9vcmdhbml6YXRpb246ICdBa3R1ZWxsZXMgT3JnYW5pc2F0aW9uJyxcbiAgICBkYW5nZXJfem9uZTogJ0dlZmFocmVuem9uZScsXG4gICAgZGFzaGJvYXJkczogJ0Rhc2hib2FyZHMnLFxuICAgIGRhdGE6ICdEYXRlbicsXG4gICAgZGF0ZTogJ0RhdHVtJyxcbiAgICBkYXk6ICdUYWcnLFxuICAgIGRheXM6ICdUYWdlJyxcbiAgICBkZTogJ0RldXRzY2gnLFxuICAgIGRlZmF1bHQ6ICdTdGFuZGFyZCcsXG4gICAgZGVsZXRlOiAnTMO2c2NoZW4nLFxuICAgIGRlbGV0ZV9hdHRhY2htZW50OiAnQW5oYW5nIEzDtnNjaGVuJyxcbiAgICBkZWxldGVfbWVtYmVyOiAnTWl0Z2xpZWQgRW50ZmVybmVuJyxcbiAgICBkZWxldGVfcmV2aXNpb246ICdWZXJzaW9uIGzDtnNjaGVuJyxcbiAgICBkZWxldGVfdGl0bGU6ICdUaXRlbCBsw7ZzY2hlbicsXG4gICAgZGVsZXRlZDogJ0dlbMO2c2NodCcsXG4gICAgZGVsaW1pdGVyOiAnVHJlbm56ZWljaGVuLCB3aWUgOyBvZGVyIDonLFxuICAgIGRlc2NlbmRpbmc6ICdBYnN0ZWlnZW5kJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jlc2NocmVpYnVuZycsXG4gICAgZGV0YWlsczogJ0RldGFpbHMnLFxuICAgIGRvbWFpbjogJ0RvbcOkbmUnLFxuICAgICdkb21haW4uZGVsZXRlJzogJ0RvbcOkbmVubmFtZSBsw7ZzY2hlbicsXG4gICAgZG9tYWluX25hbWU6ICdEb23DpG5lbm5hbWUnLFxuICAgIGRvbWFpbl9uYW1lX3BsYWNlaG9sZGVyOiAnd3d3LmRvbWFpbi5jb20nLFxuICAgIGRvbWFpbl9uZXc6ICduZXVlIERvbcOkbmUgaGluenVmw7xnZW4nLFxuICAgIGRvbWFpbnM6ICdEb23DpG5lbicsXG4gICAgZG93bmxvYWQ6ICdIZXJ1bnRlcmxhZGVuJyxcbiAgICBkb3dubG9hZF9hdHRhY2htZW50OiAnQW5oYW5nIEhlcnVudGVybGFkZW4nLFxuICAgIGRyYWdfZHJvcF9maWxlOiB7XG4gICAgICBlcnJvcjoge1xuICAgICAgICBmaWxlX3Rvb19sYXJnZTpcbiAgICAgICAgICBcIkRpZSBEYXRlaSAne3tmaWxlTmFtZX19JyDDvGJlcnNjaHJlaXRldCBkaWUgbWF4aW1hbCB6dWzDpHNzaWdlIEdyw7bDn2Ugdm9uIHt7bWF4RmlsZVNpemV9fSB1bmQgd3VyZGUgaWdub3JpZXJ0LlwiLFxuICAgICAgICBmaWxlX3R5cGVfbm90X2FsbG93ZWQ6XG4gICAgICAgICAgXCJEZXIgRGF0ZWl0eXAgdm9uICd7e2ZpbGVOYW1lfX0nIGlzdCBuaWNodCBlcmxhdWJ0IHVuZCB3dXJkZSBhYmdlbGVobnQuXCIsXG4gICAgICB9LFxuICAgICAgbWF4X2ZpbGVfc2l6ZTogJ01heGltYWxlIERhdGVpZ3LDtsOfZScsXG4gICAgICBwcm9tcHRfMTpcbiAgICAgICAgJ0RyYWcgJiBEcm9wIHtsaW1pdCwgcGx1cmFsLCBvbmUge0RhdGVpfSBvdGhlciB7RGF0ZWllbn19IGhpZXIgb2RlciAnLFxuICAgICAgcHJvbXB0XzI6ICdoaWVyIGtsaWNrZW4sIHVtIERhdGVpZW4genUgZHVyY2hzdWNoZW4nLFxuICAgICAgd2FybmluZzoge1xuICAgICAgICBtYXhfZmlsZV9jb3VudDpcbiAgICAgICAgICAnU2llIGhhYmVuIHt7ZmlsZUNvdW50fX0gRGF0ZWllbiBhdXNnZXfDpGhsdCwgYWJlciBtYXhpbWFsIHNpbmQge3ttYXhGaWxlQ291bnR9fSBlcmxhdWJ0LiBOdXIgZGllIGVyc3RlbiB7e21heEZpbGVDb3VudH19IERhdGVpZW4gd3VyZGVuIGFremVwdGllcnQuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkdXJhdGlvbjogJ0xhdWZ6ZWl0JyxcbiAgICBlZGl0OiAnRWRpdGllcmVuJyxcbiAgICBlZGl0X2F0dGFjaG1lbnQ6ICdBbmhhbmcgRWRpdGllcmVuJyxcbiAgICBlZGl0X2V2ZW50X2xldmVsOiAnRXJlaWduaXMtTGV2ZWwgZWRpdGllcmVuJyxcbiAgICBlZGl0X3RpdGxlOiAnVGl0ZWwgYW5wYXNzZW4nLFxuICAgIGVkaXRvcjogJ0VkaXRvcicsXG4gICAgZW1haWw6ICdFbWFpbCcsXG4gICAgZW1wbG95ZWVzOiAnTWl0YXJiZWl0ZXInLFxuICAgIGVuOiAnRW5nbGlzaCcsXG4gICAgZW5jb2Rpbmc6ICdWZXJzY2hsw7xzc2VsdW5nJyxcbiAgICBlbmRwb2ludHM6ICdCZW5hY2hyaWNodGlndW5nc2VuZHB1bmt0ZScsXG4gICAgZW5nbGlzaDogJ0VuZ2xpc2NoJyxcbiAgICBlbnRyaWVzOiAnRWludHLDpGdlJyxcbiAgICBlcnJvcjogJ0ZlaGxlcicsXG4gICAgZXJyb3JfbG9hZGluZzogJ3tpdGVtfSBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIGVycm9yX21lc3NhZ2VfdXBkYXRlOlxuICAgICAgJ0JlbnV0emVyIEVpbnN0ZWxsdW5nZW4ga29ubnRlbiBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuJyxcbiAgICBlcnJvcnM6ICdGZWhsZXInLFxuICAgIGV2ZW50OiAnRXJlaWduaXMnLFxuICAgIGV2ZW50X2xldmVsOiAnRXJlaWduaXMtTGV2ZWwnLFxuICAgIGV2ZW50czogJ0VyZWlnbmlzc2UnLFxuICAgIGZpbGVuYW1lOiAnRGF0ZWluYW1lJyxcbiAgICBmbG93OiAnRmxvdycsXG4gICAgZmxvd19zdHVkaW86ICdGbG93IFN0dWRpbycsXG4gICAgZmxvd2RlcGxveW1lbnQ6ICdGbG93IERlcGxveW1lbnQnLFxuICAgIGZsb3dkZXBsb3ltZW50czogJ0Zsb3cgRGVwbG95bWVudHMnLFxuICAgIGZsb3dmdW5jdGlvbjogJ0Zsb3cgRnVua3Rpb24nLFxuICAgIGZsb3dmdW5jdGlvbnM6ICdGbG93IEZ1bmt0aW9uZW4nLFxuICAgIGZsb3dtb2RlbDogJ0Zsb3cgTW9kZWxsJyxcbiAgICBmbG93bW9kdWxlOiAnRmxvdyBNb2R1bCcsXG4gICAgZmxvd21vZHVsZXM6ICdGbG93IE1vZHVsZScsXG4gICAgZmxvd3M6ICdGbG93cycsXG4gICAgZm9ybV9lcnJvcl9kZWxpbWl0ZXI6ICdUcmVubnplaWNoZW4gd2lyZCBiZW7DtnRpZ3QuJyxcbiAgICBmb3JtX2Vycm9yX2RldGFpbHM6ICdBdWYgZGVyIERldGFpbHMgU2VpdGUgc2luZCBmZWhsZXJoYWZ0ZSBFaW50csOkZ2UuJyxcbiAgICBmb3JtX2Vycm9yX2VtYWlsOiAnRW1haWwgd2lyZCBiZW7DtnRpZ3QuJyxcbiAgICBmb3JtX2Vycm9yX2VtcHR5X21ldGhvZDogJ0VpbmUgTWV0aG9kZSBtdXNzIGF1c2dld8OkaGx0IHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfZW1wdHlfdXJsOiAnRGFzIFVSTCBGZWxkIG11c3MgYXVzZ2Vmw7xsbHQgd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9lbmNvZGluZzogJ0VpbmUgVmVyc2NobMO8c3NlbHVuZyBtdXNzIGFuZ2VnZWJlbiB3ZXJkZW4uJyxcbiAgICBmb3JtX2Vycm9yX2V4cGlyeV9kYXRlOiAnRWluIEFibGF1ZmRhdHVtIG11c3MgYW5nZWdlYmVuIHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfZ3JvdXA6ICdadW1pbmRlc3QgZWluZSBHcnVwcGUgbXVzcyBhdXNnZXfDpGhsdCB3ZXJkZW4uJyxcbiAgICBmb3JtX2Vycm9yX2xlbmd0aDpcbiAgICAgICdEZXIgTmFtZSBtdXNzIGF1cyBtaW5kZXN0ZW5zIHt7bGVuZ3RofX0gWmVpY2hlbiBiZXN0ZWhlbi4nLFxuICAgIGZvcm1fZXJyb3JfbWF4X2xlbmd0aDogJ0RhcmYgbWF4aW1hbCB7e2xlbmd0aH19IFplaWNoZW4gbGFuZyBzZWluJyxcbiAgICBmb3JtX2Vycm9yX21pbl9sZW5ndGg6ICdNdXNzIG1pbmRlc3RlbnMge3tsZW5ndGh9fSBaZWljaGVuIGxhbmcgc2VpbicsXG4gICAgZm9ybV9lcnJvcl9uYW1lOiAnTmFtZW5zLUZlbGQgd2lyZCBiZW7DtnRpZ3QuJyxcbiAgICBmb3JtX2Vycm9yX25hbWVfcGF0dGVybjpcbiAgICAgICdOdXIgQnVjaHN0YWJlbiwgWmFobGVuLCBMZWVyemVpY2hlbiwgQmluZGVzdHJpY2hlICgtKSB1bmQgVW50ZXJzdHJpY2hlIChfKSBzaW5kIGVybGF1YnQnLFxuICAgIGZvcm1fZXJyb3JfcmVhZDogJ01pbmRlc3RlbnMgZWluIExlc2UtUmVjaHQgbXVzcyBhdXNnZXfDpGhsdCB3ZXJkZW4uJyxcbiAgICBmb3JtX2Vycm9yX3JlYWRfd3JpdGU6XG4gICAgICAnTWluZGVzdGVucyBlaW4gTGVzZS9TY2hyZWliZS1SZWNodCBtdXNzIGF1c2dld8OkaGx0IHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfcmVxdWlyZWQ6ICdQZmxpY2h0ZmVsZCcsXG4gICAgZm9ybV9lcnJvcl9yb2xlX3BhdHRlcm46XG4gICAgICAnTnVyIEtsZWluYnVjaHN0YWJlbiwgQmluZGVzdHJpY2hlICgtKSB1bmQgVW50ZXJzdHJpY2hlIChfKSBzaW5kIGVybGF1YnQnLFxuICAgIGZvcm1fZXJyb3Jfc2NoZW1hX3JlcTogJ0VpbiBTY2hlbWEgd2lyZCBiZW7DtnRpZ3QuJyxcbiAgICBmb3JtX2Vycm9yX3NlbGVjdF9maWxlOiAnRWluZSBEYXRlaSBtdXNzIGF1c2dld8OkaGx0IHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3Jfc2VsZWN0X3R5cGU6ICdFaW4gQXNzZXQgVHlwIG11c3MgYXVzZ2V3w6RobHQgd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9zb3VyY2U6ICdTb3VyY2UgaXMgbmVlZGVkLicsXG4gICAgZm9ybV9lcnJvcl91bmlxdWU6ICdEZXIgV2VydCBtdXNzIGVpbmRldXRpZyBzZWluOiAnLFxuICAgIGZvcm1fZXJyb3JfdmlldzogJ1ZpZXcgaXMgbmVlZGVkLicsXG4gICAgZ2VuZXJhbDogJ0FsbGdlbWVpbicsXG4gICAgZ2VybWFuOiAnRGV1dHNjaCcsXG4gICAgZ2xvYmFsOiAnR2xvYmFsJyxcbiAgICBncm91cDogJ0dydXBwZScsXG4gICAgZ3JvdXBfYnk6ICdHcnVwcGllcmVuIG5hY2gnLFxuICAgIGhpc3Rvcnk6ICdWZXJsYXVmJyxcbiAgICBob3VyX2Zvcm1hdDogJ3t7dGltZX19LVN0dW5kZW4tWmVpdGZvcm1hdCcsXG4gICAgaWQ6ICdJRCcsXG4gICAgaW5hY3RpdmU6ICdJbmFrdGl2JyxcbiAgICBpbmZvOiAnSW5mbycsXG4gICAgaW52aXRlX25ld19lbXBsb3llZTogJ05ldWVuIE1pdGFyYmVpdGVyIGVpbmxhZGVuJyxcbiAgICBpbnZpdGVfbmV3X2VtcGxveWVlX2Rlc2NyaXB0aW9uOlxuICAgICAgJ0VpbmxhZHVuZyBuZXVlciBNaXRhcmJlaXRlciB1bmQgZGVyZW4gWnV3ZWlzdW5nIHp1IGJlc3RpbW10ZW4gUm9sbGVuJyxcbiAgICBpbnZpdGVfbmV3X21lbWJlcjogJ05ldWVzIE1pdGdsaWVkIGVpbmxhZGVuJyxcbiAgICBpbnZpdGVfbmV3X21lbWJlcl9kZXNjcmlwdGlvbjpcbiAgICAgICdFaW5sYWR1bmcgbmV1ZXIgTWl0Z2xpZWQgdW5kIGRlcmVuIFp1d2Vpc3VuZyB6dSBiZXN0aW1tdGVuIFJvbGxlbicsXG4gICAgJ2pzZl93aWRnZXRzLmNvbnRlbnQuZXJyb3IucmVzb2x2aW5nX2NvbnRlbnRfZmFpbGVkJzpcbiAgICAgICdJbmhhbHQga29ubnRlIG5pY2h0IGF1ZmdlbMO2c3Qgd2VyZGVuJyxcbiAgICAnanNmX3dpZGdldHMuY29udGVudF9yZWZlcmVuY2UuZXJyb3IuYXNzZXRfaWRfbWlzc2luZyc6XG4gICAgICAnQXNzZXQgSUQgaXN0IG5pY2h0IGdlc2V0enQnLFxuICAgICdqc2Zfd2lkZ2V0cy5jb250ZW50X3JlZmVyZW5jZS5lcnJvci5sb2FkaW5nX2F0dGFjaG1lbnRzX2ZhaWxlZCc6XG4gICAgICAnQXNzZXQgQW5ow6RuZ2Uga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgJ2pzZl93aWRnZXRzLmNyb24uZXJyb3IuaW52YWxpZF9leHByZXNzaW9uJzogJ0tlaW4gZ8O8bHRpZ2VyIGNyb24gQXVzZHJ1Y2snLFxuICAgICdqc2Zfd2lkZ2V0cy5kdXJhdGlvbi5lcnJvci5pbnZhbGlkX2R1cmF0aW9uJzogJ0tlaW5lIGfDvGx0aWdlIERhdWVyJyxcbiAgICAnanNmX3dpZGdldHMucGVybWlzc2lvbi5lcnJvci5sb2FkX3Blcm1pc3Npb25zX2FsbF91c2Vyc19mYWlsZWQnOlxuICAgICAgJ1JlY2h0ZSBhbGxlciBCZW51dHplciBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICAnanNmX3dpZGdldHMucGVybWlzc2lvbi5lcnJvci5sb2FkX3Blcm1pc3Npb25zX2ZhaWxlZCc6XG4gICAgICAnUmVjaHRlIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgICdqc2Zfd2lkZ2V0cy5yZXNvdXJjZV9yZWZlcmVuY2UuZXJyb3Iuc2VhcmNoaW5nX2ZhaWxlZCc6XG4gICAgICAnU3VjaGUga29ubnRlIG5pY2h0IGFiZ2VzY2hsb3NzZW4gd2VyZGVuJyxcbiAgICBrZXlzOiAnU2NobMO8c3NlbCcsXG4gICAgbGFiZWw6ICdMYWJlbCcsXG4gICAgbGFiZWxzOiAnTGFiZWxzJyxcbiAgICBsYWJlbHNfZWRpdDogJ0xhYmVscyBiZWFyYmVpdGVuJyxcbiAgICBsYWJlbHNfZWRpdF9kZWZhdWx0OiAnR2xvYmFsZSBTdGFuZGFyZC1MYWJlbHMgYmVhcmJlaXRlbicsXG4gICAgbGFuZ3VhZ2U6ICdTcHJhY2hlJyxcbiAgICBsYXN0X3VwZGF0ZWQ6ICdadWxldHp0IGFrdHVhbGlzaWVydCcsXG4gICAgbGVhdmU6ICdWZXJsYXNzZW4nLFxuICAgIGxlZ2FsX25vdGljZTogJ0ltcHJlc3N1bScsXG4gICAgbGlzdDogJ0xpc3RlJyxcbiAgICBsb2FkaW5nOiAnbGFkZS4uLicsXG4gICAgbG9nbzogJ0xvZ28nLFxuICAgIG1hbmFnZV9ncm91cHM6ICdHcnVwcGVuIHZlcndhbHRlbicsXG4gICAgbWFuYWdlX2lkZW50aXR5X3Byb3ZpZGVyczpcbiAgICAgICdSb2xsZSwgZGllIHp1ciBWZXJ3YWx0dW5nIGRlciBrb25maWd1cmllcnRlbiBJZGVudGl0w6R0c2FuYmlldGVyIGVybcOkY2h0aWd0JyxcbiAgICBtYW5hZ2VfaW52aXRhdGlvbnM6XG4gICAgICAnUm9sbGUsIGRpZSB6dXIgVmVyd2FsdHVuZyBkZXIgb2ZmZW5lbiBNaXRhcmJlaXRlcmVpbmxhZHVuZ2VuIGVybcOkY2h0aWd0JyxcbiAgICBtYW5hZ2VfbWVtYmVyczogJ1JvbGxlLCBkaWUgenVyIFZlcndhbHR1bmcgZGVyIE1pdGdsaWVkZXJuIGVybcOkY2h0aWd0JyxcbiAgICBtYW5hZ2Vfb3JnYW5pemF0aW9uOlxuICAgICAgJ1JvbGxlLCBkaWUgenVyIFZlcndhbHR1bmcgZGVzIFVudGVybmVobWVucyB1bmQgZGVzc2VuIEVpZ2Vuc2NoYWZ0ZW4gZXJtw6RjaHRpZ3QnLFxuICAgIG1hbmFnZV9yb2xlczogJ1JvbGxlLCBkaWUgenVyIFZlcndhbHR1bmcgZGVyIFVudGVybmVobWVuc3JvbGxlbiBlcm3DpGNodGlndCcsXG4gICAgbWFuYWdlcjogJ0FwcCBNYW5hZ2VyJyxcbiAgICBtYXhpbXVtOiAnTWF4aW11bScsXG4gICAgbWVtYmVyOiAnTWl0Z2xpZWQnLFxuICAgIG1lc3NhZ2U6ICdOYWNocmljaHQnLFxuICAgIG1ldGhvZDogJ0Z1bmt0aW9uJyxcbiAgICBtb2R1bGVzOiAnTW9kdWxlJyxcbiAgICBtb250aDogJ01vbmF0JyxcbiAgICBtb250aHM6ICdNb25hdGUnLFxuICAgIG15X3Rhc2tzOiAnTWVpbmUgQXVmZ2FiZW4nLFxuICAgIG5hbWU6ICdOYW1lJyxcbiAgICBuZXdfZmVtaW5pbmU6ICdOZXVlJyxcbiAgICBuZXdfbWFzY3VsaW5lOiAnTmV1ZXInLFxuICAgIG5ld19uZXV0cmFsOiAnTmV1ZXMnLFxuICAgIG5ld190YWc6ICdOZXVlcyBMYWJlbCcsXG4gICAgbmV4dDogJ07DpGNoc3RlJyxcbiAgICBuZXh0X3N0ZXA6ICdXZWl0ZXInLFxuICAgIG5vX2Rlc2NyaXB0aW9uOiAnS2VpbmUgQmVzY2hyZWlidW5nJyxcbiAgICBub19sYWJlbHM6ICdLZWluZSBMYWJlbHMnLFxuICAgIG5vX3ByZXZpZXc6ICdLZWluZSBWb3JzY2hhdSB2ZXJmw7xnYmFyJyxcbiAgICBub19yZXN1bHQ6ICdLZWluZSBFcmdlYm5pc3NlIScsXG4gICAgbm90X2Fzc2lnbmVkOiAnTmljaHQgenVnZXdpZXNlbicsXG4gICAgbm90aWZpY2F0aW9uX2Nsb3NlX3Rvb2x0aXA6ICdTY2hsaWXDn2VuJyxcbiAgICBub3RpZmljYXRpb25faW5mb19lbXB0eV9saXN0OiAnS2VpbmUgQmVuYWNocmljaHRpZ3VuZ2VuIHZvcmhhbmRlbicsXG4gICAgbm90aWZpY2F0aW9uX29wZW5fbWFuYWdlcl90b29sdGlwOiAnTm90aWZpY2F0aW9uIE1hbmFnZXIgw7ZmZm5lbicsXG4gICAgbm90aWZpY2F0aW9uX29wZW5fdG9vbHRpcDogJ8OWZmZuZW4nLFxuICAgIG5vdGlmaWNhdGlvbl9yZWFkX2FsbF90b29sdGlwOiAnQWxsZXMgYWxzIGdlbGVzZW4gbWFya2llcmVuJyxcbiAgICBub3RpZmljYXRpb25fcmVhZF90b29sdGlwOiAnQWxzIGdlbGVzZW4gbWFya2llcmVuJyxcbiAgICBub3RpZmljYXRpb25fcnVsZXM6ICdCZW5hY2hyaWNodGlndW5nc3JlZ2VsJyxcbiAgICBub3RpZmljYXRpb25fdG9hc3RfaW5mbzogJ05ldWUgQmVuYWNocmljaHRpZ3VuZyBlcmhhbHRlbiEnLFxuICAgIG5vdGlmaWNhdGlvbl91bnJlYWRfdG9vbHRpcDogJ0FscyB1bmdlbGVzZW4gbWFya2llcmVuJyxcbiAgICBub3RpZmljYXRpb25lbmRwb2ludDogJ0JlbmFjaHJpY2h0aWd1bmdzZW5kcHVua3QnLFxuICAgIG5vdGlmaWNhdGlvbmVuZHBvaW50czogJ0JlbmFjaHJpY2h0aWd1bmdzZW5kcHVua3RlJyxcbiAgICBub3RpZmljYXRpb25ydWxlOiAnQmVuYWNocmljaHRpZ3VuZ3NyZWdlbCcsXG4gICAgbm90aWZpY2F0aW9ucnVsZXM6ICdCZW5hY2hyaWNodGlndW5nc3JlZ2VsbicsXG4gICAgbm90aWZpY2F0aW9uczogJ0JlbmFjaHJpY2h0aWd1bmdlbicsXG4gICAgb2ZmZXJfcmVxdWVzdHM6ICdBbmZyYWdlbicsXG4gICAgb2ZmZXJzOiAnQW5nZWJvdGUnLFxuICAgIG9rOiAnT0snLFxuICAgIG9wZW46ICfDlmZmbmVuJyxcbiAgICBvcGVuZWQ6ICdHZcO2ZmZuZXQnLFxuICAgIG9yZ2FuaXphdGlvbjogJ09yZ2FuaXNhdGlvbicsXG4gICAgJ29yZ2FuaXphdGlvbi5kZWxldGUnOiAnT3JnYW5pc2F0aW9uIGzDtnNjaGVuJyxcbiAgICAnb3JnYW5pemF0aW9uLmRlbGV0ZV9hc19zdXBlcnVzZXInOiAnT3JnYW5pc2F0aW9uIGzDtnNjaGVuIGFscyBTdXBlcnVzZXInLFxuICAgICdvcmdhbml6YXRpb24ucmVxdWVzdF9kZWxldGUnOiAnTMO2c2NoZW4gZGVyIE9yZ2FuaXNhdGlvbiBiZWFudHJhZ2VuJyxcbiAgICBvcmdhbml6YXRpb25fZGVsZXRlX21lc3NhZ2U6XG4gICAgICAnU29sbCBkaWUgT3JnYW5pc2F0aW9uIDxiPntvcmdhbml6YXRpb259PC9iPiBtaXRzYW10IGFsbGVyIHp1Z2Vow7ZyaWdlciBEYXRlbiB3aXJrbGljaCBnZWzDtnNjaHQgd2VyZGVuPycsXG4gICAgb3JnYW5pemF0aW9uX292ZXJ2aWV3OiAnT3JnYW5pc2F0aW9ucy1Qcm9maWwnLFxuICAgIG9yZ2FuaXphdGlvbl9yZXF1ZXN0X2RlbGV0ZV9kZXNjcmlwdGlvbjpcbiAgICAgICdIaWVybWl0IGJlYW50cmFnZW4gU2llIGRhcyBMw7ZzY2hlbiBpaHJlciBPcmdhbmlzYXRpb24uIEJpdHRlIGJlYWNodGVuIFNpZSwgZGFzcyBkYXMgTMO2c2NoZW4gZWluZXIgT3JnYW5pc2F0aW9uIHVud2lkZXJydWZsaWNoIGlzdCB1bmQgYWxsZSB6dXIgT3JnYW5pc2F0aW9uIGdlaMO2cmlnZW4gRGF0ZW4gZWJlbmZhbGxzIGdlbMO2c2NodCB3ZXJkZW4uJyxcbiAgICBvcmdhbml6YXRpb25fdGVuZGVyczogJ0F1c3NjaHJlaWJ1bmdlbiBkZXIgT3JnYW5pc2F0aW9ucycsXG4gICAgb3JnYW5pemF0aW9uczogJ09yZ2FuaXNhdGlvbmVuJyxcbiAgICBvdmVydmlldzogJ8OcYmVyc2ljaHQnLFxuICAgIG93bmVyOiB7XG4gICAgICBlZGl0X3Blcm1pc3Npb246ICdNaXRnbGllZGVyIHZvbiB7e29yZ319IGTDvHJmZW4gYW5zZWhlbiB1bmQgYmVhcmJlaXRlbicsXG4gICAgICBtYW5hZ2VkX2J5OiAnVmVyd2FsdGV0IHZvbicsXG4gICAgICB2aWV3X3Blcm1pc3Npb246ICdNaXRnbGllZGVyIHZvbiB7e29yZ319IGTDvHJmZW4gYW5zZWhlbicsXG4gICAgfSxcbiAgICBwYWdlOiAnU2VpdGUnLFxuICAgIHBhcmVudDogJ0VsdGVybnRlaWwnLFxuICAgIHBhc3N3b3JkOiAnUGFzc3dvcnQnLFxuICAgIHBlbmRpbmc6ICdBdXNzdGVoZW5kJyxcbiAgICBwZXJpb2Q6ICdaZWl0cmF1bScsXG4gICAgcGVybWlzc2lvbnM6ICdSZWNodGUnLFxuICAgIHBob25lX251bWJlcjogJ1RlbGVmb25udW1tZXInLFxuICAgIHByZXZpZXc6ICdWb3JzY2hhdScsXG4gICAgcHJldmlvdXM6ICdWb3JoZXJpZ2UnLFxuICAgIHByaXZhY3lfcG9saWN5OiAnRGF0ZW5zY2h1dHplcmtsw6RydW5nJyxcbiAgICBwcm9maWxlOiAnUHJvZmlsJyxcbiAgICBwcm9wZXJ0aWVzOiAnRWlnZW5zY2hhZnRlbicsXG4gICAgcHJvcGVydHk6ICdFaWdlbnNjaGFmdCcsXG4gICAgcXVhcnRlcjogJ1F1YXJ0YWwnLFxuICAgIHJlYWRfcGVybWlzc2lvbnM6ICdMZXNlIFJlY2h0ZScsXG4gICAgcmVhZF9wZXJtaXNzaW9uc19lZGl0X2RlZmF1bHQ6ICdTdGFuZGFyZCBMZXNlLS9TY2hyZWliZS1SZWNodGUgYmVhcmJlaXRlbicsXG4gICAgcmVhZF93cml0ZV9wZXJtaXNzaW9uczogJ0xlc2UvU2NocmVpYmUtUmVjaHRlJyxcbiAgICByZWZlcmVuY2U6ICdSZWZlcmVueicsXG4gICAgcmVmZXJlbmNlczogJ1JlZmVyZW56ZW4nLFxuICAgIHJlc2V0OiAnWnVyw7xja3NldHplbicsXG4gICAgcmVzcG9uc2VfdHlwZTogJ1Jlc3BvbnNlIFR5cGUnLFxuICAgIHJldmlzaW9uOiAnVmVyc2lvbicsXG4gICAgJ3JvbGUuYWRkLm5ldyc6ICdSb2xsZSBoaW56dWbDvGdlbicsXG4gICAgJ3JvbGUuZGVsZXRlJzogJ1JvbGxlIGVudGZlcm5lbicsXG4gICAgJ3JvbGUuZWRpdCc6ICdSb2xsZSBlZGl0aWVyZW4nLFxuICAgICdyb2xlLmVkaXQuaW5mbyc6XG4gICAgICAnSmVkZSBSb2xsZSBtdXNzIGVpbmVuIGVpbmRldXRpZ2VuIE5hbWVuIGhhYmVuIHVuZCBrYW5uIG5hY2ggZGVyIEVyc3RlbGx1bmcgZGVyIFJvbGxlIG5pY2h0IG1laHIgZ2XDpG5kZXJ0IHdlcmRlbi4gRXMgc2luZCBudXIgS2xlaW5idWNoc3RhYmVuLCBCaW5kZXN0cmljaGUgKC0pIHVuZCBVbnRlcnN0cmljaGUgKF8pIGltIE5hbWVuIGVybGF1YnQuJyxcbiAgICAncm9sZS5uYW1lJzogJ05hbWUgZGVyIFJvbGxlJyxcbiAgICByb2xlX2FkZF9uZXdfZGVzY3JpcHRpb246XG4gICAgICAnRWlucmljaHR1bmcgbmV1ZXIgUm9sbGVuIGluIElocmVyIE9yZ2FuaXNhdGlvbiB1bmQgZGVyZW4gWnV3ZWlzdW5nIG5hY2ggQmVkYXJmIHp1IFJlc3NvdXJjZW4gYnp3LiBNaXRnbGllZGVybicsXG4gICAgcm9sZV9hZG1pbjogJ0FkbWlucmVjaHRlJyxcbiAgICByb2xlX2luZm86XG4gICAgICAnUm9sbGVuLCBkaWUgZGVtIEJlbnV0emVyIHp1Z2V3aWVzZW4gd2VyZGVuIHNvbGxlbi4gQWRtaW5yZWNodGUgZXJow6RsdCBhbGxlIFJvbGxlbi4gTGVzZXJlY2h0ZSBlcmjDpGx0IG51ciBkaWUgVmlldy1SZWNodGUnLFxuICAgIHJvbGVfdmlldzogJ0xlc2VyZWNodGUnLFxuICAgIHJvbGVzOiAnUm9sbGVuJyxcbiAgICByb2xsYmFja192ZXJzaW9uOiAnQXVmIGRpZSBhdXNnZXfDpGhsdGUgVmVyc2lvbiB6dXLDvGNrc2V0emVuJyxcbiAgICBzYXZlOiAnU3BlaWNoZXJuJyxcbiAgICBzY2hlbWE6ICdTY2hlbWEnLFxuICAgIHNlYXJjaDogJ1N1Y2hlLi4uJyxcbiAgICAnc2VhcmNoLm5vX3Jlc3VsdHMnOiAnS2VpbmUgRXJnZWJuaXNzZSBnZWZ1bmRlbicsXG4gICAgc2VhcmNoX2Fzc2V0X3R5cGVzOiAnU3VjaGUgQXNzZXQgVHlwZXMuLi4nLFxuICAgIHNlYXJjaF9hc3NldHM6ICdTdWNoZSBBc3NldHMuLi4nLFxuICAgIHNlYXJjaF9mb3JfcGFnZTogJ1NlaXRlIHN1Y2hlbicsXG4gICAgc2VhcmNoX3JvbGVzOiAnU3VjaGUgUm9sbGVuLi4uJyxcbiAgICBzZWFyY2hfdHNtOiAnU3VjaGUgWmVpdHJlaWhlbi4uLicsXG4gICAgc2VjcmV0OiAnU2VjcmV0JyxcbiAgICBzZWNyZXRzOiAnU2VjcmV0cycsXG4gICAgc2VsZWN0OiAnQXVzd8OkaGxlbicsXG4gICAgc2VsZWN0X2ZpbGU6ICdEYXRlaSBBdXN3w6RobGVuJyxcbiAgICBzZWxlY3RlZF9maWxlOiAnQXVzZ2V3w6RobHRlIERhdGVpJyxcbiAgICAnc2VydmljZS5hZGQubmV3JzogJ0RpZW5zdGxlaXN0dW5nIGhpbnp1ZsO8Z2VuJyxcbiAgICAnc2VydmljZS5kZWxldGUnOiAnRGllbnN0bGVpc3R1bmcgZW50ZmVybmVuJyxcbiAgICBzZXJ2aWNlczogJ0RpZW5zdGxlaXN0dW5nZW4nLFxuICAgIHNldHRpbmdzOiAnRWluc3RlbGx1bmdlbicsXG4gICAgc2V0dXBfY2VydHNfZGVzY3JpcHRpb246ICdFaW5yaWNodHVuZyB6dWdlaMO2cmlnZXIgWmVydGlmaWthdGUnLFxuICAgIHNob3c6ICdaZWlnZScsXG4gICAgc2hvd19kaWZmZXJlbmNlczogJ1plaWdlIFVudGVyc2NoaWVkZScsXG4gICAgc2hvd19wcmV2aWV3OiAnVm9yc2NoYXUgYW56ZWlnZW4nLFxuICAgIHNpZ25faW46ICdFaW5sb2dnZW4nLFxuICAgIHNpZ25fb3V0OiAnQXVzbG9nZ2VuJyxcbiAgICBzaWduZWRfaW5fYXM6ICdBbmdlbWVsZGV0IGFscycsXG4gICAgc29ydDogJ1NvcnRpZXJ1bmcnLFxuICAgIHN0YXRpc3RpY19xdWVyaWVzOiAnU3RhdGlzdGlrIEFuZnJhZ2VuJyxcbiAgICBzdGF0dXM6ICdTdGF0dXMnLFxuICAgIHN1cGVydHlwZTogJ09iZXJ0eXAnLFxuICAgIHN5c3RlbTogJ1N5c3RlbScsXG4gICAgdGFnczogJ0xhYmVsJyxcbiAgICB0YXNrOiAnQXVmZ2FiZScsXG4gICAgdGFza3M6ICdBdWZnYWJlbicsXG4gICAgdGltZTogJ1plaXQnLFxuICAgIHRpbWVfc2VyaWVzOiAnWmVpdHJlaWhlbicsXG4gICAgdGltZV9zZXJpZXNfbWFuYWdlcjogJ1RpbWUgU2VyaWVzIE1hbmFnZXInLFxuICAgIHRpbWVzZXJpZXM6ICdaZWl0cmVpaGVuJyxcbiAgICB0aXRsZTogJ1RpdGVsJyxcbiAgICB0b2FzdF9hY3RpdmVfb3JnYW5pemF0aW9uX2Vycm9yOlxuICAgICAgJ0FrdGl2ZSBPcmdhbmlzYXRpb24ga29ubnRlIG5pY2h0IGdlw6RuZGVydCB3ZXJkZW4uJyxcbiAgICB0b2FzdF9hY3RpdmVfb3JnYW5pemF0aW9uX2xvYWRpbmc6ICdBa3RpdmUgT3JnYW5pc2F0aW9uIHdpcmQgZ2XDpG5kZXJ0Li4uJyxcbiAgICB0b2FzdF9hY3RpdmVfb3JnYW5pemF0aW9uX3N1Y2Nlc3M6XG4gICAgICAnQWt0aXZlIE9yZ2FuaXNhdGlvbiBlcmZvbGdyZWljaCBnZcOkbmRlcnQuJyxcbiAgICB0b2FzdF9lcnJvcjogJ0ZlaGxlciEnLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9lbXBsb3llZTpcbiAgICAgICdEaWUgRWlubGFkdW5nIGRlcyBuZXVlbiBNaXRhcmJlaXRlcnMga29ubnRlIG5pY2h0IHZlcnNlbmRldCB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9tZW1iZXI6XG4gICAgICAnRGllIEVpbmxhZHVuZyBkZXMgbmV1ZW4gTWl0Z2xpZWRzIGtvbm50ZSBuaWNodCB2ZXJzZW5kZXQgd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9hZGRfcm9sZTogJ0RpZSBSb2xsZSBrb25udGUgbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfYXV0aGVudGljYXRlOiAnQXV0aGVudGlmaXppZXJ1bmcgZmVobGdlc2NobGFnZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9jcmVhdGVfdHNtOiAnWmVpdHJlaWhlIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9pbmRleF9jb250ZW50OiAnRmVobGVyIGJlaW0gQWJydWZlbiBkZXMgSW5kaXppZXJ1bmdzc3RhdHVzLicsXG4gICAgdG9hc3RfZXJyb3JfaW52aXRhdGlvbl9zZW5kOiAnRWlubGFkdW5nIGtvbm50ZSBuaWNodCBnZXNlbmRldCB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfY2VydDogJ1plcnRpZmlrYXRlIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfZXZlbnRfY2F1c2VzOlxuICAgICAgJ0V2ZW50dXJzYWNoZW4tT3ZlcnJpZGUga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9pdGVtOiAne3tpdGVtfX0ga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9saXN0OiAnTGlzdGUga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9vcmdfcm9sZXM6XG4gICAgICAnUm9sbGVuIGRlcyBha3RpdmVuIFVudGVybmVobWVucyBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3Blcm1pc3Npb25zOiAnUmVjaHRlIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcGVybWlzc2lvbnNfYWxsX3VzZXJzOlxuICAgICAgJ1JlY2h0ZSBhbGxlciBCZW51dHplciBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3ByZXZpZXc6ICdWb3JzY2hhdSBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3JvbGU6ICdSb2xsZW4ga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9zZXJ2aWNlOiAnRGllbnN0bGVpc3R1bmdlbiBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3RlbmRlcjogJ0F1c3NjaHJlaWJ1bmcga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuLicsXG4gICAgdG9hc3RfZXJyb3Jfb3JnYW5pemF0aW9uX2RlbGV0ZTpcbiAgICAgICdPcmdhbmlzYXRpb24ga29ubnRlIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9vcmdhbml6YXRpb25fbmFtZV9leGlzdHM6XG4gICAgICAnRWluZSBPcmdhbmlzYXRpb24gbWl0IGRlbSBOYW1lbiB7e25hbWV9fSBleGlzdGllcnQgYmVyZWl0cycsXG4gICAgdG9hc3RfZXJyb3Jfcm9sbGJhY2tfdmVyc2lvbjpcbiAgICAgICdGZWhsZXIgYmVpbSBadXLDvGNrc2V0emVuIGF1ZiBkaWUgYXVzZ2V3w6RobHRlIFZlcnNpb24nLFxuICAgIHRvYXN0X2Vycm9yX3NhdmVfaXRlbTogJ3t7aXRlbX19IGtvbm50ZSBuaWNodCBnZXNwZWljaGVydCB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX3VwZGF0ZV9hdHRhY2htZW50OlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0FuaGFuZyBrb25udGUgbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbn0gb3RoZXIgeyMgQW5ow6RuZ2Uga29ubnRlbiBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVufX0nLFxuICAgIHRvYXN0X2Vycm9yX3VwZGF0ZV9ldmVudF9jYXVzZXM6XG4gICAgICAnRXZlbnR1cnNhY2hlbi1PdmVycmlkZSBrb25udGUgbmljaHQgYWt0dWFsaXNpZXJ0IHdlcmRlbi4nLFxuICAgIHRvYXN0X2Vycm9yX3VwZGF0ZV9zZXJ2aWNlOlxuICAgICAgJ0RpZW5zdGxlaXN0dW5nIGtvbm50ZSBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl91cGxvYWRfZmlsZTpcbiAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtEYXRlaSBrb25udGUgbmljaHQgaG9jaGdlbGFkZW4gd2VyZGVuIHt7ZmlsZX19fSBvdGhlciB7IyBEYXRlaWVuIGtvbm50ZW4gbmljaHQgaG9jaGdlbGFkZW4gd2VyZGVufX0nLFxuICAgIHRvYXN0X2Vycm9yX3VwbG9hZF9maWxlX21heDpcbiAgICAgICdFcyBkw7xyZmVuIG5pY2h0IG1laHIgYWxzIHt7bWF4fX0gRGF0ZWllbiBaZWl0Z2xlaWNoIGhvY2hnZWxhZGVuIHdlcmRlbi4nLFxuICAgIHRvYXN0X2Zvcm1fZXJyb3JfcmVxdWlyZWQ6ICd7e3BhcmFtfX0gZGFyZiBuaWNodCBsZWVyIHNlaW4nLFxuICAgIHRvYXN0X2Zvcm1fZXJyb3JfcmVxdWlyZWRfc2VsZWN0aW9uOlxuICAgICAgJ0VzIG11c3MgbWluZGVzdGVucyBlaW4ge3twYXJhbX19IGF1c2dld8OkaGx0IHdlcmRlbicsXG4gICAgdG9hc3RfZm9ybV9lcnJvcl9yZXF1aXJlZF9zZWxlY3Rpb25fZmVtaW5pbmU6XG4gICAgICAnRXMgbXVzcyBtaW5kZXN0ZW5zIGVpbmUge3twYXJhbX19IGF1c2dld8OkaGx0IHdlcmRlbicsXG4gICAgdG9hc3RfaW5mbzogJ0luZm8hJyxcbiAgICB0b2FzdF9zdWNjZXNzOiAnRXJmb2xncmVpY2ghJyxcbiAgICB0b2FzdF9zdWNjZXNzX2FkZF9lbXBsb3llZTpcbiAgICAgICdEaWUgRWlubGFkdW5nIGRlcyBuZXVlbiBNaXRhcmJlaXRlcnMgd3VyZGUgZXJmb2xncmVpY2ggdmVyc2VuZGV0JyxcbiAgICB0b2FzdF9zdWNjZXNzX2FkZF9tZW1iZXI6XG4gICAgICAnRGllIEVpbmxhZHVuZyBkZXMgbmV1ZW4gTWl0Z2xpZWRzIHd1cmRlIGVyZm9sZ3JlaWNoIHZlcnNlbmRldCcsXG4gICAgdG9hc3Rfc3VjY2Vzc19hZGRfcm9sZTogJ0RpZSBSb2xsZSB3dXJkZSBlcmZvbGdyZWljaCBoaW56dWdlZsO8Z3QnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfaW52aXRhdGlvbl9zZW5kOiAnRWlubGFkdW5nIGdlc2VuZGV0JyxcbiAgICB0b2FzdF9zdWNjZXNzX3VwZGF0ZV9hdHRhY2htZW50OlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0FuaGFuZyBha3R1YWxpc2llcnR9IG90aGVyIHsjIEFuaMOkbmdlIGFrdHVhbGlzaWVydH19JyxcbiAgICB0b2FzdF9zdWNjZXNzX3VwZGF0ZV9zZXJ2aWNlOiAnRGllbnN0bGVpc3R1bmcgd3VyZGUgYWt0dWFsaXNpZXJ0JyxcbiAgICB0b2FzdF9zdWNjZXNzX3VwbG9hZF9maWxlOlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0RhdGVpIHd1cmRlIGVyZm9sZ3JlaWNoIGhvY2hnZWxhZGVuOiB7e2ZpbGV9fX0gb3RoZXIgeyMgRGF0ZWllbiB3dXJkZW4gZXJmb2xncmVpY2ggaG9jaGdlbGFkZW59fScsXG4gICAgdG9hc3Rfd2FybmluZzogJ1dhcm51bmchJyxcbiAgICB0b2FzdF93YXJuaW5nX2ludmFsaWRfZm9ybV9kYXRhOlxuICAgICAgJ1VuZ8O8bHRpZ2UgRGF0ZW4gaW0gRm9ybXVsYXIuIEJpdHRlIMO8YmVycHLDvGZlbiBTaWUgZGFzIEZvcm11bGFyIGF1ZiBGZWhsZXIuJyxcbiAgICB0b2FzdF93YXJuaW5nX2ludmFsaWRfc2NoZW1hOiAnRGFzIGFuZ2VnZWJlbmUgU2NoZW1hIGlzdCBuaWNodCBnw7xsdGlnLicsXG4gICAgdG9hc3Rfd2FybmluZ19yb2xsYmFja192ZXJzaW9uOlxuICAgICAgJ0ZvbGdlbmRlIHJlZmVyZW56aWVydGUgRWxlbWVudGUgZXhpc3RpZXJlbiBpbiBkZXIgUmV2aXNpb24gbmljaHQgbWVocjoge3tlbnRyaWVzfX0nLFxuICAgIHRvdXJfc3RhcnQ6ICdTdGFydGUgVG91cicsXG4gICAgdHlwZTogJ1R5cCcsXG4gICAgdW5rbm93bjogJ1VuYmVrYW5udCcsXG4gICAgdW52ZXJpZmllZDogJ1VudmVyaWZpemllcnQnLFxuICAgIHVwZGF0ZWQ6ICdCZWFyYmVpdGV0JyxcbiAgICB1cGRhdGVkX2J5OiAnQWt0dWFsaXNpZXJ0IHZvbicsXG4gICAgdXBsb2FkX2RhdGU6ICdIb2NoZ2VsYWRlbiBhbScsXG4gICAgdXBsb2FkX2ZpbGU6ICdEYXRlaSBob2NobGFkZW4nLFxuICAgIHVybDogJ1VSTCcsXG4gICAgdXNlcjogJ0JlbnV0emVyJyxcbiAgICB1c2VyX3JvbGVzOiAnQmVudXR6ZXJyb2xsZW4nLFxuICAgIHVzZXJuYW1lOiAnQmVudXR6ZXJuYW1lJyxcbiAgICB2YXQ6ICdVU3QtSWROci4vVUlEJyxcbiAgICB2YXRfZXhhbXBsZTpcbiAgICAgICdFcyBtdXNzIGVpbmUgZ8O8bHRpZ2UgVVN0LUlkTnIuIChERSBnZWZvbGd0IHZvbiA5IFppZmZlcm4sIHouQi4gREUxMjM0NTY3ODkpIG9kZXIgVUlEIChBVFUgZ2Vmb2xndCB2b24gOCBaaWZmZXJuLCB6LkIuIEFUVTEyMzQ1Njc4KSBhbmdlZ2ViZW4gd2VyZGVuJyxcbiAgICB2ZXJpZmllZDogJ1ZlcmlmaXppZXJ0JyxcbiAgICB2aWV3OiAnQW5zZWhlbicsXG4gICAgdmlld19pZGVudGl0eV9wcm92aWRlcnM6XG4gICAgICAnUm9sbGUsIGRpZSBkZW4gTGVzZXp1Z3JpZmYgYXVmIGRpZSBrb25maWd1cmllcnRlbiBJZGVudGl0w6R0c2FuYmlldGVyIGVybcO2Z2xpY2h0JyxcbiAgICB2aWV3X2ludml0YXRpb25zOlxuICAgICAgJ1JvbGxlLCBkaWUgZGVuIExlc2V6dWdyaWZmIGF1ZiBvZmZlbmUgTWl0YXJiZWl0ZXJlaW5sYWR1bmdlbiBlcm3DtmdsaWNodCcsXG4gICAgdmlld19tZW1iZXJzOlxuICAgICAgJ1JvbGxlLCBkaWUgZGVuIExlc2V6dWdyaWZmIGF1ZiBhbGxlIGJlc3RlaGVuZGVuIE1pdGFyYmVpdGVyIGVybcO2Z2xpY2h0JyxcbiAgICB2aWV3X29yZ2FuaXphdGlvbjpcbiAgICAgICdSb2xsZSwgZGllIGRlbiBMZXNlenVncmlmZiBhdWYgZGFzIFVudGVybmVobWVuIGVybcO2Z2xpY2h0JyxcbiAgICB2aWV3X3JvbGVzOiAnUm9sbGUsIGRpZSBkZW4gTGVzZXp1Z3JpZmYgYXVmIFVudGVybmVobWVuc3JvbGxlbiBlcm3DtmdsaWNodCcsXG4gICAgd2FybmluZzogJ1dhcm51bmcnLFxuICAgIHdlZWs6ICdXb2NoZScsXG4gICAgd3JpdGVfcGVybWlzc2lvbnM6ICdTY2hyZWliZS1SZWNodGUnLFxuICAgIHllYXI6ICdKYWhyJyxcbiAgICB5ZWFyczogJ0phaHJlJyxcbiAgICB6aXBfY29kZTogJ1Bvc3RsZWl0emFobCcsXG4gICAgemlwX2NvZGVfZXJyb3I6XG4gICAgICAnRGllIFBvc3RsZWl0emFobCBtdXNzIGfDvGx0aWcgc2VpbiB1bmQgZGFyZiBtYXhpbWFsIDEwIFplaWNoZW4gZW50aGFsdGVuLicsXG4gIH0sXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFpVHJhbnNsb2NvTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsb2NvTG9hZGVyIHtcbiAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YodHJhbnNsYXRpb25zW2xhbmddIHx8IHt9KTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVHJhbnNsb2NvTW9kdWxlXSxcbiAgZXhwb3J0czogW1RyYW5zbG9jb01vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogVFJBTlNMT0NPX1RSQU5TUElMRVIsIHVzZUNsYXNzOiBEZWZhdWx0VHJhbnNwaWxlciB9LFxuICAgIHsgcHJvdmlkZTogVFJBTlNMT0NPX0xPQURFUiwgdXNlQ2xhc3M6IEFpVHJhbnNsb2NvTG9hZGVyIH0sXG4gICAgcHJvdmlkZVRyYW5zbG9jbyh7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXZhaWxhYmxlTGFuZ3M6IFsnZGUnLCAnZW4nXSxcbiAgICAgICAgZGVmYXVsdExhbmc6ICdkZScsXG4gICAgICAgIHJlUmVuZGVyT25MYW5nQ2hhbmdlOiB0cnVlLFxuICAgICAgICBwcm9kTW9kZTogIWlzRGV2TW9kZSgpLFxuICAgICAgfSxcbiAgICAgIGxvYWRlcjogQWlUcmFuc2xvY29Mb2FkZXIsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFpVHJhbnNsb2NvTW9kdWxlIHt9XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { io } from 'socket.io-client';\nimport { ApiService } from '../core/api.service';\nimport * as i0 from \"@angular/core\";\nexport class WebsocketService {\n socket;\n subscribersCounter = {};\n eventObservables$ = {};\n constructor() {\n const apiService = inject(ApiService);\n this.socket = io(apiService.baseUrl, {\n path: `/api/ws/ai`,\n auth: (cb) => {\n apiService.getAccessToken().then((token) => {\n cb({ token: 'Bearer ' + token });\n });\n },\n });\n }\n emitToAi(threadId, message, context, toolCallId, result) {\n return this.socket.emit('message', {\n threadId,\n message,\n context,\n toolCallId,\n result,\n });\n }\n emitToolCallResult(threadId, toolCallId, result) {\n return this.socket.emit('message', { threadId, toolCallId, result });\n }\n emitRetry(threadId, messageId) {\n return this.socket.emit('retry', { threadId, messageId });\n }\n abortAi(threadId) {\n return this.socket.emit('abort', { threadId });\n }\n subscribeToThread(threadId) {\n return new Observable((observer) => {\n const listener = (data) => observer.next(data);\n this.socket.on(threadId, listener);\n });\n }\n unsubscribeFromThread(threadId) {\n this.socket.removeListener(threadId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: WebsocketService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: WebsocketService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxFQUFFLEVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsTUFBTSxDQUFTO0lBRXZCLGtCQUFrQixHQUEyQixFQUFFLENBQUM7SUFDaEQsaUJBQWlCLEdBQW9DLEVBQUUsQ0FBQztJQUV4RDtRQUNFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ25DLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNYLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDekMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUNOLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixPQUlDLEVBQ0QsVUFBbUIsRUFDbkIsTUFBWTtRQUVaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pDLFFBQVE7WUFDUixPQUFPO1lBQ1AsT0FBTztZQUNQLFVBQVU7WUFDVixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUNoQixRQUFnQixFQUNoQixVQUFrQixFQUNsQixNQUFXO1FBRVgsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt1R0FoRVUsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlvLCBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcblxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvYXBpLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U2VydmljZSB7XG4gIHByaXZhdGUgc29ja2V0OiBTb2NrZXQ7XG5cbiAgc3Vic2NyaWJlcnNDb3VudGVyOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gIGV2ZW50T2JzZXJ2YWJsZXMkOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcblxuICAgIHRoaXMuc29ja2V0ID0gaW8oYXBpU2VydmljZS5iYXNlVXJsLCB7XG4gICAgICBwYXRoOiBgL2FwaS93cy9haWAsXG4gICAgICBhdXRoOiAoY2IpID0+IHtcbiAgICAgICAgYXBpU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpLnRoZW4oKHRva2VuKSA9PiB7XG4gICAgICAgICAgY2IoeyB0b2tlbjogJ0JlYXJlciAnICsgdG9rZW4gfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGVtaXRUb0FpKFxuICAgIHRocmVhZElkOiBzdHJpbmcsXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGNvbnRleHQ/OiB7XG4gICAgICB0aW1lWm9uZT86IHN0cmluZztcbiAgICAgIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgIHVzZVdlYlNlYXJjaD86IGJvb2xlYW47XG4gICAgfSxcbiAgICB0b29sQ2FsbElkPzogc3RyaW5nLFxuICAgIHJlc3VsdD86IGFueSxcbiAgKTogU29ja2V0IHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQuZW1pdCgnbWVzc2FnZScsIHtcbiAgICAgIHRocmVhZElkLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGNvbnRleHQsXG4gICAgICB0b29sQ2FsbElkLFxuICAgICAgcmVzdWx0LFxuICAgIH0pO1xuICB9XG5cbiAgZW1pdFRvb2xDYWxsUmVzdWx0KFxuICAgIHRocmVhZElkOiBzdHJpbmcsXG4gICAgdG9vbENhbGxJZDogc3RyaW5nLFxuICAgIHJlc3VsdDogYW55LFxuICApOiBTb2NrZXQge1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5lbWl0KCdtZXNzYWdlJywgeyB0aHJlYWRJZCwgdG9vbENhbGxJZCwgcmVzdWx0IH0pO1xuICB9XG5cbiAgZW1pdFJldHJ5KHRocmVhZElkOiBzdHJpbmcsIG1lc3NhZ2VJZDogc3RyaW5nKTogU29ja2V0IHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQuZW1pdCgncmV0cnknLCB7IHRocmVhZElkLCBtZXNzYWdlSWQgfSk7XG4gIH1cblxuICBhYm9ydEFpKHRocmVhZElkOiBzdHJpbmcpOiBTb2NrZXQge1xuICAgIHJldHVybiB0aGlzLnNvY2tldC5lbWl0KCdhYm9ydCcsIHsgdGhyZWFkSWQgfSk7XG4gIH1cblxuICBzdWJzY3JpYmVUb1RocmVhZCh0aHJlYWRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ZW5lciA9IChkYXRhKSA9PiBvYnNlcnZlci5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy5zb2NrZXQub24odGhyZWFkSWQsIGxpc3RlbmVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHVuc3Vic2NyaWJlRnJvbVRocmVhZCh0aHJlYWRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zb2NrZXQucmVtb3ZlTGlzdGVuZXIodGhyZWFkSWQpO1xuICB9XG59XG4iXX0=","function isWhitespace(char) {\n return '\\u0020\\u000D\\u000A\\u0009'.indexOf(char) >= 0;\n}\n// based on https://github.com/dphilipson/untruncate-json\nexport function untruncateJson(json) {\n const contextStack = [\"topLevel\" /* ContextType.TOP_LEVEL */];\n let position = 0;\n let respawnPosition;\n let respawnStackLength;\n let respawnReason;\n const push = (context) => contextStack.push(context);\n const replace = (context) => (contextStack[contextStack.length - 1] = context);\n const setRespawn = (reason) => {\n if (respawnPosition == null) {\n respawnPosition = position;\n respawnStackLength = contextStack.length;\n respawnReason = reason;\n }\n };\n const clearRespawn = (reason) => {\n if (reason === respawnReason) {\n respawnPosition = undefined;\n respawnStackLength = undefined;\n respawnReason = undefined;\n }\n };\n const pop = () => contextStack.pop();\n const dontConsumeCharacter = () => position--;\n const startAny = (char) => {\n if ('0' <= char && char <= '9') {\n push(\"number\" /* ContextType.NUMBER */);\n return;\n }\n switch (char) {\n case '\"':\n push(\"string\" /* ContextType.STRING */);\n return;\n case '-':\n push(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n return;\n case 't':\n push(\"true\" /* ContextType.TRUE */);\n return;\n case 'f':\n push(\"false\" /* ContextType.FALSE */);\n return;\n case 'n':\n push(\"null\" /* ContextType.NULL */);\n return;\n case '[':\n push(\"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */);\n return;\n case '{':\n push(\"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */);\n return;\n }\n };\n for (const { length } = json; position < length; position++) {\n const char = json[position];\n switch (contextStack[contextStack.length - 1]) {\n case \"topLevel\" /* ContextType.TOP_LEVEL */:\n startAny(char);\n break;\n case \"string\" /* ContextType.STRING */:\n switch (char) {\n case '\"':\n pop();\n break;\n case '\\\\':\n setRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n push(\"stringEscaped\" /* ContextType.STRING_ESCAPED */);\n break;\n }\n break;\n case \"stringEscaped\" /* ContextType.STRING_ESCAPED */:\n if (char === 'u') {\n push(\"stringUnicode\" /* ContextType.STRING_UNICODE */);\n }\n else {\n clearRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n pop();\n }\n break;\n case \"stringUnicode\" /* ContextType.STRING_UNICODE */:\n if (position - json.lastIndexOf('u', position) === 4) {\n clearRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n pop();\n }\n break;\n case \"number\" /* ContextType.NUMBER */:\n if (char === '.') {\n replace(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n }\n else if (char === 'e' || char === 'E') {\n replace(\"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */);\n }\n else if (char < '0' || char > '9') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case \"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */:\n replace(\"number\" /* ContextType.NUMBER */);\n break;\n case \"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */:\n if (char === '+' || char === '-') {\n replace(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n }\n else {\n replace(\"number\" /* ContextType.NUMBER */);\n }\n break;\n case \"true\" /* ContextType.TRUE */:\n case \"false\" /* ContextType.FALSE */:\n case \"null\" /* ContextType.NULL */:\n if (char < 'a' || char > 'z') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case \"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */:\n if (char === ']') {\n pop();\n }\n else if (!isWhitespace(char)) {\n clearRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */);\n startAny(char);\n }\n break;\n case \"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */:\n if (char === ']') {\n pop();\n }\n else if (char === ',') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */);\n }\n break;\n case \"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */:\n if (char === '}') {\n pop();\n }\n else if (char === '\"') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */);\n push(\"string\" /* ContextType.STRING */);\n }\n break;\n case \"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */:\n if (char === ':') {\n replace(\"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */);\n }\n break;\n case \"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */:\n if (!isWhitespace(char)) {\n clearRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */);\n startAny(char);\n }\n break;\n case \"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */:\n if (char === '}') {\n pop();\n }\n else if (char === ',') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */);\n }\n break;\n }\n }\n if (respawnStackLength != null) {\n contextStack.length = respawnStackLength;\n }\n const result = [\n respawnPosition != null ? json.slice(0, respawnPosition) : json,\n ];\n const finishWord = (word) => result.push(word.slice(json.length - json.lastIndexOf(word[0])));\n for (let i = contextStack.length - 1; i >= 0; i--) {\n switch (contextStack[i]) {\n case \"string\" /* ContextType.STRING */:\n result.push('\"');\n break;\n case \"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */:\n case \"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */:\n result.push('0');\n break;\n case \"true\" /* ContextType.TRUE */:\n finishWord('true');\n break;\n case \"false\" /* ContextType.FALSE */:\n finishWord('false');\n break;\n case \"null\" /* ContextType.NULL */:\n finishWord('null');\n break;\n case \"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */:\n case \"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */:\n result.push(']');\n break;\n case \"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */:\n case \"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */:\n case \"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */:\n case \"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */:\n result.push('}');\n break;\n }\n }\n return result.join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3QkEsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxPQUFPLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVk7SUFDekMsTUFBTSxZQUFZLEdBQWtCLHdDQUF1QixDQUFDO0lBQzVELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixJQUFJLGVBQW1DLENBQUM7SUFDeEMsSUFBSSxrQkFBc0MsQ0FBQztJQUMzQyxJQUFJLGFBQXdDLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQ3ZDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDM0MsSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUMzQixrQkFBa0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3pDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQzdDLElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQzdCLGVBQWUsR0FBRyxTQUFTLENBQUM7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QyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbEQsUUFBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QjtnQkFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsNkRBQW9DO1lBQ3BDO2dCQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUiwyREFBbUM7WUFDbkM7Z0JBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakIsTUFBTTtZQUNSLHlEQUFrQztZQUNsQyw2REFBb0M7WUFDcEMsNkRBQW9DO1lBQ3BDO2dCQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZW51bSBDb250ZXh0VHlwZSB7XG4gIFRPUF9MRVZFTCA9ICd0b3BMZXZlbCcsXG4gIFNUUklORyA9ICdzdHJpbmcnLFxuICBTVFJJTkdfRVNDQVBFRCA9ICdzdHJpbmdFc2NhcGVkJyxcbiAgU1RSSU5HX1VOSUNPREUgPSAnc3RyaW5nVW5pY29kZScsXG4gIE5VTUJFUiA9ICdudW1iZXInLFxuICBOVU1CRVJfTkVFRFNfRElHSVQgPSAnbnVtYmVyTmVlZHNEaWdpdCcsXG4gIE5VTUJFUl9ORUVEU19FWFBPTkVOVCA9ICdudW1iZXJOZWVkc0V4cG9uZW50JyxcbiAgVFJVRSA9ICd0cnVlJyxcbiAgRkFMU0UgPSAnZmFsc2UnLFxuICBOVUxMID0gJ251bGwnLFxuICBBUlJBWV9ORUVEU19WQUxVRSA9ICdhcnJheU5lZWRzVmFsdWUnLFxuICBBUlJBWV9ORUVEU19DT01NQSA9ICdhcnJheU5lZWRzQ29tbWEnLFxuICBPQkpFQ1RfTkVFRFNfS0VZID0gJ29iamVjdE5lZWRzS2V5JyxcbiAgT0JKRUNUX05FRURTX0NPTE9OID0gJ29iamVjdE5lZWRzQ29sb24nLFxuICBPQkpFQ1RfTkVFRFNfVkFMVUUgPSAnb2JqZWN0TmVlZHNWYWx1ZScsXG4gIE9CSkVDVF9ORUVEU19DT01NQSA9ICdvYmplY3ROZWVkc0NvbW1hJyxcbn1cblxuY29uc3QgZW51bSBSZXNwYXduUmVhc29uIHtcbiAgU1RSSU5HX0VTQ0FQRSA9ICdzdHJpbmdFc2NhcGUnLFxuICBDT0xMRUNUSU9OX0lURU0gPSAnY29sbGVjdGlvbkl0ZW0nLFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hhcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAnXFx1MDAyMFxcdTAwMERcXHUwMDBBXFx1MDAwOScuaW5kZXhPZihjaGFyKSA+PSAwO1xufVxuXG4vLyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZHBoaWxpcHNvbi91bnRydW5jYXRlLWpzb25cbmV4cG9ydCBmdW5jdGlvbiB1bnRydW5jYXRlSnNvbihqc29uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZXh0U3RhY2s6IENvbnRleHRUeXBlW10gPSBbQ29udGV4dFR5cGUuVE9QX0xFVkVMXTtcbiAgbGV0IHBvc2l0aW9uID0gMDtcbiAgbGV0IHJlc3Bhd25Qb3NpdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBsZXQgcmVzcGF3blN0YWNrTGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGxldCByZXNwYXduUmVhc29uOiBSZXNwYXduUmVhc29uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHB1c2ggPSAoY29udGV4dDogQ29udGV4dFR5cGUpID0+IGNvbnRleHRTdGFjay5wdXNoKGNvbnRleHQpO1xuICBjb25zdCByZXBsYWNlID0gKGNvbnRleHQ6IENvbnRleHRUeXBlKSA9PlxuICAgIChjb250ZXh0U3RhY2tbY29udGV4dFN0YWNrLmxlbmd0aCAtIDFdID0gY29udGV4dCk7XG4gIGNvbnN0IHNldFJlc3Bhd24gPSAocmVhc29uOiBSZXNwYXduUmVhc29uKSA9PiB7XG4gICAgaWYgKHJlc3Bhd25Qb3NpdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXNwYXduUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgIHJlc3Bhd25TdGFja0xlbmd0aCA9IGNvbnRleHRTdGFjay5sZW5ndGg7XG4gICAgICByZXNwYXduUmVhc29uID0gcmVhc29uO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xlYXJSZXNwYXduID0gKHJlYXNvbjogUmVzcGF3blJlYXNvbikgPT4ge1xuICAgIGlmIChyZWFzb24gPT09IHJlc3Bhd25SZWFzb24pIHtcbiAgICAgIHJlc3Bhd25Qb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHJlc3Bhd25TdGFja0xlbmd0aCA9IHVuZGVmaW5lZDtcbiAgICAgIHJlc3Bhd25SZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuICBjb25zdCBwb3AgPSAoKSA9PiBjb250ZXh0U3RhY2sucG9wKCk7XG4gIGNvbnN0IGRvbnRDb25zdW1lQ2hhcmFjdGVyID0gKCkgPT4gcG9zaXRpb24tLTtcblxuICBjb25zdCBzdGFydEFueSA9IChjaGFyOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoJzAnIDw9IGNoYXIgJiYgY2hhciA8PSAnOScpIHtcbiAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVNQkVSKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChjaGFyKSB7XG4gICAgICBjYXNlICdcIic6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnLSc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0RJR0lUKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAndCc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuVFJVRSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2YnOlxuICAgICAgICBwdXNoKENvbnRleHRUeXBlLkZBTFNFKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnbic6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVMTCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1snOlxuICAgICAgICBwdXNoKENvbnRleHRUeXBlLkFSUkFZX05FRURTX1ZBTFVFKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAneyc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0tFWSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG5cbiAgZm9yIChjb25zdCB7IGxlbmd0aCB9ID0ganNvbjsgcG9zaXRpb24gPCBsZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICBjb25zdCBjaGFyID0ganNvbltwb3NpdGlvbl07XG4gICAgc3dpdGNoIChjb250ZXh0U3RhY2tbY29udGV4dFN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLlRPUF9MRVZFTDpcbiAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkc6XG4gICAgICAgIHN3aXRjaCAoY2hhcikge1xuICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICAgIHBvcCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICBzZXRSZXNwYXduKFJlc3Bhd25SZWFzb24uU1RSSU5HX0VTQ0FQRSk7XG4gICAgICAgICAgICBwdXNoKENvbnRleHRUeXBlLlNUUklOR19FU0NBUEVEKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkdfRVNDQVBFRDpcbiAgICAgICAgaWYgKGNoYXIgPT09ICd1Jykge1xuICAgICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HX1VOSUNPREUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLlNUUklOR19FU0NBUEUpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkdfVU5JQ09ERTpcbiAgICAgICAgaWYgKHBvc2l0aW9uIC0ganNvbi5sYXN0SW5kZXhPZigndScsIHBvc2l0aW9uKSA9PT0gNCkge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLlNUUklOR19FU0NBUEUpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVU1CRVI6XG4gICAgICAgIGlmIChjaGFyID09PSAnLicpIHtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJ2UnIHx8IGNoYXIgPT09ICdFJykge1xuICAgICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0VYUE9ORU5UKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFyIDwgJzAnIHx8IGNoYXIgPiAnOScpIHtcbiAgICAgICAgICBkb250Q29uc3VtZUNoYXJhY3RlcigpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVU1CRVJfTkVFRFNfRElHSVQ6XG4gICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuTlVNQkVSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19FWFBPTkVOVDpcbiAgICAgICAgaWYgKGNoYXIgPT09ICcrJyB8fCBjaGFyID09PSAnLScpIHtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5OVU1CRVIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5UUlVFOlxuICAgICAgY2FzZSBDb250ZXh0VHlwZS5GQUxTRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuTlVMTDpcbiAgICAgICAgaWYgKGNoYXIgPCAnYScgfHwgY2hhciA+ICd6Jykge1xuICAgICAgICAgIGRvbnRDb25zdW1lQ2hhcmFjdGVyKCk7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLkFSUkFZX05FRURTX1ZBTFVFOlxuICAgICAgICBpZiAoY2hhciA9PT0gJ10nKSB7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzV2hpdGVzcGFjZShjaGFyKSkge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19DT01NQSk7XG4gICAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLkFSUkFZX05FRURTX0NPTU1BOlxuICAgICAgICBpZiAoY2hhciA9PT0gJ10nKSB7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJywnKSB7XG4gICAgICAgICAgc2V0UmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19WQUxVRSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19LRVk6XG4gICAgICAgIGlmIChjaGFyID09PSAnfScpIHtcbiAgICAgICAgICBwb3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnXCInKSB7XG4gICAgICAgICAgc2V0UmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfQ09MT04pO1xuICAgICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0NPTE9OOlxuICAgICAgICBpZiAoY2hhciA9PT0gJzonKSB7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfVkFMVUUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfVkFMVUU6XG4gICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKGNoYXIpKSB7XG4gICAgICAgICAgY2xlYXJSZXNwYXduKFJlc3Bhd25SZWFzb24uQ09MTEVDVElPTl9JVEVNKTtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19DT01NQSk7XG4gICAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19DT01NQTpcbiAgICAgICAgaWYgKGNoYXIgPT09ICd9Jykge1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICcsJykge1xuICAgICAgICAgIHNldFJlc3Bhd24oUmVzcGF3blJlYXNvbi5DT0xMRUNUSU9OX0lURU0pO1xuICAgICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0tFWSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHJlc3Bhd25TdGFja0xlbmd0aCAhPSBudWxsKSB7XG4gICAgY29udGV4dFN0YWNrLmxlbmd0aCA9IHJlc3Bhd25TdGFja0xlbmd0aDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBbXG4gICAgcmVzcGF3blBvc2l0aW9uICE9IG51bGwgPyBqc29uLnNsaWNlKDAsIHJlc3Bhd25Qb3NpdGlvbikgOiBqc29uLFxuICBdO1xuICBjb25zdCBmaW5pc2hXb3JkID0gKHdvcmQ6IHN0cmluZykgPT5cbiAgICByZXN1bHQucHVzaCh3b3JkLnNsaWNlKGpzb24ubGVuZ3RoIC0ganNvbi5sYXN0SW5kZXhPZih3b3JkWzBdKSkpO1xuICBmb3IgKGxldCBpID0gY29udGV4dFN0YWNrLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgc3dpdGNoIChjb250ZXh0U3RhY2tbaV0pIHtcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuU1RSSU5HOlxuICAgICAgICByZXN1bHQucHVzaCgnXCInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVDpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0VYUE9ORU5UOlxuICAgICAgICByZXN1bHQucHVzaCgnMCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuVFJVRTpcbiAgICAgICAgZmluaXNoV29yZCgndHJ1ZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuRkFMU0U6XG4gICAgICAgIGZpbmlzaFdvcmQoJ2ZhbHNlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVUxMOlxuICAgICAgICBmaW5pc2hXb3JkKCdudWxsJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19WQUxVRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuQVJSQVlfTkVFRFNfQ09NTUE6XG4gICAgICAgIHJlc3VsdC5wdXNoKCddJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfS0VZOlxuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfQ09MT046XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19WQUxVRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0NPTU1BOlxuICAgICAgICByZXN1bHQucHVzaCgnfScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKTtcbn1cbiJdfQ==","import { effect, inject, Injectable, signal, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ApiService } from '../core/api.service';\nimport { ContextService } from './context.service';\nimport { WebsocketService } from './websocket.service';\nimport { untruncateJson } from './utils';\nimport * as i0 from \"@angular/core\";\nexport var ChatView;\n(function (ChatView) {\n ChatView[ChatView[\"Start\"] = 0] = \"Start\";\n ChatView[ChatView[\"Thread\"] = 1] = \"Thread\";\n ChatView[ChatView[\"ThreadList\"] = 2] = \"ThreadList\";\n})(ChatView || (ChatView = {}));\nconst ChatViewTitles = {\n [ChatView.ThreadList]: 'ai.chats',\n};\nexport class ChatService {\n ChatView = ChatView;\n highlightContext = null;\n isLoading = false;\n model = null;\n locale = 'en';\n isProcessing = false;\n apiService = inject(ApiService);\n contextService = inject(ContextService);\n destroy$ = new Subject();\n router = inject(Router);\n socket = inject(WebsocketService);\n translocoService = inject(TranslocoService);\n _activeView = ChatView.Start;\n _activeAssistant = null;\n _activeThread = null;\n _assistants = signal([]);\n _messages = [];\n threadEvents$ = null;\n constructor() {\n this.locale = this.translocoService.getActiveLang() || 'en';\n effect(() => {\n const threadAssistantId = this.activeThread?.assistantId;\n if (threadAssistantId &&\n (!this.activeAssistant || this.activeAssistant.id !== threadAssistantId)) {\n this._activeAssistant = this.assistants?.find((a) => a.id === threadAssistantId);\n }\n });\n }\n get activeAssistant() {\n return this._activeAssistant;\n }\n get activeThread() {\n return this._activeThread;\n }\n get activeView() {\n return this._activeView;\n }\n get assistants() {\n return this._assistants();\n }\n get messages() {\n return this._messages;\n }\n get title() {\n return ChatViewTitles[this.activeView];\n }\n async init() {\n if (this.assistants?.length > 0) {\n // already initialized\n return;\n }\n this.isLoading = true;\n try {\n this._assistants.set(await this.apiService.getAssistants());\n const defaultAssistant = this.assistants.find((a) => a.id === 'asset-assistant');\n if (defaultAssistant) {\n this._activeAssistant = defaultAssistant;\n }\n }\n catch (err) {\n console.error(err);\n }\n finally {\n this.isLoading = false;\n }\n }\n async createThreadForModal(assistantId, initialMessage, context, hidden) {\n try {\n this.isLoading = true;\n this._messages = [];\n this._activeThread = await this.apiService.createThread(assistantId);\n this.setupWebsockets();\n if (initialMessage) {\n await this.sendMessage(initialMessage, context, hidden);\n }\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n finally {\n this.isLoading = false;\n }\n }\n async openEmptyThread(assistantId) {\n this._activeAssistant = this.assistants.find((a) => a.id === assistantId);\n if (!this.activeAssistant) {\n return;\n }\n this._activeView = ChatView.Thread;\n this._activeThread = null;\n this._messages = [];\n const welcomeMessage = this.activeAssistant.i18n[this.locale]?.welcomeMessage;\n const currentDate = new Date().toISOString();\n this._messages = [\n {\n thread: null,\n role: 'assistant',\n content: welcomeMessage,\n createdAt: currentDate,\n updatedAt: currentDate,\n parsedContent: {\n response: welcomeMessage,\n references: [],\n },\n },\n ];\n }\n async createThread(initialMessage, assistantId) {\n if (this.isLoading || (!this.activeAssistant?.id && !assistantId)) {\n return;\n }\n assistantId = assistantId || this.activeAssistant?.id;\n this.isLoading = true;\n try {\n const thread = await this.apiService.createThread(assistantId);\n if (initialMessage) {\n await this.sendMessage(initialMessage);\n }\n this.router.navigate(['/ai/threads', thread.id]);\n }\n catch (err) {\n console.error(err);\n }\n finally {\n this.isLoading = false;\n }\n }\n deleteThread(threadId) {\n if (threadId === this.activeThread?.id) {\n this._activeThread = null;\n }\n return this.apiService.deleteThread(threadId);\n }\n showStart() {\n this._activeView = ChatView.Start;\n }\n showThreadList() {\n if (this._activeView === ChatView.ThreadList) {\n return;\n }\n this._activeView = ChatView.ThreadList;\n }\n async openThread(thread, isNewThread = false) {\n if (!thread) {\n return;\n }\n if (typeof thread === 'string') {\n thread = await this.apiService.getThread(thread);\n }\n this._activeThread = thread;\n this._activeView = ChatView.Thread;\n if (isNewThread) {\n this._messages = [];\n }\n else {\n await this.getMessages();\n }\n this.setupWebsockets();\n }\n getAssistantName(thread) {\n const assistant = this.assistants.find((a) => a.id === thread.assistantId);\n return assistant?.i18n?.[this.locale]?.name;\n }\n async getMessages() {\n const threadId = this.activeThread?.id;\n if (!threadId) {\n return;\n }\n this._messages = [];\n this.isLoading = true;\n try {\n const { docs: messages } = await this.apiService.getThreadMessages(threadId);\n this.isLoading = false;\n if (messages.length === 0) {\n const assistant = this.assistants.find((a) => a.id === this.activeThread.assistantId);\n const welcomeMessage = assistant.i18n[this.locale]?.welcomeMessage;\n const currentDate = new Date().toISOString();\n this._messages = [\n {\n thread: threadId,\n role: 'assistant',\n content: welcomeMessage,\n createdAt: currentDate,\n updatedAt: currentDate,\n parsedContent: {\n response: welcomeMessage,\n references: [],\n },\n },\n ];\n }\n else {\n messages.reverse().forEach((message) => this.updateMessage(message));\n }\n }\n catch (err) {\n this.isLoading = false;\n console.error(err);\n throw err;\n }\n }\n async sendMessage(content, context = {}, hidden) {\n console.log('sendMessage', content, context, hidden);\n console.log('activeThread', this.activeThread);\n console.log('activeAssistant', this.activeAssistant);\n content = content.trim();\n if (!content || !this.activeAssistant?.id) {\n return;\n }\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n context = { ...context, timeZone };\n if (!this.activeThread) {\n const message = await this.apiService.addMessage(content, null, this.activeAssistant.id, context);\n if (message.thread) {\n this.isProcessing = true;\n return this.openThread(message.thread);\n }\n }\n else {\n const currentDate = new Date().toISOString();\n const message = {\n id: globalThis.crypto.randomUUID(),\n thread: this.activeThread.id,\n content,\n createdAt: currentDate,\n updatedAt: currentDate,\n role: 'user',\n hidden,\n };\n const item = this._messages[this._messages.length - 1];\n if (item?.role === 'tool' &&\n item?.toolType === 'choice' &&\n item?.status === 'processing' &&\n item?.args?.choices) {\n // the last message was a tool-call, it needs to be finished by setting `thread` and `toolCallId`\n this.socket.emitToAi(this.activeThread.id, content, context, item.toolCallId, 'none');\n }\n else {\n this.socket.emitToAi(this.activeThread.id, content, context);\n }\n this._messages.push(message);\n this.updateMessage(message);\n }\n }\n selectChoice(selection, toolMessage) {\n this.socket.emitToolCallResult(toolMessage.thread, toolMessage.toolCallId, selection);\n }\n closeThread() {\n if (this.threadEvents$) {\n this.threadEvents$.unsubscribe();\n this.threadEvents$ = null;\n }\n if (this.activeThread?.id) {\n this.socket.unsubscribeFromThread(this.activeThread.id);\n }\n this._activeThread = null;\n }\n async abortThread() {\n if (this.activeThread?.id) {\n this.socket.abortAi(this.activeThread.id);\n }\n }\n setupWebsockets() {\n if (this.threadEvents$) {\n this.threadEvents$.unsubscribe();\n this.threadEvents$ = null;\n }\n if (!this.activeThread) {\n return;\n }\n if (this.activeThread) {\n this.threadEvents$ = this.socket\n .subscribeToThread(this.activeThread.id)\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ type, data }) => {\n this.handleThreadEvent(type, data);\n });\n }\n }\n collectContext(references) {\n if (!references?.length) {\n return;\n }\n const seenIds = new Set();\n references.forEach((ref) => {\n if (ref.resourceType === 'document') {\n ref.resourceType = 'content';\n }\n if (!seenIds.has(ref.id)) {\n ref.firstOccurrence = true;\n }\n seenIds.add(ref.id);\n });\n const refs = references.filter((ref) => ref.firstOccurrence);\n this.contextService.loadReferences(refs);\n }\n handleThreadEvent(type, message) {\n if (type === WebSocketMessageType.AI_PROCESSING) {\n // Message is being processed\n this.isProcessing = true;\n }\n else if (type === WebSocketMessageType.AI_MESSAGE) {\n // Message received\n this.updateMessage(message);\n }\n else if (type === WebSocketMessageType.AI_PARTIAL_MESSAGE) {\n // Message Delta received\n this.updatePartialMessage(message);\n }\n else if (type === WebSocketMessageType.AI_COMPLETE) {\n // Message processing is complete\n this.isProcessing = false;\n }\n else if (type === WebSocketMessageType.AI_ABORTED) {\n // Message processing was aborted\n this.isProcessing = false;\n }\n else if (type === WebSocketMessageType.AI_FAILED_TO_PROCESS ||\n type === WebSocketMessageType.AI_INVALID_MESSAGE) {\n // Message processing failed or message is invalid\n this.isProcessing = false;\n console.error(message);\n this.updateMessage({\n id: globalThis.crypto.randomUUID(),\n thread: this.activeThread.id,\n role: 'assistant',\n status: 'failed',\n content: this.translocoService.translate('ai.failed_to_process_message'),\n finishReason: 'error',\n });\n }\n else {\n // ignore event\n }\n }\n updateMessage(message) {\n const index = this._messages.findIndex((m) => (m.id && m.id === message.id) ||\n (m.responseId && m.responseId === message.responseId));\n let newMessage;\n if (message.role === 'assistant') {\n newMessage = { ...message };\n if (message.content) {\n try {\n newMessage.parsedContent = JSON.parse(untruncateJson(message.content));\n }\n catch (_) {\n newMessage.parsedContent = {\n response: message.content,\n references: [],\n };\n }\n newMessage = this.prettifyMessage(newMessage);\n this.collectContext(newMessage.parsedContent?.references);\n }\n }\n else if (message.role === 'user') {\n if (message.content) {\n newMessage = { ...message };\n newMessage = this.prettifyMessage(newMessage);\n this.collectContext(newMessage.parsedContent?.references);\n }\n }\n if (index !== -1) {\n this._messages[index] = newMessage || message; // update message\n }\n else {\n this._messages.push(newMessage || message); // add message\n }\n }\n updatePartialMessage(message) {\n const index = this._messages.findIndex((m) => m.responseId && m.responseId === message.responseId);\n if (index === -1) {\n return this.updateMessage(message);\n }\n const newMessage = { ...this._messages[index] };\n newMessage.content = newMessage.content + message.content;\n try {\n newMessage.parsedContent = JSON.parse(untruncateJson(newMessage.content));\n this.collectContext(newMessage.parsedContent?.references);\n }\n catch (_) {\n newMessage.parsedContent = {\n response: newMessage.content,\n references: [],\n };\n }\n this._messages[index] = newMessage;\n }\n prettifyMessage(message) {\n message.parsedContent = this.replaceIds(message);\n message.parsedContent.response = this.replaceJsonWithMdTable(message.parsedContent.response);\n return message;\n }\n /**\n * Replace IDs in the message content with a more readable format, which can be processed to properly identify references.\n * @param message The message to process.\n * @returns The processed message content.\n */\n replaceIds(message) {\n let response = message.parsedContent?.response || message.content || '';\n const references = message.parsedContent?.references || [];\n const bracketedIdRegExp = /\\(([iI][dD]):?[ \\t]*'?([0-9a-fA-F]{24})'?\\)/g;\n const unbracketedIdRegExp = /([iI][dD])[ \\t]+'?([0-9a-fA-F]{24})'?/g;\n let index = message.parsedContent?.references?.length + 1 || 1;\n response = response.replace(bracketedIdRegExp, (match, idText, id) => {\n const before = response.slice(0, response.indexOf(match));\n const lastKeywordCheck = this.checkLastKeyword(before);\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\n references.push({ id, resourceType: 'asset', reference_id: index++ });\n return '';\n }\n else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\n references.push({\n id,\n resourceType: 'asset-type',\n reference_id: index++,\n });\n return '';\n }\n return `[[${id}]]`;\n });\n response = response.replace(unbracketedIdRegExp, (match, idText, id) => {\n const before = response.slice(0, response.indexOf(match));\n const lastKeywordCheck = this.checkLastKeyword(before);\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\n references.push({ id, resourceType: 'asset', reference_id: index++ });\n return idText;\n }\n else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\n references.push({\n id,\n resourceType: 'asset-type',\n reference_id: index++,\n });\n return idText;\n }\n return idText;\n });\n return { response, references };\n }\n /**\n * Check if the last keyword in the string is 'Asset' or 'Typ'.\n * @param str The string to check.\n * @returns An object with the last keyword and its index, or null if neither is found.\n */\n checkLastKeyword(str) {\n const lowerStr = str.toLowerCase();\n const typVariants = [\n 'typ',\n 'type',\n 'assettype',\n 'assettyp',\n 'asset-type',\n 'asset-typ',\n ];\n const lastTypIndex = Math.max(...typVariants.map((v) => lowerStr.lastIndexOf(v)));\n const lastAssetIndex = lowerStr.lastIndexOf('asset');\n if (lastTypIndex === -1 && lastAssetIndex === -1) {\n return null;\n }\n else if (lastAssetIndex > lastTypIndex) {\n return { lastKeyword: 'Asset', result: lastAssetIndex };\n }\n else if (lastTypIndex !== -1) {\n return { lastKeyword: 'Typ', result: lastTypIndex };\n }\n return null;\n }\n /**\n * Prettify JSON strings in messages by converting them to a Markdown table.\n * @param content The content of the message.\n * @returns The prettified content.\n */\n replaceJsonWithMdTable(content) {\n const jsonRegExp = /(```json)?\\s*(```)?(\\{\\s*((\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)(\\s*,\\s*\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)*)\\})\\s*(```)?/;\n if (jsonRegExp.test(content)) {\n while (jsonRegExp.test(content)) {\n const match = jsonRegExp.exec(content);\n const first = match.index;\n const last = match.index + match[0].length - 1;\n try {\n const jsonString = match[3];\n const jsonObj = JSON.parse(jsonString);\n let markdownTable = '\\n\\n| | |\\n| --- | --- |\\n';\n for (const key in jsonObj) {\n if (Object.prototype.hasOwnProperty.call(jsonObj, key)) {\n const value = String(jsonObj[key]).replace(/\\|/g, '\\\\|');\n markdownTable += `| **${key}** | ${value} |\\n`;\n }\n }\n markdownTable += '\\n';\n const partOne = content.slice(0, first);\n const partTwo = content.slice(last + 1);\n content = partOne + markdownTable + partTwo;\n }\n catch (error) {\n break;\n }\n }\n }\n return content;\n }\n retryMessage(message) {\n if (!message ||\n !this.activeThread?.id ||\n this.isProcessing ||\n message.role !== 'assistant') {\n return;\n }\n this.isProcessing = true;\n this._messages = this._messages.filter((m) => m.id !== message.id);\n this.socket.emitRetry(this.activeThread.id, message.id);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ChatService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ChatService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\nexport var WebSocketMessageType;\n(function (WebSocketMessageType) {\n WebSocketMessageType[\"AI_ABORTED\"] = \"ai_aborted\";\n WebSocketMessageType[\"AI_ABORT_FAILED\"] = \"ai_abort_failed\";\n WebSocketMessageType[\"AI_COMPLETE\"] = \"ai_complete\";\n WebSocketMessageType[\"AI_FAILED_TO_PROCESS\"] = \"ai_failed_to_process\";\n WebSocketMessageType[\"AI_INVALID_MESSAGE\"] = \"ai_invalid_message\";\n WebSocketMessageType[\"AI_MESSAGE\"] = \"ai_message\";\n WebSocketMessageType[\"AI_PARTIAL_MESSAGE\"] = \"ai_partial_message\";\n WebSocketMessageType[\"AI_PROCESSING\"] = \"ai_processing\";\n})(WebSocketMessageType || (WebSocketMessageType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVd4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFvQixjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6QyxNQUFNLENBQU4sSUFBWSxRQUlYO0FBSkQsV0FBWSxRQUFRO0lBQ2xCLHlDQUFLLENBQUE7SUFDTCwyQ0FBTSxDQUFBO0lBQ04sbURBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVyxRQUFRLEtBQVIsUUFBUSxRQUluQjtBQUVELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVU7Q0FDbEMsQ0FBQztBQUdGLE1BQU0sT0FBTyxXQUFXO0lBQ2IsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsS0FBSyxHQUFrQixJQUFJLENBQUM7SUFDNUIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNkLFlBQVksR0FB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RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQXlCO1FBQ3BDLElBQ0UsQ0FBQyxPQUFPO1lBQ1IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVk7WUFDakIsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQzVCLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO3VHQW5tQlUsV0FBVzsyR0FBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOztBQTRuQlgsTUFBTSxDQUFOLElBQVksb0JBU1g7QUFURCxXQUFZLG9CQUFvQjtJQUM5QixpREFBeUIsQ0FBQTtJQUN6QiwyREFBbUMsQ0FBQTtJQUNuQyxtREFBMkIsQ0FBQTtJQUMzQixxRUFBNkMsQ0FBQTtJQUM3QyxpRUFBeUMsQ0FBQTtJQUN6QyxpREFBeUIsQ0FBQTtJQUN6QixpRUFBeUMsQ0FBQTtJQUN6Qyx1REFBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBVFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQVMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWlBc3Npc3RhbnQsXG4gIEFzc2lzdGFudE1lc3NhZ2UgYXMgQWlBc3Npc3RhbnRNZXNzYWdlLFxuICBVc2VyTWVzc2FnZSBhcyBBaVVzZXJNZXNzYWdlLFxuICBNZXNzYWdlLFxuICBTeXN0ZW1NZXNzYWdlLFxuICBUaHJlYWRQb3B1bGF0ZWQsXG4gIFRvb2xNZXNzYWdlLFxufSBmcm9tICdAaGFobnByby9ocGMtYXBpJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRSZWZlcmVuY2UsIENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2Vic29ja2V0U2VydmljZSB9IGZyb20gJy4vd2Vic29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgdW50cnVuY2F0ZUpzb24gfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGVudW0gQ2hhdFZpZXcge1xuICBTdGFydCxcbiAgVGhyZWFkLFxuICBUaHJlYWRMaXN0LFxufVxuXG5jb25zdCBDaGF0Vmlld1RpdGxlcyA9IHtcbiAgW0NoYXRWaWV3LlRocmVhZExpc3RdOiAnYWkuY2hhdHMnLFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENoYXRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgQ2hhdFZpZXcgPSBDaGF0VmlldztcbiAgaGlnaGxpZ2h0Q29udGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxvY2FsZSA9ICdlbic7XG4gIGlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChDb250ZXh0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNvY2tldCA9IGluamVjdChXZWJzb2NrZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIF9hY3RpdmVWaWV3OiBDaGF0VmlldyA9IENoYXRWaWV3LlN0YXJ0O1xuICBwcml2YXRlIF9hY3RpdmVBc3Npc3RhbnQ6IEFpQXNzaXN0YW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2FjdGl2ZVRocmVhZDogVGhyZWFkUG9wdWxhdGVkIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2Fzc2lzdGFudHM6IFdyaXRhYmxlU2lnbmFsPEFpQXNzaXN0YW50W10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZXM6IENoYXRNZXNzYWdlW10gPSBbXTtcbiAgcHJpdmF0ZSB0aHJlYWRFdmVudHMkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkgfHwgJ2VuJztcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdGhyZWFkQXNzaXN0YW50SWQgPSB0aGlzLmFjdGl2ZVRocmVhZD8uYXNzaXN0YW50SWQ7XG4gICAgICBpZiAoXG4gICAgICAgIHRocmVhZEFzc2lzdGFudElkICYmXG4gICAgICAgICghdGhpcy5hY3RpdmVBc3Npc3RhbnQgfHwgdGhpcy5hY3RpdmVBc3Npc3RhbnQuaWQgIT09IHRocmVhZEFzc2lzdGFudElkKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUFzc2lzdGFudCA9IHRoaXMuYXNzaXN0YW50cz8uZmluZChcbiAgICAgICAgICAoYSkgPT4gYS5pZCA9PT0gdGhyZWFkQXNzaXN0YW50SWQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgYWN0aXZlQXNzaXN0YW50KCk6IEFpQXNzaXN0YW50IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlQXNzaXN0YW50O1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVRocmVhZCgpOiBUaHJlYWRQb3B1bGF0ZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGhyZWFkO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVZpZXcoKTogQ2hhdFZpZXcge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVWaWV3O1xuICB9XG5cbiAgZ2V0IGFzc2lzdGFudHMoKTogQWlBc3Npc3RhbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fzc2lzdGFudHMoKTtcbiAgfVxuXG4gIGdldCBtZXNzYWdlcygpOiBDaGF0TWVzc2FnZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZXM7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ2hhdFZpZXdUaXRsZXNbdGhpcy5hY3RpdmVWaWV3XTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXNzaXN0YW50cz8ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gYWxyZWFkeSBpbml0aWFsaXplZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5fYXNzaXN0YW50cy5zZXQoYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldEFzc2lzdGFudHMoKSk7XG4gICAgICBjb25zdCBkZWZhdWx0QXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoXG4gICAgICAgIChhKSA9PiBhLmlkID09PSAnYXNzZXQtYXNzaXN0YW50JyxcbiAgICAgICk7XG4gICAgICBpZiAoZGVmYXVsdEFzc2lzdGFudCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVBc3Npc3RhbnQgPSBkZWZhdWx0QXNzaXN0YW50O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVRocmVhZEZvck1vZGFsKFxuICAgIGFzc2lzdGFudElkOiBzdHJpbmcsXG4gICAgaW5pdGlhbE1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCxcbiAgICBoaWRkZW4/OiBib29sZWFuLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTtcbiAgICAgIHRoaXMuX2FjdGl2ZVRocmVhZCA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5jcmVhdGVUaHJlYWQoYXNzaXN0YW50SWQpO1xuICAgICAgdGhpcy5zZXR1cFdlYnNvY2tldHMoKTtcbiAgICAgIGlmIChpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKGluaXRpYWxNZXNzYWdlLCBjb250ZXh0LCBoaWRkZW4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5FbXB0eVRocmVhZChhc3Npc3RhbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aXZlQXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoKGEpID0+IGEuaWQgPT09IGFzc2lzdGFudElkKTtcbiAgICBpZiAoIXRoaXMuYWN0aXZlQXNzaXN0YW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZVZpZXcgPSBDaGF0Vmlldy5UaHJlYWQ7XG4gICAgdGhpcy5fYWN0aXZlVGhyZWFkID0gbnVsbDtcbiAgICB0aGlzLl9tZXNzYWdlcyA9IFtdO1xuICAgIGNvbnN0IHdlbGNvbWVNZXNzYWdlID1cbiAgICAgIHRoaXMuYWN0aXZlQXNzaXN0YW50LmkxOG5bdGhpcy5sb2NhbGVdPy53ZWxjb21lTWVzc2FnZTtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICB0aGlzLl9tZXNzYWdlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGhyZWFkOiBudWxsLFxuICAgICAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICAgICAgY29udGVudDogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgIGNyZWF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHVwZGF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHBhcnNlZENvbnRlbnQ6IHtcbiAgICAgICAgICByZXNwb25zZTogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgICAgcmVmZXJlbmNlczogW10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhc3luYyBjcmVhdGVUaHJlYWQoXG4gICAgaW5pdGlhbE1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgYXNzaXN0YW50SWQ/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCAoIXRoaXMuYWN0aXZlQXNzaXN0YW50Py5pZCAmJiAhYXNzaXN0YW50SWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFzc2lzdGFudElkID0gYXNzaXN0YW50SWQgfHwgdGhpcy5hY3RpdmVBc3Npc3RhbnQ/LmlkO1xuXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aHJlYWQgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuY3JlYXRlVGhyZWFkKGFzc2lzdGFudElkKTtcbiAgICAgIGlmIChpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKGluaXRpYWxNZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FpL3RocmVhZHMnLCB0aHJlYWQuaWRdKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVUaHJlYWQodGhyZWFkSWQ6IHN0cmluZykge1xuICAgIGlmICh0aHJlYWRJZCA9PT0gdGhpcy5hY3RpdmVUaHJlYWQ/LmlkKSB7XG4gICAgICB0aGlzLl9hY3RpdmVUaHJlYWQgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZVRocmVhZCh0aHJlYWRJZCk7XG4gIH1cblxuICBzaG93U3RhcnQoKSB7XG4gICAgdGhpcy5fYWN0aXZlVmlldyA9IENoYXRWaWV3LlN0YXJ0O1xuICB9XG5cbiAgc2hvd1RocmVhZExpc3QoKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZVZpZXcgPT09IENoYXRWaWV3LlRocmVhZExpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlVmlldyA9IENoYXRWaWV3LlRocmVhZExpc3Q7XG4gIH1cblxuICBhc3luYyBvcGVuVGhyZWFkKFxuICAgIHRocmVhZDogc3RyaW5nIHwgVGhyZWFkUG9wdWxhdGVkLFxuICAgIGlzTmV3VGhyZWFkID0gZmFsc2UsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhyZWFkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhyZWFkID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyZWFkID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldFRocmVhZCh0aHJlYWQpO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZVRocmVhZCA9IHRocmVhZDtcbiAgICB0aGlzLl9hY3RpdmVWaWV3ID0gQ2hhdFZpZXcuVGhyZWFkO1xuICAgIGlmIChpc05ld1RocmVhZCkge1xuICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5nZXRNZXNzYWdlcygpO1xuICAgIH1cbiAgICB0aGlzLnNldHVwV2Vic29ja2V0cygpO1xuICB9XG5cbiAgZ2V0QXNzaXN0YW50TmFtZSh0aHJlYWQ6IFRocmVhZFBvcHVsYXRlZCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoKGEpID0+IGEuaWQgPT09IHRocmVhZC5hc3Npc3RhbnRJZCk7XG4gICAgcmV0dXJuIGFzc2lzdGFudD8uaTE4bj8uW3RoaXMubG9jYWxlXT8ubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TWVzc2FnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGhyZWFkSWQgPSB0aGlzLmFjdGl2ZVRocmVhZD8uaWQ7XG4gICAgaWYgKCF0aHJlYWRJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lc3NhZ2VzID0gW107XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRvY3M6IG1lc3NhZ2VzIH0gPVxuICAgICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuZ2V0VGhyZWFkTWVzc2FnZXModGhyZWFkSWQpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc3QgYXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoXG4gICAgICAgICAgKGEpID0+IGEuaWQgPT09IHRoaXMuYWN0aXZlVGhyZWFkLmFzc2lzdGFudElkLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9IGFzc2lzdGFudC5pMThuW3RoaXMubG9jYWxlXT8ud2VsY29tZU1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJlYWQ6IHRocmVhZElkLFxuICAgICAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgICAgICAgICBjb250ZW50OiB3ZWxjb21lTWVzc2FnZSxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgcGFyc2VkQ29udGVudDoge1xuICAgICAgICAgICAgICByZXNwb25zZTogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZXMucmV2ZXJzZSgpLmZvckVhY2goKG1lc3NhZ2UpID0+IHRoaXMudXBkYXRlTWVzc2FnZShtZXNzYWdlKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICAgIGhpZGRlbj86IGJvb2xlYW4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnNvbGUubG9nKCdzZW5kTWVzc2FnZScsIGNvbnRlbnQsIGNvbnRleHQsIGhpZGRlbik7XG4gICAgY29uc29sZS5sb2coJ2FjdGl2ZVRocmVhZCcsIHRoaXMuYWN0aXZlVGhyZWFkKTtcbiAgICBjb25zb2xlLmxvZygnYWN0aXZlQXNzaXN0YW50JywgdGhpcy5hY3RpdmVBc3Npc3RhbnQpO1xuXG4gICAgY29udGVudCA9IGNvbnRlbnQudHJpbSgpO1xuICAgIGlmICghY29udGVudCB8fCAhdGhpcy5hY3RpdmVBc3Npc3RhbnQ/LmlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRpbWVab25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICAgIGNvbnRleHQgPSB7IC4uLmNvbnRleHQsIHRpbWVab25lIH07XG5cbiAgICBpZiAoIXRoaXMuYWN0aXZlVGhyZWFkKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmFkZE1lc3NhZ2UoXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMuYWN0aXZlQXNzaXN0YW50LmlkLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgKTtcbiAgICAgIGlmIChtZXNzYWdlLnRocmVhZCkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5UaHJlYWQobWVzc2FnZS50aHJlYWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcblxuICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgICAgICAgaWQ6IGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgICAgdGhyZWFkOiB0aGlzLmFjdGl2ZVRocmVhZC5pZCxcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgY3JlYXRlZEF0OiBjdXJyZW50RGF0ZSxcbiAgICAgICAgdXBkYXRlZEF0OiBjdXJyZW50RGF0ZSxcbiAgICAgICAgcm9sZTogJ3VzZXInLFxuICAgICAgICBoaWRkZW4sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5fbWVzc2FnZXNbdGhpcy5fbWVzc2FnZXMubGVuZ3RoIC0gMV07XG4gICAgICBpZiAoXG4gICAgICAgIGl0ZW0/LnJvbGUgPT09ICd0b29sJyAmJlxuICAgICAgICBpdGVtPy50b29sVHlwZSA9PT0gJ2Nob2ljZScgJiZcbiAgICAgICAgaXRlbT8uc3RhdHVzID09PSAncHJvY2Vzc2luZycgJiZcbiAgICAgICAgaXRlbT8uYXJncz8uY2hvaWNlc1xuICAgICAgKSB7XG4gICAgICAgIC8vIHRoZSBsYXN0IG1lc3NhZ2Ugd2FzIGEgdG9vbC1jYWxsLCBpdCBuZWVkcyB0byBiZSBmaW5pc2hlZCBieSBzZXR0aW5nIGB0aHJlYWRgIGFuZCBgdG9vbENhbGxJZGBcbiAgICAgICAgdGhpcy5zb2NrZXQuZW1pdFRvQWkoXG4gICAgICAgICAgdGhpcy5hY3RpdmVUaHJlYWQuaWQsXG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIGl0ZW0udG9vbENhbGxJZCxcbiAgICAgICAgICAnbm9uZScsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvY2tldC5lbWl0VG9BaSh0aGlzLmFjdGl2ZVRocmVhZC5pZCwgY29udGVudCwgY29udGV4dCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgdGhpcy51cGRhdGVNZXNzYWdlKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENob2ljZShzZWxlY3Rpb246IGFueSwgdG9vbE1lc3NhZ2U6IGFueSkge1xuICAgIHRoaXMuc29ja2V0LmVtaXRUb29sQ2FsbFJlc3VsdChcbiAgICAgIHRvb2xNZXNzYWdlLnRocmVhZCxcbiAgICAgIHRvb2xNZXNzYWdlLnRvb2xDYWxsSWQsXG4gICAgICBzZWxlY3Rpb24sXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlVGhyZWFkKCkge1xuICAgIGlmICh0aGlzLnRocmVhZEV2ZW50cyQpIHtcbiAgICAgIHRoaXMudGhyZWFkRXZlbnRzJC51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy50aHJlYWRFdmVudHMkID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlVGhyZWFkPy5pZCkge1xuICAgICAgdGhpcy5zb2NrZXQudW5zdWJzY3JpYmVGcm9tVGhyZWFkKHRoaXMuYWN0aXZlVGhyZWFkLmlkKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlVGhyZWFkID0gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGFib3J0VGhyZWFkKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRocmVhZD8uaWQpIHtcbiAgICAgIHRoaXMuc29ja2V0LmFib3J0QWkodGhpcy5hY3RpdmVUaHJlYWQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBXZWJzb2NrZXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRocmVhZEV2ZW50cyQpIHtcbiAgICAgIHRoaXMudGhyZWFkRXZlbnRzJC51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy50aHJlYWRFdmVudHMkID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRocmVhZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZVRocmVhZCkge1xuICAgICAgdGhpcy50aHJlYWRFdmVudHMkID0gdGhpcy5zb2NrZXRcbiAgICAgICAgLnN1YnNjcmliZVRvVGhyZWFkKHRoaXMuYWN0aXZlVGhyZWFkLmlkKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHsgdHlwZSwgZGF0YSB9OiB7IHR5cGU6IFdlYlNvY2tldE1lc3NhZ2VUeXBlOyBkYXRhOiBNZXNzYWdlIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVGhyZWFkRXZlbnQodHlwZSwgZGF0YSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RDb250ZXh0KHJlZmVyZW5jZXM6IENvbnRleHRSZWZlcmVuY2VbXSkge1xuICAgIGlmICghcmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICByZWZlcmVuY2VzLmZvckVhY2goKHJlZikgPT4ge1xuICAgICAgaWYgKChyZWYucmVzb3VyY2VUeXBlIGFzIHN0cmluZykgPT09ICdkb2N1bWVudCcpIHtcbiAgICAgICAgcmVmLnJlc291cmNlVHlwZSA9ICdjb250ZW50JztcbiAgICAgIH1cbiAgICAgIGlmICghc2Vlbklkcy5oYXMocmVmLmlkKSkge1xuICAgICAgICByZWYuZmlyc3RPY2N1cnJlbmNlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHNlZW5JZHMuYWRkKHJlZi5pZCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVmcyA9IHJlZmVyZW5jZXMuZmlsdGVyKChyZWYpID0+IHJlZi5maXJzdE9jY3VycmVuY2UpO1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2UubG9hZFJlZmVyZW5jZXMocmVmcyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRocmVhZEV2ZW50KHR5cGU6IFdlYlNvY2tldE1lc3NhZ2VUeXBlLCBtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgaWYgKHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX1BST0NFU1NJTkcpIHtcbiAgICAgIC8vIE1lc3NhZ2UgaXMgYmVpbmcgcHJvY2Vzc2VkXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9NRVNTQUdFKSB7XG4gICAgICAvLyBNZXNzYWdlIHJlY2VpdmVkXG4gICAgICB0aGlzLnVwZGF0ZU1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9QQVJUSUFMX01FU1NBR0UpIHtcbiAgICAgIC8vIE1lc3NhZ2UgRGVsdGEgcmVjZWl2ZWRcbiAgICAgIHRoaXMudXBkYXRlUGFydGlhbE1lc3NhZ2UobWVzc2FnZSBhcyBBc3Npc3RhbnRNZXNzYWdlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX0NPTVBMRVRFKSB7XG4gICAgICAvLyBNZXNzYWdlIHByb2Nlc3NpbmcgaXMgY29tcGxldGVcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9BQk9SVEVEKSB7XG4gICAgICAvLyBNZXNzYWdlIHByb2Nlc3Npbmcgd2FzIGFib3J0ZWRcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX0ZBSUxFRF9UT19QUk9DRVNTIHx8XG4gICAgICB0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9JTlZBTElEX01FU1NBR0VcbiAgICApIHtcbiAgICAgIC8vIE1lc3NhZ2UgcHJvY2Vzc2luZyBmYWlsZWQgb3IgbWVzc2FnZSBpcyBpbnZhbGlkXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVzc2FnZSh7XG4gICAgICAgIGlkOiBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgIHRocmVhZDogdGhpcy5hY3RpdmVUaHJlYWQuaWQsXG4gICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgICdhaS5mYWlsZWRfdG9fcHJvY2Vzc19tZXNzYWdlJyxcbiAgICAgICAgKSxcbiAgICAgICAgZmluaXNoUmVhc29uOiAnZXJyb3InLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlnbm9yZSBldmVudFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAobSkgPT5cbiAgICAgICAgKG0uaWQgJiYgbS5pZCA9PT0gbWVzc2FnZS5pZCkgfHxcbiAgICAgICAgKG0ucmVzcG9uc2VJZCAmJiBtLnJlc3BvbnNlSWQgPT09IG1lc3NhZ2UucmVzcG9uc2VJZCksXG4gICAgKTtcbiAgICBsZXQgbmV3TWVzc2FnZTogQ2hhdE1lc3NhZ2U7XG5cbiAgICBpZiAobWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgbmV3TWVzc2FnZSA9IHsgLi4ubWVzc2FnZSB9IGFzIEFzc2lzdGFudE1lc3NhZ2U7XG4gICAgICBpZiAobWVzc2FnZS5jb250ZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV3TWVzc2FnZS5wYXJzZWRDb250ZW50ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIHVudHJ1bmNhdGVKc29uKG1lc3NhZ2UuY29udGVudCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgIG5ld01lc3NhZ2UucGFyc2VkQ29udGVudCA9IHtcbiAgICAgICAgICAgIHJlc3BvbnNlOiBtZXNzYWdlLmNvbnRlbnQsXG4gICAgICAgICAgICByZWZlcmVuY2VzOiBbXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG5ld01lc3NhZ2UgPSB0aGlzLnByZXR0aWZ5TWVzc2FnZShuZXdNZXNzYWdlKTtcbiAgICAgICAgdGhpcy5jb2xsZWN0Q29udGV4dChuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobWVzc2FnZS5yb2xlID09PSAndXNlcicpIHtcbiAgICAgIGlmIChtZXNzYWdlLmNvbnRlbnQpIHtcbiAgICAgICAgbmV3TWVzc2FnZSA9IHsgLi4ubWVzc2FnZSB9IGFzIFVzZXJNZXNzYWdlO1xuICAgICAgICBuZXdNZXNzYWdlID0gdGhpcy5wcmV0dGlmeU1lc3NhZ2UobmV3TWVzc2FnZSk7XG4gICAgICAgIHRoaXMuY29sbGVjdENvbnRleHQobmV3TWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZWZlcmVuY2VzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fbWVzc2FnZXNbaW5kZXhdID0gbmV3TWVzc2FnZSB8fCBtZXNzYWdlOyAvLyB1cGRhdGUgbWVzc2FnZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ld01lc3NhZ2UgfHwgbWVzc2FnZSk7IC8vIGFkZCBtZXNzYWdlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQYXJ0aWFsTWVzc2FnZShtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAobSkgPT4gbS5yZXNwb25zZUlkICYmIG0ucmVzcG9uc2VJZCA9PT0gbWVzc2FnZS5yZXNwb25zZUlkLFxuICAgICk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTWVzc2FnZShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdNZXNzYWdlID0geyAuLi50aGlzLl9tZXNzYWdlc1tpbmRleF0gfSBhcyBBc3Npc3RhbnRNZXNzYWdlO1xuXG4gICAgbmV3TWVzc2FnZS5jb250ZW50ID0gbmV3TWVzc2FnZS5jb250ZW50ICsgbWVzc2FnZS5jb250ZW50O1xuICAgIHRyeSB7XG4gICAgICBuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQgPSBKU09OLnBhcnNlKHVudHJ1bmNhdGVKc29uKG5ld01lc3NhZ2UuY29udGVudCkpO1xuICAgICAgdGhpcy5jb2xsZWN0Q29udGV4dChuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIG5ld01lc3NhZ2UucGFyc2VkQ29udGVudCA9IHtcbiAgICAgICAgcmVzcG9uc2U6IG5ld01lc3NhZ2UuY29udGVudCxcbiAgICAgICAgcmVmZXJlbmNlczogW10sXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLl9tZXNzYWdlc1tpbmRleF0gPSBuZXdNZXNzYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV0dGlmeU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogVXNlck1lc3NhZ2UgfCBBc3Npc3RhbnRNZXNzYWdlLFxuICApOiBVc2VyTWVzc2FnZSB8IEFzc2lzdGFudE1lc3NhZ2Uge1xuICAgIG1lc3NhZ2UucGFyc2VkQ29udGVudCA9IHRoaXMucmVwbGFjZUlkcyhtZXNzYWdlKTtcbiAgICBtZXNzYWdlLnBhcnNlZENvbnRlbnQucmVzcG9uc2UgPSB0aGlzLnJlcGxhY2VKc29uV2l0aE1kVGFibGUoXG4gICAgICBtZXNzYWdlLnBhcnNlZENvbnRlbnQucmVzcG9uc2UsXG4gICAgKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIElEcyBpbiB0aGUgbWVzc2FnZSBjb250ZW50IHdpdGggYSBtb3JlIHJlYWRhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIHByb2Nlc3NlZCB0byBwcm9wZXJseSBpZGVudGlmeSByZWZlcmVuY2VzLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyBUaGUgcHJvY2Vzc2VkIG1lc3NhZ2UgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUlkcyhtZXNzYWdlOiBVc2VyTWVzc2FnZSB8IEFzc2lzdGFudE1lc3NhZ2UpOiBNZXNzYWdlQ29udGVudCB7XG4gICAgbGV0IHJlc3BvbnNlOiBzdHJpbmcgPVxuICAgICAgbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZXNwb25zZSB8fCBtZXNzYWdlLmNvbnRlbnQgfHwgJyc7XG4gICAgY29uc3QgcmVmZXJlbmNlczogQ29udGV4dFJlZmVyZW5jZVtdID1cbiAgICAgIG1lc3NhZ2UucGFyc2VkQ29udGVudD8ucmVmZXJlbmNlcyB8fCBbXTtcbiAgICBjb25zdCBicmFja2V0ZWRJZFJlZ0V4cCA9IC9cXCgoW2lJXVtkRF0pOj9bIFxcdF0qJz8oWzAtOWEtZkEtRl17MjR9KSc/XFwpL2c7XG4gICAgY29uc3QgdW5icmFja2V0ZWRJZFJlZ0V4cCA9IC8oW2lJXVtkRF0pWyBcXHRdKyc/KFswLTlhLWZBLUZdezI0fSknPy9nO1xuICAgIGxldCBpbmRleCA9IG1lc3NhZ2UucGFyc2VkQ29udGVudD8ucmVmZXJlbmNlcz8ubGVuZ3RoICsgMSB8fCAxO1xuXG4gICAgcmVzcG9uc2UgPSByZXNwb25zZS5yZXBsYWNlKGJyYWNrZXRlZElkUmVnRXhwLCAobWF0Y2gsIGlkVGV4dCwgaWQpID0+IHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IHJlc3BvbnNlLnNsaWNlKDAsIHJlc3BvbnNlLmluZGV4T2YobWF0Y2gpKTtcbiAgICAgIGNvbnN0IGxhc3RLZXl3b3JkQ2hlY2sgPSB0aGlzLmNoZWNrTGFzdEtleXdvcmQoYmVmb3JlKTtcblxuICAgICAgaWYgKGxhc3RLZXl3b3JkQ2hlY2sgJiYgbGFzdEtleXdvcmRDaGVjay5sYXN0S2V5d29yZCA9PT0gJ0Fzc2V0Jykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goeyBpZCwgcmVzb3VyY2VUeXBlOiAnYXNzZXQnLCByZWZlcmVuY2VfaWQ6IGluZGV4KysgfSk7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0gZWxzZSBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnVHlwJykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogJ2Fzc2V0LXR5cGUnLFxuICAgICAgICAgIHJlZmVyZW5jZV9pZDogaW5kZXgrKyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBbWyR7aWR9XV1gO1xuICAgIH0pO1xuXG4gICAgcmVzcG9uc2UgPSByZXNwb25zZS5yZXBsYWNlKHVuYnJhY2tldGVkSWRSZWdFeHAsIChtYXRjaCwgaWRUZXh0LCBpZCkgPT4ge1xuICAgICAgY29uc3QgYmVmb3JlID0gcmVzcG9uc2Uuc2xpY2UoMCwgcmVzcG9uc2UuaW5kZXhPZihtYXRjaCkpO1xuICAgICAgY29uc3QgbGFzdEtleXdvcmRDaGVjayA9IHRoaXMuY2hlY2tMYXN0S2V5d29yZChiZWZvcmUpO1xuXG4gICAgICBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnQXNzZXQnKSB7XG4gICAgICAgIHJlZmVyZW5jZXMucHVzaCh7IGlkLCByZXNvdXJjZVR5cGU6ICdhc3NldCcsIHJlZmVyZW5jZV9pZDogaW5kZXgrKyB9KTtcbiAgICAgICAgcmV0dXJuIGlkVGV4dDtcbiAgICAgIH0gZWxzZSBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnVHlwJykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogJ2Fzc2V0LXR5cGUnLFxuICAgICAgICAgIHJlZmVyZW5jZV9pZDogaW5kZXgrKyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpZFRleHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpZFRleHQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyByZXNwb25zZSwgcmVmZXJlbmNlcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBsYXN0IGtleXdvcmQgaW4gdGhlIHN0cmluZyBpcyAnQXNzZXQnIG9yICdUeXAnLlxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSBsYXN0IGtleXdvcmQgYW5kIGl0cyBpbmRleCwgb3IgbnVsbCBpZiBuZWl0aGVyIGlzIGZvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0xhc3RLZXl3b3JkKFxuICAgIHN0cjogc3RyaW5nLFxuICApOiB7IGxhc3RLZXl3b3JkOiBzdHJpbmc7IHJlc3VsdDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICBjb25zdCBsb3dlclN0ciA9IHN0ci50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHR5cFZhcmlhbnRzID0gW1xuICAgICAgJ3R5cCcsXG4gICAgICAndHlwZScsXG4gICAgICAnYXNzZXR0eXBlJyxcbiAgICAgICdhc3NldHR5cCcsXG4gICAgICAnYXNzZXQtdHlwZScsXG4gICAgICAnYXNzZXQtdHlwJyxcbiAgICBdO1xuICAgIGNvbnN0IGxhc3RUeXBJbmRleCA9IE1hdGgubWF4KFxuICAgICAgLi4udHlwVmFyaWFudHMubWFwKCh2KSA9PiBsb3dlclN0ci5sYXN0SW5kZXhPZih2KSksXG4gICAgKTtcbiAgICBjb25zdCBsYXN0QXNzZXRJbmRleCA9IGxvd2VyU3RyLmxhc3RJbmRleE9mKCdhc3NldCcpO1xuXG4gICAgaWYgKGxhc3RUeXBJbmRleCA9PT0gLTEgJiYgbGFzdEFzc2V0SW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGxhc3RBc3NldEluZGV4ID4gbGFzdFR5cEluZGV4KSB7XG4gICAgICByZXR1cm4geyBsYXN0S2V5d29yZDogJ0Fzc2V0JywgcmVzdWx0OiBsYXN0QXNzZXRJbmRleCB9O1xuICAgIH0gZWxzZSBpZiAobGFzdFR5cEluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHsgbGFzdEtleXdvcmQ6ICdUeXAnLCByZXN1bHQ6IGxhc3RUeXBJbmRleCB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV0dGlmeSBKU09OIHN0cmluZ3MgaW4gbWVzc2FnZXMgYnkgY29udmVydGluZyB0aGVtIHRvIGEgTWFya2Rvd24gdGFibGUuXG4gICAqIEBwYXJhbSBjb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBtZXNzYWdlLlxuICAgKiBAcmV0dXJucyBUaGUgcHJldHRpZmllZCBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlSnNvbldpdGhNZFRhYmxlKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QganNvblJlZ0V4cCA9XG4gICAgICAvKGBgYGpzb24pP1xccyooYGBgKT8oXFx7XFxzKigoXCJbXlwiXSpcIlxccyo6XFxzKlwiW15cIl0qXCJcXHMqKShcXHMqLFxccypcIlteXCJdKlwiXFxzKjpcXHMqXCJbXlwiXSpcIlxccyopKilcXH0pXFxzKihgYGApPy87XG4gICAgaWYgKGpzb25SZWdFeHAudGVzdChjb250ZW50KSkge1xuICAgICAgd2hpbGUgKGpzb25SZWdFeHAudGVzdChjb250ZW50KSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGpzb25SZWdFeHAuZXhlYyhjb250ZW50KTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgY29uc3QgbGFzdCA9IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoIC0gMTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gbWF0Y2hbM107XG4gICAgICAgICAgY29uc3QganNvbk9iaiA9IEpTT04ucGFyc2UoanNvblN0cmluZyk7XG4gICAgICAgICAgbGV0IG1hcmtkb3duVGFibGUgPSAnXFxuXFxufCB8IHxcXG58IC0tLSB8IC0tLSB8XFxuJztcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uT2JqKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGpzb25PYmosIGtleSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoanNvbk9ialtrZXldKS5yZXBsYWNlKC9cXHwvZywgJ1xcXFx8Jyk7XG4gICAgICAgICAgICAgIG1hcmtkb3duVGFibGUgKz0gYHwgKioke2tleX0qKiB8ICR7dmFsdWV9IHxcXG5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtYXJrZG93blRhYmxlICs9ICdcXG4nO1xuICAgICAgICAgIGNvbnN0IHBhcnRPbmUgPSBjb250ZW50LnNsaWNlKDAsIGZpcnN0KTtcbiAgICAgICAgICBjb25zdCBwYXJ0VHdvID0gY29udGVudC5zbGljZShsYXN0ICsgMSk7XG4gICAgICAgICAgY29udGVudCA9IHBhcnRPbmUgKyBtYXJrZG93blRhYmxlICsgcGFydFR3bztcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgcmV0cnlNZXNzYWdlKG1lc3NhZ2U6IEFzc2lzdGFudE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhbWVzc2FnZSB8fFxuICAgICAgIXRoaXMuYWN0aXZlVGhyZWFkPy5pZCB8fFxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgfHxcbiAgICAgIG1lc3NhZ2Uucm9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgdGhpcy5fbWVzc2FnZXMgPSB0aGlzLl9tZXNzYWdlcy5maWx0ZXIoKG0pID0+IG0uaWQgIT09IG1lc3NhZ2UuaWQpO1xuXG4gICAgdGhpcy5zb2NrZXQuZW1pdFJldHJ5KHRoaXMuYWN0aXZlVGhyZWFkLmlkLCBtZXNzYWdlLmlkKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTWVzc2FnZUNvbnRlbnQge1xuICByZXNwb25zZTogc3RyaW5nO1xuICByZWZlcmVuY2VzOiBDb250ZXh0UmVmZXJlbmNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaXN0YW50TWVzc2FnZSBleHRlbmRzIEFpQXNzaXN0YW50TWVzc2FnZSB7XG4gIHJvbGU6ICdhc3Npc3RhbnQnO1xuICBwYXJzZWRDb250ZW50PzogTWVzc2FnZUNvbnRlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck1lc3NhZ2UgZXh0ZW5kcyBBaVVzZXJNZXNzYWdlIHtcbiAgcm9sZTogJ3VzZXInO1xuICBwYXJzZWRDb250ZW50PzogTWVzc2FnZUNvbnRlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlID1cbiAgfCBBc3Npc3RhbnRNZXNzYWdlXG4gIHwgU3lzdGVtTWVzc2FnZVxuICB8IFRvb2xNZXNzYWdlXG4gIHwgVXNlck1lc3NhZ2U7XG5cbmV4cG9ydCBlbnVtIFdlYlNvY2tldE1lc3NhZ2VUeXBlIHtcbiAgQUlfQUJPUlRFRCA9ICdhaV9hYm9ydGVkJyxcbiAgQUlfQUJPUlRfRkFJTEVEID0gJ2FpX2Fib3J0X2ZhaWxlZCcsXG4gIEFJX0NPTVBMRVRFID0gJ2FpX2NvbXBsZXRlJyxcbiAgQUlfRkFJTEVEX1RPX1BST0NFU1MgPSAnYWlfZmFpbGVkX3RvX3Byb2Nlc3MnLFxuICBBSV9JTlZBTElEX01FU1NBR0UgPSAnYWlfaW52YWxpZF9tZXNzYWdlJyxcbiAgQUlfTUVTU0FHRSA9ICdhaV9tZXNzYWdlJyxcbiAgQUlfUEFSVElBTF9NRVNTQUdFID0gJ2FpX3BhcnRpYWxfbWVzc2FnZScsXG4gIEFJX1BST0NFU1NJTkcgPSAnYWlfcHJvY2Vzc2luZycsXG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AudioConfig, SpeechConfig, SpeechRecognizer, } from 'microsoft-cognitiveservices-speech-sdk';\nimport { Subject } from 'rxjs';\nimport { ApiService } from '../core/api.service';\nimport * as i0 from \"@angular/core\";\nexport class VoiceRecognitionService {\n _isListening = false;\n recognizer;\n tokenExpiration = 0;\n _preResult$ = new Subject();\n _result$ = new Subject();\n audioConfig = AudioConfig.fromDefaultMicrophoneInput();\n apiService = inject(ApiService);\n get isInitialized() {\n return !!this.recognizer;\n }\n get isListening() {\n return this._isListening;\n }\n get isTokenExpired() {\n const currentTime = Math.floor(Date.now() / 1000);\n const bufferTime = 180; // 3 min\n return currentTime + bufferTime >= this.tokenExpiration;\n }\n get preResult$() {\n return this._preResult$.asObservable();\n }\n get result$() {\n return this._result$.asObservable();\n }\n async start(language) {\n if (!this.isInitialized || this.isTokenExpired) {\n await this.init(language).catch((err) => console.error(err));\n }\n this.recognizer?.startContinuousRecognitionAsync(() => { }, (err) => console.error(err));\n }\n async stop() {\n this.recognizer?.stopContinuousRecognitionAsync(() => (this._isListening = false), (err) => {\n console.error(err);\n this._isListening = false;\n this.recognizer.close();\n this.recognizer = null;\n });\n }\n async toggle(language) {\n if (this.isListening) {\n await this.stop();\n }\n else {\n await this.start(language);\n }\n }\n parseJwtToken(token) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = atob(base64);\n const payload = JSON.parse(jsonPayload);\n return payload.exp || 0;\n }\n catch (error) {\n console.error('Error parsing JWT token:', error);\n return 0;\n }\n }\n async init(language = 'de-DE') {\n const { token, region } = await this.apiService.getSpeechToken();\n this.tokenExpiration = this.parseJwtToken(token);\n const speechConfig = SpeechConfig.fromAuthorizationToken(token, region);\n speechConfig.speechRecognitionLanguage = language;\n this.recognizer = new SpeechRecognizer(speechConfig, this.audioConfig);\n this.recognizer.recognized = (_sender, event) => {\n if (event.result.text) {\n this._result$.next(event.result.text);\n }\n };\n this.recognizer.recognizing = (_sender, event) => {\n if (event.result.text) {\n this._preResult$.next(event.result.text);\n }\n };\n this.recognizer.sessionStarted = (_sender, _event) => {\n this._isListening = true;\n };\n this.recognizer.sessionStopped = (_sender, _event) => {\n this._isListening = false;\n };\n this.recognizer.canceled = (_sender, event) => {\n this._isListening = false;\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: VoiceRecognitionService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pY2UtcmVjb2duaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLFdBQVcsRUFHWCxZQUFZLEVBR1osZ0JBQWdCLEdBQ2pCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR2pELE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixVQUFVLENBQW1CO0lBQzdCLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDWCxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNqQyxXQUFXLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdkQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRO1FBQ2hDLE9BQU8sV0FB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LENBQUM7dUdBcEhVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRFYsTUFBTTs7MkZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF1ZGlvQ29uZmlnLFxuICBSZWNvZ25pemVyLFxuICBTZXNzaW9uRXZlbnRBcmdzLFxuICBTcGVlY2hDb25maWcsXG4gIFNwZWVjaFJlY29nbml0aW9uQ2FuY2VsZWRFdmVudEFyZ3MsXG4gIFNwZWVjaFJlY29nbml0aW9uRXZlbnRBcmdzLFxuICBTcGVlY2hSZWNvZ25pemVyLFxufSBmcm9tICdtaWNyb3NvZnQtY29nbml0aXZlc2VydmljZXMtc3BlZWNoLXNkayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hcGkuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIF9pc0xpc3RlbmluZyA9IGZhbHNlO1xuICBwcml2YXRlIHJlY29nbml6ZXI6IFNwZWVjaFJlY29nbml6ZXI7XG4gIHByaXZhdGUgdG9rZW5FeHBpcmF0aW9uID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJlUmVzdWx0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzdWx0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhdWRpb0NvbmZpZyA9IEF1ZGlvQ29uZmlnLmZyb21EZWZhdWx0TWljcm9waG9uZUlucHV0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcblxuICBnZXQgaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlY29nbml6ZXI7XG4gIH1cblxuICBnZXQgaXNMaXN0ZW5pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTGlzdGVuaW5nO1xuICB9XG5cbiAgZ2V0IGlzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgY29uc3QgYnVmZmVyVGltZSA9IDE4MDsgLy8gMyBtaW5cbiAgICByZXR1cm4gY3VycmVudFRpbWUgKyBidWZmZXJUaW1lID49IHRoaXMudG9rZW5FeHBpcmF0aW9uO1xuICB9XG5cbiAgZ2V0IHByZVJlc3VsdCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fcHJlUmVzdWx0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByZXN1bHQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyBzdGFydChsYW5ndWFnZT86IHN0cmluZykge1xuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkIHx8IHRoaXMuaXNUb2tlbkV4cGlyZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdChsYW5ndWFnZSkuY2F0Y2goKGVycikgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcbiAgICB9XG4gICAgdGhpcy5yZWNvZ25pemVyPy5zdGFydENvbnRpbnVvdXNSZWNvZ25pdGlvbkFzeW5jKFxuICAgICAgKCkgPT4ge30sXG4gICAgICAoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVyciksXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5yZWNvZ25pemVyPy5zdG9wQ29udGludW91c1JlY29nbml0aW9uQXN5bmMoXG4gICAgICAoKSA9PiAodGhpcy5faXNMaXN0ZW5pbmcgPSBmYWxzZSksXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5faXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWNvZ25pemVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMucmVjb2duaXplciA9IG51bGw7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBhc3luYyB0b2dnbGUobGFuZ3VhZ2U/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgYXdhaXQgdGhpcy5zdG9wKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnQobGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKd3RUb2tlbih0b2tlbjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFzZTY0VXJsID0gdG9rZW4uc3BsaXQoJy4nKVsxXTtcbiAgICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgICAgY29uc3QganNvblBheWxvYWQgPSBhdG9iKGJhc2U2NCk7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShqc29uUGF5bG9hZCk7XG4gICAgICByZXR1cm4gcGF5bG9hZC5leHAgfHwgMDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBKV1QgdG9rZW46JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KGxhbmd1YWdlID0gJ2RlLURFJykge1xuICAgIGNvbnN0IHsgdG9rZW4sIHJlZ2lvbiB9ID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldFNwZWVjaFRva2VuKCk7XG4gICAgdGhpcy50b2tlbkV4cGlyYXRpb24gPSB0aGlzLnBhcnNlSnd0VG9rZW4odG9rZW4pO1xuXG4gICAgY29uc3Qgc3BlZWNoQ29uZmlnID0gU3BlZWNoQ29uZmlnLmZyb21BdXRob3JpemF0aW9uVG9rZW4odG9rZW4sIHJlZ2lvbik7XG4gICAgc3BlZWNoQ29uZmlnLnNwZWVjaFJlY29nbml0aW9uTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcblxuICAgIHRoaXMucmVjb2duaXplciA9IG5ldyBTcGVlY2hSZWNvZ25pemVyKHNwZWVjaENvbmZpZywgdGhpcy5hdWRpb0NvbmZpZyk7XG4gICAgdGhpcy5yZWNvZ25pemVyLnJlY29nbml6ZWQgPSAoXG4gICAgICBfc2VuZGVyOiBSZWNvZ25pemVyLFxuICAgICAgZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uRXZlbnRBcmdzLFxuICAgICkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnJlc3VsdC50ZXh0KSB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCQubmV4dChldmVudC5yZXN1bHQudGV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJlY29nbml6ZXIucmVjb2duaXppbmcgPSAoXG4gICAgICBfc2VuZGVyOiBSZWNvZ25pemVyLFxuICAgICAgZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uRXZlbnRBcmdzLFxuICAgICkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnJlc3VsdC50ZXh0KSB7XG4gICAgICAgIHRoaXMuX3ByZVJlc3VsdCQubmV4dChldmVudC5yZXN1bHQudGV4dCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJlY29nbml6ZXIuc2Vzc2lvblN0YXJ0ZWQgPSAoXG4gICAgICBfc2VuZGVyOiBSZWNvZ25pemVyLFxuICAgICAgX2V2ZW50OiBTZXNzaW9uRXZlbnRBcmdzLFxuICAgICkgPT4ge1xuICAgICAgdGhpcy5faXNMaXN0ZW5pbmcgPSB0cnVlO1xuICAgIH07XG4gICAgdGhpcy5yZWNvZ25pemVyLnNlc3Npb25TdG9wcGVkID0gKFxuICAgICAgX3NlbmRlcjogUmVjb2duaXplcixcbiAgICAgIF9ldmVudDogU2Vzc2lvbkV2ZW50QXJncyxcbiAgICApID0+IHtcbiAgICAgIHRoaXMuX2lzTGlzdGVuaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgICB0aGlzLnJlY29nbml6ZXIuY2FuY2VsZWQgPSAoXG4gICAgICBfc2VuZGVyOiBSZWNvZ25pemVyLFxuICAgICAgZXZlbnQ6IFNwZWVjaFJlY29nbml0aW9uQ2FuY2VsZWRFdmVudEFyZ3MsXG4gICAgKSA9PiB7XG4gICAgICB0aGlzLl9pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkTextareaAutosize, TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, ElementRef, inject, Input, ViewChild, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { IconComponent } from '../../core/icons';\nimport { ChatService } from '../chat.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { VoiceRecognitionService } from '../voice-recognition.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/material/input\";\nimport * as i5 from \"@angular/material/tooltip\";\nimport * as i6 from \"@jsverse/transloco\";\nexport class MessageInputComponent {\n messageInput;\n startConversation = '';\n chatService = inject(ChatService);\n voiceRecognitionService = inject(VoiceRecognitionService);\n isMobileView;\n message;\n tmpMessage;\n useWebSearch = false;\n destroyRef = inject(DestroyRef);\n lang;\n constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.isMobileView = result.matches));\n }\n ngOnInit() {\n this.lang = 'de';\n this.voiceRecognitionService.preResult$.subscribe((result) => {\n const msg = (this.tmpMessage || '') + ' ' + result;\n this.message = msg.trim();\n });\n this.voiceRecognitionService.result$.subscribe((result) => {\n const msg = (this.tmpMessage || '') + ' ' + result;\n this.message = msg.trim();\n this.tmpMessage = this.message;\n });\n }\n sendMessage() {\n this.message = this.message.trim();\n if (!this.message) {\n return;\n }\n this.chatService.sendMessage(this.message, {\n useWebSearch: this.useWebSearch,\n });\n this.message = '';\n if (this.messageInput) {\n this.messageInput.nativeElement.value = '';\n this.messageInput.nativeElement.focus();\n }\n }\n toggleWebSearch() {\n this.useWebSearch = !this.useWebSearch;\n }\n toggleVoice() {\n this.tmpMessage = this.message;\n const lang = this.lang === 'de' ? 'de-DE' : 'en-US';\n this.voiceRecognitionService.toggle(lang);\n }\n stopVoice() {\n this.voiceRecognitionService.stop();\n }\n abort() {\n this.chatService.abortThread();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: MessageInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: MessageInputComponent, isStandalone: true, selector: \"ai-message-input\", inputs: { startConversation: \"startConversation\" }, viewQueries: [{ propertyName: \"messageInput\", first: true, predicate: [\"messageInput\"], descendants: true }], ngImport: i0, template: \"<div\\n class=\\\"mx-auto flex w-full items-end justify-center border bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:bg-black\\\"\\n [ngClass]=\\\"{\\n 'border-highlight dark:border-highlight': useWebSearch,\\n 'border-white dark:border-zinc-600/30': !useWebSearch,\\n }\\\"\\n *transloco=\\\"let t\\\"\\n>\\n <textarea\\n class=\\\"w-full md:text-lg md:font-semibold\\\"\\n matInput\\n cdkAutosizeMaxRows=\\\"10\\\"\\n cdkTextareaAutosize\\n [cdkAutosizeMinRows]=\\\"isMobileView ? 2 : 4\\\"\\n [placeholder]=\\\"t('message')\\\"\\n [(ngModel)]=\\\"message\\\"\\n (keydown.enter)=\\\"sendMessage() || $event.preventDefault()\\\"\\n spellcheck=\\\"false\\\"\\n #autosize=\\\"cdkTextareaAutosize\\\"\\n #messageInput\\n ></textarea>\\n <div class=\\\"flex md:flex-col md:gap-2\\\">\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.use_microphone')\\\"\\n matTooltipPosition=\\\"above\\\"\\n [disabled]=\\\"chatService.isProcessing\\\"\\n (click)=\\\"toggleVoice()\\\"\\n >\\n @if (voiceRecognitionService.isListening) {\\n <ai-icon\\n name=\\\"mic_record\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n } @else {\\n <ai-icon name=\\\"mic\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n }\\n </button>\\n @if (!voiceRecognitionService.isListening && !chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.send_message')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"sendMessage()\\\"\\n >\\n <ai-icon name=\\\"send\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (voiceRecognitionService.isListening) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.stop_recording')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"stopVoice()\\\"\\n >\\n <ai-icon name=\\\"record_stop\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.abort')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"abort()\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n </button>\\n }\\n </div>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i4.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i5.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i6.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: MessageInputComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n CdkTextareaAutosize,\n FormsModule,\n IconComponent,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TextFieldModule,\n TranslocoModule,\n ], selector: 'ai-message-input', template: \"<div\\n class=\\\"mx-auto flex w-full items-end justify-center border bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:bg-black\\\"\\n [ngClass]=\\\"{\\n 'border-highlight dark:border-highlight': useWebSearch,\\n 'border-white dark:border-zinc-600/30': !useWebSearch,\\n }\\\"\\n *transloco=\\\"let t\\\"\\n>\\n <textarea\\n class=\\\"w-full md:text-lg md:font-semibold\\\"\\n matInput\\n cdkAutosizeMaxRows=\\\"10\\\"\\n cdkTextareaAutosize\\n [cdkAutosizeMinRows]=\\\"isMobileView ? 2 : 4\\\"\\n [placeholder]=\\\"t('message')\\\"\\n [(ngModel)]=\\\"message\\\"\\n (keydown.enter)=\\\"sendMessage() || $event.preventDefault()\\\"\\n spellcheck=\\\"false\\\"\\n #autosize=\\\"cdkTextareaAutosize\\\"\\n #messageInput\\n ></textarea>\\n <div class=\\\"flex md:flex-col md:gap-2\\\">\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.use_microphone')\\\"\\n matTooltipPosition=\\\"above\\\"\\n [disabled]=\\\"chatService.isProcessing\\\"\\n (click)=\\\"toggleVoice()\\\"\\n >\\n @if (voiceRecognitionService.isListening) {\\n <ai-icon\\n name=\\\"mic_record\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n } @else {\\n <ai-icon name=\\\"mic\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n }\\n </button>\\n @if (!voiceRecognitionService.isListening && !chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.send_message')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"sendMessage()\\\"\\n >\\n <ai-icon name=\\\"send\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (voiceRecognitionService.isListening) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.stop_recording')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"stopVoice()\\\"\\n >\\n <ai-icon name=\\\"record_stop\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.abort')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"abort()\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n </button>\\n }\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { messageInput: [{\n type: ViewChild,\n args: ['messageInput']\n }], startConversation: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvbWVzc2FnZS1pbnB1dC9tZXNzYWdlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVB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LE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNwRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO3VHQWxFVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiw4T0MxQ2xDLG8wRUF5RUEsMkNEOUNJLFlBQVksNkhBQ1osbUJBQW1CLHdNQUNuQixXQUFXLCttQkFDWCxhQUFhLHNGQUNiLGVBQWUscU5BQ2Ysa0JBQWtCLDhCQUNsQixjQUFjLGlZQUNkLHdCQUF3Qiw4QkFDeEIsZ0JBQWdCLDRUQUNoQixlQUFlLDhCQUNmLGVBQWU7OzJGQUtOLHFCQUFxQjtrQkFqQmpDLFNBQVM7OEJBQ0M7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixZQUNTLGtCQUFrQjt3REFJRCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ1AsaUJBQWlCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgQ2RrVGV4dGFyZWFBdXRvc2l6ZSwgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ljb25zJztcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi92b2ljZS1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2RrVGV4dGFyZWFBdXRvc2l6ZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdhaS1tZXNzYWdlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdtZXNzYWdlSW5wdXQnKSBtZXNzYWdlSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIEBJbnB1dCgpIHJlYWRvbmx5IHN0YXJ0Q29udmVyc2F0aW9uOiBzdHJpbmcgPSAnJztcbiAgcmVhZG9ubHkgY2hhdFNlcnZpY2UgPSBpbmplY3QoQ2hhdFNlcnZpY2UpO1xuICByZWFkb25seSB2b2ljZVJlY29nbml0aW9uU2VydmljZSA9IGluamVjdChWb2ljZVJlY29nbml0aW9uU2VydmljZSk7XG4gIGlzTW9iaWxlVmlldzogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0bXBNZXNzYWdlOiBzdHJpbmc7XG4gIHVzZVdlYlNlYXJjaCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBsYW5nOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG5cbiAgICBicmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5YU21hbGwsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiAodGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQubWF0Y2hlcykpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nID0gJ2RlJztcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnByZVJlc3VsdCQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9ICh0aGlzLnRtcE1lc3NhZ2UgfHwgJycpICsgJyAnICsgcmVzdWx0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gbXNnLnRyaW0oKTtcbiAgICB9KTtcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnJlc3VsdCQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9ICh0aGlzLnRtcE1lc3NhZ2UgfHwgJycpICsgJyAnICsgcmVzdWx0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gbXNnLnRyaW0oKTtcbiAgICAgIHRoaXMudG1wTWVzc2FnZSA9IHRoaXMubWVzc2FnZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbmRNZXNzYWdlKCkge1xuICAgIHRoaXMubWVzc2FnZSA9IHRoaXMubWVzc2FnZS50cmltKCk7XG4gICAgaWYgKCF0aGlzLm1lc3NhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGF0U2VydmljZS5zZW5kTWVzc2FnZSh0aGlzLm1lc3NhZ2UsIHtcbiAgICAgIHVzZVdlYlNlYXJjaDogdGhpcy51c2VXZWJTZWFyY2gsXG4gICAgfSk7XG4gICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgaWYgKHRoaXMubWVzc2FnZUlucHV0KSB7XG4gICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlV2ViU2VhcmNoKCkge1xuICAgIHRoaXMudXNlV2ViU2VhcmNoID0gIXRoaXMudXNlV2ViU2VhcmNoO1xuICB9XG5cbiAgdG9nZ2xlVm9pY2UoKSB7XG4gICAgdGhpcy50bXBNZXNzYWdlID0gdGhpcy5tZXNzYWdlO1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmcgPT09ICdkZScgPyAnZGUtREUnIDogJ2VuLVVTJztcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnRvZ2dsZShsYW5nKTtcbiAgfVxuXG4gIHN0b3BWb2ljZSgpIHtcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuY2hhdFNlcnZpY2UuYWJvcnRUaHJlYWQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm14LWF1dG8gZmxleCB3LWZ1bGwgaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIGJvcmRlciBiZy16aW5jLTUwIHB5LTIgcGwtNCBwci0yIG1kOmdhcC14LTIgbWQ6cm91bmRlZC0yeGwgbWQ6cHktNCBtZDpwci00IGxnOm1heC13LXNjcmVlbi1tZCB4bDptYXgtdy1zY3JlZW4tbGcgZGFyazpiZy1ibGFja1wiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnYm9yZGVyLWhpZ2hsaWdodCBkYXJrOmJvcmRlci1oaWdobGlnaHQnOiB1c2VXZWJTZWFyY2gsXG4gICAgJ2JvcmRlci13aGl0ZSBkYXJrOmJvcmRlci16aW5jLTYwMC8zMCc6ICF1c2VXZWJTZWFyY2gsXG4gIH1cIlxuICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuPlxuICA8dGV4dGFyZWFcbiAgICBjbGFzcz1cInctZnVsbCBtZDp0ZXh0LWxnIG1kOmZvbnQtc2VtaWJvbGRcIlxuICAgIG1hdElucHV0XG4gICAgY2RrQXV0b3NpemVNYXhSb3dzPVwiMTBcIlxuICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICBbY2RrQXV0b3NpemVNaW5Sb3dzXT1cImlzTW9iaWxlVmlldyA/IDIgOiA0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwidCgnbWVzc2FnZScpXCJcbiAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VcIlxuICAgIChrZXlkb3duLmVudGVyKT1cInNlbmRNZXNzYWdlKCkgfHwgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgI21lc3NhZ2VJbnB1dFxuICA+PC90ZXh0YXJlYT5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC1jb2wgbWQ6Z2FwLTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFttYXRUb29sdGlwXT1cInQoJ2FpLnVzZV9taWNyb3Bob25lJylcIlxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cImNoYXRTZXJ2aWNlLmlzUHJvY2Vzc2luZ1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVm9pY2UoKVwiXG4gICAgPlxuICAgICAgQGlmICh2b2ljZVJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZykge1xuICAgICAgICA8YWktaWNvblxuICAgICAgICAgIG5hbWU9XCJtaWNfcmVjb3JkXCJcbiAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1tZCB0ZXh0LXJlZC02MDBcIlxuICAgICAgICA+PC9haS1pY29uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxhaS1pY29uIG5hbWU9XCJtaWNcIiBzaXplPVwiMjRcIiBjbGFzcz1cImljb24tbWRcIj48L2FpLWljb24+XG4gICAgICB9XG4gICAgPC9idXR0b24+XG4gICAgQGlmICghdm9pY2VSZWNvZ25pdGlvblNlcnZpY2UuaXNMaXN0ZW5pbmcgJiYgIWNoYXRTZXJ2aWNlLmlzUHJvY2Vzc2luZykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkuc2VuZF9tZXNzYWdlJylcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgIChjbGljayk9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGFpLWljb24gbmFtZT1cInNlbmRcIiBzaXplPVwiMjRcIiBjbGFzcz1cImljb24tbWRcIj48L2FpLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIGlmICh2b2ljZVJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkuc3RvcF9yZWNvcmRpbmcnKVwiXG4gICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgKGNsaWNrKT1cInN0b3BWb2ljZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGFpLWljb24gbmFtZT1cInJlY29yZF9zdG9wXCIgc2l6ZT1cIjI0XCIgY2xhc3M9XCJpY29uLW1kXCI+PC9haS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSBpZiAoY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ0KCdhaS5hYm9ydCcpXCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAoY2xpY2spPVwiYWJvcnQoKVwiXG4gICAgICA+XG4gICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgbmFtZT1cImRpc21pc3NfY2lyY2xlXCJcbiAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1tZCB0ZXh0LXJlZC02MDBcIlxuICAgICAgICA+PC9haS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Pipe } from '@angular/core';\nimport prettyBytes from 'pretty-bytes';\nimport * as i0 from \"@angular/core\";\nfunction isNumberFinite(value) {\n return typeof value === 'number' && isFinite(value);\n}\nexport class BytesPipe {\n transform(input) {\n if (!isNumberFinite(input)) {\n return input;\n }\n return prettyBytes(input);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: BytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: BytesPipe, isStandalone: false, name: \"bytes\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: BytesPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'bytes',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvYnl0ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7O0FBRXZDLFNBQVMsY0FBYyxDQUFDLEtBQVU7SUFDaEMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFNRCxNQUFNLE9BQU8sU0FBUztJQUNwQixTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt1R0FOVSxTQUFTO3FHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBSnJCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE9BQU87b0JBQ2IsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHByZXR0eUJ5dGVzIGZyb20gJ3ByZXR0eS1ieXRlcyc7XG5cbmZ1bmN0aW9uIGlzTnVtYmVyRmluaXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZSh2YWx1ZSk7XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2J5dGVzJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSk6IGFueSB7XG4gICAgaWYgKCFpc051bWJlckZpbml0ZShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgcmV0dXJuIHByZXR0eUJ5dGVzKGlucHV0KTtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ColorLevelPipe {\n transform(level, type = 'bg') {\n let color;\n switch (level) {\n case 'OK':\n color =\n type === 'svg'\n ? '#10B981'\n : type === 'text'\n ? 'text-green-600'\n : 'bg-green-600';\n break;\n case 'WARNING':\n color =\n type === 'svg'\n ? '#F59E0B'\n : type === 'text'\n ? 'text-amber-600'\n : 'bg-yellow-600';\n break;\n case 'CRITICAL':\n color =\n type === 'svg'\n ? '#EF4444'\n : type === 'text'\n ? 'text-red-600'\n : 'bg-red-600';\n break;\n case 'INFO':\n color =\n type === 'svg'\n ? '#3B82F6'\n : type === 'text'\n ? 'text-blue-600'\n : 'bg-blue-600';\n break;\n case 'ANY':\n color =\n type === 'svg'\n ? '#78716C'\n : type === 'text'\n ? 'text-gray-600'\n : 'bg-gray-600';\n break;\n default:\n console.error(`Unresolved level ${level}`);\n break;\n }\n return color;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ColorLevelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: ColorLevelPipe, isStandalone: false, name: \"colorLevel\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ColorLevelPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'colorLevel',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbGV2ZWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvY29sb3ItbGV2ZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUE4QixJQUFJO1FBQ3pELElBQUksS0FBSyxDQUFDO1FBQ1YsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssSUFBSTtnQkFDUCxLQUFLO29CQUNILElBQUksS0FBSyxLQUFLO3dCQUNaLENBQUMsQ0FBQyxTQUFTO3dCQUNYLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTTs0QkFDZixDQUFDLENBQUMsZ0JBQWdCOzRCQUNsQixDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLEtBQUs7b0JBQ0gsSUFBSSxLQUFLLEtBQUs7d0JBQ1osQ0FBQyxDQUFDLFNBQVM7d0JBQ1gsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNOzRCQUNmLENBQUMsQ0FBQyxnQkFBZ0I7NEJBQ2xCLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGNBQWM7NEJBQ2hCLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGVBQWU7NEJBQ2pCLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGVBQWU7NEJBQ2pCLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLE1BQU07WUFDUjtnQkFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1FBQ1YsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0FqRFUsY0FBYztxR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUoxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvbG9yTGV2ZWwnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JMZXZlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGxldmVsOiBzdHJpbmcsIHR5cGU6ICdzdmcnIHwgJ2JnJyB8ICd0ZXh0JyA9ICdiZycpOiBzdHJpbmcge1xuICAgIGxldCBjb2xvcjtcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlICdPSyc6XG4gICAgICAgIGNvbG9yID1cbiAgICAgICAgICB0eXBlID09PSAnc3ZnJ1xuICAgICAgICAgICAgPyAnIzEwQjk4MSdcbiAgICAgICAgICAgIDogdHlwZSA9PT0gJ3RleHQnXG4gICAgICAgICAgICAgID8gJ3RleHQtZ3JlZW4tNjAwJ1xuICAgICAgICAgICAgICA6ICdiZy1ncmVlbi02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dBUk5JTkcnOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyNGNTlFMEInXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LWFtYmVyLTYwMCdcbiAgICAgICAgICAgICAgOiAnYmcteWVsbG93LTYwMCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ1JJVElDQUwnOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyNFRjQ0NDQnXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LXJlZC02MDAnXG4gICAgICAgICAgICAgIDogJ2JnLXJlZC02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0lORk8nOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyMzQjgyRjYnXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LWJsdWUtNjAwJ1xuICAgICAgICAgICAgICA6ICdiZy1ibHVlLTYwMCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQU5ZJzpcbiAgICAgICAgY29sb3IgPVxuICAgICAgICAgIHR5cGUgPT09ICdzdmcnXG4gICAgICAgICAgICA/ICcjNzg3MTZDJ1xuICAgICAgICAgICAgOiB0eXBlID09PSAndGV4dCdcbiAgICAgICAgICAgICAgPyAndGV4dC1ncmF5LTYwMCdcbiAgICAgICAgICAgICAgOiAnYmctZ3JheS02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVucmVzb2x2ZWQgbGV2ZWwgJHtsZXZlbH1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport { formatDistanceToNow } from 'date-fns';\nimport * as i0 from \"@angular/core\";\nexport class DateAgoPipe {\n transform(value) {\n return formatDistanceToNow(value);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: DateAgoPipe, isStandalone: false, name: \"dateAgo\", pure: false });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: DateAgoPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'dateAgo',\n pure: false,\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvZGF0ZS1hZ28ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBTy9DLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzt1R0FIVSxXQUFXO3FHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBTHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGlzdGFuY2VUb05vdyB9IGZyb20gJ2RhdGUtZm5zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZUFnbycsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZVRvTm93KHZhbHVlKTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BytesPipe } from './bytes.pipe';\nimport { ColorLevelPipe } from './color-level.pipe';\nimport { DateAgoPipe } from './date-ago.pipe';\nimport * as i0 from \"@angular/core\";\nexport class UiPipesModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: UiPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: UiPipesModule, declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe], imports: [CommonModule], exports: [BytesPipe, ColorLevelPipe, DateAgoPipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: UiPipesModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: UiPipesModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvY29yZS9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU85QyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsaUJBRlQsU0FBUyxFQUFFLGNBQWMsRUFBRSxXQUFXLGFBRjNDLFlBQVksYUFDWixTQUFTLEVBQUUsY0FBYyxFQUFFLFdBQVc7d0dBR3JDLGFBQWEsWUFKZCxZQUFZOzsyRkFJWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUM7b0JBQ2pELFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCeXRlc1BpcGUgfSBmcm9tICcuL2J5dGVzLnBpcGUnO1xuaW1wb3J0IHsgQ29sb3JMZXZlbFBpcGUgfSBmcm9tICcuL2NvbG9yLWxldmVsLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUFnb1BpcGUgfSBmcm9tICcuL2RhdGUtYWdvLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0J5dGVzUGlwZSwgQ29sb3JMZXZlbFBpcGUsIERhdGVBZ29QaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbQnl0ZXNQaXBlLCBDb2xvckxldmVsUGlwZSwgRGF0ZUFnb1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBVaVBpcGVzTW9kdWxlIHt9XG4iXX0=","const SUPPORTED_LANGUAGES = ['en', 'de'];\nexport function InlineLoaderFactory(loader) {\n return SUPPORTED_LANGUAGES.reduce((acc, lang) => {\n acc[lang] = () => loader(lang);\n return acc;\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvdXRpbHMvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRXpDLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsTUFBMEM7SUFFMUMsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDOUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhhc2hNYXAgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5jb25zdCBTVVBQT1JURURfTEFOR1VBR0VTID0gWydlbicsICdkZSddO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5saW5lTG9hZGVyRmFjdG9yeShcbiAgbG9hZGVyOiAobGFuZzogc3RyaW5nKSA9PiBQcm9taXNlPEhhc2hNYXA+LFxuKSB7XG4gIHJldHVybiBTVVBQT1JURURfTEFOR1VBR0VTLnJlZHVjZSgoYWNjLCBsYW5nKSA9PiB7XG4gICAgYWNjW2xhbmddID0gKCkgPT4gbG9hZGVyKGxhbmcpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbiJdfQ==","export function iconForMimeType(mimetype) {\n if (!mimetype) {\n return 'file';\n }\n if (mimetype.startsWith('audio')) {\n return 'file_audio';\n }\n else if (mimetype.startsWith('image')) {\n return 'image';\n }\n else if (mimetype.startsWith('text')) {\n return 'file_text';\n }\n else if (mimetype.startsWith('video')) {\n return 'file_video';\n }\n else {\n return ({\n 'application/pdf': 'file_pdf',\n 'application/json': 'file_text',\n 'application/js': 'file_text',\n 'application/msword': 'file_text',\n 'application/gzip': 'file_zip',\n 'application/typescript': 'file_text',\n 'application/vnd.rar': 'file_zip',\n 'application/x-7z-compressed': 'file_zip',\n 'application/x-tar': 'file_zip',\n 'application/xml': 'file_text',\n 'application/zip': 'file_zip',\n }[mimetype] || 'file');\n }\n}\nexport function labelForMimeType(mimetype) {\n if (!mimetype) {\n return 'unknown';\n }\n if (mimetype.startsWith('audio')) {\n return 'audio';\n }\n else if (mimetype.startsWith('image')) {\n return 'image';\n }\n else if (mimetype.startsWith('text')) {\n return 'text';\n }\n else if (mimetype.startsWith('video')) {\n return 'video';\n }\n else {\n return ({\n 'application/pdf': 'pdf',\n 'application/json': 'text',\n 'application/js': 'text',\n 'application/msword': 'text',\n 'application/gzip': 'archive',\n 'application/typescript': 'text',\n 'application/vnd.rar': 'archive',\n 'application/x-7z-compressed': 'archive',\n 'application/x-tar': 'archive',\n 'application/xml': 'text',\n 'application/zip': 'archive',\n }[mimetype] || 'unknown');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWltZXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL3V0aWxzL21pbWV0eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBZ0I7SUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUNMO1lBQ0UsaUJBQWlCLEVBQUUsVUFBVTtZQUM3QixrQkFBa0IsRUFBRSxXQUFXO1lBQy9CLGdCQUFnQixFQUFFLFdBQVc7WUFDN0Isb0JBQW9CLEVBQUUsV0FBVztZQUNqQyxrQkFBa0IsRUFBRSxVQUFVO1lBQzlCLHdCQUF3QixFQUFFLFdBQVc7WUFDckMscUJBQXFCLEVBQUUsVUFBVTtZQUNqQyw2QkFBNkIsRUFBRSxVQUFVO1lBQ3pDLG1CQUFtQixFQUFFLFVBQVU7WUFDL0IsaUJBQWlCLEVBQUUsV0FBVztZQUM5QixpQkFBaUIsRUFBRSxVQUFVO1NBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUN0QixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUNMO1lBQ0UsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLHdCQUF3QixFQUFFLE1BQU07WUFDaEMscUJBQXFCLEVBQUUsU0FBUztZQUNoQyw2QkFBNkIsRUFBRSxTQUFTO1lBQ3hDLG1CQUFtQixFQUFFLFNBQVM7WUFDOUIsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixpQkFBaUIsRUFBRSxTQUFTO1NBQzdCLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUN6QixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaWNvbkZvck1pbWVUeXBlKG1pbWV0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIW1pbWV0eXBlKSB7XG4gICAgcmV0dXJuICdmaWxlJztcbiAgfVxuXG4gIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdhdWRpbycpKSB7XG4gICAgcmV0dXJuICdmaWxlX2F1ZGlvJztcbiAgfSBlbHNlIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZScpKSB7XG4gICAgcmV0dXJuICdpbWFnZSc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgcmV0dXJuICdmaWxlX3RleHQnO1xuICB9IGVsc2UgaWYgKG1pbWV0eXBlLnN0YXJ0c1dpdGgoJ3ZpZGVvJykpIHtcbiAgICByZXR1cm4gJ2ZpbGVfdmlkZW8nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAnZmlsZV9wZGYnLFxuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6ICdmaWxlX3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vanMnOiAnZmlsZV90ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCc6ICdmaWxlX3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vZ3ppcCc6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JzogJ2ZpbGVfdGV4dCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQucmFyJzogJ2ZpbGVfemlwJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi94LXRhcic6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi94bWwnOiAnZmlsZV90ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ppcCc6ICdmaWxlX3ppcCcsXG4gICAgICB9W21pbWV0eXBlXSB8fCAnZmlsZSdcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbEZvck1pbWVUeXBlKG1pbWV0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIW1pbWV0eXBlKSB7XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxuXG4gIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdhdWRpbycpKSB7XG4gICAgcmV0dXJuICdhdWRpbyc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UnKSkge1xuICAgIHJldHVybiAnaW1hZ2UnO1xuICB9IGVsc2UgaWYgKG1pbWV0eXBlLnN0YXJ0c1dpdGgoJ3RleHQnKSkge1xuICAgIHJldHVybiAndGV4dCc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgndmlkZW8nKSkge1xuICAgIHJldHVybiAndmlkZW8nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAncGRmJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiAndGV4dCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi9qcyc6ICd0ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCc6ICd0ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2d6aXAnOiAnYXJjaGl2ZScsXG4gICAgICAgICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JzogJ3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLnJhcic6ICdhcmNoaXZlJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc6ICdhcmNoaXZlJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtdGFyJzogJ2FyY2hpdmUnLFxuICAgICAgICAnYXBwbGljYXRpb24veG1sJzogJ3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vemlwJzogJ2FyY2hpdmUnLFxuICAgICAgfVttaW1ldHlwZV0gfHwgJ3Vua25vd24nXG4gICAgKTtcbiAgfVxufVxuIl19","export { InlineLoaderFactory } from './i18n';\nexport { iconForMimeType, labelForMimeType } from './mimetype';\nexport function saveAs(blob, name) {\n const anchor = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n anchor.style.display = 'none';\n anchor.download = name;\n anchor.rel = 'noopener';\n if (typeof blob === 'string') {\n anchor.href = blob;\n if (anchor.origin !== location.origin) {\n anchor.target = '_blank';\n corsEnabled(anchor.href) ? download(blob, name) : anchor.click();\n }\n else {\n anchor.click();\n }\n }\n else {\n anchor.href = URL.createObjectURL(blob);\n setTimeout(() => URL.revokeObjectURL(anchor.href), 4e4);\n setTimeout(() => anchor.click(), 0);\n }\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\nfunction download(url, name) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name);\n };\n xhr.send();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9ELE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBbUIsRUFBRSxJQUFZO0lBQ3RELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQ3JDLDhCQUE4QixFQUM5QixHQUFHLENBQ2lCLENBQUM7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBRXhCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN6QixXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBRztJQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUM7UUFDSCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFDZCxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQzFCLEdBQUcsQ0FBQyxNQUFNLEdBQUc7UUFDWCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW5saW5lTG9hZGVyRmFjdG9yeSB9IGZyb20gJy4vaTE4bic7XG5leHBvcnQgeyBpY29uRm9yTWltZVR5cGUsIGxhYmVsRm9yTWltZVR5cGUgfSBmcm9tICcuL21pbWV0eXBlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcyhibG9iOiBCbG9iIHwgc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgICAnYScsXG4gICkgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gIGFuY2hvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBhbmNob3IuZG93bmxvYWQgPSBuYW1lO1xuICBhbmNob3IucmVsID0gJ25vb3BlbmVyJztcblxuICBpZiAodHlwZW9mIGJsb2IgPT09ICdzdHJpbmcnKSB7XG4gICAgYW5jaG9yLmhyZWYgPSBibG9iO1xuICAgIGlmIChhbmNob3Iub3JpZ2luICE9PSBsb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIGFuY2hvci50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgIGNvcnNFbmFibGVkKGFuY2hvci5ocmVmKSA/IGRvd25sb2FkKGJsb2IsIG5hbWUpIDogYW5jaG9yLmNsaWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuY2hvci5jbGljaygpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhbmNob3IuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgc2V0VGltZW91dCgoKSA9PiBVUkwucmV2b2tlT2JqZWN0VVJMKGFuY2hvci5ocmVmKSwgNGU0KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IGFuY2hvci5jbGljaygpLCAwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb3JzRW5hYmxlZCh1cmwpIHtcbiAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gIHhoci5vcGVuKCdIRUFEJywgdXJsLCBmYWxzZSk7XG4gIHRyeSB7XG4gICAgeGhyLnNlbmQoKTtcbiAgfSBjYXRjaCAoZSkge31cbiAgcmV0dXJuIHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPD0gMjk5O1xufVxuXG5mdW5jdGlvbiBkb3dubG9hZCh1cmw6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICB4aHIub3BlbignR0VUJywgdXJsKTtcbiAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBzYXZlQXMoeGhyLnJlc3BvbnNlLCBuYW1lKTtcbiAgfTtcbiAgeGhyLnNlbmQoKTtcbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxExtendedPdfViewerModule, pdfDefaultOptions, } from 'ngx-extended-pdf-viewer';\nimport { NGXLogger } from 'ngx-logger';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { ApiService } from '../../core/api.service';\nimport { IconComponent } from '../../core/icons';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-markdown\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/dialog\";\nimport * as i4 from \"ngx-extended-pdf-viewer\";\nexport class PreviewComponent {\n content;\n isLoading = false;\n pageNumber;\n previewUrl;\n token;\n markdown;\n apiService = inject(ApiService);\n logger = inject(NGXLogger);\n sanitizer = inject(DomSanitizer);\n constructor() {\n const data = inject(MAT_DIALOG_DATA);\n pdfDefaultOptions.assetsFolder = 'assets/ngx-extended-pdf';\n this.pageNumber = data.pageNumber || 1;\n this.content = data;\n }\n get pdfSrc() {\n if (this.content?.id) {\n return this.apiService.downloadContent(this.content.id);\n }\n else {\n return null;\n }\n }\n ngOnInit() {\n this.apiService.getAccessToken().then((t) => (this.token = `Bearer ${t}`));\n if (this.content.mimetype === 'application/pdf') {\n // ignore\n }\n else if (this.content.mimetype?.startsWith('image/')) {\n this.loadPreview();\n }\n else if (this.content.mimetype?.startsWith('text/')) {\n if (typeof this.content.analysis === 'object') {\n this.markdown = this.content.analysis.text;\n }\n }\n }\n loadPreview() {\n if (this.isLoading || !this.content.id) {\n return;\n }\n this.isLoading = true;\n this.apiService\n .downloadContent(this.content.id, 'preview-lg')\n .then((data) => {\n const blob = new Blob([data], { type: 'image/png' });\n this.previewUrl = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(blob));\n this.isLoading = false;\n })\n .catch((error) => {\n this.logger.error(error);\n this.isLoading = false;\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: PreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: PreviewComponent, isStandalone: true, selector: \"ai-content-preview\", ngImport: i0, template: \"<ng-container>\\n <div mat-dialog-title class=\\\"relative\\\">\\n <div class=\\\"truncate pr-10\\\">{{ content.filename }}</div>\\n <button\\n mat-icon-button\\n matDialogClose\\n class=\\\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\"></ai-icon>\\n </button>\\n </div>\\n <div mat-dialog-content class=\\\"flex grow flex-col\\\">\\n @if (markdown) {\\n <div class=\\\"w-full overflow-y-auto rounded-xl bg-white p-4\\\">\\n <markdown class=\\\"markdown-body\\\" [data]=\\\"markdown\\\"></markdown>\\n </div>\\n } @else if (content.mimetype === 'application/pdf') {\\n <div class=\\\"mx-auto w-[50rem] sm:h-[65vh]\\\">\\n <ngx-extended-pdf-viewer\\n [authorization]=\\\"token\\\"\\n [src]=\\\"pdfSrc\\\"\\n [disableHistory]=\\\"true\\\"\\n [showBorders]=\\\"false\\\"\\n [showDownloadButton]=\\\"false\\\"\\n [showDrawEditor]=\\\"false\\\"\\n [showEditor]=\\\"false\\\"\\n [showHighlightEditor]=\\\"false\\\"\\n [showOpenFileButton]=\\\"false\\\"\\n [showPrintButton]=\\\"false\\\"\\n [showRotateButton]=\\\"false\\\"\\n [showSecondaryToolbarButton]=\\\"false\\\"\\n [showSidebarButton]=\\\"false\\\"\\n [showStampEditor]=\\\"false\\\"\\n [showTextEditor]=\\\"false\\\"\\n [sidebarVisible]=\\\"false\\\"\\n [useBrowserLocale]=\\\"true\\\"\\n [zoom]=\\\"auto\\\"\\n [page]=\\\"pageNumber\\\"\\n ></ngx-extended-pdf-viewer>\\n </div>\\n } @else if (previewUrl) {\\n <div\\n class=\\\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\\\"\\n >\\n <div class=\\\"w-full overflow-hidden rounded-lg\\\">\\n <img class=\\\"w-full\\\" [src]=\\\"previewUrl\\\" alt=\\\"\\\" />\\n </div>\\n </div>\\n }\\n </div>\\n</ng-container>\\n\", dependencies: [{ kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MarkdownModule }, { kind: \"component\", type: i1.MarkdownComponent, selector: \"markdown, [markdown]\", inputs: [\"data\", \"src\", \"disableSanitizer\", \"inline\", \"clipboard\", \"clipboardButtonComponent\", \"clipboardButtonTemplate\", \"emoji\", \"katex\", \"katexOptions\", \"mermaid\", \"mermaidOptions\", \"lineHighlight\", \"line\", \"lineOffset\", \"lineNumbers\", \"start\", \"commandLine\", \"filterOutput\", \"host\", \"prompt\", \"output\", \"user\"], outputs: [\"error\", \"load\", \"ready\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i3.MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }, { kind: \"directive\", type: i3.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: i3.MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"ngmodule\", type: NgxExtendedPdfViewerModule }, { kind: \"component\", type: i4.NgxExtendedPdfViewerComponent, selector: \"ngx-extended-pdf-viewer\", inputs: [\"customFindbarInputArea\", \"customToolbar\", \"customFindbar\", \"customFindbarButtons\", \"customPdfViewer\", \"customSecondaryToolbar\", \"customSidebar\", \"customThumbnail\", \"customFreeFloatingBar\", \"showFreeFloatingBar\", \"enableDragAndDrop\", \"forceUsingLegacyES5\", \"formData\", \"disableForms\", \"pageViewMode\", \"scrollMode\", \"authorization\", \"httpHeaders\", \"contextMenuAllowed\", \"enablePrint\", \"enablePrintAutoRotate\", \"forceFullReloadOfJavaScriptCode\", \"showTextEditor\", \"showStampEditor\", \"showDrawEditor\", \"showHighlightEditor\", \"logLevel\", \"minifiedJSLibraries\", \"printResolution\", \"rotation\", \"src\", \"base64Src\", \"minHeight\", \"height\", \"backgroundColor\", \"filenameForDownload\", \"ignoreKeyboard\", \"ignoreKeys\", \"acceptKeys\", \"imageResourcesPath\", \"localeFolderPath\", \"language\", \"listenToURL\", \"nameddest\", \"password\", \"replaceBrowserPrint\", \"useInlineScripts\", \"showUnverifiedSignatures\", \"startTabindex\", \"showSidebarButton\", \"sidebarVisible\", \"activeSidebarView\", \"findbarVisible\", \"propertiesDialogVisible\", \"showFindButton\", \"showFindHighlightAll\", \"showFindMatchCase\", \"showFindMultiple\", \"showFindRegexp\", \"showFindEntireWord\", \"showFindMatchDiacritics\", \"showFindResultsCount\", \"showFindMessages\", \"showPagingButtons\", \"showFirstAndLastPageButtons\", \"showPreviousAndNextPageButtons\", \"showPageNumber\", \"showPageLabel\", \"showZoomButtons\", \"showZoomDropdown\", \"showPresentationModeButton\", \"showOpenFileButton\", \"showPrintButton\", \"showDownloadButton\", \"theme\", \"showToolbar\", \"showSecondaryToolbarButton\", \"showSinglePageModeButton\", \"showVerticalScrollButton\", \"showHorizontalScrollButton\", \"showWrappedScrollButton\", \"showInfiniteScrollButton\", \"showBookModeButton\", \"showRotateButton\", \"showRotateCwButton\", \"showRotateCcwButton\", \"handTool\", \"showHandToolButton\", \"showSpreadButton\", \"showPropertiesButton\", \"showBorders\", \"spread\", \"showScrollingButtons\", \"page\", \"pageLabel\", \"textLayer\", \"zoom\", \"zoomLevels\", \"maxZoom\", \"minZoom\", \"mobileFriendlyZoom\"], outputs: [\"annotationEditorEvent\", \"formDataChange\", \"pageViewModeChange\", \"progress\", \"srcChange\", \"scrollModeChange\", \"afterPrint\", \"beforePrint\", \"currentZoomFactor\", \"rotationChange\", \"annotationLayerRendered\", \"annotationEditorLayerRendered\", \"xfaLayerRendered\", \"outlineLoaded\", \"attachmentsloaded\", \"layersloaded\", \"sidebarVisibleChange\", \"activeSidebarViewChange\", \"findbarVisibleChange\", \"propertiesDialogVisibleChange\", \"handToolChange\", \"spreadChange\", \"thumbnailDrawn\", \"pageChange\", \"pageLabelChange\", \"pagesLoaded\", \"pageRender\", \"pageRendered\", \"pdfDownloaded\", \"pdfLoaded\", \"pdfLoadingStarts\", \"pdfLoadingFailed\", \"textLayerRendered\", \"annotationEditorModeChanged\", \"updateFindMatchesCount\", \"updateFindState\", \"zoomChange\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: PreviewComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatDialogModule,\n NgxExtendedPdfViewerModule,\n ], selector: 'ai-content-preview', template: \"<ng-container>\\n <div mat-dialog-title class=\\\"relative\\\">\\n <div class=\\\"truncate pr-10\\\">{{ content.filename }}</div>\\n <button\\n mat-icon-button\\n matDialogClose\\n class=\\\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\"></ai-icon>\\n </button>\\n </div>\\n <div mat-dialog-content class=\\\"flex grow flex-col\\\">\\n @if (markdown) {\\n <div class=\\\"w-full overflow-y-auto rounded-xl bg-white p-4\\\">\\n <markdown class=\\\"markdown-body\\\" [data]=\\\"markdown\\\"></markdown>\\n </div>\\n } @else if (content.mimetype === 'application/pdf') {\\n <div class=\\\"mx-auto w-[50rem] sm:h-[65vh]\\\">\\n <ngx-extended-pdf-viewer\\n [authorization]=\\\"token\\\"\\n [src]=\\\"pdfSrc\\\"\\n [disableHistory]=\\\"true\\\"\\n [showBorders]=\\\"false\\\"\\n [showDownloadButton]=\\\"false\\\"\\n [showDrawEditor]=\\\"false\\\"\\n [showEditor]=\\\"false\\\"\\n [showHighlightEditor]=\\\"false\\\"\\n [showOpenFileButton]=\\\"false\\\"\\n [showPrintButton]=\\\"false\\\"\\n [showRotateButton]=\\\"false\\\"\\n [showSecondaryToolbarButton]=\\\"false\\\"\\n [showSidebarButton]=\\\"false\\\"\\n [showStampEditor]=\\\"false\\\"\\n [showTextEditor]=\\\"false\\\"\\n [sidebarVisible]=\\\"false\\\"\\n [useBrowserLocale]=\\\"true\\\"\\n [zoom]=\\\"auto\\\"\\n [page]=\\\"pageNumber\\\"\\n ></ngx-extended-pdf-viewer>\\n </div>\\n } @else if (previewUrl) {\\n <div\\n class=\\\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\\\"\\n >\\n <div class=\\\"w-full overflow-hidden rounded-lg\\\">\\n <img class=\\\"w-full\\\" [src]=\\\"previewUrl\\\" alt=\\\"\\\" />\\n </div>\\n </div>\\n }\\n </div>\\n</ng-container>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFhakQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixPQUFPLENBQTRDO0lBQ25ELFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBVTtJQUNwQixLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFFRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsU0FBUyxHQUFH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Q2YsZUFBZTt3QkFDZiwwQkFBMEI7cUJBQzNCLFlBQ1Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHR5cGUgeyBDb250ZW50IH0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQge1xuICBOZ3hFeHRlbmRlZFBkZlZpZXdlck1vZHVsZSxcbiAgcGRmRGVmYXVsdE9wdGlvbnMsXG59IGZyb20gJ25neC1leHRlbmRlZC1wZGYtdmlld2VyJztcbmltcG9ydCB7IE5HWExvZ2dlciB9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHsgTWFya2Rvd25Nb2R1bGUgfSBmcm9tICduZ3gtbWFya2Rvd24nO1xuXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE5neEV4dGVuZGVkUGRmVmlld2VyTW9kdWxlLFxuICBdLFxuICBzZWxlY3RvcjogJ2FpLWNvbnRlbnQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnRlbnQ6IENvbnRlbnQgJiB7IGFuYWx5c2lzPzogeyB0ZXh0OiBzdHJpbmcgfSB9O1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xuICBwcmV2aWV3VXJsOiBTYWZlVXJsO1xuICB0b2tlbjogc3RyaW5nO1xuICBtYXJrZG93bj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KE5HWExvZ2dlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuXG4gICAgcGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyID0gJ2Fzc2V0cy9uZ3gtZXh0ZW5kZWQtcGRmJztcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBkYXRhLnBhZ2VOdW1iZXIgfHwgMTtcbiAgICB0aGlzLmNvbnRlbnQgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IHBkZlNyYygpIHtcbiAgICBpZiAodGhpcy5jb250ZW50Py5pZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kb3dubG9hZENvbnRlbnQodGhpcy5jb250ZW50LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkudGhlbigodCkgPT4gKHRoaXMudG9rZW4gPSBgQmVhcmVyICR7dH1gKSk7XG4gICAgaWYgKHRoaXMuY29udGVudC5taW1ldHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpIHtcbiAgICAgIC8vIGlnbm9yZVxuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50Lm1pbWV0eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xuICAgICAgdGhpcy5sb2FkUHJldmlldygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50Lm1pbWV0eXBlPy5zdGFydHNXaXRoKCd0ZXh0LycpKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29udGVudC5hbmFseXNpcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5tYXJrZG93biA9IHRoaXMuY29udGVudC5hbmFseXNpcy50ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByZXZpZXcoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8ICF0aGlzLmNvbnRlbnQuaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZG93bmxvYWRDb250ZW50KHRoaXMuY29udGVudC5pZCwgJ3ByZXZpZXctbGcnKVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcbiAgICAgICAgdGhpcy5wcmV2aWV3VXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcbiAgICAgICAgICB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0cnVuY2F0ZSBwci0xMFwiPnt7IGNvbnRlbnQuZmlsZW5hbWUgfX08L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIG1hdERpYWxvZ0Nsb3NlXG4gICAgICBjbGFzcz1cInNtYWxsIGFic29sdXRlIHJpZ2h0LTQgdG9wLTQgYmctemluYy01MCB0ZXh0LXppbmMtNTAwIGhvdmVyOmJnLXppbmMtMTAwIGhvdmVyOnRleHQtemluYy05MDAgZGFyazpiZy16aW5jLTkwMCBkYXJrOnRleHQtemluYy00MDAgZGFyazpob3ZlcjpiZy16aW5jLTgwMCBkYXJrOmhvdmVyOnRleHQtemluYy01MFwiXG4gICAgPlxuICAgICAgPGFpLWljb24gbmFtZT1cImRpc21pc3NcIj48L2FpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbFwiPlxuICAgIEBpZiAobWFya2Rvd24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgb3ZlcmZsb3cteS1hdXRvIHJvdW5kZWQteGwgYmctd2hpdGUgcC00XCI+XG4gICAgICAgIDxtYXJrZG93biBjbGFzcz1cIm1hcmtkb3duLWJvZHlcIiBbZGF0YV09XCJtYXJrZG93blwiPjwvbWFya2Rvd24+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChjb250ZW50Lm1pbWV0eXBlID09PSAnYXBwbGljYXRpb24vcGRmJykge1xuICAgICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gdy1bNTByZW1dIHNtOmgtWzY1dmhdXCI+XG4gICAgICAgIDxuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxuICAgICAgICAgIFthdXRob3JpemF0aW9uXT1cInRva2VuXCJcbiAgICAgICAgICBbc3JjXT1cInBkZlNyY1wiXG4gICAgICAgICAgW2Rpc2FibGVIaXN0b3J5XT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dEb3dubG9hZEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dEcmF3RWRpdG9yXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd0VkaXRvcl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dIaWdobGlnaHRFZGl0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93T3BlbkZpbGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93UHJpbnRCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93Um90YXRlQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1NlY29uZGFyeVRvb2xiYXJCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93U2lkZWJhckJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dTdGFtcEVkaXRvcl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dUZXh0RWRpdG9yXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2lkZWJhclZpc2libGVdPVwiZmFsc2VcIlxuICAgICAgICAgIFt1c2VCcm93c2VyTG9jYWxlXT1cInRydWVcIlxuICAgICAgICAgIFt6b29tXT1cImF1dG9cIlxuICAgICAgICAgIFtwYWdlXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICA+PC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKHByZXZpZXdVcmwpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncm91cCByZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy0zMDAvNDAgYmctemluYy0zMDAvMzAgcC00IGRhcms6Ym9yZGVyLXppbmMtNzAwLzQwIGRhcms6YmctemluYy03MDAvMzBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cInctZnVsbFwiIFtzcmNdPVwicHJldmlld1VybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, InjectionToken } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService } from '../context.service';\nimport { PreviewComponent } from '../preview/preview.component';\nimport { IconComponent } from '../../core/icons';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/progress-spinner\";\nimport * as i4 from \"@angular/material/tooltip\";\nimport * as i5 from \"@jsverse/transloco\";\nimport * as i6 from \"../../core/pipes/bytes.pipe\";\nimport * as i7 from \"../../core/pipes/date-ago.pipe\";\nexport const OVERLAY_PAGE_NUMBER = new InjectionToken('OVERLAY_PAGE_NUMBER');\nexport const OVERLAY_RESOURCE_ID = new InjectionToken('OVERLAY_RESOURCE_ID');\nexport const OVERLAY_RESOURCE_TYPE = new InjectionToken('OVERLAY_RESOURCE_TYPE');\nexport class ContextOverlayComponent {\n resourceId = inject(OVERLAY_RESOURCE_ID);\n resourceType = inject(OVERLAY_RESOURCE_TYPE);\n pageNumber = inject(OVERLAY_PAGE_NUMBER);\n contextService = inject(ContextService);\n matDialog = inject(MatDialog);\n get resource() {\n return this.contextService.getContext(this.resourceId);\n }\n get status() {\n return this.contextService.status.get(this.resourceId);\n }\n get asset() {\n if (this.resourceType === 'content') {\n return this.contextService.assetForContent(this.resourceId);\n }\n else if (this.resourceType === 'event') {\n return this.contextService.assetForEvent(this.resource);\n }\n return null;\n }\n iconForMimeType() {\n if (this.resourceType === 'asset') {\n return 'asset';\n }\n else if (this.resourceType === 'asset-type') {\n return 'cube';\n }\n else if (this.resourceType === 'content') {\n return iconForMimeType(this.resource?.mimetype);\n }\n else if (this.resourceType === 'event') {\n return 'calendar_clock';\n }\n }\n labelForType() {\n if (this.resourceType === 'content') {\n return ('content.file_type.' +\n labelForMimeType(this.resource?.mimetype));\n }\n else if (this.resourceType === 'asset-type') {\n return 'assettype';\n }\n else {\n return this.resourceType;\n }\n }\n previewContent(pageNumber) {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource;\n this.matDialog.open(PreviewComponent, {\n autoFocus: false,\n panelClass: 'upload-modal',\n data: { ...content, pageNumber },\n });\n }\n }\n isPreviewSupported() {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource;\n return (content.mimetype?.startsWith('image') ||\n content.mimetype === 'application/pdf' ||\n content.mimetype === 'text/markdown');\n }\n else {\n return false;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ContextOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: ContextOverlayComponent, isStandalone: true, selector: \"ng-component\", ngImport: i0, template: \"<div\\n class=\\\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (resource) {\\n @if (pageNumber) {\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n <div class=\\\"flex items-center gap-x-1\\\">\\n <span>{{ t('ai.source') }}:</span>\\n <button\\n class=\\\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\\\"\\n (click)=\\\"previewContent(pageNumber)\\\"\\n >\\n {{ t('page') }} {{ pageNumber }}\\n </button>\\n <span>{{ t('ai.of_document') }}</span>\\n </div>\\n <div class=\\\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\\\"></div>\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n <div>\\n {{ resource?.filename }}\\n </div>\\n </div>\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ asset.name }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\\\"\\n >\\n <div\\n class=\\\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n </div>\\n <div class=\\\"w-full overflow-hidden\\\">\\n <div class=\\\"flex w-full flex-col items-center pr-8 sm:items-start\\\">\\n <div\\n class=\\\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\\\"\\n >\\n {{ resource?.name || resource?.filename }}\\n </div>\\n <div\\n class=\\\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\\\"\\n >\\n <span>{{ t(labelForType()) }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n @if (resource?.owner?.name) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"shield_person\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ t('owner.managed_by') }}\\n <span class=\\\"font-semibold\\\">{{ resource.owner.name }}</span>\\n </div>\\n </div>\\n }\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\\n </div>\\n }\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"history\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"flex flex-col gap-x-2 sm:flex-row sm:items-center\\\">\\n @if (\\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\\n ) {\\n <span>\\n {{ t('last_updated') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.updatedAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.updatedAt | dateAgo }}\\n </span>\\n </span>\\n } @else {\\n <span>\\n {{ t('created') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.createdAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.createdAt | dateAgo }}\\n </span>\\n </span>\\n }\\n </div>\\n </div>\\n @if (resource?.description) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"slide_text\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"line-clamp-3\\\">{{ resource?.description }}</div>\\n </div>\\n }\\n @if (resource?.size) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"drive\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ resource?.size | bytes }}</div>\\n </div>\\n }\\n @if (isPreviewSupported()) {\\n <div class=\\\"w-full px-4 pt-4\\\">\\n <button\\n mat-raised-button\\n color=\\\"primary\\\"\\n class=\\\"w-full\\\"\\n (click)=\\\"previewContent()\\\"\\n >\\n {{ t('show_preview') }}\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (status?.isLoading) {\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col gap-y-1 px-2 py-1\\\">\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', { item: t(resourceType?.replace('-', '_')) })\\n }}</span>\\n <span class=\\\"text-xs\\\">{{ resourceId }}</span>\\n </div>\\n }\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i1.DatePipe, name: \"date\" }, { kind: \"ngmodule\", type: ClipboardModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i3.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i4.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i5.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }, { kind: \"pipe\", type: i6.BytesPipe, name: \"bytes\" }, { kind: \"pipe\", type: i7.DateAgoPipe, name: \"dateAgo\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ContextOverlayComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n ClipboardModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TranslocoModule,\n UiPipesModule,\n ], template: \"<div\\n class=\\\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (resource) {\\n @if (pageNumber) {\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n <div class=\\\"flex items-center gap-x-1\\\">\\n <span>{{ t('ai.source') }}:</span>\\n <button\\n class=\\\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\\\"\\n (click)=\\\"previewContent(pageNumber)\\\"\\n >\\n {{ t('page') }} {{ pageNumber }}\\n </button>\\n <span>{{ t('ai.of_document') }}</span>\\n </div>\\n <div class=\\\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\\\"></div>\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n <div>\\n {{ resource?.filename }}\\n </div>\\n </div>\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ asset.name }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\\\"\\n >\\n <div\\n class=\\\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n </div>\\n <div class=\\\"w-full overflow-hidden\\\">\\n <div class=\\\"flex w-full flex-col items-center pr-8 sm:items-start\\\">\\n <div\\n class=\\\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\\\"\\n >\\n {{ resource?.name || resource?.filename }}\\n </div>\\n <div\\n class=\\\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\\\"\\n >\\n <span>{{ t(labelForType()) }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n @if (resource?.owner?.name) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"shield_person\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ t('owner.managed_by') }}\\n <span class=\\\"font-semibold\\\">{{ resource.owner.name }}</span>\\n </div>\\n </div>\\n }\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\\n </div>\\n }\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"history\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"flex flex-col gap-x-2 sm:flex-row sm:items-center\\\">\\n @if (\\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\\n ) {\\n <span>\\n {{ t('last_updated') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.updatedAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.updatedAt | dateAgo }}\\n </span>\\n </span>\\n } @else {\\n <span>\\n {{ t('created') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.createdAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.createdAt | dateAgo }}\\n </span>\\n </span>\\n }\\n </div>\\n </div>\\n @if (resource?.description) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"slide_text\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"line-clamp-3\\\">{{ resource?.description }}</div>\\n </div>\\n }\\n @if (resource?.size) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"drive\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ resource?.size | bytes }}</div>\\n </div>\\n }\\n @if (isPreviewSupported()) {\\n <div class=\\\"w-full px-4 pt-4\\\">\\n <button\\n mat-raised-button\\n color=\\\"primary\\\"\\n class=\\\"w-full\\\"\\n (click)=\\\"previewContent()\\\"\\n >\\n {{ t('show_preview') }}\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (status?.isLoading) {\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col gap-y-1 px-2 py-1\\\">\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', { item: t(resourceType?.replace('-', '_')) })\\n }}</span>\\n <span class=\\\"text-xs\\\">{{ resourceId }}</span>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL2NvbnRleHQtb3ZlcmxheS9jb250ZXh0LW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY29udGV4dC1vdmVybGF5L2NvbnRleHQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQTJCLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFF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QUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsVUFBVSxFQUFFO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFtQixDQUFDO1lBQ3pDLE9BQU8sQ0FDTCxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxRQUFRLEtBQUssaUJBQWlCO2dCQUN0QyxPQUFPLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FDckMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzt1R0E3RVUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsd0VDdkNwQyx3OUtBc0pBLDJDRDFISSxZQUFZLGlGQUNaLGVBQWUsK0JBQ2YsYUFBYSxzRkFDYixlQUFlLG1YQUNmLHdCQUF3QixrT0FDeEIsZ0JBQWdCLDRUQUNoQixlQUFlLG1QQUNmLGFBQWE7OzJGQUlKLHVCQUF1QjtrQkFibkMsU0FBUzs4QkFDQzt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgdHlwZSB7IEFzc2V0LCBBc3NldFR5cGUsIENvbnRlbnQsIEV2ZW50IH0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQgeyBpY29uRm9yTWltZVR5cGUsIGxhYmVsRm9yTWltZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IFVpUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBTdGF0dXMgYXMgQ29udGV4dFN0YXR1cyB9IGZyb20gJy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pY29ucyc7XG5cbmV4cG9ydCBjb25zdCBPVkVSTEFZX1BBR0VfTlVNQkVSID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXG4gICdPVkVSTEFZX1BBR0VfTlVNQkVSJyxcbik7XG5leHBvcnQgY29uc3QgT1ZFUkxBWV9SRVNPVVJDRV9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnT1ZFUkxBWV9SRVNPVVJDRV9JRCcsXG4pO1xuZXhwb3J0IGNvbnN0IE9WRVJMQVlfUkVTT1VSQ0VfVFlQRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnT1ZFUkxBWV9SRVNPVVJDRV9UWVBFJyxcbik7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgVWlQaXBlc01vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRPdmVybGF5Q29tcG9uZW50IHtcbiAgcmVzb3VyY2VJZCA9IGluamVjdChPVkVSTEFZX1JFU09VUkNFX0lEKTtcbiAgcmVzb3VyY2VUeXBlID0gaW5qZWN0KE9WRVJMQVlfUkVTT1VSQ0VfVFlQRSkgYXNcbiAgICB8ICdhc3NldCdcbiAgICB8ICdhc3NldC10eXBlJ1xuICAgIHwgJ2NvbnRlbnQnXG4gICAgfCAnZXZlbnQnXG4gICAgfCAnd2ViLXNvdXJjZSc7XG4gIHBhZ2VOdW1iZXIgPSBpbmplY3QoT1ZFUkxBWV9QQUdFX05VTUJFUik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChDb250ZXh0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgZ2V0IHJlc291cmNlKCk6IEFzc2V0IHwgQXNzZXRUeXBlIHwgQ29udGVudCB8IEV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHRoaXMucmVzb3VyY2VJZCk7XG4gIH1cblxuICBnZXQgc3RhdHVzKCk6IENvbnRleHRTdGF0dXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHRoaXMucmVzb3VyY2VJZCk7XG4gIH1cblxuICBnZXQgYXNzZXQoKTogQXNzZXQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYXNzZXRGb3JDb250ZW50KHRoaXMucmVzb3VyY2VJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlc291cmNlVHlwZSA9PT0gJ2V2ZW50Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYXNzZXRGb3JFdmVudCh0aGlzLnJlc291cmNlIGFzIEV2ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpY29uRm9yTWltZVR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdhc3NldCcpIHtcbiAgICAgIHJldHVybiAnYXNzZXQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdhc3NldC10eXBlJykge1xuICAgICAgcmV0dXJuICdjdWJlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcpIHtcbiAgICAgIHJldHVybiBpY29uRm9yTWltZVR5cGUoKHRoaXMucmVzb3VyY2UgYXMgQ29udGVudCk/Lm1pbWV0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnZXZlbnQnKSB7XG4gICAgICByZXR1cm4gJ2NhbGVuZGFyX2Nsb2NrJztcbiAgICB9XG4gIH1cblxuICBsYWJlbEZvclR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ2NvbnRlbnQuZmlsZV90eXBlLicgK1xuICAgICAgICBsYWJlbEZvck1pbWVUeXBlKCh0aGlzLnJlc291cmNlIGFzIENvbnRlbnQpPy5taW1ldHlwZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0LXR5cGUnKSB7XG4gICAgICByZXR1cm4gJ2Fzc2V0dHlwZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZTtcbiAgICB9XG4gIH1cblxuICBwcmV2aWV3Q29udGVudChwYWdlTnVtYmVyPzogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcgJiYgdGhpcy5yZXNvdXJjZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzb3VyY2UgYXMgQ29udGVudDtcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oUHJldmlld0NvbXBvbmVudCwge1xuICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICBwYW5lbENsYXNzOiAndXBsb2FkLW1vZGFsJyxcbiAgICAgICAgZGF0YTogeyAuLi5jb250ZW50LCBwYWdlTnVtYmVyIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpc1ByZXZpZXdTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcgJiYgdGhpcy5yZXNvdXJjZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzb3VyY2UgYXMgQ29udGVudDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvbnRlbnQubWltZXR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlJykgfHxcbiAgICAgICAgY29udGVudC5taW1ldHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHxcbiAgICAgICAgY29udGVudC5taW1ldHlwZSA9PT0gJ3RleHQvbWFya2Rvd24nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicmVsYXRpdmUgbWluLXctNDggbWF4LXctbWQgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci16aW5jLTQwMC81MCBiZy16aW5jLTEwMC82MCBwLTQgc2hhZG93LW1kIGJhY2tkcm9wLWJsdXItbWQgZGFyazpib3JkZXItemluYy02MDAvNTAgZGFyazpiZy16aW5jLTgwMC82MFwiXG4gICp0cmFuc2xvY289XCJsZXQgdFwiXG4+XG4gIEBpZiAocmVzb3VyY2UpIHtcbiAgICBAaWYgKHBhZ2VOdW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAteS0yIHB4LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTFcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdhaS5zb3VyY2UnKSB9fTo8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJsdWUtNzAwIHVuZGVybGluZSBob3Zlcjp0ZXh0LWJsdWUtNTAwIGRhcms6dGV4dC1ibHVlLTEwMCBkYXJrOmhvdmVyOnRleHQtYmx1ZS00MDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXdDb250ZW50KHBhZ2VOdW1iZXIpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdwYWdlJykgfX0ge3sgcGFnZU51bWJlciB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2FpLm9mX2RvY3VtZW50JykgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBoLTAuNSBiZy16aW5jLTIwMCBkYXJrOmJnLXppbmMtNzAwXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZSgpXCJcbiAgICAgICAgICAgIHNpemU9XCIyMFwiXG4gICAgICAgICAgICBjbGFzcz1cImljb24tc21cIlxuICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IHJlc291cmNlPy5maWxlbmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChhc3NldCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiYXNzZXRcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7eyBhc3NldC5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC14LTMgcGItNCBzbTpmbGV4LXJvdyBzbTpqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItemluYy0zMDAvNTAgYmctemluYy0zMDAvNDAgcC0yIGRhcms6Ym9yZGVyLXppbmMtNzAwLzUwIGRhcms6YmctemluYy03MDAvMzBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZSgpXCJcbiAgICAgICAgICAgIHNpemU9XCIyMFwiXG4gICAgICAgICAgICBjbGFzcz1cImljb24tc21cIlxuICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgcHItOCBzbTppdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCB0cnVuY2F0ZSB0ZXh0LW1kIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTk1MCBkYXJrOnRleHQtemluYy01MFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHJlc291cmNlPy5uYW1lIHx8IHJlc291cmNlPy5maWxlbmFtZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHRleHQtc20gdGV4dC16aW5jLTkwMC83MCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIgZGFyazp0ZXh0LXppbmMtMTAwLzcwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdChsYWJlbEZvclR5cGUoKSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAteS0yIHB4LTJcIj5cbiAgICAgICAgQGlmIChyZXNvdXJjZT8ub3duZXI/Lm5hbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cInNoaWVsZF9wZXJzb25cIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7eyB0KCdvd25lci5tYW5hZ2VkX2J5JykgfX1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgcmVzb3VyY2Uub3duZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYXNzZXQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cImFzc2V0XCIgc2l6ZT1cIjIwXCIgY2xhc3M9XCJpY29uLXNtXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgPGRpdj57eyBhc3NldC5uYW1lIH19ICh7eyBhc3NldC50eXBlJG5hbWUgfX0pPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTNcIj5cbiAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiaGlzdG9yeVwiIHNpemU9XCIyMFwiIGNsYXNzPVwiaWNvbi1zbVwiPjwvYWktaWNvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHNtOmZsZXgtcm93IHNtOml0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgcmVzb3VyY2U/LnVwZGF0ZWRBdCAmJiByZXNvdXJjZT8udXBkYXRlZEF0ICE9PSByZXNvdXJjZT8uY3JlYXRlZEF0XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgdCgnbGFzdF91cGRhdGVkJykgfX1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgcmVzb3VyY2U/LnVwZGF0ZWRBdCB8IGRhdGU6ICdtZWRpdW0nIH19XCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInRleHQtc21cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHJlc291cmNlPy51cGRhdGVkQXQgfCBkYXRlQWdvIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgdCgnY3JlYXRlZCcpIH19XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IHJlc291cmNlPy5jcmVhdGVkQXQgfCBkYXRlOiAnbWVkaXVtJyB9fVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJ0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyByZXNvdXJjZT8uY3JlYXRlZEF0IHwgZGF0ZUFnbyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChyZXNvdXJjZT8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cInNsaWRlX3RleHRcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1jbGFtcC0zXCI+e3sgcmVzb3VyY2U/LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyZXNvdXJjZT8uc2l6ZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiZHJpdmVcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2Pnt7IHJlc291cmNlPy5zaXplIHwgYnl0ZXMgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlzUHJldmlld1N1cHBvcnRlZCgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBweC00IHB0LTRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlld0NvbnRlbnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHQoJ3Nob3dfcHJldmlldycpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9IEBlbHNlIGlmIChzdGF0dXM/LmlzTG9hZGluZykge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc3Bpbm5lciBzdHJva2VXaWR0aD1cIjFcIiBkaWFtZXRlcj1cIjE4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLXktMSBweC0yIHB5LTFcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgdCgndG9hc3RfZXJyb3JfbG9hZF9pdGVtJywgeyBpdGVtOiB0KHJlc291cmNlVHlwZT8ucmVwbGFjZSgnLScsICdfJykpIH0pXG4gICAgICB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14c1wiPnt7IHJlc291cmNlSWQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, inject, Injector, Input, ViewContainerRef, } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { IconComponent } from '../../core/icons';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService } from '../context.service';\nimport { ChatService } from '../chat.service';\nimport { ContextOverlayComponent, OVERLAY_PAGE_NUMBER, OVERLAY_RESOURCE_ID, OVERLAY_RESOURCE_TYPE, } from '../context-overlay/context-overlay.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/accordion\";\nimport * as i2 from \"@angular/material/progress-spinner\";\nimport * as i3 from \"@jsverse/transloco\";\nexport class MessageContextComponent {\n isLastMessage;\n message;\n chatService = inject(ChatService);\n contextService = inject(ContextService);\n iconForMimeType = iconForMimeType;\n labelForMimeType = labelForMimeType;\n uniqueReferences = [];\n processedIds = new Set();\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n overlayRef = null;\n ngOnChanges(changes) {\n if (changes['message']) {\n this.processReferences();\n }\n }\n processReferences() {\n this.uniqueReferences = [];\n this.processedIds.clear();\n if (this.message?.parsedContent?.references) {\n this.uniqueReferences = this.message.parsedContent.references.filter((ref) => {\n if (this.processedIds.has(ref.id)) {\n return false;\n }\n this.processedIds.add(ref.id);\n return true;\n });\n }\n }\n openOverlay(event, resourceId, resourceType, pageNumber) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(ContextOverlayComponent, this.viewContainerRef, injector);\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: MessageContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: MessageContextComponent, isStandalone: true, selector: \"ai-message-context\", inputs: { isLastMessage: \"isLastMessage\", message: \"message\" }, usesOnChanges: true, ngImport: i0, template: \"<cdk-accordion *transloco=\\\"let t\\\">\\n <cdk-accordion-item\\n #accordionItem=\\\"cdkAccordionItem\\\"\\n [expanded]=\\\"isLastMessage\\\"\\n >\\n <div\\n class=\\\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (message?.parsedContent?.references?.length) {\\n <div\\n class=\\\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n (click)=\\\"accordionItem.toggle()\\\"\\n (keyup.enter)=\\\"accordionItem.toggle()\\\"\\n tabindex=\\\"0\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-bold\\\">{{ t('ai.context') }}</span>\\n </div>\\n @if (accordionItem.expanded) {\\n <div class=\\\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\\\">\\n @for (ref of uniqueReferences; track ref.reference_id) {\\n @if (contextService.getContext(ref.id); as resource) {\\n @if (\\n ref.resourceType === 'asset' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (resource.type$name) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{\\n resource.type$name\\n }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (ref.resourceType === 'content') {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType(resource.mimetype)\\\"\\n ></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.filename\\n }}</span>\\n @if (\\n contextService.assetForContent(resource.id);\\n as asset\\n ) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'event' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"calendar_clock\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (contextService.assetForEvent(resource); as asset) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'asset-type' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"cube\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n } @else if (contextService.status.get(ref.id)?.isLoading) {\\n <div\\n class=\\\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n </div>\\n } @else {\\n <div\\n class=\\\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\\\"\\n >\\n <ai-icon name=\\\"error_circle\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full flex-col pr-4\\\">\\n @if (contextService.status.get(ref.id)?.notFound) {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_not_found_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n } @else {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n }\\n <span class=\\\"text-xs\\\">{{ ref.id }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n }\\n }\\n </div>\\n </cdk-accordion-item>\\n</cdk-accordion>\\n\", styles: [\"@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CdkAccordionModule }, { kind: \"directive\", type: i1.CdkAccordion, selector: \"cdk-accordion, [cdkAccordion]\", inputs: [\"multi\"], exportAs: [\"cdkAccordion\"] }, { kind: \"directive\", type: i1.CdkAccordionItem, selector: \"cdk-accordion-item, [cdkAccordionItem]\", inputs: [\"expanded\", \"disabled\"], outputs: [\"closed\", \"opened\", \"destroyed\", \"expandedChange\"], exportAs: [\"cdkAccordionItem\"] }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i2.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i3.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: MessageContextComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CdkAccordionModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ], selector: 'ai-message-context', template: \"<cdk-accordion *transloco=\\\"let t\\\">\\n <cdk-accordion-item\\n #accordionItem=\\\"cdkAccordionItem\\\"\\n [expanded]=\\\"isLastMessage\\\"\\n >\\n <div\\n class=\\\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (message?.parsedContent?.references?.length) {\\n <div\\n class=\\\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n (click)=\\\"accordionItem.toggle()\\\"\\n (keyup.enter)=\\\"accordionItem.toggle()\\\"\\n tabindex=\\\"0\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-bold\\\">{{ t('ai.context') }}</span>\\n </div>\\n @if (accordionItem.expanded) {\\n <div class=\\\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\\\">\\n @for (ref of uniqueReferences; track ref.reference_id) {\\n @if (contextService.getContext(ref.id); as resource) {\\n @if (\\n ref.resourceType === 'asset' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (resource.type$name) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{\\n resource.type$name\\n }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (ref.resourceType === 'content') {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType(resource.mimetype)\\\"\\n ></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.filename\\n }}</span>\\n @if (\\n contextService.assetForContent(resource.id);\\n as asset\\n ) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'event' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"calendar_clock\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (contextService.assetForEvent(resource); as asset) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'asset-type' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"cube\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n } @else if (contextService.status.get(ref.id)?.isLoading) {\\n <div\\n class=\\\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n </div>\\n } @else {\\n <div\\n class=\\\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\\\"\\n >\\n <ai-icon name=\\\"error_circle\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full flex-col pr-4\\\">\\n @if (contextService.status.get(ref.id)?.notFound) {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_not_found_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n } @else {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n }\\n <span class=\\\"text-xs\\\">{{ ref.id }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n }\\n }\\n </div>\\n </cdk-accordion-item>\\n</cdk-accordion>\\n\", styles: [\"@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\\n\"] }]\n }], propDecorators: { isLastMessage: [{\n type: Input\n }], message: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb250ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL21lc3NhZ2UtY29udGV4dC9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvbWVzc2FnZS1jb250ZXh0L21lc3NhZ2UtY29udGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1QkFBdUIs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YUFDM0Q7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVE7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQ2hDLHVCQUF1QixFQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7dUdBbEZVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLG1LQzFDcEMsMm5WQWdPQSw0T0RsTUksa0JBQWtCLDZZQUNsQixhQUFhLHNGQUNiLGVBQWUsOEJBQ2Ysd0JBQXdCLGtPQUN4QixhQUFhLDhCQUNiLGVBQWUsbVBBQ2YsYUFBYTs7MkZBTUosdUJBQXVCO2tCQWRuQyxTQUFTOzhCQUNDO3dCQUNQLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QsWUFDUyxvQkFBb0I7OEJBS3JCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5TW9kdWxlLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaWNvbnMnO1xuaW1wb3J0IHsgaWNvbkZvck1pbWVUeXBlLCBsYWJlbEZvck1pbWVUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBVaVBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBBc3Npc3RhbnRNZXNzYWdlLCBDaGF0U2VydmljZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgT1ZFUkxBWV9QQUdFX05VTUJFUixcbiAgT1ZFUkxBWV9SRVNPVVJDRV9JRCxcbiAgT1ZFUkxBWV9SRVNPVVJDRV9UWVBFLFxufSBmcm9tICcuLi9jb250ZXh0LW92ZXJsYXkvY29udGV4dC1vdmVybGF5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQ2RrQWNjb3JkaW9uTW9kdWxlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgICBVaVBpcGVzTW9kdWxlLFxuICBdLFxuICBzZWxlY3RvcjogJ2FpLW1lc3NhZ2UtY29udGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWVzc2FnZS1jb250ZXh0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUNvbnRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc0xhc3RNZXNzYWdlOiBib29sZWFuO1xuICBASW5wdXQoKSBtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlO1xuXG4gIHJlYWRvbmx5IGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQ29udGV4dFNlcnZpY2UpO1xuICBpY29uRm9yTWltZVR5cGUgPSBpY29uRm9yTWltZVR5cGU7XG4gIGxhYmVsRm9yTWltZVR5cGUgPSBsYWJlbEZvck1pbWVUeXBlO1xuICB1bmlxdWVSZWZlcmVuY2VzOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgcHJvY2Vzc2VkSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21lc3NhZ2UnXSkge1xuICAgICAgdGhpcy5wcm9jZXNzUmVmZXJlbmNlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1JlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgdGhpcy51bmlxdWVSZWZlcmVuY2VzID0gW107XG4gICAgdGhpcy5wcm9jZXNzZWRJZHMuY2xlYXIoKTtcblxuICAgIGlmICh0aGlzLm1lc3NhZ2U/LnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpIHtcbiAgICAgIHRoaXMudW5pcXVlUmVmZXJlbmNlcyA9IHRoaXMubWVzc2FnZS5wYXJzZWRDb250ZW50LnJlZmVyZW5jZXMuZmlsdGVyKFxuICAgICAgICAocmVmKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucHJvY2Vzc2VkSWRzLmhhcyhyZWYuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucHJvY2Vzc2VkSWRzLmFkZChyZWYuaWQpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvcGVuT3ZlcmxheShcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcmVzb3VyY2VUeXBlPzogJ2Fzc2V0JyB8ICdhc3NldC10eXBlJyB8ICdjb250ZW50JyB8ICdldmVudCcgfCAnd2ViLXNvdXJjZScsXG4gICAgcGFnZU51bWJlcj86IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9SRVNPVVJDRV9JRCwgdXNlVmFsdWU6IHJlc291cmNlSWQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1JFU09VUkNFX1RZUEUsIHVzZVZhbHVlOiByZXNvdXJjZVR5cGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1BBR0VfTlVNQkVSLCB1c2VWYWx1ZTogcGFnZU51bWJlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IENvbnRleHRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5jb250ZXh0U2VydmljZSB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgIH0pO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIGluamVjdG9yLFxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCkpO1xuICB9XG59XG4iLCI8Y2RrLWFjY29yZGlvbiAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPGNkay1hY2NvcmRpb24taXRlbVxuICAgICNhY2NvcmRpb25JdGVtPVwiY2RrQWNjb3JkaW9uSXRlbVwiXG4gICAgW2V4cGFuZGVkXT1cImlzTGFzdE1lc3NhZ2VcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4IG1pbi13LTgwIG1heC13LWZ1bGwgZmxleC1jb2wgcm91bmRlZC0yeGwgYmctemluYy0zMDAvNDAgcHQtMyBkYXJrOmJnLXppbmMtNzAwLzMwXCJcbiAgICA+XG4gICAgICBAaWYgKG1lc3NhZ2U/LnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXM/Lmxlbmd0aCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBnYXAteC0zIHB4LTUgcGItMyB0ZXh0LXppbmMtODAwIGRhcms6dGV4dC16aW5jLTMwMFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjY29yZGlvbkl0ZW0udG9nZ2xlKClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJhY2NvcmRpb25JdGVtLnRvZ2dsZSgpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFpLWljb24gbmFtZT1cImxheWVyX2RpYWdvbmFsX3NwYXJrbGVcIj48L2FpLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57eyB0KCdhaS5jb250ZXh0JykgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGFjY29yZGlvbkl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vd3JhcCBnYXAteC0zIG92ZXJmbG93LXgtYXV0byBweC01IHBiLTNcIj5cbiAgICAgICAgICAgIEBmb3IgKHJlZiBvZiB1bmlxdWVSZWZlcmVuY2VzOyB0cmFjayByZWYucmVmZXJlbmNlX2lkKSB7XG4gICAgICAgICAgICAgIEBpZiAoY29udGV4dFNlcnZpY2UuZ2V0Q29udGV4dChyZWYuaWQpOyBhcyByZXNvdXJjZSkge1xuICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICByZWYucmVzb3VyY2VUeXBlID09PSAnYXNzZXQnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiYXNzZXRcIj48L2FpLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBncm93IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwci00XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZXNvdXJjZS50eXBlJG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UudHlwZSRuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHJlZi5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pbi13LTQwIG1heC13LTgwIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy00MDAvNDAgYmctemluYy00MDAvMjAgaG92ZXI6YmctemluYy00MDAvMzAgZGFyazpib3JkZXItYmxhY2svNTAgZGFyazpiZy1ibGFjay8yMFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuT3ZlcmxheSgkZXZlbnQsIHJlZi5pZCwgcmVmLnJlc291cmNlVHlwZSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgb3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBweC0yIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hbmltYXRlLWhpZ2hsaWdodF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLmlkID09PSBjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoYW5pbWF0aW9uZW5kKT1cImNoYXRTZXJ2aWNlLmhpZ2hsaWdodENvbnRleHQgPSAnJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC0xMCB3LTEwIHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItemluYy00MDAvMzBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZShyZXNvdXJjZS5taW1ldHlwZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UuZmlsZW5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFNlcnZpY2UuYXNzZXRGb3JDb250ZW50KHJlc291cmNlLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYXNzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGFzc2V0Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+wrc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGFzc2V0LnR5cGUkbmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICByZWYucmVzb3VyY2VUeXBlID09PSAnZXZlbnQnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiY2FsZW5kYXJfY2xvY2tcIj48L2FpLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBncm93IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwci00XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250ZXh0U2VydmljZS5hc3NldEZvckV2ZW50KHJlc291cmNlKTsgYXMgYXNzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBhc3NldC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPsK3PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBhc3NldC50eXBlJG5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgcmVmLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0LXR5cGUnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiY3ViZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChjb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHJlZi5pZCk/LmlzTG9hZGluZykge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIHB4LTIgcHktMSBkYXJrOmJvcmRlci1ibGFjay81MCBkYXJrOmJnLWJsYWNrLzIwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLTEwIHctMTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBzdHJva2VXaWR0aD1cIjFcIiBkaWFtZXRlcj1cIjE4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pbi13LTQwIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy00MDAvNDAgYmctemluYy00MDAvMjAgZGFyazpib3JkZXItYmxhY2svNTAgZGFyazpiZy1ibGFjay8yMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBweC0yIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXJlZC0zMDAgYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAgZGFyazpib3JkZXItcmVkLTkwMCBkYXJrOmJnLXJlZC05NTAvODAgZGFyazp0ZXh0LXJlZC00MDBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cImVycm9yX2NpcmNsZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCBmbGV4LWNvbCBwci00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHJlZi5pZCk/Lm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHQoJ3RvYXN0X2Vycm9yX25vdF9mb3VuZF9pdGVtJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHQocmVmLnJlc291cmNlVHlwZT8ucmVwbGFjZSgnLScsICdfJykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHQoJ3RvYXN0X2Vycm9yX2xvYWRfaXRlbScsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiB0KHJlZi5yZXNvdXJjZVR5cGU/LnJlcGxhY2UoJy0nLCAnXycpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHNcIj57eyByZWYuaWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Nkay1hY2NvcmRpb24taXRlbT5cbjwvY2RrLWFjY29yZGlvbj5cbiJdfQ==","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, inject, Injector, ViewContainerRef, } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { IconComponent } from '../../core/icons';\nimport { UiPipesModule } from '../../core/pipes/pipes.module';\nimport { ChatService } from '../chat.service';\nimport { ContextOverlayComponent, OVERLAY_PAGE_NUMBER, OVERLAY_RESOURCE_ID, OVERLAY_RESOURCE_TYPE, } from '../context-overlay/context-overlay.component';\nimport { MessageContextComponent } from '../message-context/message-context.component';\nimport { ContextService } from '../context.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-markdown\";\nimport * as i2 from \"@angular/material/progress-spinner\";\nimport * as i3 from \"@angular/material/tooltip\";\nimport * as i4 from \"@jsverse/transloco\";\nexport class ThreadComponent {\n chatService = inject(ChatService);\n contextService = inject(ContextService);\n selection;\n translocoService = inject(TranslocoService);\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n overlayRef = null;\n ngOnDestroy() {\n this.chatService.closeThread();\n }\n openOverlay(event, resourceId, resourceType, pageNumber) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(ContextOverlayComponent, this.viewContainerRef, injector);\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n interceptClick(event) {\n const element = event.target;\n if (!(element instanceof HTMLAnchorElement)) {\n return;\n }\n let href = element.getAttribute('href');\n if (href.startsWith('$')) {\n href = href.substring(1);\n const params = href.split(',');\n const queryParams = params.reduce((acc, param) => {\n const [key, value] = param.split('=');\n acc[key] = value;\n return acc;\n }, {});\n if (queryParams.ref && queryParams.msg) {\n const message = this.chatService.messages.find((m) => m.id === queryParams.msg);\n if (message) {\n const { references } = message.parsedContent;\n const reference = references?.find((ref) => ref.reference_id === parseInt(queryParams.ref, 10));\n if (reference?.id) {\n const { id, pageNumber } = reference;\n this.chatService.highlightContext = id;\n this.openOverlay(event, id, reference.resourceType, pageNumber);\n }\n else {\n // this.toastService.error(\n // this.translocoService.translate('ai.reference_not_found'),\n // );\n }\n }\n }\n event.preventDefault();\n }\n }\n /**\n * Processes message content by:\n * 1. Converting names in quotes to bold references if they exist in the context cache\n * 2. Replacing reference IDs with clickable superscript elements\n *\n * @param message The assistant or user message to process\n * @returns Processed markdown content with enhanced references\n */\n getMarkdownContent(message) {\n const content = message.parsedContent?.response;\n let processedContent;\n if (typeof content !== 'string') {\n return '';\n }\n try {\n processedContent = content.replace(/'([^'\"]*)'|\"([^'\"]*)\"/g, (match, singleQuoted, doubleQuoted) => {\n const name = singleQuoted || doubleQuoted;\n const id = this.contextService.getIdForName(name);\n if (!id) {\n return name;\n }\n const reference = message.parsedContent?.references.find((ref) => ref.id === id);\n return reference ? `**${name}**[[${reference.reference_id}]]` : name;\n });\n }\n catch (_) {\n processedContent = content;\n }\n return processedContent.replace(/\\[\\[([\\s\\S]*?)\\]\\]/g, (match, inner) => {\n const ids = inner.match(/\\d+/g);\n if (!ids) {\n return match;\n }\n return ids\n .map((id) => `<sup><b>[[${id}]]($ref=${id},msg=${message.id},)</b></sup>`)\n .join(', ');\n });\n }\n getToolStatus(item) {\n const statusMessage = this.translocoService.translate(`ai.tools.${item.toolName}.${item.status}`);\n return statusMessage || null;\n }\n getFailReason(item) {\n const reason = this.translocoService.translate(`ai.finish_reason.${item.finishReason}`);\n return (reason || this.translocoService.translate('ai.finish_reason.unknown'));\n }\n getToolResult(item) {\n try {\n return JSON.parse(item.result.value);\n }\n catch (_) {\n return null;\n }\n }\n selectChoice(selection, toolMessage) {\n this.chatService.selectChoice(selection, toolMessage);\n }\n trackByMessageId(item) {\n return item.responseId || item.id || '';\n }\n retry(message) {\n if (!message) {\n return;\n }\n this.chatService.retryMessage(message);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ThreadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: ThreadComponent, isStandalone: true, selector: \"ai-thread\", ngImport: i0, template: \"<div\\n class=\\\"relative flex h-full w-full flex-col gap-1 px-6 py-4\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (chatService.isLoading) {\\n <div\\n class=\\\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\\\"\\n >\\n <mat-spinner diameter=\\\"28\\\"></mat-spinner>\\n </div>\\n }\\n @for (\\n item of chatService.messages;\\n track trackByMessageId(item);\\n let idx = $index\\n ) {\\n @if (item.role === 'assistant' && item.parsedContent) {\\n @if (item.status === 'failed') {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col self-center p-2 md:max-w-[85%]\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-4 rounded-2xl bg-red-200/20 px-6 py-4 text-md md:text-lg dark:bg-red-800/20\\\"\\n >\\n <ai-icon\\n name=\\\"error_circle\\\"\\n class=\\\"text-red-600/80 icon-md dark:text-red-400/80\\\"\\n ></ai-icon>\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n ></markdown>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (\\n item.role === 'assistant' &&\\n item.status === 'failed' &&\\n getFailReason(item)\\n ) {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-600/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n <span>{{ getFailReason(item) }}</span>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'action' &&\\n item.status &&\\n getToolStatus(item)\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\\\">\\n <div\\n class=\\\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\\\"\\n >\\n @if (item.status === 'completed') {\\n <ai-icon\\n name=\\\"checkmark_circle\\\"\\n class=\\\"text-green-500/80 icon-sm dark:text-green-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'failed') {\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-500/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'pending') {\\n <ai-icon\\n name=\\\"hourglass_quarter\\\"\\n class=\\\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\\\"\\n ></ai-icon>\\n } @else if (item.status === 'processing') {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <i>{{ getToolStatus(item) }}</i>\\n @if (item.status === 'completed') {\\n @if (getToolResult(item); as result) {\\n @if (result.event?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n (keyup.enter)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.event.name }}\\n </a>\\n } @else if (result.content?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.content.id, 'content')\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, result.content.id, 'content')\\n \\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.content.filename }}\\n </a>\\n }\\n }\\n }\\n </div>\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'choice' &&\\n item.status === 'processing' &&\\n item.args?.choices\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\\\">\\n <div\\n class=\\\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (item.args.message) {\\n <div\\n class=\\\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-semibold\\\">{{ item.args.message }}</span>\\n </div>\\n }\\n <div class=\\\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\\\">\\n @for (choice of item.args.choices; track choice.id) {\\n <div\\n class=\\\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"selectChoice(choice, item)\\\"\\n (keyup.enter)=\\\"selectChoice(choice, item)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\">\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n choice.name\\n }}</span>\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ choice.typeName }}</span>\\n @if (choice.location) {\\n <span class=\\\"truncate\\\">{{ choice.location }}</span>\\n }\\n @if (choice.factory) {\\n <span class=\\\"truncate\\\">{{ choice.factory }}</span>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (item.role === 'user' && !item.hidden) {\\n <div class=\\\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\\\">\\n <div class=\\\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\\\">\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent?.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n </div>\\n </div>\\n }\\n }\\n\\n @if (chatService.isProcessing) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\\\">\\n <div class=\\\"flex flex-col gap-y-2 px-2 py-4\\\">\\n <div\\n class=\\\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\\\"\\n >\\n <div></div>\\n <div></div>\\n <div></div>\\n </div>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}.retry-button-inline{width:22px;height:22px;min-width:22px;min-height:22px;max-height:22px;line-height:normal;padding:0;background:transparent;box-shadow:none;border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CdkAccordionModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MarkdownModule }, { kind: \"component\", type: i1.MarkdownComponent, selector: \"markdown, [markdown]\", inputs: [\"data\", \"src\", \"disableSanitizer\", \"inline\", \"clipboard\", \"clipboardButtonComponent\", \"clipboardButtonTemplate\", \"emoji\", \"katex\", \"katexOptions\", \"mermaid\", \"mermaidOptions\", \"lineHighlight\", \"line\", \"lineOffset\", \"lineNumbers\", \"start\", \"commandLine\", \"filterOutput\", \"host\", \"prompt\", \"output\", \"user\"], outputs: [\"error\", \"load\", \"ready\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i2.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i3.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"component\", type: MessageContextComponent, selector: \"ai-message-context\", inputs: [\"isLastMessage\", \"message\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i4.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: ThreadComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CdkAccordionModule,\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MessageContextComponent,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ], selector: 'ai-thread', template: \"<div\\n class=\\\"relative flex h-full w-full flex-col gap-1 px-6 py-4\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (chatService.isLoading) {\\n <div\\n class=\\\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\\\"\\n >\\n <mat-spinner diameter=\\\"28\\\"></mat-spinner>\\n </div>\\n }\\n @for (\\n item of chatService.messages;\\n track trackByMessageId(item);\\n let idx = $index\\n ) {\\n @if (item.role === 'assistant' && item.parsedContent) {\\n @if (item.status === 'failed') {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col self-center p-2 md:max-w-[85%]\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-4 rounded-2xl bg-red-200/20 px-6 py-4 text-md md:text-lg dark:bg-red-800/20\\\"\\n >\\n <ai-icon\\n name=\\\"error_circle\\\"\\n class=\\\"text-red-600/80 icon-md dark:text-red-400/80\\\"\\n ></ai-icon>\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n ></markdown>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (\\n item.role === 'assistant' &&\\n item.status === 'failed' &&\\n getFailReason(item)\\n ) {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-600/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n <span>{{ getFailReason(item) }}</span>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'action' &&\\n item.status &&\\n getToolStatus(item)\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\\\">\\n <div\\n class=\\\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\\\"\\n >\\n @if (item.status === 'completed') {\\n <ai-icon\\n name=\\\"checkmark_circle\\\"\\n class=\\\"text-green-500/80 icon-sm dark:text-green-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'failed') {\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-500/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'pending') {\\n <ai-icon\\n name=\\\"hourglass_quarter\\\"\\n class=\\\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\\\"\\n ></ai-icon>\\n } @else if (item.status === 'processing') {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <i>{{ getToolStatus(item) }}</i>\\n @if (item.status === 'completed') {\\n @if (getToolResult(item); as result) {\\n @if (result.event?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n (keyup.enter)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.event.name }}\\n </a>\\n } @else if (result.content?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.content.id, 'content')\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, result.content.id, 'content')\\n \\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.content.filename }}\\n </a>\\n }\\n }\\n }\\n </div>\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'choice' &&\\n item.status === 'processing' &&\\n item.args?.choices\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\\\">\\n <div\\n class=\\\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (item.args.message) {\\n <div\\n class=\\\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-semibold\\\">{{ item.args.message }}</span>\\n </div>\\n }\\n <div class=\\\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\\\">\\n @for (choice of item.args.choices; track choice.id) {\\n <div\\n class=\\\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"selectChoice(choice, item)\\\"\\n (keyup.enter)=\\\"selectChoice(choice, item)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\">\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n choice.name\\n }}</span>\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ choice.typeName }}</span>\\n @if (choice.location) {\\n <span class=\\\"truncate\\\">{{ choice.location }}</span>\\n }\\n @if (choice.factory) {\\n <span class=\\\"truncate\\\">{{ choice.factory }}</span>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (item.role === 'user' && !item.hidden) {\\n <div class=\\\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\\\">\\n <div class=\\\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\\\">\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent?.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n </div>\\n </div>\\n }\\n }\\n\\n @if (chatService.isProcessing) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\\\">\\n <div class=\\\"flex flex-col gap-y-2 px-2 py-4\\\">\\n <div\\n class=\\\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\\\"\\n >\\n <div></div>\\n <div></div>\\n <div></div>\\n </div>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}.retry-button-inline{width:22px;height:22px;min-width:22px;min-height:22px;max-height:22px;line-height:normal;padding:0;background:transparent;box-shadow:none;border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3RocmVhZC90aHJlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvdGhyZWFkL3RocmVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBRVIsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBb0IsV0FBVyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBbUJwRCxNQUFNLE9BQU8sZUFBZTtJQUNqQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakQsU0FBUyxDQUFTO0lBRUQsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRCxVQUFVLEdBQXNCLElBQUksQ0FBQztJQUU3QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUNULEtBQWlCLEVBQ2pCLFVBQWtCLEVBQ2xCLFlBQTBFLEVBQzFFLFVBQW1CO1FBRW5CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDbEMsUUFBUSxFQUFFO2FBQ1YsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQXFCLENBQUM7YUFDaEQsYUFBYSxDQUFDO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3BDLGdCQUFnQjtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsa0NBQWtDO1NBQ2xELENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0IsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7Z0JBQ3RELEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7Z0JBQzFELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7Z0JBQ3RELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTthQUMzRDtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUTtTQUN2QyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FDaEMsdUJBQXVCLEVBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsUUFBUSxDQUNULENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQjtRQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsTUFBTSxXQUFXLEdBQTJCLE1BQU0sQ0FBQyxNQUFNLENBQ3ZELENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNiLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDakIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7WUFDRixJQUFJLFdBQVcsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzVDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxHQUFHLENBQ2hDLENBQUM7Z0JBQ0YsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUksT0FBNEIsQ0FBQyxhQUFhLENBQUM7b0JBQ25FLE1BQU0sU0FBUyxHQUFHLFVBQVUsRUFBRSxJQUFJLENBQ2hDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUM1RCxDQUFDO29CQUNGLElBQUksU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO3dCQUNsQixNQUFNLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7d0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNsRSxDQUFDO3lCQUFNLENBQUM7d0JBQ04sMkJBQTJCO3dCQUMzQiwrREFBK0Q7d0JBQy9ELEtBQUs7b0JBQ1AsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxrQkFBa0IsQ0FBQyxPQUF1QztRQUN4RCxNQUFNLE9BQU8sR0FBVyxPQUFPLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUN4RCxJQUFJLGdCQUFnQixDQUFDO1FBQ3JCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FDaEMsd0JBQXdCLEVBQ3hCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxJQUFJLFlBQVksQ0FBQztnQkFDMUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDUixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FDdEQsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUN2QixDQUFDO2dCQUNGLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxTQUFTLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RSxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLEdBQUc7aUJBQ1AsR0FBRyxDQUNGLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsT0FBTyxDQUFDLEVBQUUsY0FBYyxDQUNyRTtpQkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVM7UUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDbkQsWUFBWSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FDM0MsQ0FBQztRQUNGLE9BQU8sYUFBYSxJQUFJLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQUk7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDNUMsb0JBQW9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FDeEMsQ0FBQztRQUNGLE9BQU8sQ0FDTCxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLElBQUksQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFjLEVBQUUsV0FBZ0I7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQXlCO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzt1R0F2TFUsZUFBZTsyRkFBZixlQUFlLHFFQy9DNUIsMnBUQXFRQSx5b0JEck9JLGtCQUFrQiwrQkFDbEIsYUFBYSxzRkFDYixjQUFjLG9kQUNkLGVBQWUsOEJBQ2Ysd0JBQXdCLGtPQUN4QixnQkFBZ0IsNlRBQ2hCLHVCQUF1QixvR0FDdkIsYUFBYSw4QkFDYixlQUFlLG1QQUNmLGFBQWE7OzJGQU1KLGVBQWU7a0JBakIzQixTQUFTOzhCQUNDO3dCQUNQLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QsWUFDUyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5TW9kdWxlLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gJ0BoYWhucHJvL2hwYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IE1hcmtkb3duTW9kdWxlIH0gZnJvbSAnbmd4LW1hcmtkb3duJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaWNvbnMnO1xuaW1wb3J0IHsgVWlQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IEFzc2lzdGFudE1lc3NhZ2UsIENoYXRTZXJ2aWNlLCBVc2VyTWVzc2FnZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgT1ZFUkxBWV9QQUdFX05VTUJFUixcbiAgT1ZFUkxBWV9SRVNPVVJDRV9JRCxcbiAgT1ZFUkxBWV9SRVNPVVJDRV9UWVBFLFxufSBmcm9tICcuLi9jb250ZXh0LW92ZXJsYXkvY29udGV4dC1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtY29udGV4dC9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGV4dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBDZGtBY2NvcmRpb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWVzc2FnZUNvbnRleHRDb21wb25lbnQsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgVWlQaXBlc01vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdhaS10aHJlYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGhyZWFkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RocmVhZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQ29udGV4dFNlcnZpY2UpO1xuICBzZWxlY3Rpb246IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXRTZXJ2aWNlLmNsb3NlVGhyZWFkKCk7XG4gIH1cblxuICBvcGVuT3ZlcmxheShcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcmVzb3VyY2VUeXBlPzogJ2Fzc2V0JyB8ICdhc3NldC10eXBlJyB8ICdjb250ZW50JyB8ICdldmVudCcgfCAnd2ViLXNvdXJjZScsXG4gICAgcGFnZU51bWJlcj86IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9SRVNPVVJDRV9JRCwgdXNlVmFsdWU6IHJlc291cmNlSWQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1JFU09VUkNFX1RZUEUsIHVzZVZhbHVlOiByZXNvdXJjZVR5cGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1BBR0VfTlVNQkVSLCB1c2VWYWx1ZTogcGFnZU51bWJlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IENvbnRleHRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5jb250ZXh0U2VydmljZSB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgIH0pO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIGluamVjdG9yLFxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCkpO1xuICB9XG5cbiAgaW50ZXJjZXB0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGhyZWYgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgIGlmIChocmVmLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgICAgaHJlZiA9IGhyZWYuc3Vic3RyaW5nKDEpO1xuICAgICAgY29uc3QgcGFyYW1zID0gaHJlZi5zcGxpdCgnLCcpO1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBwYXJhbXMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhcmFtLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICk7XG4gICAgICBpZiAocXVlcnlQYXJhbXMucmVmICYmIHF1ZXJ5UGFyYW1zLm1zZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5jaGF0U2VydmljZS5tZXNzYWdlcy5maW5kKFxuICAgICAgICAgIChtKSA9PiBtLmlkID09PSBxdWVyeVBhcmFtcy5tc2csXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSAobWVzc2FnZSBhcyBBc3Npc3RhbnRNZXNzYWdlKS5wYXJzZWRDb250ZW50O1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXM/LmZpbmQoXG4gICAgICAgICAgICAocmVmKSA9PiByZWYucmVmZXJlbmNlX2lkID09PSBwYXJzZUludChxdWVyeVBhcmFtcy5yZWYsIDEwKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IGlkLCBwYWdlTnVtYmVyIH0gPSByZWZlcmVuY2U7XG4gICAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmhpZ2hsaWdodENvbnRleHQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMub3Blbk92ZXJsYXkoZXZlbnQsIGlkLCByZWZlcmVuY2UucmVzb3VyY2VUeXBlLCBwYWdlTnVtYmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAvLyAgIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2FpLnJlZmVyZW5jZV9ub3RfZm91bmQnKSxcbiAgICAgICAgICAgIC8vICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzZXMgbWVzc2FnZSBjb250ZW50IGJ5OlxuICAgKiAxLiBDb252ZXJ0aW5nIG5hbWVzIGluIHF1b3RlcyB0byBib2xkIHJlZmVyZW5jZXMgaWYgdGhleSBleGlzdCBpbiB0aGUgY29udGV4dCBjYWNoZVxuICAgKiAyLiBSZXBsYWNpbmcgcmVmZXJlbmNlIElEcyB3aXRoIGNsaWNrYWJsZSBzdXBlcnNjcmlwdCBlbGVtZW50c1xuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgYXNzaXN0YW50IG9yIHVzZXIgbWVzc2FnZSB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIFByb2Nlc3NlZCBtYXJrZG93biBjb250ZW50IHdpdGggZW5oYW5jZWQgcmVmZXJlbmNlc1xuICAgKi9cbiAgZ2V0TWFya2Rvd25Db250ZW50KG1lc3NhZ2U6IEFzc2lzdGFudE1lc3NhZ2UgfCBVc2VyTWVzc2FnZSk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudDogc3RyaW5nID0gbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZXNwb25zZTtcbiAgICBsZXQgcHJvY2Vzc2VkQ29udGVudDtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzZWRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKFxuICAgICAgICAvJyhbXidcIl0qKSd8XCIoW14nXCJdKilcIi9nLFxuICAgICAgICAobWF0Y2gsIHNpbmdsZVF1b3RlZCwgZG91YmxlUXVvdGVkKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHNpbmdsZVF1b3RlZCB8fCBkb3VibGVRdW90ZWQ7XG4gICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldElkRm9yTmFtZShuYW1lKTtcbiAgICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZWZlcmVuY2VzLmZpbmQoXG4gICAgICAgICAgICAocmVmKSA9PiByZWYuaWQgPT09IGlkLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZSA/IGAqKiR7bmFtZX0qKltbJHtyZWZlcmVuY2UucmVmZXJlbmNlX2lkfV1dYCA6IG5hbWU7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIHByb2Nlc3NlZENvbnRlbnQgPSBjb250ZW50O1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc2VkQ29udGVudC5yZXBsYWNlKC9cXFtcXFsoW1xcc1xcU10qPylcXF1cXF0vZywgKG1hdGNoLCBpbm5lcikgPT4ge1xuICAgICAgY29uc3QgaWRzID0gaW5uZXIubWF0Y2goL1xcZCsvZyk7XG4gICAgICBpZiAoIWlkcykge1xuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWRzXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKGlkKSA9PiBgPHN1cD48Yj5bWyR7aWR9XV0oJHJlZj0ke2lkfSxtc2c9JHttZXNzYWdlLmlkfSwpPC9iPjwvc3VwPmAsXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRUb29sU3RhdHVzKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzTWVzc2FnZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXG4gICAgICBgYWkudG9vbHMuJHtpdGVtLnRvb2xOYW1lfS4ke2l0ZW0uc3RhdHVzfWAsXG4gICAgKTtcbiAgICByZXR1cm4gc3RhdHVzTWVzc2FnZSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0RmFpbFJlYXNvbihpdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCByZWFzb24gPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgYGFpLmZpbmlzaF9yZWFzb24uJHtpdGVtLmZpbmlzaFJlYXNvbn1gLFxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlYXNvbiB8fCB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdhaS5maW5pc2hfcmVhc29uLnVua25vd24nKVxuICAgICk7XG4gIH1cblxuICBnZXRUb29sUmVzdWx0KGl0ZW0pIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoaXRlbS5yZXN1bHQudmFsdWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENob2ljZShzZWxlY3Rpb246IGFueSwgdG9vbE1lc3NhZ2U6IGFueSkge1xuICAgIHRoaXMuY2hhdFNlcnZpY2Uuc2VsZWN0Q2hvaWNlKHNlbGVjdGlvbiwgdG9vbE1lc3NhZ2UpO1xuICB9XG5cbiAgdHJhY2tCeU1lc3NhZ2VJZChpdGVtOiBNZXNzYWdlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS5yZXNwb25zZUlkIHx8IGl0ZW0uaWQgfHwgJyc7XG4gIH1cblxuICByZXRyeShtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlKSB7XG4gICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hhdFNlcnZpY2UucmV0cnlNZXNzYWdlKG1lc3NhZ2UpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicmVsYXRpdmUgZmxleCBoLWZ1bGwgdy1mdWxsIGZsZXgtY29sIGdhcC0xIHB4LTYgcHktNFwiXG4gICp0cmFuc2xvY289XCJsZXQgdFwiXG4+XG4gIEBpZiAoY2hhdFNlcnZpY2UuaXNMb2FkaW5nKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJhY2tkcm9wLWJsdXItbGdcIlxuICAgID5cbiAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjI4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuICBAZm9yIChcbiAgICBpdGVtIG9mIGNoYXRTZXJ2aWNlLm1lc3NhZ2VzO1xuICAgIHRyYWNrIHRyYWNrQnlNZXNzYWdlSWQoaXRlbSk7XG4gICAgbGV0IGlkeCA9ICRpbmRleFxuICApIHtcbiAgICBAaWYgKGl0ZW0ucm9sZSA9PT0gJ2Fzc2lzdGFudCcgJiYgaXRlbS5wYXJzZWRDb250ZW50KSB7XG4gICAgICBAaWYgKGl0ZW0uc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBzZWxmLWNlbnRlciBwLTIgbWQ6bWF4LXctWzg1JV1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IHJvdW5kZWQtMnhsIGJnLXJlZC0yMDAvMjAgcHgtNiBweS00IHRleHQtbWQgbWQ6dGV4dC1sZyBkYXJrOmJnLXJlZC04MDAvMjBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJlcnJvcl9jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTYwMC84MCBpY29uLW1kIGRhcms6dGV4dC1yZWQtNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgICA8bWFya2Rvd25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXJrZG93bi1ib2R5XCJcbiAgICAgICAgICAgICAgW2RhdGFdPVwiZ2V0TWFya2Rvd25Db250ZW50KGl0ZW0pXCJcbiAgICAgICAgICAgID48L21hcmtkb3duPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTAgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhaS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmV0cnktYnV0dG9uLWlubGluZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXRyeShpdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWktaWNvbiBjbGFzcz1cImljb24tc21cIiBuYW1lPVwiYXJyb3dfY2xvY2t3aXNlXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgbWF4LXctWzg1JV0gZmxleC1jb2wgZ2FwLXktMiBzZWxmLWNlbnRlciBweC0yIHB5LTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hcmtkb3duXG4gICAgICAgICAgICBjbGFzcz1cIm1hcmtkb3duLWJvZHlcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZ2V0TWFya2Rvd25Db250ZW50KGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnRlcmNlcHRDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICA+PC9tYXJrZG93bj5cbiAgICAgICAgICBAaWYgKGl0ZW0ucGFyc2VkQ29udGVudC5yZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxhaS1tZXNzYWdlLWNvbnRleHRcbiAgICAgICAgICAgICAgW21lc3NhZ2VdPVwiaXRlbVwiXG4gICAgICAgICAgICAgIFtpc0xhc3RNZXNzYWdlXT1cImlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXQtMlwiXG4gICAgICAgICAgICA+PC9haS1tZXNzYWdlLWNvbnRleHQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTAgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhaS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmV0cnktYnV0dG9uLWlubGluZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXRyeShpdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWktaWNvbiBjbGFzcz1cImljb24tc21cIiBuYW1lPVwiYXJyb3dfY2xvY2t3aXNlXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAoXG4gICAgICBpdGVtLnJvbGUgPT09ICdhc3Npc3RhbnQnICYmXG4gICAgICBpdGVtLnN0YXR1cyA9PT0gJ2ZhaWxlZCcgJiZcbiAgICAgIGdldEZhaWxSZWFzb24oaXRlbSlcbiAgICApIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBnYXAteS0yIHNlbGYtY2VudGVyIHB4LTIgcHktMlwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgYmctcmVkLTQwMC8xMCBweC00IHB5LTIgZGFyazpiZy1yZWQtNjAwLzEwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICBuYW1lPVwiZGlzbWlzc19jaXJjbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC02MDAvODAgaWNvbi1zbSBkYXJrOnRleHQtcmVkLTQwMC84MFwiXG4gICAgICAgICAgPjwvYWktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBnZXRGYWlsUmVhc29uKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMCBmbGV4IGp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgYWktaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJyZXRyeS1idXR0b24taW5saW5lXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJldHJ5KGl0ZW0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGFpLWljb24gY2xhc3M9XCJpY29uLXNtXCIgbmFtZT1cImFycm93X2Nsb2Nrd2lzZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChcbiAgICAgIGl0ZW0ucm9sZSA9PT0gJ3Rvb2wnICYmXG4gICAgICBpdGVtLnRvb2xUeXBlID09PSAnYWN0aW9uJyAmJlxuICAgICAgaXRlbS5zdGF0dXMgJiZcbiAgICAgIGdldFRvb2xTdGF0dXMoaXRlbSlcbiAgICApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBzZWxmLWNlbnRlciBweC0yIHB5LTFcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCB3LWZpdCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBiZy16aW5jLTMwMC8yMCBweC00IHB5LTEgdGV4dC1tZCB0ZXh0LXppbmMtODAwLzkwIGRhcms6YmctYmxhY2svNzAgZGFyazp0ZXh0LXppbmMtMTAwLzkwXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICAgICAgICA8YWktaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hlY2ttYXJrX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmVlbi01MDAvODAgaWNvbi1zbSBkYXJrOnRleHQtZ3JlZW4tNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdmYWlsZWQnKSB7XG4gICAgICAgICAgICA8YWktaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiZGlzbWlzc19jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMC84MCBpY29uLXNtIGRhcms6dGV4dC1yZWQtNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImhvdXJnbGFzc19xdWFydGVyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXppbmMtNzAwLzYwIGljb24tc20gZGFyazp0ZXh0LXppbmMtMzAwLzQwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJykge1xuICAgICAgICAgICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8aT57eyBnZXRUb29sU3RhdHVzKGl0ZW0pIH19PC9pPlxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICAgICAgICBAaWYgKGdldFRvb2xSZXN1bHQoaXRlbSk7IGFzIHJlc3VsdCkge1xuICAgICAgICAgICAgICBAaWYgKHJlc3VsdC5ldmVudD8uaWQpIHtcbiAgICAgICAgICAgICAgICA8aT4tPC9pPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZXN1bHQuZXZlbnQuaWQsICdldmVudCcpXCJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvcGVuT3ZlcmxheSgkZXZlbnQsIHJlc3VsdC5ldmVudC5pZCwgJ2V2ZW50JylcIlxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZm9udC1zZW1pYm9sZCBob3Zlcjp0ZXh0LWJsdWUtNjAwIGhvdmVyOnVuZGVybGluZSBkYXJrOmhvdmVyOnRleHQtYmx1ZS0yMDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHJlc3VsdC5ldmVudC5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChyZXN1bHQuY29udGVudD8uaWQpIHtcbiAgICAgICAgICAgICAgICA8aT4tPC9pPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZXN1bHQuY29udGVudC5pZCwgJ2NvbnRlbnQnKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVzdWx0LmNvbnRlbnQuaWQsICdjb250ZW50JylcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBmb250LXNlbWlib2xkIGhvdmVyOnRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lIGRhcms6aG92ZXI6dGV4dC1ibHVlLTIwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmVzdWx0LmNvbnRlbnQuZmlsZW5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoXG4gICAgICBpdGVtLnJvbGUgPT09ICd0b29sJyAmJlxuICAgICAgaXRlbS50b29sVHlwZSA9PT0gJ2Nob2ljZScgJiZcbiAgICAgIGl0ZW0uc3RhdHVzID09PSAncHJvY2Vzc2luZycgJiZcbiAgICAgIGl0ZW0uYXJncz8uY2hvaWNlc1xuICAgICkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIG1heC13LVs4NSVdIGZsZXgtY29sIHNlbGYtY2VudGVyIHB4LTIgcHktMlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHJvdW5kZWQtMnhsIGJnLXppbmMtMzAwLzQwIHB0LTMgZGFyazpiZy16aW5jLTcwMC8zMFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGl0ZW0uYXJncy5tZXNzYWdlKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMyBweC01IHBiLTMgdGV4dC16aW5jLTgwMCBkYXJrOnRleHQtemluYy0zMDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwibGF5ZXJfZGlhZ29uYWxfc3BhcmtsZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgaXRlbS5hcmdzLm1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC14LTMgZ2FwLXktMiBvdmVyZmxvdy14LWF1dG8gcHgtNSBwYi0zXCI+XG4gICAgICAgICAgICBAZm9yIChjaG9pY2Ugb2YgaXRlbS5hcmdzLmNob2ljZXM7IHRyYWNrIGNob2ljZS5pZCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00OCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDaG9pY2UoY2hvaWNlLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlbGVjdENob2ljZShjaG9pY2UsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBoLTEwIHctMTAgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci16aW5jLTQwMC8zMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhaS1pY29uIG5hbWU9XCJhc3NldFwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LW1kIGZvbnQtc2VtaWJvbGRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgIGNob2ljZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS50eXBlTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNob2ljZS5sb2NhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS5sb2NhdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjaG9pY2UuZmFjdG9yeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS5mYWN0b3J5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoaXRlbS5yb2xlID09PSAndXNlcicgJiYgIWl0ZW0uaGlkZGVuKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYXgtdy1bOTAlXSBmbGV4LWNvbCBzZWxmLWVuZCBweS00IG1kOm1heC13LVs4MCVdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTJ4bCBiZy16aW5jLTMwMC8zMCBweC02IHB5LTQgZGFyazpiZy1ibGFjay8yMFwiPlxuICAgICAgICAgIDxtYXJrZG93blxuICAgICAgICAgICAgY2xhc3M9XCJtYXJrZG93bi1ib2R5XCJcbiAgICAgICAgICAgIFtkYXRhXT1cImdldE1hcmtkb3duQ29udGVudChpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW50ZXJjZXB0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgPjwvbWFya2Rvd24+XG4gICAgICAgICAgQGlmIChpdGVtLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgPGFpLW1lc3NhZ2UtY29udGV4dFxuICAgICAgICAgICAgICBbbWVzc2FnZV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgW2lzTGFzdE1lc3NhZ2VdPVwiaWR4ID09PSBjaGF0U2VydmljZS5tZXNzYWdlcy5sZW5ndGggLSAxXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAgICAgID48L2FpLW1lc3NhZ2UtY29udGV4dD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG5cbiAgQGlmIChjaGF0U2VydmljZS5pc1Byb2Nlc3NpbmcpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgbWF4LXctWzg1JV0gZmxleC1jb2wgc2VsZi1jZW50ZXIgcm91bmRlZC0yeGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC15LTIgcHgtMiBweS00XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInB1bHNlLWxvYWRlciBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIHRleHQtemluYy03MDAvNTAgZGFyazp0ZXh0LXppbmMtMzAwLzMwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef, } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\nimport { IconComponent } from '../../core/icons';\nimport { ContextService } from '../context.service';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { ChatService } from '../chat.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { WebsocketService } from '../websocket.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@jsverse/transloco\";\nimport * as i2 from \"@angular/material/button\";\nexport class AiChatDialogComponent {\n data = inject(MAT_DIALOG_DATA);\n matDialogRef = inject(MatDialogRef);\n chatService = inject(ChatService);\n asset;\n event;\n task;\n logger = inject(NGXLogger);\n type;\n translocoService = inject(TranslocoService);\n constructor() {\n this.asset = this.data.asset || {};\n this.event = this.data.event || {};\n this.type = this.data.assistant || 'asset';\n }\n ngOnInit() {\n this.chatService\n .init()\n .then(async () => {\n const initialMessage = this.data.initialMessage ??\n this.translocoService.translate('ai.prompts.' + this.type);\n const assistantId = this.type + '-assistant';\n const context = this.getContext();\n await this.chatService.createThreadForModal(assistantId, initialMessage, context);\n })\n .catch((err) => {\n this.logger.error(err);\n this.close();\n });\n }\n close(message) {\n this.matDialogRef.close(message);\n }\n getContext() {\n const data = {};\n if (this.asset) {\n data.asset = {\n id: this.asset.id,\n name: this.asset.name,\n externalKey: this.asset.externalKey,\n };\n }\n if (this.event) {\n data.event = {\n id: this.event.id,\n name: this.event.name,\n description: this.event.description,\n cause: this.event.cause,\n level: this.event.level,\n };\n }\n if (this.task) {\n data.task = {\n id: this.task.id,\n name: this.task.name,\n reason: this.task.reason,\n description: this.task.description,\n priority: this.task.priority,\n };\n }\n if (Object.keys(data).length > 0) {\n return { data };\n }\n else {\n return null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiChatDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: AiChatDialogComponent, isStandalone: true, selector: \"ng-component\", providers: [ChatService, ContextService, WebsocketService], ngImport: i0, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex justify-end pb-2\\\">\\n <button\\n mat-icon-button\\n (click)=\\\"close()\\\"\\n class=\\\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n </button>\\n </div>\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media (min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media (min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media (min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media (min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media (min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"], dependencies: [{ kind: \"ngmodule\", type: AiTranslocoModule }, { kind: \"directive\", type: i1.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: LoggerModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: MessageInputComponent, selector: \"ai-message-input\", inputs: [\"startConversation\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"component\", type: ThreadComponent, selector: \"ai-thread\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiChatDialogComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n AiTranslocoModule,\n FormsModule,\n IconComponent,\n LoggerModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n ], providers: [ChatService, ContextService, WebsocketService], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex justify-end pb-2\\\">\\n <button\\n mat-icon-button\\n (click)=\\\"close()\\\"\\n class=\\\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n </button>\\n </div>\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media (min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media (min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media (min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media (min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media (min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC1kaWFsb2cvY2hhdC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC1kaWFsb2cvY2hhdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksR0FDYixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7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Y0FBYyxFQUFFLGdCQUFnQixDQUFDLGlCQUczQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge1xuICBNQVRfRElBTE9HX0RBVEEsXG4gIE1hdERpYWxvZ01vZHVsZSxcbiAgTWF0RGlhbG9nUmVmLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2dlck1vZHVsZSwgTkdYTG9nZ2VyIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ljb25zJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IEFpVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnLi4vdHJhbnNsb2NvLm1vZHVsZSc7XG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQgeyBNZXNzYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRocmVhZENvbXBvbmVudCB9IGZyb20gJy4uL3RocmVhZC90aHJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi93ZWJzb2NrZXQuc2VydmljZSc7XG5cbmludGVyZmFjZSBBc3NldERhdGEge1xuICBpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZXh0ZXJuYWxLZXk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFdmVudERhdGEge1xuICBpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNhdXNlPzogc3RyaW5nO1xuICBsZXZlbD86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFRhc2tEYXRhIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJlYXNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDaGF0QXNzaXN0YW50VHlwZSA9ICdhc3NldCcgfCAnaGVscCcgfCAncmVwb3J0JyB8ICdpbmNpZGVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdERpYWxvZ0RhdGEge1xuICBhc3NldD86IEFzc2V0RGF0YTtcbiAgZXZlbnQ/OiBFdmVudERhdGE7XG4gIGFzc2lzdGFudD86IENoYXRBc3Npc3RhbnRUeXBlO1xuICBpbml0aWFsTWVzc2FnZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBBaVRyYW5zbG9jb01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIExvZ2dlck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWVzc2FnZUlucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGhyZWFkQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtDaGF0U2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFdlYnNvY2tldFNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4uLy4uL3NoYXJlZC9zdHlsZXMuY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWlDaGF0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGF0YSA9IGluamVjdDxDaGF0RGlhbG9nRGF0YT4oTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2dSZWYgPVxuICAgIGluamVjdDxNYXREaWFsb2dSZWY8QWlDaGF0RGlhbG9nQ29tcG9uZW50Pj4oTWF0RGlhbG9nUmVmKTtcblxuICByZWFkb25seSBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogQXNzZXREYXRhO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBFdmVudERhdGE7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFzazogVGFza0RhdGE7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KE5HWExvZ2dlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogQ2hhdEFzc2lzdGFudFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFzc2V0ID0gdGhpcy5kYXRhLmFzc2V0IHx8IHt9O1xuICAgIHRoaXMuZXZlbnQgPSB0aGlzLmRhdGEuZXZlbnQgfHwge307XG4gICAgdGhpcy50eXBlID0gdGhpcy5kYXRhLmFzc2lzdGFudCB8fCAnYXNzZXQnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGF0U2VydmljZVxuICAgICAgLmluaXQoKVxuICAgICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbml0aWFsTWVzc2FnZSA9XG4gICAgICAgICAgdGhpcy5kYXRhLmluaXRpYWxNZXNzYWdlID8/XG4gICAgICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnYWkucHJvbXB0cy4nICsgdGhpcy50eXBlKTtcbiAgICAgICAgY29uc3QgYXNzaXN0YW50SWQgPSB0aGlzLnR5cGUgKyAnLWFzc2lzdGFudCc7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jaGF0U2VydmljZS5jcmVhdGVUaHJlYWRGb3JNb2RhbChcbiAgICAgICAgICBhc3Npc3RhbnRJZCxcbiAgICAgICAgICBpbml0aWFsTWVzc2FnZSxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICApO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2UobWVzc2FnZT86IHN0cmluZykge1xuICAgIHRoaXMubWF0RGlhbG9nUmVmLmNsb3NlKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCB7XG4gICAgY29uc3QgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBpZiAodGhpcy5hc3NldCkge1xuICAgICAgZGF0YS5hc3NldCA9IHtcbiAgICAgICAgaWQ6IHRoaXMuYXNzZXQuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuYXNzZXQubmFtZSxcbiAgICAgICAgZXh0ZXJuYWxLZXk6IHRoaXMuYXNzZXQuZXh0ZXJuYWxLZXksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5ldmVudCkge1xuICAgICAgZGF0YS5ldmVudCA9IHtcbiAgICAgICAgaWQ6IHRoaXMuZXZlbnQuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuZXZlbnQubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZXZlbnQuZGVzY3JpcHRpb24sXG4gICAgICAgIGNhdXNlOiB0aGlzLmV2ZW50LmNhdXNlLFxuICAgICAgICBsZXZlbDogdGhpcy5ldmVudC5sZXZlbCxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh0aGlzLnRhc2spIHtcbiAgICAgIGRhdGEudGFzayA9IHtcbiAgICAgICAgaWQ6IHRoaXMudGFzay5pZCxcbiAgICAgICAgbmFtZTogdGhpcy50YXNrLm5hbWUsXG4gICAgICAgIHJlYXNvbjogdGhpcy50YXNrLnJlYXNvbixcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgcHJpb3JpdHk6IHRoaXMudGFzay5wcmlvcml0eSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7IGRhdGEgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBoLWZ1bGwgdy1mdWxsIGZsZXgtY29sXCIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIHBiLTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgIGNsYXNzPVwic21hbGwgYmctemluYy01MCB0ZXh0LXppbmMtNTAwIGhvdmVyOmJnLXppbmMtMTAwIGhvdmVyOnRleHQtemluYy05MDAgZGFyazpiZy16aW5jLTkwMCBkYXJrOnRleHQtemluYy00MDAgZGFyazpob3ZlcjpiZy16aW5jLTgwMCBkYXJrOmhvdmVyOnRleHQtemluYy01MFwiXG4gICAgPlxuICAgICAgPGFpLWljb24gbmFtZT1cImRpc21pc3NcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBoLWZ1bGwgdy1mdWxsIGZsZXgtY29sIGl0ZW1zLWNlbnRlciBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICA8YWktdGhyZWFkIGNsYXNzPVwiZmxleCBoLWZ1bGwgdy1mdWxsXCI+PC9haS10aHJlYWQ+XG4gIDwvZGl2PlxuICA8YWktbWVzc2FnZS1pbnB1dCBjbGFzcz1cInctZnVsbFwiPjwvYWktbWVzc2FnZS1pbnB1dD5cbjwvZGl2PlxuIl19","import { NgModule } from '@angular/core';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\nimport { CommonModule } from '@angular/common';\nimport { ChatService } from './chat.service';\nimport { WebsocketService } from './websocket.service';\nimport { ContextService } from './context.service';\nimport { VoiceRecognitionService } from './voice-recognition.service';\nimport { ApiService } from '../core/api.service';\nimport { AiTranslocoModule } from './transloco.module';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-logger\";\nexport class AiModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: AiModule, imports: [CommonModule, i1.LoggerModule], exports: [AiTranslocoModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiModule, providers: [\n ApiService,\n ChatService,\n ContextService,\n VoiceRecognitionService,\n WebsocketService,\n ], imports: [CommonModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }), AiTranslocoModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AiModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }),\n ],\n providers: [\n ApiService,\n ChatService,\n ContextService,\n VoiceRecognitionService,\n WebsocketService,\n ],\n exports: [AiTranslocoModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvYWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFtQnZELE1BQU0sT0FBTyxRQUFRO3VHQUFSLFFBQVE7d0dBQVIsUUFBUSxZQWZqQixZQUFZLDhCQWFKLGlCQUFpQjt3R0FFaEIsUUFBUSxhQVRSO1lBQ1QsVUFBVTtZQUNWLFdBQVc7WUFDWCxjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtTQUNqQixZQVpDLFlBQVk7WUFDWixZQUFZLENBQUMsT0FBTyxDQUFDO2dCQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7Z0JBQzNCLHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQyxFQVNNLGlCQUFpQjs7MkZBRWhCLFFBQVE7a0JBakJwQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVksQ0FBQyxPQUFPLENBQUM7NEJBQ25CLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSzs0QkFDM0IscUJBQXFCLEVBQUUsS0FBSzt5QkFDN0IsQ0FBQztxQkFDSDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJNb2R1bGUsIE5neExvZ2dlckxldmVsIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4vY2hhdC5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3dlYnNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWlUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICcuL3RyYW5zbG9jby5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIExvZ2dlck1vZHVsZS5mb3JSb290KHtcbiAgICAgIGxldmVsOiBOZ3hMb2dnZXJMZXZlbC5ERUJVRyxcbiAgICAgIGRpc2FibGVDb25zb2xlTG9nZ2luZzogZmFsc2UsXG4gICAgfSksXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFwaVNlcnZpY2UsXG4gICAgQ2hhdFNlcnZpY2UsXG4gICAgQ29udGV4dFNlcnZpY2UsXG4gICAgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UsXG4gICAgV2Vic29ja2V0U2VydmljZSxcbiAgXSxcbiAgZXhwb3J0czogW0FpVHJhbnNsb2NvTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQWlNb2R1bGUge31cbiJdfQ==","import { HttpClient } from '@angular/common/http';\nimport { MARKED_OPTIONS, provideMarkdown } from 'ngx-markdown';\n/**\n * Provides Markdown configuration for AI SDK\n * This allows consuming applications to not have to set up Markdown themselves\n */\nexport function provideAiMarkdown() {\n return provideMarkdown({\n loader: HttpClient,\n markedOptions: {\n provide: MARKED_OPTIONS,\n useValue: {\n gfm: true,\n breaks: true,\n pedantic: false,\n },\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL21hcmtkb3duLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU8sZUFBZSxDQUFDO1FBQ3JCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLGFBQWEsRUFBRTtZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEVBQUUsSUFBSTtnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFSS0VEX09QVElPTlMsIHByb3ZpZGVNYXJrZG93biB9IGZyb20gJ25neC1tYXJrZG93bic7XG5cbi8qKlxuICogUHJvdmlkZXMgTWFya2Rvd24gY29uZmlndXJhdGlvbiBmb3IgQUkgU0RLXG4gKiBUaGlzIGFsbG93cyBjb25zdW1pbmcgYXBwbGljYXRpb25zIHRvIG5vdCBoYXZlIHRvIHNldCB1cCBNYXJrZG93biB0aGVtc2VsdmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWlNYXJrZG93bigpOiBQcm92aWRlciB7XG4gIHJldHVybiBwcm92aWRlTWFya2Rvd24oe1xuICAgIGxvYWRlcjogSHR0cENsaWVudCxcbiAgICBtYXJrZWRPcHRpb25zOiB7XG4gICAgICBwcm92aWRlOiBNQVJLRURfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIGdmbTogdHJ1ZSxcbiAgICAgICAgYnJlYWtzOiB0cnVlLFxuICAgICAgICBwZWRhbnRpYzogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl19","import { provideAiMarkdown } from '../core/markdown.provider';\nimport { AiTranslocoModule } from './transloco.module';\nimport { importProvidersFrom } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\n/**\n * Provides all necessary providers for AI SDK\n * This allows consuming applications to configure the AI SDK with a single function\n */\nexport function provideAiSdk() {\n return [\n importProvidersFrom(AiTranslocoModule, LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n })),\n provideAiMarkdown(),\n provideHttpClient(withInterceptorsFromDi()),\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHNCQUFzQixHQUN2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU87UUFDTCxtQkFBbUIsQ0FDakIsaUJBQWlCLEVBQ2pCLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDbkIsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLO1lBQzNCLHFCQUFxQixFQUFFLEtBQUs7U0FDN0IsQ0FBQyxDQUNIO1FBQ0QsaUJBQWlCLEVBQUU7UUFDbkIsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUFpTWFya2Rvd24gfSBmcm9tICcuLi9jb3JlL21hcmtkb3duLnByb3ZpZGVyJztcbmltcG9ydCB7IEFpVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnLi90cmFuc2xvY28ubW9kdWxlJztcbmltcG9ydCB7IGltcG9ydFByb3ZpZGVyc0Zyb20gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHByb3ZpZGVIdHRwQ2xpZW50LFxuICB3aXRoSW50ZXJjZXB0b3JzRnJvbURpLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBMb2dnZXJNb2R1bGUsIE5neExvZ2dlckxldmVsIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5cbi8qKlxuICogUHJvdmlkZXMgYWxsIG5lY2Vzc2FyeSBwcm92aWRlcnMgZm9yIEFJIFNES1xuICogVGhpcyBhbGxvd3MgY29uc3VtaW5nIGFwcGxpY2F0aW9ucyB0byBjb25maWd1cmUgdGhlIEFJIFNESyB3aXRoIGEgc2luZ2xlIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWlTZGsoKTogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10ge1xuICByZXR1cm4gW1xuICAgIGltcG9ydFByb3ZpZGVyc0Zyb20oXG4gICAgICBBaVRyYW5zbG9jb01vZHVsZSxcbiAgICAgIExvZ2dlck1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgbGV2ZWw6IE5neExvZ2dlckxldmVsLkRFQlVHLFxuICAgICAgICBkaXNhYmxlQ29uc29sZUxvZ2dpbmc6IGZhbHNlLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBwcm92aWRlQWlNYXJrZG93bigpLFxuICAgIHByb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksXG4gIF07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFobnByby1haS1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2hhaG5wcm8tYWktc2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i3","i1","i2","i4","i5","i6.BytesPipe","i7.DateAgoPipe","HttpClient"],"mappings":"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"}