@analitikisler/ai-tag-debugger 0.11.3 → 0.13.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.0 (2026-10-17)
4
+
5
+ - Each journey step has a **Timeline** tab: every dataLayer push, the GTM event it raised (or the consent command), then the platform hits it caused. Hits with no push are listed last.
6
+ - Findings are grouped by who fixes them (Developer, Tag Manager, Marketing). Each one has a **How to verify** list linking to the tool that shows the fix: Tag Assistant, GA4 DebugView, Meta Test Events, TikTok Pixel Helper or the Consent Mode guide.
7
+ - When the AI took a different route through the site than in the last run, the report header names the journeys, and the Changed since last run section lists the pages before and after.
8
+ - Platforms are detected automatically: a platform the site sends to is checked from its first request. No flag needed. Choosing platforms with `--platforms` or `providers` turns detection off.
9
+ - New platforms: LinkedIn Insight Tag, Microsoft Advertising UET and Criteo OneTag (events are read); Adobe Analytics, Matomo and Piwik PRO (page views, links, goals, site search and ecommerce orders); Microsoft Clarity and Hotjar tag loads, which name the project or site id.
10
+
11
+ ## 0.12.0 (2026-10-16)
12
+
13
+ - The HTML report uses the Analitik İşler design system and the new ai tag debugger logo. The large title is now a compact `Site: example.com` line.
14
+ - Overview has a "This run" card: platforms checked, AI provider and model (or off), plan, journeys, viewports, language and version.
15
+ - Platforms show their icons instead of colored squares, in findings, events, steps and tables.
16
+ - Each journey opens with a Consent card: the Consent Mode default and every update, one tile per signal, granted or denied.
17
+ - Fix: no "not in the measurement plan" finding when no plan is attached.
18
+ - Fix: the server-side note only mentions Meta and TikTok when they were checked.
19
+ - Fix: no "Run without --no-ai" text on AI runs or on info findings.
20
+ - Fix: switching tabs no longer shifts the page sideways.
21
+
3
22
  ## 0.11.3 (2026-10-16)
4
23
 
5
24
  - `aitd` and `aitd --help` end with the AI a run would use: `AI: anthropic (claude-opus-5-5) via Cloudflare AI Gateway · also set: gemini (pick with --provider)`, or `AI: no key set`. The first line of a run names the other keys too.
package/README.md CHANGED
@@ -4,7 +4,7 @@ English | [Türkçe](README.tr.md)
4
4
 
5
5
  **An open-source AI agent that QA-tests your website's analytics and ad tracking.**
6
6
 
7
- An AI model drives a real browser through your key journeys (product → cart → checkout, lead forms) like a real visitor. While it browses, `ai-tag-debugger` records every GA4, Google Ads, Meta Pixel and TikTok hit and every dataLayer push. It then checks them against your measurement plan and Consent Mode setup and writes a plain-language report of what broke and how to fix it, in English or Turkish.
7
+ An AI model drives a real browser through your key journeys (product → cart → checkout, lead forms) like a real visitor. While it browses, `ai-tag-debugger` records every tracking hit (GA4, Google Ads, Meta Pixel, TikTok and about a dozen more platforms) and every dataLayer push. It then checks them against your measurement plan and Consent Mode setup and writes a plain-language report of what broke and how to fix it, in English or Turkish.
8
8
 
9
9
  Use it in two ways:
10
10
 
@@ -50,13 +50,13 @@ Manual tag QA catches this, but it's tedious, so it rarely happens after every r
50
50
  | Unplanned events | Events firing that aren't in your measurement plan |
51
51
  | Plan coverage | Each planned event sorted into implemented, missing, missing parameters, wrong values or not checked (see [Plan vs. site](#plan-vs-site)) |
52
52
 
53
- Platforms: GA4 (including server-side GTM endpoints and Google tag gateway paths on the site's own domain; hits to a server container are marked server-side, and Stape and Elevar requests are recognised), Google Ads conversions, Meta Pixel, TikTok Pixel, and basic X Pixel events.
53
+ Platforms: GA4 (including server-side GTM endpoints and Google tag gateway paths on the site's own domain; hits to a server container are marked server-side, and Stape and Elevar requests are recognised), Google Ads conversions, Meta Pixel, TikTok Pixel, basic X Pixel events, LinkedIn Insight Tag, Microsoft Advertising UET, Criteo OneTag, and Pinterest, Snapchat and Klaviyo events. Adobe Analytics, Matomo and Piwik PRO events are read too (page views, links, goals, site search and ecommerce orders), and Microsoft Clarity and Hotjar tag loads name the project or site id.
54
54
 
55
55
  ### Choose the platforms to check
56
56
 
57
- By default an audit checks GA4, Google Ads, Meta and TikTok. Pick others with `--platforms ga4,meta,x`, `"providers"` in the config, or `providers` on the MCP `start_audit` and `run_audit` tools. You can choose from `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `clarity`, `hotjar`, `doubleclick` and `adsense`. Events are parsed for GA4, Google Ads, Meta, TikTok and X; the others show their network requests. `--providers` still works as the old name of `--platforms` for one more minor version and prints a note.
57
+ By default an audit checks GA4, Google Ads, Meta and TikTok, and also any other platform the site turns out to use. That platform is checked from its first request, with no setting needed. Choosing platforms turns this detection off. Pick a fixed list with `--platforms ga4,meta,x`, `"providers"` in the config, or `providers` on the MCP `start_audit` and `run_audit` tools. You can choose from `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `criteo`, `klaviyo`, `adobe`, `matomo`, `piwik_pro`, `clarity`, `hotjar`, `doubleclick` and `adsense`. Events are parsed for GA4, Google Ads, Meta, TikTok, X, LinkedIn, Microsoft Ads, Pinterest, Snapchat, Criteo, Klaviyo, Adobe Analytics, Matomo and Piwik PRO. Clarity and Hotjar show their tag loads, and the others show their network requests. `--providers` still works as the old name of `--platforms` for one more minor version and prints a note.
58
58
 
59
- Requests to platforms you didn't choose are still answered locally, so they never reach those accounts either. They are left out of the timeline, the CSV and the checks, and only counted: the report lists them with their request counts (for example "61 out-of-scope requests were skipped: Microsoft Clarity, DoubleClick"), and each step says how many it skipped. Without `--platforms`, any platform your measurement plan names is added to the default list. Planned events for platforms you did leave out are listed in one info finding instead of being reported as missing. Tag manager and consent platform requests are always shown.
59
+ Requests to platforms you didn't choose are still answered locally, so they never reach those accounts either. They are left out of the timeline, the CSV and the checks, and only counted: the report lists them with their request counts (for example "61 out-of-scope requests were skipped: Microsoft Clarity, DoubleClick"), and each step says how many it skipped. Without `--platforms`, any platform your measurement plan names or the site sends to is added to the default list. Planned events for platforms you did leave out are listed in one info finding instead of being reported as missing. Tag manager and consent platform requests are always shown.
60
60
 
61
61
  ## How it works
62
62
 
@@ -377,7 +377,7 @@ When a journey ran on both viewports, only the first viewport's steps are kept.
377
377
  | `journeys[].start` | Optional start path (default `/`). |
378
378
  | `journeys[].steps` | Optional fixed steps for `--scripted` runs: `{ "action": "click", "selector": "#add-to-cart" }`. |
379
379
  | `allowed_hosts` | Other hosts journeys may visit, e.g. `["checkout.payments-provider.com"]` for a hosted checkout. The browser otherwise stays on the `site` host and its subdomains. Same as `--allow-host`. |
380
- | `providers` | Tracking platforms to check, e.g. `["ga4", "meta"]`. Default `["ga4", "google_ads", "meta", "tiktok"]`. Same as `--platforms`. |
380
+ | `providers` | Tracking platforms to check, e.g. `["ga4", "meta"]`. Default `["ga4", "google_ads", "meta", "tiktok"]`, plus any other platform the site sends to while this is unset. Same as `--platforms`. |
381
381
  | `block_hits` | Default `true`. Set to `false` to let hits reach your real endpoints. |
382
382
  | `language` | Report language, `en` (default) or `tr`. Same as `--lang`. |
383
383
  | `keep_bodies` | Default `false`. Set to `true` to store tracking requests as sent, without redacting user data. Same as `--keep-bodies`. |
@@ -442,9 +442,10 @@ The exit code is `1` when findings reach `--fail-on` (default `broken`), so it c
442
442
  Output:
443
443
 
444
444
  - `report.html`: one file with four tabs. Links work across tabs (a finding's "Where" chip opens that step), and every view has its own URL you can bookmark or share.
445
- - **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts, the providers checked, and, with `--against`, the [Plan vs. site](#plan-vs-site) coverage.
446
- - **Findings**: grouped by severity and filterable. Each one has its impact, likely cause, evidence, numbered fix steps and the steps where it happened.
447
- - **Journeys**: one journey at a time, with its steps on the left and the selected step on the right. It opens on the first step with a problem. Each step has three tabs:
445
+ - **Overview**: problem counts, the AI summary (most important problem first, plus things worth checking that the findings don't cover), the journeys with their problem counts, a **This run** card (platforms, AI provider and model, plan, journeys, viewports, language, version), and, with `--against`, the [Plan vs. site](#plan-vs-site) coverage. When the AI took a different route through the site than in the last run, the header names the journeys whose route changed, and the **Changed since last run** section shows the pages before and after.
446
+ - **Findings**: grouped by who fixes them (Developer, Tag Manager, Marketing) and filterable by severity. Each one has its impact, likely cause, evidence, numbered fix steps, the steps where it happened, and a **How to verify** list of tools to check the fix in, such as Tag Assistant, GA4 DebugView, Meta Test Events or TikTok Pixel Helper.
447
+ - **Journeys**: one journey at a time. A **Consent** card at the top lists the Consent Mode default and every update, one tile per signal. Below it are the steps on the left and the selected step on the right. It opens on the first step with a problem. Each step has four tabs:
448
+ - **Timeline**: the step in order. Each dataLayer push comes first, then the GTM event it raised (or the consent command), then the platform hits it caused. Hits with no push are listed last.
448
449
  - **Events**: each tracking hit with its parameters, consent state, the dataLayer push and request behind it, and a note when a finding points at it.
449
450
  - **dataLayer**: every push in the step.
450
451
  - **Network requests**: every request to the chosen platforms, decoded into a parameter table with a `?` tip on each parameter. A batched GA4 request shows each of its events.
package/README.tr.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Web sitenizin analitik ve reklam takibini test eden, açık kaynaklı bir yapay zekâ ajanı.**
6
6
 
7
- Bir yapay zekâ modeli gerçek bir tarayıcıyı, sitenizdeki temel yolculukları (ürün → sepet → ödeme, form gönderimleri) gerçek bir ziyaretçi gibi gezdirir. Gezerken `ai-tag-debugger` her GA4, Google Ads, Meta Pixel ve TikTok isteğini ve her dataLayer gönderimini kaydeder. Ardından bunları ölçümleme planınız ve Consent Mode kurulumunuzla karşılaştırır ve neyin bozulduğunu ve nasıl düzeltileceğini sade bir dille, Türkçe ya da İngilizce olarak yazılmış bir raporla anlatır.
7
+ Bir yapay zekâ modeli gerçek bir tarayıcıyı, sitenizdeki temel yolculukları (ürün → sepet → ödeme, form gönderimleri) gerçek bir ziyaretçi gibi gezdirir. Gezerken `ai-tag-debugger` her takip isteğini (GA4, Google Ads, Meta Pixel, TikTok ve bir düzine kadar başka platform) ve her dataLayer gönderimini kaydeder. Ardından bunları ölçümleme planınız ve Consent Mode kurulumunuzla karşılaştırır ve neyin bozulduğunu ve nasıl düzeltileceğini sade bir dille, Türkçe ya da İngilizce olarak yazılmış bir raporla anlatır.
8
8
 
9
9
  İki şekilde kullanabilirsiniz:
10
10
 
@@ -50,13 +50,13 @@ Manuel etiket kontrolü bunu yakalar, ama zahmetlidir; bu yüzden her sürümden
50
50
  | Planda olmayan event'ler | Ölçümleme planınızda bulunmayan, yine de fire olan event'ler |
51
51
  | Plan kapsamı | Planlanan her event'in uygulandı, eksik, parametresi eksik, değeri hatalı ya da kontrol edilmedi olarak sınıflandırılması (bkz. [Plan ve site](#plan-ve-site)) |
52
52
 
53
- Platformlar: GA4 (sitenin kendi alan adındaki sunucu tarafı GTM uç noktaları ve Google etiket geçidi yolları dahil; bir sunucu konteynerine giden istekler sunucu tarafı olarak işaretlenir, Stape ve Elevar istekleri tanınır), Google Ads dönüşümleri, Meta Pixel, TikTok Pixel ve temel X Pixel event'leri.
53
+ Platformlar: GA4 (sitenin kendi alan adındaki sunucu tarafı GTM uç noktaları ve Google etiket geçidi yolları dahil; bir sunucu konteynerine giden istekler sunucu tarafı olarak işaretlenir, Stape ve Elevar istekleri tanınır), Google Ads dönüşümleri, Meta Pixel, TikTok Pixel, temel X Pixel event'leri, LinkedIn Insight Tag, Microsoft Advertising UET, Criteo OneTag ile Pinterest, Snapchat ve Klaviyo event'leri. Adobe Analytics, Matomo ve Piwik PRO event'leri de okunur (sayfa görüntülemeleri, bağlantılar, hedefler, site içi arama ve e-ticaret siparişleri); Microsoft Clarity ve Hotjar etiket yüklemeleri ise proje ya da site kimliğini gösterir.
54
54
 
55
55
  ### Kontrol edilecek platformları seçin
56
56
 
57
- Varsayılan olarak bir denetim GA4, Google Ads, Meta ve TikTok'u kontrol eder. Başka platformları `--platforms ga4,meta,x` ile, ayar dosyasındaki `"providers"` ile ya da MCP `start_audit` ve `run_audit` araçlarındaki `providers` ile seçebilirsiniz. Seçenekler: `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `clarity`, `hotjar`, `doubleclick` ve `adsense`. GA4, Google Ads, Meta, TikTok ve X için event'ler ayrıştırılır; diğerlerinin ağ istekleri gösterilir. `--providers` eski adı olarak bir minör sürüm daha çalışır ve bir not yazdırır.
57
+ Varsayılan olarak bir denetim GA4, Google Ads, Meta ve TikTok'u kontrol eder; ayrıca sitenin kullandığı başka her platformu, ilk isteğinden itibaren kontrol eder. Bunun için bir ayar gerekmez. Platform seçmek bu otomatik algılamayı kapatır. Sabit bir liste için `--platforms ga4,meta,x` kullanın, ayar dosyasında `"providers"` ya da MCP `start_audit` ve `run_audit` araçlarında `providers` verin. Seçenekler: `ga4`, `google_ads`, `meta`, `tiktok`, `x`, `linkedin`, `microsoft_ads`, `pinterest`, `snapchat`, `criteo`, `klaviyo`, `adobe`, `matomo`, `piwik_pro`, `clarity`, `hotjar`, `doubleclick` ve `adsense`. GA4, Google Ads, Meta, TikTok, X, LinkedIn, Microsoft Ads, Pinterest, Snapchat, Criteo, Klaviyo, Adobe Analytics, Matomo ve Piwik PRO için event'ler ayrıştırılır. Clarity ve Hotjar etiket yüklemelerini gösterir; diğerlerinin ağ istekleri gösterilir. `--providers` eski adı olarak bir minör sürüm daha çalışır ve bir not yazdırır.
58
58
 
59
- Seçmediğiniz platformlara giden istekler de yerelde yanıtlanır, yani o hesaplara da ulaşmaz. Bu istekler zaman akışına, CSV'ye ve kontrollere alınmaz, sadece sayılır: rapor bunları istek sayılarıyla listeler (örneğin "Kapsam dışı 61 istek atlandı: Microsoft Clarity, DoubleClick") ve her adım kaç istek atladığını gösterir. `--platforms` vermezseniz, ölçümleme planınızda geçen her platform varsayılan listeye eklenir. Dışarıda bıraktığınız platformlar için planlanmış event'ler eksik olarak raporlanmaz, tek bir bilgi bulgusunda listelenir. Etiket yöneticisi ve çerez onayı platformu istekleri her zaman gösterilir.
59
+ Seçmediğiniz platformlara giden istekler de yerelde yanıtlanır, yani o hesaplara da ulaşmaz. Bu istekler zaman akışına, CSV'ye ve kontrollere alınmaz, sadece sayılır: rapor bunları istek sayılarıyla listeler (örneğin "Kapsam dışı 61 istek atlandı: Microsoft Clarity, DoubleClick") ve her adım kaç istek atladığını gösterir. `--platforms` vermezseniz, ölçümleme planınızda geçen ya da sitenin gönderdiği her platform varsayılan listeye eklenir. Dışarıda bıraktığınız platformlar için planlanmış event'ler eksik olarak raporlanmaz, tek bir bilgi bulgusunda listelenir. Etiket yöneticisi ve çerez onayı platformu istekleri her zaman gösterilir.
60
60
 
61
61
  ## Nasıl çalışır
62
62
 
@@ -377,7 +377,7 @@ Bir yolculuk her iki görünümde de çalıştıysa yalnızca ilk görünümün
377
377
  | `journeys[].start` | İsteğe bağlı başlangıç yolu (varsayılan `/`). |
378
378
  | `journeys[].steps` | `--scripted` çalıştırmaları için isteğe bağlı sabit adımlar: `{ "action": "click", "selector": "#add-to-cart" }`. |
379
379
  | `allowed_hosts` | Yolculukların ziyaret edebileceği başka ana makineler, örneğin barındırılan bir ödeme için `["checkout.payments-provider.com"]`. Tarayıcı aksi halde `site` ana makinesinde ve alt alan adlarında kalır. `--allow-host` ile aynıdır. |
380
- | `providers` | Kontrol edilecek takip platformları, örneğin `["ga4", "meta"]`. Varsayılan `["ga4", "google_ads", "meta", "tiktok"]`. `--platforms` ile aynıdır. |
380
+ | `providers` | Kontrol edilecek takip platformları, örneğin `["ga4", "meta"]`. Varsayılan `["ga4", "google_ads", "meta", "tiktok"]`; bu ayar boşken sitenin gönderdiği diğer platformlar da eklenir. `--platforms` ile aynıdır. |
381
381
  | `block_hits` | Varsayılan `true`. Takip isteklerinin gerçek uç noktalarınıza ulaşmasına izin vermek için `false` yapın. |
382
382
  | `language` | Rapor dili, `en` (varsayılan) ya da `tr`. `--lang` ile aynıdır. |
383
383
  | `keep_bodies` | Varsayılan `false`. Takip isteklerini gönderildiği gibi, kullanıcı verisi gizlenmeden saklamak için `true` yapın. `--keep-bodies` ile aynıdır. |
@@ -442,9 +442,10 @@ aitd mcp [--http] [--port <n>] [--host <adres>] [--token <gizli>] [--public-url
442
442
  Çıktı:
443
443
 
444
444
  - `report.html`: dört sekmeli tek bir dosya. Bağlantılar sekmeler arasında çalışır (bir bulgunun "Nerede" çipi o adımı açar) ve her görünümün paylaşılabilir ya da yer imine eklenebilir kendi URL'si vardır.
445
- - **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları, kontrol edilen platformlar ve `--against` ile [Plan ve site](#plan-ve-site) kapsamı.
446
- - **Bulgular**: önem düzeyine göre gruplu ve filtrelenebilir. Her birinde etkisi, olası nedeni, kanıtı, numaralı düzeltme adımları ve olayın yaşandığı adımlar bulunur.
447
- - **Yolculuklar**: her seferinde bir yolculuk; solda adımları, sağda seçili adım. Sorunlu ilk adımda açılır. Her adımın üç sekmesi vardır:
445
+ - **Genel bakış**: sorun sayıları, yapay zekâ özeti (en önemli sorun önce, ve bulguların kapsamadığı kontrol edilmeye değer şeyler), yolculuklar ve sorun sayıları, bir **Bu çalıştırma** kartı (platformlar, yapay zekâ sağlayıcısı ve modeli, plan, yolculuklar, ekranlar, dil, sürüm) `--against` ile [Plan ve site](#plan-ve-site) kapsamı. Yapay zekâ siteyi son çalıştırmadan farklı bir yoldan gezdiyse, başlıkta yolu değişen yolculukları gösteren bir not ve **Son çalıştırmadan bu yana değişenler** bölümünde değişiklikten önceki ve sonraki sayfalar bulunur.
446
+ - **Bulgular**: düzeltmesini kimin yapacağına göre gruplu (Yazılımcı, Tag Manager, Pazarlama) ve önem düzeyine göre filtrelenebilir. Her birinde etkisi, olası nedeni, kanıtı, numaralı düzeltme adımları, olayın yaşandığı adımlar ve **Nasıl doğrulanır** listesi bulunur; bu liste düzeltmeyi kontrol edebileceğiniz araçlara bağlantı verir (Tag Assistant, GA4 DebugView, Meta Test Events, TikTok Pixel Helper).
447
+ - **Yolculuklar**: her seferinde bir yolculuk. Üstteki **Onay** kartı Consent Mode varsayılanını ve her güncellemeyi, sinyal başına bir kutuyla gösterir. Altında solda adımları, sağda seçili adım. Sorunlu ilk adımda açılır. Her adımın dört sekmesi vardır:
448
+ - **Zaman akışı**: adım sırasıyla. Önce her dataLayer gönderimi, ardından onu tetikleyen GTM event'i (ya da çerez onayı komutu), sonra da yol açtığı platform istekleri gelir. Gönderimi olmayan istekler en sonda listelenir.
448
449
  - **Event'ler**: her takip isteği, parametreleri, çerez onayı durumu, arkasındaki dataLayer gönderimi ve isteği ve bir bulgu buraya işaret ediyorsa bir not.
449
450
  - **dataLayer**: adımdaki her gönderim.
450
451
  - **Ağ istekleri**: seçilen platformlara giden her istek; her parametrede bir `?` ipucuyla bir parametre tablosuna çözülmüş. Toplu bir GA4 isteği, içindeki her event'i gösterir.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@analitikisler/ai-tag-debugger",
3
3
  "mcpName": "io.github.analitikisler/ai-tag-debugger",
4
- "version": "0.11.3",
4
+ "version": "0.13.0",
5
5
  "description": "Open-source AI agent that QA-tests your website's analytics, ad and consent tracking (GA4, GTM, Google Ads, Meta, TikTok). Bring your own model (Claude, OpenAI, Gemini) or use it from your chat app over MCP.",
6
6
  "type": "module",
7
7
  "bin": {
package/src/agent.js CHANGED
@@ -188,7 +188,7 @@ export const harName = (journeyId, viewport) => `${String(journeyId).replace(/[^
188
188
  export async function runJourney(config, journey, viewport, opts = {}) {
189
189
  const har = (dir) => (dir ? path.join(dir, harName(journey.id, viewport)) : undefined);
190
190
  const session = new AuditSession({
191
- viewport, site: config.site, allowedHosts: config.allowed_hosts, providers: config.providers, keepBodies: config.keep_bodies === true,
191
+ viewport, site: config.site, allowedHosts: config.allowed_hosts, providers: config.providers, detect: config.detect_providers, keepBodies: config.keep_bodies === true,
192
192
  blockHits: config.block_hits !== false, headless: !opts.headed, recordHar: har(opts.saveSite), replayHar: har(opts.replaySite),
193
193
  });
194
194
  try {
package/src/audit.js CHANGED
@@ -40,13 +40,14 @@ export async function loadConfig(configFile) {
40
40
  * previous: the site's last saved run (see previousRun), null when there is none, or undefined to skip
41
41
  * the "Changed since last run" section.
42
42
  */
43
- export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, against = null, branding = config.branding !== false, previous = undefined }) {
43
+ export async function writeReports({ outDir, config, plan, runs, findings, explained, lang, ai = null, against = null, branding = config.branding !== false, previous = undefined }) {
44
44
  await mkdir(outDir, { recursive: true });
45
- const title = messages(lang).ui.title(new URL(config.site).hostname);
45
+ const site = new URL(config.site).hostname;
46
+ const title = messages(lang).ui.title(site);
46
47
  const generatedAt = new Date().toISOString().slice(0, 16).replace("T", " ") + " UTC";
47
48
  const check = against ? { plan_id: against.id ?? null, ...planCheck(plan, runs, findings) } : null;
48
- const changes = previous === undefined ? null : compareRuns(previous, { findings, planCheck: check });
49
- const report = { title, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
49
+ const changes = previous === undefined ? null : compareRuns(previous, { findings, planCheck: check, runs });
50
+ const report = { title, site, ai, generatedAt, findings, explained, runs, plan, lang, branding, against: against?.label ?? null, planCheck: check, changes };
50
51
  await writeFile(path.join(outDir, "report.md"), renderMarkdown(report));
51
52
  await writeFile(path.join(outDir, "report.html"), renderHtml(report));
52
53
  await writeFile(path.join(outDir, "timeline.csv"), renderCsv(report));
@@ -61,7 +62,8 @@ export async function writeReports({ outDir, config, plan, runs, findings, expla
61
62
  * outDir?: string, dataDir?: string, branding?: boolean, providers?: string[], saveSite?: string, replaySite?: string, log?: (m: string) => void }} opts
62
63
  * journeys: config journey ids or ready-made journeys (purchase, add_to_cart, sign_up, lead, search).
63
64
  * goals: extra journeys described in plain language. events: only check these events.
64
- * providers: tracking providers to check (default: config "providers", else GA4, Google Ads, Meta, TikTok).
65
+ * providers: tracking providers to check (default: config "providers", else GA4, Google Ads, Meta, TikTok plus
66
+ * any other known platform the site sends to).
65
67
  * saveSite: record the site's responses and the steps taken into this folder, for replaySite (see replay.js).
66
68
  * replaySite: answer every request from a folder saved with saveSite, without the network.
67
69
  * against: { id, file } of the plan given with --against; opts.plan is then that plan. Used alone, the
@@ -80,7 +82,9 @@ export async function runAudit(opts) {
80
82
 
81
83
  const against = opts.against ? { ...opts.against, label: opts.against.id ?? path.relative(process.cwd(), opts.against.file) } : null;
82
84
  const { journeys, plan } = planRun({ config, plan: opts.plan, picks: opts.journeys, goals: opts.goals, events, against: Boolean(against) });
83
- config = { ...config, providers: resolveProviders(opts.providers ?? config.providers, plan) };
85
+ const chosen = opts.providers ?? config.providers;
86
+ // Without a choice, any other known platform the site sends to is checked too (see AuditSession).
87
+ config = { ...config, providers: resolveProviders(chosen, plan), detect_providers: !(Array.isArray(chosen) ? chosen.length : chosen) };
84
88
  const viewports = opts.viewports?.length ? opts.viewports : config.viewports ?? ["desktop"];
85
89
  const allowed = Object.keys(VIEWPORTS).join(", ");
86
90
  if (!Array.isArray(viewports)) throw new Error(`"viewports" must be a list, e.g. ["desktop", "mobile"]. Allowed values: ${allowed}.`);
@@ -139,7 +143,7 @@ export async function runAudit(opts) {
139
143
  // Runs saved in the site's runs folder are compared with the one before; a run sent to --out is not.
140
144
  const previous = opts.outDir ? undefined : await previousRun(opts.dataDir, config.site);
141
145
  const outDir = path.resolve(opts.outDir ?? (await newRunDir(opts.dataDir, config.site)).dir);
142
- const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, against, branding: opts.branding ?? config.branding !== false, previous });
146
+ const reportPath = await writeReports({ outDir, config, plan, runs, findings, explained, lang, ai: provider ? { name: provider.name, model: provider.model } : null, against, branding: opts.branding ?? config.branding !== false, previous });
143
147
  const counts = summarize(groupFindings(findings));
144
148
  return { journeys, plan, runs, findings, explained, counts, reportPath, outDir, lang, ...(against ? { againstId: against.id } : {}), ...(saveError ? { saveError } : {}) };
145
149
  }
package/src/brand.js CHANGED
@@ -7,8 +7,8 @@ export const LOGOS = {
7
7
  "stacked-dark": "data:image/webp;base64,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",
8
8
  "horizontal-light": "data:image/webp;base64,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",
9
9
  "horizontal-dark": "data:image/webp;base64,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",
10
- "atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZGciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWRpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWRvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWRvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFkaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZGcpIiBzdHJva2U9InVybCgjbTFkZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiMwQTBFMUEiLz48L3N2Zz4K",
11
- "atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDcuMDQgNTIiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj48dGl0bGU+YWkgdGFnIGRlYnVnZ2VyPC90aXRsZT48ZyB0cmFuc2Zvcm09InNjYWxlKDEuNjIpIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9Im0xZWciIHgxPSIwIiB5MT0iMCIgeDI9IjEiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0RjhFRjciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyQjVCRDciLz48L2xpbmVhckdyYWRpZW50PjxtYXNrIGlkPSJtMWVpIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSI4LjYiIGN5PSIxMiIgcj0iMS45IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTMuMiIgeT0iOS4wIiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjYuNCIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMTcuMyIgeT0iNi40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjkiIHJ4PSIuNiIgZmlsbD0iIzAwMCIvPjxyZWN0IHg9IjIxLjQiIHk9IjEwLjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PC9tYXNrPjxtYXNrIGlkPSJtMWVvIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHJlY3QgeD0iLTgiIHk9Ii04IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiNmZmYiLz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNy42IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3LjIgMjcuMkwzMC40IDMwLjQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSI3LjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvbWFzaz48L2RlZnM+PGcgbWFzaz0idXJsKCNtMWVvKSI+PGcgdHJhbnNmb3JtPSIiPjxnIG1hc2s9InVybCgjbTFlaSkiPjxwb2x5Z29uIHBvaW50cz0iMi42LDEyIDkuNCw0LjIgMjguNCw0LjIgMjguNCwxOS44IDkuNCwxOS44IiBmaWxsPSJ1cmwoI20xZWcpIiBzdHJva2U9InVybCgjbTFlZykiIHN0cm9rZS13aWR0aD0iNC4yIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9nPjwvZz48L2c+PGNpcmNsZSBjeD0iMjMuNCIgY3k9IjIzLjQiIHI9IjUuMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjIuNiIvPjxwYXRoIGQ9Ik0yNy43OTk5OTk5OTk5OTk5OTcgMjcuNzk5OTk5OTk5OTk5OTk3TDI5LjQgMjkuNCIgc3Ryb2tlPSIjOENCQkZGIiBzdHJva2Utd2lkdGg9IjMuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9nPjxwYXRoIGQ9Ik02OS42MTYgMzcuNTQ0UTY3LjcxMiAzNy41NDQgNjYuMjgzOTk5OTk5OTk5OTkgMzYuNzk2UTY0Ljg1NiAzNi4wNDggNjQuMDIzIDM0LjczOTAwMDAwMDAwMDAwNFE2My4xOSAzMy40MyA2My4xOSAzMS43M1E2My4xOSAyOS44NiA2NC4xNTg5OTk5OTk5OTk5OSAyOC41Njc5OTk5OTk5OTk5OThRNjUuMTI4IDI3LjI3NiA2Ni43NDMgMjYuNTk1OTk5OTk5OTk5OTk3UTY4LjM1OCAyNS45MTU5OTk5OTk5OTk5OTcgNzAuMzMgMjUuOTE1OTk5OTk5OTk5OTk3UTcxLjQ1MiAyNS45MTU5OTk5OTk5OTk5OTcgNzIuMzcgMjYuMDY5UTczLjI4OCAyNi4yMjIgNzQuMDAyMDAwMDAwMDAwMDEgMjYuNDI2MDAwMDAwMDAwMDAyUTc0LjcxNjAwMDAwMDAwMDAxIDI2LjYzIDc1LjEyNCAyNi44NjhWMjUuOTVRNzUuMTI0IDI0LjI1IDczLjkgMjMuMjNRNzIuNjc2IDIyLjIxIDcwLjczOCAyMi4yMVE2OS40MTIgMjIuMjEgNjguMjIyMDAwMDAwMDAwMDEgMjIuODA1UTY3LjAzMiAyMy40IDY2LjI4NCAyNC40Mkw2My44MDIgMjIuNDgyUTY0LjU1IDIxLjQyNzk5OTk5OTk5OTk5NyA2NS42MjEwMDAwMDAwMDAwMSAyMC42OFE2Ni42OTIwMDAwMDAwMDAwMSAxOS45MzIgNjguMDE4IDE5LjUyNFE2OS4zNDQgMTkuMTE2IDcwLjg0IDE5LjExNlE3NC41OCAxOS4xMTYgNzYuNjIgMjAuOTY5UTc4LjY2IDIyLjgyMiA3OC42NiAyNi4xNTRWMzcuMEg3NS4xMjRWMzQuODU4SDc0LjkyUTc0LjQ0NCAzNS41MzggNzMuNjc5IDM2LjE1UTcyLjkxNCAzNi43NjIgNzEuODk0IDM3LjE1M1E3MC44NzQgMzcuNTQ0IDY5LjYxNiAzNy41NDRaTTcwLjI2MiAzNC41NTJRNzEuNjkgMzQuNTUyIDcyLjc3Nzk5OTk5OTk5OTk5IDMzLjg3MlE3My44NjYgMzMuMTkyIDc0LjQ5NSAzMi4wODdRNzUuMTI0IDMwLjk4MiA3NS4xMjQgMjkuNjg5OTk5OTk5OTk5OTk4UTc0LjM0MiAyOS4yNDc5OTk5OTk5OTk5OTggNzMuMjg4IDI4Ljk1OVE3Mi4yMzQgMjguNjcgNzEuMDEgMjguNjdRNjguOCAyOC42NyA2Ny44NDggMjkuNTU0MDAwMDAwMDAwMDAyUTY2Ljg5NiAzMC40MzggNjYuODk2IDMxLjc2NFE2Ni44OTYgMzIuOTg4IDY3Ljc5NyAzMy43Njk5OTk5OTk5OTk5OTZRNjguNjk4MDAwMDAwMDAwMDEgMzQuNTUyIDcwLjI2MiAzNC41NTJaTTgyLjI5OCAzNy4wVjE5LjY2SDg1Ljk3VjM3LjBaTTg0LjEzNCAxNy4xMVE4My4xMTQgMTcuMTEgODIuMzgzMDAwMDAwMDAwMDEgMTYuMzc4OTk5OTk5OTk5OTk4UTgxLjY1MiAxNS42NDggODEuNjUyIDE0LjYyOFE4MS42NTIgMTMuNTczOTk5OTk5OTk5OTk4IDgyLjM4MzAwMDAwMDAwMDAxIDEyLjg3Njk5OTk5OTk5OTk5OVE4My4xMTQgMTIuMTggODQuMTM0IDEyLjE4UTg1LjE4OCAxMi4xOCA4NS45MDIgMTIuODc2OTk5OTk5OTk5OTk5UTg2LjYxNiAxMy41NzM5OTk5OTk5OTk5OTggODYuNjE2IDE0LjYyOFE4Ni42MTYgMTUuNjQ4IDg1LjkwMiAxNi4zNzg5OTk5OTk5OTk5OThRODUuMTg4IDE3LjExIDg0LjEzNCAxNy4xMVpNOTYuMjA0IDIyLjg1NTk5OTk5OTk5OTk5OFYxOS42Nkg5OS40MzRWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMDQuNTM0IDM3LjI3MlExMDIuMTIgMzcuMjcyIDEwMC42OTIwMDAwMDAwMDAwMSAzNS44NDM5OTk5OTk5OTk5OTRROTkuMjY0MDAwMDAwMDAwMDEgMzQuNDE2IDk5LjI2NDAwMDAwMDAwMDAxIDMxLjk2OFYxNC43NjRIMTAyLjkzNlYzMS4xODZRMTAyLjkzNiAzMi41NDYgMTAzLjQ4IDMzLjE5MlExMDQuMDI0IDMzLjgzOCAxMDUuMjE0IDMzLjgzOFExMDUuNzU4MDAwMDAwMDAwMDEgMzMuODM4IDEwNi4yMzQwMDAwMDAwMDAwMSAzMy42ODVRMTA2LjcxMDAwMDAwMDAwMDAxIDMzLjUzMiAxMDcuMjg4MDAwMDAwMDAwMDEgMzMuMTkyVjM2Ljc2MlExMDYuNjQyMDAwMDAwMDAwMDEgMzcuMCAxMDUuOTYyMDAwMDAwMDAwMDIgMzcuMTM1OTk5OTk5OTk5OTk2UTEwNS4yODIwMDAwMDAwMDAwMSAzNy4yNzIgMTA0LjUzNCAzNy4yNzJaTTEwMi43MzIgMjIuODU1OTk5OTk5OTk5OTk4VjE5LjY2SDEwNy4xNTJWMjIuODU1OTk5OTk5OTk5OTk4Wk0xMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0UTExMy45NTIwMDAwMDAwMDAwMSAzNy41NDQgMTEyLjUyNCAzNi43OTZRMTExLjA5NiAzNi4wNDggMTEwLjI2MyAzNC43MzkwMDAwMDAwMDAwMDRRMTA5LjQzIDMzLjQzIDEwOS40MyAzMS43M1ExMDkuNDMgMjkuODYgMTEwLjM5OSAyOC41Njc5OTk5OTk5OTk5OThRMTExLjM2ODAwMDAwMDAwMDAxIDI3LjI3NiAxMTIuOTgzIDI2LjU5NTk5OTk5OTk5OTk5N1ExMTQuNTk4MDAwMDAwMDAwMDEgMjUuOTE1OTk5OTk5OTk5OTk3IDExNi41NzAwMDAwMDAwMDAwMSAyNS45MTU5OTk5OTk5OTk5OTdRMTE3LjY5MjAwMDAwMDAwMDAxIDI1LjkxNTk5OTk5OTk5OTk5NyAxMTguNjEwMDAwMDAwMDAwMDEgMjYuMDY5UTExOS41MjggMjYuMjIyIDEyMC4yNDIwMDAwMDAwMDAwMiAyNi40MjYwMDAwMDAwMDAwMDJRMTIwLjk1NjAwMDAwMDAwMDAyIDI2LjYzIDEyMS4zNjQgMjYuODY4VjI1Ljk1UTEyMS4zNjQgMjQuMjUgMTIwLjE0MDAwMDAwMDAwMDAxIDIzLjIzUTExOC45MTYwMDAwMDAwMDAwMSAyMi4yMSAxMTYuOTc4MDAwMDAwMDAwMDEgMjIuMjFRMTE1LjY1MjAwMDAwMDAwMDAyIDIyLjIxIDExNC40NjIwMDAwMDAwMDAwMiAyMi44MDVRMTEzLjI3MiAyMy40IDExMi41MjQwMDAwMDAwMDAwMiAyNC40MkwxMTAuMDQyMDAwMDAwMDAwMDIgMjIuNDgyUTExMC43OSAyMS40Mjc5OTk5OTk5OTk5OTcgMTExLjg2MTAwMDAwMDAwMDAyIDIwLjY4UTExMi45MzIwMDAwMDAwMDAwMiAxOS45MzIgMTE0LjI1ODAwMDAwMDAwMDAxIDE5LjUyNFExMTUuNTg0IDE5LjExNiAxMTcuMDgwMDAwMDAwMDAwMDEgMTkuMTE2UTEyMC44MjAwMDAwMDAwMDAwMSAxOS4xMTYgMTIyLjg2MDAwMDAwMDAwMDAxIDIwLjk2OVExMjQuOSAyMi44MjIgMTI0LjkgMjYuMTU0VjM3LjBIMTIxLjM2NFYzNC44NThIMTIxLjE2MDAwMDAwMDAwMDAxUTEyMC42ODQwMDAwMDAwMDAwMSAzNS41MzggMTE5LjkxOTAwMDAwMDAwMDAxIDM2LjE1UTExOS4xNTQwMDAwMDAwMDAwMSAzNi43NjIgMTE4LjEzNDAwMDAwMDAwMDAxIDM3LjE1M1ExMTcuMTE0IDM3LjU0NCAxMTUuODU2MDAwMDAwMDAwMDEgMzcuNTQ0Wk0xMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyUTExNy45MyAzNC41NTIgMTE5LjAxOCAzMy44NzJRMTIwLjEwNjAwMDAwMDAwMDAxIDMzLjE5MiAxMjAuNzM1MDAwMDAwMDAwMDEgMzIuMDg3UTEyMS4zNjQgMzAuOTgyIDEyMS4zNjQgMjkuNjg5OTk5OTk5OTk5OTk4UTEyMC41ODIwMDAwMDAwMDAwMSAyOS4yNDc5OTk5OTk5OTk5OTggMTE5LjUyOCAyOC45NTlRMTE4LjQ3NCAyOC42NyAxMTcuMjUwMDAwMDAwMDAwMDEgMjguNjdRMTE1LjA0IDI4LjY3IDExNC4wODgwMDAwMDAwMDAwMSAyOS41NTQwMDAwMDAwMDAwMDJRMTEzLjEzNjAwMDAwMDAwMDAxIDMwLjQzOCAxMTMuMTM2MDAwMDAwMDAwMDEgMzEuNzY0UTExMy4xMzYwMDAwMDAwMDAwMSAzMi45ODggMTE0LjAzNyAzMy43Njk5OTk5OTk5OTk5OTZRMTE0LjkzODAwMDAwMDAwMDAyIDM0LjU1MiAxMTYuNTAyMDAwMDAwMDAwMDEgMzQuNTUyWk0xMzYuMzU4IDQ0Ljg4OFExMzQuMDggNDQuODg4IDEzMi40MzEgNDQuMTU3UTEzMC43ODIgNDMuNDI2IDEyOS43NjIgNDIuMjg3MDAwMDAwMDAwMDA2UTEyOC43NDIwMDAwMDAwMDAwMiA0MS4xNDggMTI4LjMgMzkuOTU4TDEzMS43MDAwMDAwMDAwMDAwMiAzOC41M1ExMzIuMjQ0IDM5Ljg5IDEzMy40NTEwMDAwMDAwMDAwMiA0MC43NTcwMDAwMDAwMDAwMDVRMTM0LjY1ODAwMDAwMDAwMDAyIDQxLjYyNCAxMzYuMzU4IDQxLjYyNFExMzguNzcyMDAwMDAwMDAwMDIgNDEuNjI0IDE0MC4xMzIgNDAuMTk2UTE0MS40OTIwMDAwMDAwMDAwMiAzOC43NjggMTQxLjQ5MjAwMDAwMDAwMDAyIDM2LjE1VjM0LjQ4NEgxNDEuMjg4UTE0MC40NzIgMzUuNjc0IDEzOS4wNDQgMzYuNDIyUTEzNy42MTYgMzcuMTcgMTM1Ljc0NiAzNy4xN1ExMzMuNTM2IDM3LjE3IDEzMS42ODMgMzYuMDQ4UTEyOS44MyAzNC45MjYgMTI4LjcyNTAwMDAwMDAwMDAyIDMyLjkwM1ExMjcuNjIgMzAuODggMTI3LjYyIDI4LjE2UTEyNy42MiAyNS40MDYgMTI4LjcyNTAwMDAwMDAwMDAyIDIzLjM4M1ExMjkuODMgMjEuMzYgMTMxLjY4MyAyMC4yMzhRMTMzLjUzNiAxOS4xMTYgMTM1Ljc0NiAxOS4xMTZRMTM3LjYxNiAxOS4xMTYgMTM5LjA0NCAxOS44NDdRMTQwLjQ3MiAyMC41NzggMTQxLjI4OCAyMS44MzZIMTQxLjQ5MjAwMDAwMDAwMDAyVjE5LjY2SDE0NC45OTRWMzYuMDgyUTE0NC45OTQgMzguOTA0IDE0My44ODkgNDAuODc2MDAwMDAwMDAwMDA1UTE0Mi43ODQwMDAwMDAwMDAwMiA0Mi44NDggMTQwLjg0NiA0My44Njc5OTk5OTk5OTk5OTVRMTM4LjkwODAwMDAwMDAwMDAyIDQ0Ljg4OCAxMzYuMzU4IDQ0Ljg4OFpNMTM2LjM5MiAzMy44MzhRMTM3Ljc1MiAzMy44MzggMTM4LjkyNSAzMy4xNzVRMTQwLjA5OCAzMi41MTIgMTQwLjc5NTAwMDAwMDAwMDAyIDMxLjIzNzAwMDAwMDAwMDAwMlExNDEuNDkyMDAwMDAwMDAwMDIgMjkuOTYyIDE0MS40OTIwMDAwMDAwMDAwMiAyOC4xNlExNDEuNDkyMDAwMDAwMDAwMDIgMjYuMjU2IDE0MC43OTUwMDAwMDAwMDAwMiAyNC45OTc5OTk5OTk5OTk5OThRMTQwLjA5OCAyMy43NCAxMzguOTI1IDIzLjA5NFExMzcuNzUyIDIyLjQ0OCAxMzYuMzkyIDIyLjQ0OFExMzUuMDMyIDIyLjQ0OCAxMzMuODU5IDIzLjA5NFExMzIuNjg2IDIzLjc0IDEzMS45NzIgMjUuMDE1UTEzMS4yNTggMjYuMjkgMTMxLjI1OCAyOC4xNlExMzEuMjU4IDI5Ljk5NiAxMzEuOTcyIDMxLjI3MVExMzIuNjg2IDMyLjU0NiAxMzMuODU5IDMzLjE5MlExMzUuMDMyIDMzLjgzOCAxMzYuMzkyIDMzLjgzOFpNMTYzLjg2NCAzNy41NDRRMTYxLjUxOCAzNy41NDQgMTU5LjYxNCAzNi4zNTRRMTU3LjcxIDM1LjE2NCAxNTYuNjIyIDMzLjA5UTE1NS41MzQgMzEuMDE2IDE1NS41MzQgMjguMzNRMTU1LjUzNCAyNS42NDQgMTU2LjYyMiAyMy41N1ExNTcuNzEgMjEuNDk2IDE1OS42MTQgMjAuMzA1OTk5OTk5OTk5OTk3UTE2MS41MTggMTkuMTE2IDE2My44NjQgMTkuMTE2UTE2NS4yMjQgMTkuMTE2IDE2Ni4zMTIgMTkuNTI0UTE2Ny40IDE5LjkzMiAxNjguMTk5IDIwLjU5NVExNjguOTk4IDIxLjI1OCAxNjkuNDQgMjIuMDA2SDE2OS42NDRMMTY5LjQ0IDE5LjU5MlYxMi42NTU5OTk5OTk5OTk5OTlIMTczLjA3OFYzNy4wSDE2OS42NDRWMzQuNjg4SDE2OS40NFExNjguOTk4IDM1LjQwMiAxNjguMTk5IDM2LjA2NVExNjcuNCAzNi43MjggMTY2LjMxMiAzNy4xMzU5OTk5OTk5OTk5OTZRMTY1LjIyNCAzNy41NDQgMTYzLjg2NCAzNy41NDRaTTE2NC40MDggMzQuMTc4UTE2NS43NjggMzQuMTc4IDE2Ni45NzUgMzMuNDY0UTE2OC4xODIgMzIuNzUgMTY4LjkxMyAzMS40NDFRMTY5LjY0NCAzMC4xMzE5OTk5OTk5OTk5OTggMTY5LjY0NCAyOC4zM1ExNjkuNjQ0IDI2LjUyOCAxNjguOTEzIDI1LjIxODk5OTk5OTk5OTk5OFExNjguMTgyIDIzLjkwOTk5OTk5OTk5OTk5NyAxNjYuOTc1IDIzLjE5NTk5OTk5OTk5OTk5OFExNjUuNzY4IDIyLjQ4MiAxNjQuNDA4IDIyLjQ4MlExNjMuMDQ4IDIyLjQ4MiAxNjEuODU4IDIzLjE5NTk5OTk5OTk5OTk5OFExNjAuNjY4IDIzLjkwOTk5OTk5OTk5OTk5NyAxNTkuOTIwMDAwMDAwMDAwMDIgMjUuMjE4OTk5OTk5OTk5OTk4UTE1OS4xNzIgMjYuNTI4IDE1OS4xNzIgMjguMzNRMTU5LjE3MiAzMC4wOTggMTU5LjkyMDAwMDAwMDAwMDAyIDMxLjQyNFExNjAuNjY4IDMyLjc1IDE2MS44NTggMzMuNDY0UTE2My4wNDggMzQuMTc4IDE2NC40MDggMzQuMTc4Wk0xODQuOTEgMzcuNTQ0UTE4Mi4zNTk5OTk5OTk5OTk5OSAzNy41NDQgMTgwLjM1Mzk5OTk5OTk5OTk4IDM2LjM1NFExNzguMzQ3OTk5OTk5OTk5OTggMzUuMTY0IDE3Ny4yMDkgMzMuMDlRMTc2LjA3IDMxLjAxNiAxNzYuMDcgMjguMzYzOTk5OTk5OTk5OTk3UTE3Ni4wNyAyNS44ODE5OTk5OTk5OTk5OTggMTc3LjE1ODAwMDAwMDAwMDAyIDIzLjc3Mzk5OTk5OTk5OTk5N1ExNzguMjQ2IDIxLjY2NTk5OTk5OTk5OTk5NyAxODAuMjAxMDAwMDAwMDAwMDIgMjAuMzkxUTE4Mi4xNTYgMTkuMTE2IDE4NC43MDYgMTkuMTE2UTE4Ny4zOTIgMTkuMTE2IDE4OS4yNzkgMjAuMjcyUTE5MS4xNjYgMjEuNDI3OTk5OTk5OTk5OTk3IDE5Mi4xNTIgMjMuNDMzOTk5OTk5OTk5OTk3UTE5My4xMzggMjUuNDM5OTk5OTk5OTk5OTk4IDE5My4xMzggMjcuOTU2UTE5My4xMzggMjguMzMgMTkzLjEyMDk5OTk5OTk5OTk4IDI4LjYzNlExOTMuMTAzOTk5OTk5OTk5OTggMjguOTQyIDE5My4wNyAyOS4xMTJIMTc4LjE0NFYyNi4zNTc5OTk5OTk5OTk5OTdIMTg5LjVRMTg5LjQ2NiAyNS43MTIgMTg5LjE2IDI0Ljk4MVExODguODUzOTk5OTk5OTk5OTggMjQuMjUgMTg4LjI3NiAyMy42Mzc5OTk5OTk5OTk5OThRMTg3LjY5OCAyMy4wMjYgMTg2LjgxNDAwMDAwMDAwMDAyIDIyLjYzNDk5OTk5OTk5OTk5OFExODUuOTMgMjIuMjQ0IDE4NC43NCAyMi4yNDRRMTgzLjI0NCAyMi4yNDQgMTgyLjA4OCAyMy4wMDlRMTgwLjkzMiAyMy43NzQgMTgwLjI4NiAyNS4xMzRRMTc5LjY0IDI2LjQ5NCAxNzkuNjQgMjguMjk2UTE3OS42NCAzMC4yNjggMTgwLjM4Nzk5OTk5OTk5OTk4IDMxLjU5NFExODEuMTM2IDMyLjkyIDE4Mi4zNiAzMy42UTE4My41ODQgMzQuMjggMTg1LjAxMiAzNC4yOFExODYuNzQ2IDM0LjI4IDE4Ny45MTg5OTk5OTk5OTk5OCAzMy40ODFRMTg5LjA5MTk5OTk5OTk5OTk4IDMyLjY4MiAxODkuNzcyIDMxLjQ5MkwxOTIuNzk4IDMyLjk1NFExOTEuNjc2IDM0Ljk5NCAxODkuNzM4IDM2LjI2OVExODcuOCAzNy41NDQgMTg0LjkxIDM3LjU0NFpNMjA1LjM0NCAzNy41NDRRMjA0LjAxOCAzNy41NDQgMjAyLjkzIDM3LjEzNTk5OTk5OTk5OTk5NlEyMDEuODQyIDM2LjcyOCAyMDEuMDQzIDM2LjA2NVEyMDAuMjQ0IDM1LjQwMiAxOTkuNzY4IDM0LjY4OEgxOTkuNTY0VjM3LjBIMTk2LjA5NlYxMi42NTU5OTk5OTk5OTk5OTlIMTk5Ljc2OFYxOS41OTJMMTk5LjU2NCAyMi4wMDZIMTk5Ljc2OFEyMDAuMjQ0IDIxLjI1OCAyMDEuMDQzIDIwLjU5NVEyMDEuODQyIDE5LjkzMiAyMDIuOTMgMTkuNTI0UTIwNC4wMTggMTkuMTE2IDIwNS4zNDQgMTkuMTE2UTIwNy43MjQgMTkuMTE2IDIwOS41OTQgMjAuMzA1OTk5OTk5OTk5OTk3UTIxMS40NjQgMjEuNDk2IDIxMi41NjkwMDAwMDAwMDAwMiAyMy41N1EyMTMuNjc0IDI1LjY0NCAyMTMuNjc0IDI4LjMzUTIxMy42NzQgMzEuMDE2IDIxMi41NjkwMDAwMDAwMDAwMiAzMy4wOVEyMTEuNDY0IDM1LjE2NCAyMDkuNTk0IDM2LjM1NFEyMDcuNzI0IDM3LjU0NCAyMDUuMzQ0IDM3LjU0NFpNMjA0LjggMzQuMTc4UTIwNi4xNiAzNC4xNzggMjA3LjM2NzAwMDAwMDAwMDAyIDMzLjQ2NFEyMDguNTc0IDMyLjc1IDIwOS4zMDUgMzEuNDI0UTIxMC4wMzYgMzAuMDk4IDIxMC4wMzYgMjguMzNRMjEwLjAzNiAyNi41MjggMjA5LjMwNSAyNS4yMTg5OTk5OTk5OTk5OThRMjA4LjU3NCAyMy45MDk5OTk5OTk5OTk5OTcgMjA3LjM2NzAwMDAwMDAwMDAyIDIzLjE5NTk5OTk5OTk5OTk5OFEyMDYuMTYgMjIuNDgyIDIwNC44IDIyLjQ4MlEyMDMuNDQgMjIuNDgyIDIwMi4yNSAyMy4xOTU5OTk5OTk5OTk5OThRMjAxLjA2IDIzLjkwOTk5OTk5OTk5OTk5NyAyMDAuMzEyIDI1LjIxODk5OTk5OTk5OTk5OFExOTkuNTY0IDI2LjUyOCAxOTkuNTY0IDI4LjMzUTE5OS41NjQgMzAuMTMxOTk5OTk5OTk5OTk4IDIwMC4zMTIgMzEuNDQxUTIwMS4wNiAzMi43NSAyMDIuMjUgMzMuNDY0UTIwMy40NCAzNC4xNzggMjA0LjggMzQuMTc4Wk0yMjIuOTIyIDM3LjU0NFEyMTkuNzI2IDM3LjU0NCAyMTguMTExIDM1LjYyM1EyMTYuNDk2IDMzLjcwMiAyMTYuNDk2IDMwLjQwNFYxOS42NkgyMjAuMTY4VjI5Ljg5NFEyMjAuMTY4IDMyLjA3IDIyMS4yMDQ5OTk5OTk5OTk5OCAzMy4xMjM5OTk5OTk5OTk5OTVRMjIyLjI0MiAzNC4xNzggMjIzLjgwNiAzNC4xNzhRMjI1LjIzNCAzNC4xNzggMjI2LjI1NDAwMDAwMDAwMDAyIDMzLjQ0N1EyMjcuMjc0IDMyLjcxNiAyMjcuODM1IDMxLjUyNlEyMjguMzk2MDAwMDAwMDAwMDIgMzAuMzM2IDIyOC4zOTYwMDAwMDAwMDAwMiAyOC45NzZWMTkuNjZIMjMyLjAzNFYzNy4wSDIyOC42VjM0LjY1Mzk5OTk5OTk5OTk5NkgyMjguMzk2MDAwMDAwMDAwMDJRMjI3LjkyMDAwMDAwMDAwMDAyIDM1LjQ3IDIyNy4wNyAzNi4xMTZRMjI2LjIyIDM2Ljc2MiAyMjUuMTY2IDM3LjE1M1EyMjQuMTEyIDM3LjU0NCAyMjIuOTIyIDM3LjU0NFpNMjQzLjc2NCA0NC44ODhRMjQxLjQ4NjAwMDAwMDAwMDAyIDQ0Ljg4OCAyMzkuODM3MDAwMDAwMDAwMDIgNDQuMTU3UTIzOC4xODgwMDAwMDAwMDAwMiA0My40MjYgMjM3LjE2OCA0Mi4yODcwMDAwMDAwMDAwMDZRMjM2LjE0ODAwMDAwMDAwMDAyIDQxLjE0OCAyMzUuNzA2MDAwMDAwMDAwMDIgMzkuOTU4TDIzOS4xMDYwMDAwMDAwMDAwMiAzOC41M1EyMzkuNjUgMzkuODkgMjQwLjg1NzAwMDAwMDAwMDAzIDQwLjc1NzAwMDAwMDAwMDAwNVEyNDIuMDY0MDAwMDAwMDAwMDIgNDEuNjI0IDI0My43NjQgNDEuNjI0UTI0Ni4xNzgwMDAwMDAwMDAwMyA0MS42MjQgMjQ3LjUzOCA0MC4xOTZRMjQ4Ljg5ODAwMDAwMDAwMDAyIDM4Ljc2OCAyNDguODk4MDAwMDAwMDAwMDIgMzYuMTVWMzQuNDg0SDI0OC42OTQwMDAwMDAwMDAwMlEyNDcuODc4MDAwMDAwMDAwMDEgMzUuNjc0IDI0Ni40NTAwMDAwMDAwMDAwMiAzNi40MjJRMjQ1LjAyMjAwMDAwMDAwMDAyIDM3LjE3IDI0My4xNTIwMDAwMDAwMDAwMiAzNy4xN1EyNDAuOTQyIDM3LjE3IDIzOS4wODkgMzYuMDQ4UTIzNy4yMzYwMDAwMDAwMDAwMiAzNC45MjYgMjM2LjEzMTAwMDAwMDAwMDAzIDMyLjkwM1EyMzUuMDI2IDMwLjg4IDIzNS4wMjYgMjguMTZRMjM1LjAyNiAyNS40MDYgMjM2LjEzMTAwMDAwMDAwMDAzIDIzLjM4M1EyMzcuMjM2MDAwMDAwMDAwMDIgMjEuMzYgMjM5LjA4OSAyMC4yMzhRMjQwLjk0MiAxOS4xMTYgMjQzLjE1MjAwMDAwMDAwMDAyIDE5LjExNlEyNDUuMDIyMDAwMDAwMDAwMDIgMTkuMTE2IDI0Ni40NTAwMDAwMDAwMDAwMiAxOS44NDdRMjQ3Ljg3ODAwMDAwMDAwMDAxIDIwLjU3OCAyNDguNjk0MDAwMDAwMDAwMDIgMjEuODM2SDI0OC44OTgwMDAwMDAwMDAwMlYxOS42NkgyNTIuNFYzNi4wODJRMjUyLjQgMzguOTA0IDI1MS4yOTUwMDAwMDAwMDAwMiA0MC44NzYwMDAwMDAwMDAwMDVRMjUwLjE5MDAwMDAwMDAwMDAzIDQyLjg0OCAyNDguMjUyIDQzLjg2Nzk5OTk5OTk5OTk5NVEyNDYuMzE0MDAwMDAwMDAwMDIgNDQuODg4IDI0My43NjQgNDQuODg4Wk0yNDMuNzk4IDMzLjgzOFEyNDUuMTU4MDAwMDAwMDAwMDIgMzMuODM4IDI0Ni4zMzEwMDAwMDAwMDAwMiAzMy4xNzVRMjQ3LjUwNDAwMDAwMDAwMDAyIDMyLjUxMiAyNDguMjAxMDAwMDAwMDAwMDIgMzEuMjM3MDAwMDAwMDAwMDAyUTI0OC44OTgwMDAwMDAwMDAwMiAyOS45NjIgMjQ4Ljg5ODAwMDAwMDAwMDAyIDI4LjE2UTI0OC44OTgwMDAwMDAwMDAwMiAyNi4yNTYgMjQ4LjIwMTAwMDAwMDAwMDAyIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNDcuNTA0MDAwMDAwMDAwMDIgMjMuNzQgMjQ2LjMzMTAwMDAwMDAwMDAyIDIzLjA5NFEyNDUuMTU4MDAwMDAwMDAwMDIgMjIuNDQ4IDI0My43OTggMjIuNDQ4UTI0Mi40MzgwMDAwMDAwMDAwMiAyMi40NDggMjQxLjI2NTAwMDAwMDAwMDAxIDIzLjA5NFEyNDAuMDkyIDIzLjc0IDIzOS4zNzgwMDAwMDAwMDAwMSAyNS4wMTVRMjM4LjY2NDAwMDAwMDAwMDAyIDI2LjI5IDIzOC42NjQwMDAwMDAwMDAwMiAyOC4xNlEyMzguNjY0MDAwMDAwMDAwMDIgMjkuOTk2IDIzOS4zNzgwMDAwMDAwMDAwMSAzMS4yNzFRMjQwLjA5MiAzMi41NDYgMjQxLjI2NTAwMDAwMDAwMDAxIDMzLjE5MlEyNDIuNDM4MDAwMDAwMDAwMDIgMzMuODM4IDI0My43OTggMzMuODM4Wk0yNjQuMDk2IDQ0Ljg4OFEyNjEuODE4IDQ0Ljg4OCAyNjAuMTY5IDQ0LjE1N1EyNTguNTIgNDMuNDI2IDI1Ny41IDQyLjI4NzAwMDAwMDAwMDAwNlEyNTYuNDggNDEuMTQ4IDI1Ni4wMzggMzkuOTU4TDI1OS40MzggMzguNTNRMjU5Ljk4MiAzOS44OSAyNjEuMTg5IDQwLjc1NzAwMDAwMDAwMDAwNVEyNjIuMzk2IDQxLjYyNCAyNjQuMDk2IDQxLjYyNFEyNjYuNTEgNDEuNjI0IDI2Ny44NyA0MC4xOTZRMjY5LjIzIDM4Ljc2OCAyNjkuMjMgMzYuMTVWMzQuNDg0SDI2OS4wMjZRMjY4LjIxMDAwMDAwMDAwMDA0IDM1LjY3NCAyNjYuNzgyMDAwMDAwMDAwMDQgMzYuNDIyUTI2NS4zNTQgMzcuMTcgMjYzLjQ4NCAzNy4xN1EyNjEuMjc0IDM3LjE3IDI1OS40MjEgMzYuMDQ4UTI1Ny41NjggMzQuOTI2IDI1Ni40NjI5OTk5OTk5OTk5NyAzMi45MDNRMjU1LjM1OCAzMC44OCAyNTUuMzU4IDI4LjE2UTI1NS4zNTggMjUuNDA2IDI1Ni40NjI5OTk5OTk5OTk5NyAyMy4zODNRMjU3LjU2OCAyMS4zNiAyNTkuNDIxIDIwLjIzOFEyNjEuMjc0IDE5LjExNiAyNjMuNDg0IDE5LjExNlEyNjUuMzU0IDE5LjExNiAyNjYuNzgyMDAwMDAwMDAwMDQgMTkuODQ3UTI2OC4yMTAwMDAwMDAwMDAwNCAyMC41NzggMjY5LjAyNiAyMS44MzZIMjY5LjIzVjE5LjY2SDI3Mi43MzJWMzYuMDgyUTI3Mi43MzIgMzguOTA0IDI3MS42MjcgNDAuODc2MDAwMDAwMDAwMDA1UTI3MC41MjIgNDIuODQ4IDI2OC41ODQgNDMuODY3OTk5OTk5OTk5OTk1UTI2Ni42NDYgNDQuODg4IDI2NC4wOTYgNDQuODg4Wk0yNjQuMTMgMzMuODM4UTI2NS40OSAzMy44MzggMjY2LjY2MyAzMy4xNzVRMjY3LjgzNiAzMi41MTIgMjY4LjUzMyAzMS4yMzcwMDAwMDAwMDAwMDJRMjY5LjIzIDI5Ljk2MiAyNjkuMjMgMjguMTZRMjY5LjIzIDI2LjI1NiAyNjguNTMzIDI0Ljk5Nzk5OTk5OTk5OTk5OFEyNjcuODM2IDIzLjc0IDI2Ni42NjMgMjMuMDk0UTI2NS40OSAyMi40NDggMjY0LjEzIDIyLjQ0OFEyNjIuNzcgMjIuNDQ4IDI2MS41OTcgMjMuMDk0UTI2MC40MjQgMjMuNzQgMjU5LjcxIDI1LjAxNVEyNTguOTk2IDI2LjI5IDI1OC45OTYgMjguMTZRMjU4Ljk5NiAyOS45OTYgMjU5LjcxIDMxLjI3MVEyNjAuNDI0IDMyLjU0NiAyNjEuNTk3IDMzLjE5MlEyNjIuNzcgMzMuODM4IDI2NC4xMyAzMy44MzhaTTI4NC41MyAzNy41NDRRMjgxLjk4IDM3LjU0NCAyNzkuOTc0MDAwMDAwMDAwMDUgMzYuMzU0UTI3Ny45NjggMzUuMTY0IDI3Ni44MjkgMzMuMDlRMjc1LjY5IDMxLjAxNiAyNzUuNjkgMjguMzYzOTk5OTk5OTk5OTk3UTI3NS42OSAyNS44ODE5OTk5OTk5OTk5OTggMjc2Ljc3OCAyMy43NzM5OTk5OTk5OTk5OTdRMjc3Ljg2NiAyMS42NjU5OTk5OTk5OTk5OTcgMjc5LjgyMSAyMC4zOTFRMjgxLjc3NiAxOS4xMTYgMjg0LjMyNiAxOS4xMTZRMjg3LjAxMiAxOS4xMTYgMjg4Ljg5OSAyMC4yNzJRMjkwLjc4NiAyMS40Mjc5OTk5OTk5OTk5OTcgMjkxLjc3MiAyMy40MzM5OTk5OTk5OTk5OTdRMjkyLjc1OCAyNS40Mzk5OTk5OTk5OTk5OTggMjkyLjc1OCAyNy45NTZRMjkyLjc1OCAyOC4zMyAyOTIuNzQxIDI4LjYzNlEyOTIuNzI0IDI4Ljk0MiAyOTIuNjkgMjkuMTEySDI3Ny43NjRWMjYuMzU3OTk5OTk5OTk5OTk3SDI4OS4xMlEyODkuMDg2IDI1LjcxMiAyODguNzggMjQuOTgxUTI4OC40NzQgMjQuMjUgMjg3Ljg5NTk5OTk5OTk5OTk2IDIzLjYzNzk5OTk5OTk5OTk5OFEyODcuMzE4IDIzLjAyNiAyODYuNDMzOTk5OTk5OTk5OTcgMjIuNjM0OTk5OTk5OTk5OTk4UTI4NS41NSAyMi4yNDQgMjg0LjM2IDIyLjI0NFEyODIuODY0IDIyLjI0NCAyODEuNzA3OTk5OTk5OTk5OTcgMjMuMDA5UTI4MC41NTIgMjMuNzc0IDI3OS45MDYgMjUuMTM0UTI3OS4yNiAyNi40OTQgMjc5LjI2IDI4LjI5NlEyNzkuMjYgMzAuMjY4IDI4MC4wMDggMzEuNTk0UTI4MC43NTYgMzIuOTIgMjgxLjk4IDMzLjZRMjgzLjIwNCAzNC4yOCAyODQuNjMyIDM0LjI4UTI4Ni4zNjYgMzQuMjggMjg3LjUzOSAzMy40ODFRMjg4LjcxMiAzMi42ODIgMjg5LjM5MiAzMS40OTJMMjkyLjQxOCAzMi45NTRRMjkxLjI5NiAzNC45OTQgMjg5LjM1OCAzNi4yNjlRMjg3LjQyIDM3LjU0NCAyODQuNTMgMzcuNTQ0Wk0yOTUuNzE2IDM3LjBWMTkuNjZIMjk5LjE4NFYyMi4yMUgyOTkuMzg4UTI5OS43OTYgMjEuMzI2IDMwMC41NjEwMDAwMDAwMDAwNCAyMC42NDZRMzAxLjMyNiAxOS45NjU5OTk5OTk5OTk5OTggMzAyLjMyOSAxOS41NThRMzAzLjMzMiAxOS4xNSAzMDQuNDIgMTkuMTVRMzA1LjEzNCAxOS4xNSAzMDUuNjI3IDE5LjIzNVEzMDYuMTIgMTkuMzIgMzA2LjUyOCAxOS40OVYyMy4yOThRMzA1Ljg4MiAyMy4wMjYgMzA1LjIxOSAyMi44NTZRMzA0LjU1NiAyMi42ODYgMzAzLjg0MiAyMi42ODZRMzAyLjU1IDIyLjY4NiAzMDEuNTQ3IDIzLjM4M1EzMDAuNTQ0IDI0LjA4IDI5OS45NjYgMjUuMjM1OTk5OTk5OTk5OTk3UTI5OS4zODggMjYuMzkyIDI5OS4zODggMjcuODJWMzcuMFoiIGZpbGw9IiNGMEY0RkYiLz48L3N2Zz4K",
12
- "atd-icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJhaSB0YWcgZGVidWdnZXIiPjx0aXRsZT5haSB0YWcgZGVidWdnZXI8L3RpdGxlPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0ibTFhZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzRGOEVGNyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzJCNUJENyIvPjwvbGluZWFyR3JhZGllbnQ+PG1hc2sgaWQ9Im0xYWkiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9Ii04IiB5PSItOCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4Ij48cmVjdCB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0iI2ZmZiIvPjxjaXJjbGUgY3g9IjguNiIgY3k9IjEyIiByPSIxLjkiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIxMy4yIiB5PSI5LjAiIHdpZHRoPSIzLjIiIGhlaWdodD0iNi40IiByeD0iLjYiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIxNy4zIiB5PSI2LjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iOSIgcng9Ii42IiBmaWxsPSIjMDAwIi8+PHJlY3QgeD0iMjEuNCIgeT0iMTAuNCIgd2lkdGg9IjMuMiIgaGVpZ2h0PSI1IiByeD0iLjYiIGZpbGw9IiMwMDAiLz48L21hc2s+PG1hc2sgaWQ9Im0xYW8iIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9Ii04IiB5PSItOCIgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4Ij48cmVjdCB4PSItOCIgeT0iLTgiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0iI2ZmZiIvPjxjaXJjbGUgY3g9IjIzLjQiIGN5PSIyMy40IiByPSI3LjYiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjcuMiAyNy4yTDMwLjQgMzAuNCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjcuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9tYXNrPjwvZGVmcz48ZyBtYXNrPSJ1cmwoI20xYW8pIj48ZyB0cmFuc2Zvcm09IiI+PGcgbWFzaz0idXJsKCNtMWFpKSI+PHBvbHlnb24gcG9pbnRzPSIyLjYsMTIgOS40LDQuMiAyOC40LDQuMiAyOC40LDE5LjggOS40LDE5LjgiIGZpbGw9InVybCgjbTFhZykiIHN0cm9rZT0idXJsKCNtMWFnKSIgc3Ryb2tlLXdpZHRoPSI0LjIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L2c+PC9nPjwvZz48Y2lyY2xlIGN4PSIyMy40IiBjeT0iMjMuNCIgcj0iNS4yIiBmaWxsPSJub25lIiBzdHJva2U9IiM4Q0JCRkYiIHN0cm9rZS13aWR0aD0iMi42Ii8+PHBhdGggZD0iTTI3Ljc5OTk5OTk5OTk5OTk5NyAyNy43OTk5OTk5OTk5OTk5OTdMMjkuNCAyOS40IiBzdHJva2U9IiM4Q0JCRkYiIHN0cm9rZS13aWR0aD0iMy40IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4K",
10
+ "atd-lockup-light": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgbGlnaHQ8L3RpdGxlPgo8ZGVzYz5Mb3dlcmNhc2UgbGV0dGVyaW5nIG91dGxpbmVkIGZyb20gdGhlIGluc3RhbGxlZCBHb29nbGUgU2FucyBCb2xkIDEzLjAwMiBmb250LiBUYWcgYW5kIHZpc2libGUgd29yZG1hcmsgYm90aCBoYXZlIGhlaWdodCAxNDAuIE9yYW5nZSB0b2tlbjogI0Q5NTMxRS4gVHJhbnNwYXJlbnQgYmFja2dyb3VuZC48L2Rlc2M+CjxnIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciI+CiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzIgMzIpIHNjYWxlKDAuNjczMDc2OTIzKSIgZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIvPjwvZz4KICA8cGF0aCBmaWxsPSIjMEEwRTFBIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzIuMzE3Mzk3MTg0IDEzOC40MTE1ODIyMTMpIHNjYWxlKDAuMTQ0Nzc3NjYzIC0wLjE0NDc3NzY2MykiIGQ9Ik0yMjAgLTE2UTE2NiAtMTYgMTI0LjUgNS41UTgzIDI3IDU5LjAgNjYuMFEzNSAxMDUgMzUgMTU2UTM1IDIwOSA2Mi41IDI0Ny4wUTkwIDI4NSAxMzYuNSAzMDYuMFExODMgMzI3IDI0MCAzMjdRMjcxIDMyNyAyOTYuNSAzMjMuNVEzMjIgMzIwIDM0Mi4wIDMxNS4wUTM2MiAzMTAgMzc1IDMwNFYzMjZRMzc1IDM2NyAzNDQuMCAzOTMuNVEzMTMgNDIwIDI1OSA0MjBRMjIzIDQyMCAxODkuNSA0MDMuNVExNTYgMzg3IDEzNCAzNjBMNTAgNDI2UTc1IDQ1OCAxMDguMCA0ODAuNVExNDEgNTAzIDE4MS4wIDUxNC41UTIyMSA1MjYgMjY1IDUyNlEzODIgNTI2IDQ0My4wIDQ3Mi4wUTUwNCA0MTggNTA0IDMxNFYwSDM3NVY1MkgzNjdRMzUzIDM0IDMzMi4wIDE4LjVRMzExIDMgMjgzLjAgLTYuNVEyNTUgLTE2IDIyMCAtMTZaTTI1MSA4NlEyOTEgODYgMzE4LjUgMTAzLjVRMzQ2IDEyMSAzNjAuNSAxNDkuMFEzNzUgMTc3IDM3NSAyMDhRMzUzIDIxOSAzMjUuMCAyMjUuNVEyOTcgMjMyIDI2OCAyMzJRMjEwIDIzMiAxODguMCAyMTAuMFExNjYgMTg4IDE2NiAxNTZRMTY2IDEyNiAxODcuNSAxMDYuMFEyMDkgODYgMjUxIDg2Wk02MjMgMFY1MTBINzU0VjBaTTY4OSA1NjZRNjU0IDU2NiA2MjkuMCA1OTEuMFE2MDQgNjE2IDYwNCA2NTFRNjA0IDY4NiA2MjkuMCA3MTAuNVE2NTQgNzM1IDY4OSA3MzVRNzI0IDczNSA3NDguNSA3MTAuNVE3NzMgNjg2IDc3MyA2NTFRNzczIDYxNiA3NDguNSA1OTEuMFE3MjQgNTY2IDY4OSA1NjZaTTEwNzYgMzk4VjUxMEgxMTcwVjM5OFpNMTMzNCAtOFExMjU1IC04IDEyMTAuMCAzNy41UTExNjUgODMgMTE2NSAxNjNWNjU0SDEyOTZWMTg3UTEyOTYgMTUwIDEzMTEuMCAxMzIuNVExMzI2IDExNSAxMzYwIDExNVExMzc2IDExNSAxMzkwLjAgMTE5LjVRMTQwNCAxMjQgMTQyNSAxMzdWOVExNDAzIDEgMTM4MC41IC0zLjVRMTM1OCAtOCAxMzM0IC04Wk0xMjkxIDM5OFY1MTBIMTQyMVYzOThaTTE2NzYgLTE2UTE2MjIgLTE2IDE1ODAuNSA1LjVRMTUzOSAyNyAxNTE1LjAgNjYuMFExNDkxIDEwNSAxNDkxIDE1NlExNDkxIDIwOSAxNTE4LjUgMjQ3LjBRMTU0NiAyODUgMTU5Mi41IDMwNi4wUTE2MzkgMzI3IDE2OTYgMzI3UTE3MjcgMzI3IDE3NTIuNSAzMjMuNVExNzc4IDMyMCAxNzk4LjAgMzE1LjBRMTgxOCAzMTAgMTgzMSAzMDRWMzI2UTE4MzEgMzY3IDE4MDAuMCAzOTMuNVExNzY5IDQyMCAxNzE1IDQyMFExNjc5IDQyMCAxNjQ1LjUgNDAzLjVRMTYxMiAzODcgMTU5MCAzNjBMMTUwNiA0MjZRMTUzMSA0NTggMTU2NC4wIDQ4MC41UTE1OTcgNTAzIDE2MzcuMCA1MTQuNVExNjc3IDUyNiAxNzIxIDUyNlExODM4IDUyNiAxODk5LjAgNDcyLjBRMTk2MCA0MTggMTk2MCAzMTRWMEgxODMxVjUySDE4MjNRMTgwOSAzNCAxNzg4LjAgMTguNVExNzY3IDMgMTczOS4wIC02LjVRMTcxMSAtMTYgMTY3NiAtMTZaTTE3MDcgODZRMTc0NyA4NiAxNzc0LjUgMTAzLjVRMTgwMiAxMjEgMTgxNi41IDE0OS4wUTE4MzEgMTc3IDE4MzEgMjA4UTE4MDkgMjE5IDE3ODEuMCAyMjUuNVExNzUzIDIzMiAxNzI0IDIzMlExNjY2IDIzMiAxNjQ0LjAgMjEwLjBRMTYyMiAxODggMTYyMiAxNTZRMTYyMiAxMjYgMTY0My41IDEwNi4wUTE2NjUgODYgMTcwNyA4NlpNMjMxNCAtMjMyUTIyNDUgLTIzMiAyMTk0LjUgLTIxMC41UTIxNDQgLTE4OSAyMTEyLjAgLTE1NS4wUTIwODAgLTEyMSAyMDY3IC04NEwyMTkwIC0zNFEyMjA2IC03MSAyMjM4LjUgLTkzLjVRMjI3MSAtMTE2IDIzMTQgLTExNlEyMzc1IC0xMTYgMjQxMi4wIC03OC41UTI0NDkgLTQxIDI0NDkgMzBWNzBIMjQ0MVEyNDE3IDM2IDIzNzguMCAxOC4wUTIzMzkgMCAyMjg5IDBRMjIyNyAwIDIxNzIuNSAzMi4wUTIxMTggNjQgMjA4NC41IDEyMy4wUTIwNTEgMTgyIDIwNTEgMjYzUTIwNTEgMzQ1IDIwODQuNSA0MDMuNVEyMTE4IDQ2MiAyMTcyLjUgNDk0LjBRMjIyNyA1MjYgMjI4OSA1MjZRMjMzOSA1MjYgMjM3OC4wIDUwOC41UTI0MTcgNDkxIDI0NDEgNDU2SDI0NDlWNTEwSDI1NzVWMzVRMjU3NSAtNDcgMjU0My4wIC0xMDcuMFEyNTExIC0xNjcgMjQ1Mi41IC0xOTkuNVEyMzk0IC0yMzIgMjMxNCAtMjMyWk0yMzE2IDExOVEyMzUxIDExOSAyMzgxLjUgMTM1LjVRMjQxMiAxNTIgMjQzMC41IDE4NC41UTI0NDkgMjE3IDI0NDkgMjYzUTI0NDkgMzExIDI0MzAuNSAzNDMuMFEyNDEyIDM3NSAyMzgxLjUgMzkxLjBRMjM1MSA0MDcgMjMxNiA0MDdRMjI4MSA0MDcgMjI1MC4wIDM5MS4wUTIyMTkgMzc1IDIyMDAuNSAzNDMuMFEyMTgyIDMxMSAyMTgyIDI2M1EyMTgyIDIxNiAyMjAwLjUgMTgzLjVRMjIxOSAxNTEgMjI1MC4wIDEzNS4wUTIyODEgMTE5IDIzMTYgMTE5Wk0zMTU0IC0xNlEzMDg0IC0xNiAzMDI4LjAgMTguNVEyOTcyIDUzIDI5MzkuNSAxMTQuMFEyOTA3IDE3NSAyOTA3IDI1NVEyOTA3IDMzNSAyOTM5LjUgMzk2LjBRMjk3MiA0NTcgMzAyOC4wIDQ5MS41UTMwODQgNTI2IDMxNTQgNTI2UTMxOTEgNTI2IDMyMjEuMCA1MTUuMFEzMjUxIDUwNCAzMjczLjAgNDg2LjBRMzI5NSA0NjggMzMwNyA0NDhIMzMxNUwzMzA3IDUyMFY3MTZIMzQzN1YwSDMzMTVWNjFIMzMwN1EzMjk1IDQxIDMyNzMuMCAyMy41UTMyNTEgNiAzMjIxLjAgLTUuMFEzMTkxIC0xNiAzMTU0IC0xNlpNMzE3NiAxMDVRMzIxMyAxMDUgMzI0NC41IDEyNC4wUTMyNzYgMTQzIDMyOTUuNSAxNzYuNVEzMzE1IDIxMCAzMzE1IDI1NVEzMzE1IDMwMCAzMjk1LjUgMzMzLjVRMzI3NiAzNjcgMzI0NC41IDM4NS41UTMyMTMgNDA0IDMxNzYgNDA0UTMxNDAgNDA0IDMxMDguNSAzODUuNVEzMDc3IDM2NyAzMDU3LjUgMzM0LjBRMzAzOCAzMDEgMzAzOCAyNTVRMzAzOCAyMTAgMzA1Ny41IDE3Ni4wUTMwNzcgMTQyIDMxMDguNSAxMjMuNVEzMTQwIDEwNSAzMTc2IDEwNVpNMzgwMiAtMTZRMzcyNSAtMTYgMzY2NC41IDE5LjBRMzYwNCA1NCAzNTY5LjUgMTE1LjBRMzUzNSAxNzYgMzUzNSAyNTRRMzUzNSAzMjcgMzU2OS4wIDM4OS4wUTM2MDMgNDUxIDM2NjIuMCA0ODguNVEzNzIxIDUyNiAzNzk3IDUyNlEzODc5IDUyNiAzOTM1LjAgNDkxLjBRMzk5MSA0NTYgNDAyMC4wIDM5Ny41UTQwNDkgMzM5IDQwNDkgMjY4UTQwNDkgMjUyIDQwNDguMCAyNDAuNVE0MDQ3IDIyOSA0MDQ2IDIyNEgzNjA4VjMxN0gzOTIzUTM5MjIgMzM0IDM5MTMuMCAzNTIuMFEzOTA0IDM3MCAzODg4LjAgMzg1LjBRMzg3MiA0MDAgMzg0OS41IDQwOS41UTM4MjcgNDE5IDM3OTggNDE5UTM3NjAgNDE5IDM3MjguNSAzOTkuMFEzNjk3IDM3OSAzNjc5LjAgMzQzLjVRMzY2MSAzMDggMzY2MSAyNTlRMzY2MSAyMDggMzY4MC4wIDE3Mi41UTM2OTkgMTM3IDM3MzEuNSAxMTguNVEzNzY0IDEwMCAzODA0IDEwMFEzODUxIDEwMCAzODgzLjAgMTIwLjVRMzkxNSAxNDEgMzkzMyAxNzJMNDAzOSAxMjBRNDAwMyA1NyAzOTQ1LjAgMjAuNVEzODg3IC0xNiAzODAyIC0xNlpNNDQzMSAtMTZRNDM5NCAtMTYgNDM2NC4wIC01LjBRNDMzNCA2IDQzMTIuNSAyMy41UTQyOTEgNDEgNDI3OCA2MUg0MjcwVjBINDE0N1Y3MTZINDI3OFY1MjBMNDI3MCA0NDhINDI3OFE0MjkxIDQ2OCA0MzEyLjUgNDg2LjBRNDMzNCA1MDQgNDM2NC4wIDUxNS4wUTQzOTQgNTI2IDQ0MzEgNTI2UTQ1MDEgNTI2IDQ1NTYuNSA0OTEuNVE0NjEyIDQ1NyA0NjQ0LjUgMzk2LjBRNDY3NyAzMzUgNDY3NyAyNTVRNDY3NyAxNzUgNDY0NC41IDExNC4wUTQ2MTIgNTMgNDU1Ni41IDE4LjVRNDUwMSAtMTYgNDQzMSAtMTZaTTQ0MDggMTA1UTQ0NDUgMTA1IDQ0NzYuNSAxMjMuNVE0NTA4IDE0MiA0NTI3LjUgMTc2LjBRNDU0NyAyMTAgNDU0NyAyNTVRNDU0NyAzMDEgNDUyNy41IDMzNC4wUTQ1MDggMzY3IDQ0NzYuNSAzODUuNVE0NDQ1IDQwNCA0NDA4IDQwNFE0MzcyIDQwNCA0MzQwLjUgMzg1LjVRNDMwOSAzNjcgNDI4OS41IDMzMy41UTQyNzAgMzAwIDQyNzAgMjU1UTQyNzAgMjEwIDQyODkuNSAxNzYuNVE0MzA5IDE0MyA0MzQwLjUgMTI0LjBRNDM3MiAxMDUgNDQwOCAxMDVaTTQ5NTkgLTE2UTQ4NjUgLTE2IDQ4MTguMCA0Mi4wUTQ3NzEgMTAwIDQ3NzEgMjAwVjUxMEg0OTAyVjIxNlE0OTAyIDE2NCA0OTI3LjUgMTM0LjVRNDk1MyAxMDUgNDk5MyAxMDVRNTAzMiAxMDUgNTA1OS4wIDEyNC41UTUwODYgMTQ0IDUxMDAuNSAxNzcuMFE1MTE1IDIxMCA1MTE1IDI1MFY1MTBINTI0NlYwSDUxMjNWNjRINTExNVE1MTAwIDQwIDUwNzYuMCAyMi4wUTUwNTIgNCA1MDIyLjUgLTYuMFE0OTkzIC0xNiA0OTU5IC0xNlpNNTYwNyAtMjMyUTU1MzggLTIzMiA1NDg3LjUgLTIxMC41UTU0MzcgLTE4OSA1NDA1LjAgLTE1NS4wUTUzNzMgLTEyMSA1MzYwIC04NEw1NDgzIC0zNFE1NDk5IC03MSA1NTMxLjUgLTkzLjVRNTU2NCAtMTE2IDU2MDcgLTExNlE1NjY4IC0xMTYgNTcwNS4wIC03OC41UTU3NDIgLTQxIDU3NDIgMzBWNzBINTczNFE1NzEwIDM2IDU2NzEuMCAxOC4wUTU2MzIgMCA1NTgyIDBRNTUyMCAwIDU0NjUuNSAzMi4wUTU0MTEgNjQgNTM3Ny41IDEyMy4wUTUzNDQgMTgyIDUzNDQgMjYzUTUzNDQgMzQ1IDUzNzcuNSA0MDMuNVE1NDExIDQ2MiA1NDY1LjUgNDk0LjBRNTUyMCA1MjYgNTU4MiA1MjZRNTYzMiA1MjYgNTY3MS4wIDUwOC41UTU3MTAgNDkxIDU3MzQgNDU2SDU3NDJWNTEwSDU4NjhWMzVRNTg2OCAtNDcgNTgzNi4wIC0xMDcuMFE1ODA0IC0xNjcgNTc0NS41IC0xOTkuNVE1Njg3IC0yMzIgNTYwNyAtMjMyWk01NjA5IDExOVE1NjQ0IDExOSA1Njc0LjUgMTM1LjVRNTcwNSAxNTIgNTcyMy41IDE4NC41UTU3NDIgMjE3IDU3NDIgMjYzUTU3NDIgMzExIDU3MjMuNSAzNDMuMFE1NzA1IDM3NSA1Njc0LjUgMzkxLjBRNTY0NCA0MDcgNTYwOSA0MDdRNTU3NCA0MDcgNTU0My4wIDM5MS4wUTU1MTIgMzc1IDU0OTMuNSAzNDMuMFE1NDc1IDMxMSA1NDc1IDI2M1E1NDc1IDIxNiA1NDkzLjUgMTgzLjVRNTUxMiAxNTEgNTU0My4wIDEzNS4wUTU1NzQgMTE5IDU2MDkgMTE5Wk02MjI5IC0yMzJRNjE2MCAtMjMyIDYxMDkuNSAtMjEwLjVRNjA1OSAtMTg5IDYwMjcuMCAtMTU1LjBRNTk5NSAtMTIxIDU5ODIgLTg0TDYxMDUgLTM0UTYxMjEgLTcxIDYxNTMuNSAtOTMuNVE2MTg2IC0xMTYgNjIyOSAtMTE2UTYyOTAgLTExNiA2MzI3LjAgLTc4LjVRNjM2NCAtNDEgNjM2NCAzMFY3MEg2MzU2UTYzMzIgMzYgNjI5My4wIDE4LjBRNjI1NCAwIDYyMDQgMFE2MTQyIDAgNjA4Ny41IDMyLjBRNjAzMyA2NCA1OTk5LjUgMTIzLjBRNTk2NiAxODIgNTk2NiAyNjNRNTk2NiAzNDUgNTk5OS41IDQwMy41UTYwMzMgNDYyIDYwODcuNSA0OTQuMFE2MTQyIDUyNiA2MjA0IDUyNlE2MjU0IDUyNiA2MjkzLjAgNTA4LjVRNjMzMiA0OTEgNjM1NiA0NTZINjM2NFY1MTBINjQ5MFYzNVE2NDkwIC00NyA2NDU4LjAgLTEwNy4wUTY0MjYgLTE2NyA2MzY3LjUgLTE5OS41UTYzMDkgLTIzMiA2MjI5IC0yMzJaTTYyMzEgMTE5UTYyNjYgMTE5IDYyOTYuNSAxMzUuNVE2MzI3IDE1MiA2MzQ1LjUgMTg0LjVRNjM2NCAyMTcgNjM2NCAyNjNRNjM2NCAzMTEgNjM0NS41IDM0My4wUTYzMjcgMzc1IDYyOTYuNSAzOTEuMFE2MjY2IDQwNyA2MjMxIDQwN1E2MTk2IDQwNyA2MTY1LjAgMzkxLjBRNjEzNCAzNzUgNjExNS41IDM0My4wUTYwOTcgMzExIDYwOTcgMjYzUTYwOTcgMjE2IDYxMTUuNSAxODMuNVE2MTM0IDE1MSA2MTY1LjAgMTM1LjBRNjE5NiAxMTkgNjIzMSAxMTlaTTY4NTUgLTE2UTY3NzggLTE2IDY3MTcuNSAxOS4wUTY2NTcgNTQgNjYyMi41IDExNS4wUTY1ODggMTc2IDY1ODggMjU0UTY1ODggMzI3IDY2MjIuMCAzODkuMFE2NjU2IDQ1MSA2NzE1LjAgNDg4LjVRNjc3NCA1MjYgNjg1MCA1MjZRNjkzMiA1MjYgNjk4OC4wIDQ5MS4wUTcwNDQgNDU2IDcwNzMuMCAzOTcuNVE3MTAyIDMzOSA3MTAyIDI2OFE3MTAyIDI1MiA3MTAxLjAgMjQwLjVRNzEwMCAyMjkgNzA5OSAyMjRINjY2MVYzMTdINjk3NlE2OTc1IDMzNCA2OTY2LjAgMzUyLjBRNjk1NyAzNzAgNjk0MS4wIDM4NS4wUTY5MjUgNDAwIDY5MDIuNSA0MDkuNVE2ODgwIDQxOSA2ODUxIDQxOVE2ODEzIDQxOSA2NzgxLjUgMzk5LjBRNjc1MCAzNzkgNjczMi4wIDM0My41UTY3MTQgMzA4IDY3MTQgMjU5UTY3MTQgMjA4IDY3MzMuMCAxNzIuNVE2NzUyIDEzNyA2Nzg0LjUgMTE4LjVRNjgxNyAxMDAgNjg1NyAxMDBRNjkwNCAxMDAgNjkzNi4wIDEyMC41UTY5NjggMTQxIDY5ODYgMTcyTDcwOTIgMTIwUTcwNTYgNTcgNjk5OC4wIDIwLjVRNjk0MCAtMTYgNjg1NSAtMTZaTTcyMDAgMFY1MTBINzMyM1Y0NDJINzMzMVE3MzQ0IDQ2NiA3MzY1LjUgNDg0LjVRNzM4NyA1MDMgNzQxNi4wIDUxNC4wUTc0NDUgNTI1IDc0NzggNTI1UTc0OTggNTI1IDc1MTQuMCA1MjIuMFE3NTMwIDUxOSA3NTQyIDUxNFYzODNRNzUyMSAzOTEgNzUwMC41IDM5Ni41UTc0ODAgNDAyIDc0NTcgNDAyUTc0MTggNDAyIDczODkuNSAzODIuNVE3MzYxIDM2MyA3MzQ2LjAgMzI5LjVRNzMzMSAyOTYgNzMzMSAyNTRWMFoiLz4KPC9nPgo8L3N2Zz4=",
11
+ "atd-lockup-dark": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMzk2LjIzMSIgaGVpZ2h0PSIyMDQiIHZpZXdCb3g9IjAgMCAxMzk2LjIzMSAyMDQiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KPHRpdGxlPmFpIHRhZyBkZWJ1Z2dlciDigJQgR29vZ2xlIFNhbnMgQm9sZCDigJQgZGFyazwvdGl0bGU+CjxkZXNjPkxvd2VyY2FzZSBsZXR0ZXJpbmcgb3V0bGluZWQgZnJvbSB0aGUgaW5zdGFsbGVkIEdvb2dsZSBTYW5zIEJvbGQgMTMuMDAyIGZvbnQuIFRhZyBhbmQgdmlzaWJsZSB3b3JkbWFyayBib3RoIGhhdmUgaGVpZ2h0IDE0MC4gT3JhbmdlIHRva2VuOiAjRkY2RDMzLiBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kLjwvZGVzYz4KPGcgYXJpYS1sYWJlbD0iYWkgdGFnIGRlYnVnZ2VyIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMiAzMikgc2NhbGUoMC42NzMwNzY5MjMpIiBmaWxsPSIjRkY2RDMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00MiAwSDIyNFEyMzcgMCAyNDcgMTBMMzEyIDg4UTMyOCAxMDQgMzEyIDEyMEwyNDcgMTk4UTIzNyAyMDggMjI0IDIwOEg0MlEwIDIwOCAwIDE2NlY0MlEwIDAgNDIgMFogTTQ5IDkxUTYxIDc5IDczIDkxTDEwNiAxMjRMMTgwIDUwUTE5MiAzOCAyMDQgNTBRMjE2IDYyIDIwNCA3NEwxMTggMTYwUTEwNiAxNzIgOTQgMTYwTDQ5IDExNVEzNyAxMDMgNDkgOTFaIE0yODEgMTA0YTE3IDE3IDAgMSAwIC0zNCAwYTE3IDE3IDAgMSAwIDM0IDBaIi8+PC9nPgogIDxwYXRoIGZpbGw9IiNGNUY3RkEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3Mi4zMTczOTcxODQgMTM4LjQxMTU4MjIxMykgc2NhbGUoMC4xNDQ3Nzc2NjMgLTAuMTQ0Nzc3NjYzKSIgZD0iTTIyMCAtMTZRMTY2IC0xNiAxMjQuNSA1LjVRODMgMjcgNTkuMCA2Ni4wUTM1IDEwNSAzNSAxNTZRMzUgMjA5IDYyLjUgMjQ3LjBROTAgMjg1IDEzNi41IDMwNi4wUTE4MyAzMjcgMjQwIDMyN1EyNzEgMzI3IDI5Ni41IDMyMy41UTMyMiAzMjAgMzQyLjAgMzE1LjBRMzYyIDMxMCAzNzUgMzA0VjMyNlEzNzUgMzY3IDM0NC4wIDM5My41UTMxMyA0MjAgMjU5IDQyMFEyMjMgNDIwIDE4OS41IDQwMy41UTE1NiAzODcgMTM0IDM2MEw1MCA0MjZRNzUgNDU4IDEwOC4wIDQ4MC41UTE0MSA1MDMgMTgxLjAgNTE0LjVRMjIxIDUyNiAyNjUgNTI2UTM4MiA1MjYgNDQzLjAgNDcyLjBRNTA0IDQxOCA1MDQgMzE0VjBIMzc1VjUySDM2N1EzNTMgMzQgMzMyLjAgMTguNVEzMTEgMyAyODMuMCAtNi41UTI1NSAtMTYgMjIwIC0xNlpNMjUxIDg2UTI5MSA4NiAzMTguNSAxMDMuNVEzNDYgMTIxIDM2MC41IDE0OS4wUTM3NSAxNzcgMzc1IDIwOFEzNTMgMjE5IDMyNS4wIDIyNS41UTI5NyAyMzIgMjY4IDIzMlEyMTAgMjMyIDE4OC4wIDIxMC4wUTE2NiAxODggMTY2IDE1NlExNjYgMTI2IDE4Ny41IDEwNi4wUTIwOSA4NiAyNTEgODZaTTYyMyAwVjUxMEg3NTRWMFpNNjg5IDU2NlE2NTQgNTY2IDYyOS4wIDU5MS4wUTYwNCA2MTYgNjA0IDY1MVE2MDQgNjg2IDYyOS4wIDcxMC41UTY1NCA3MzUgNjg5IDczNVE3MjQgNzM1IDc0OC41IDcxMC41UTc3MyA2ODYgNzczIDY1MVE3NzMgNjE2IDc0OC41IDU5MS4wUTcyNCA1NjYgNjg5IDU2NlpNMTA3NiAzOThWNTEwSDExNzBWMzk4Wk0xMzM0IC04UTEyNTUgLTggMTIxMC4wIDM3LjVRMTE2NSA4MyAxMTY1IDE2M1Y2NTRIMTI5NlYxODdRMTI5NiAxNTAgMTMxMS4wIDEzMi41UTEzMjYgMTE1IDEzNjAgMTE1UTEzNzYgMTE1IDEzOTAuMCAxMTkuNVExNDA0IDEyNCAxNDI1IDEzN1Y5UTE0MDMgMSAxMzgwLjUgLTMuNVExMzU4IC04IDEzMzQgLThaTTEyOTEgMzk4VjUxMEgxNDIxVjM5OFpNMTY3NiAtMTZRMTYyMiAtMTYgMTU4MC41IDUuNVExNTM5IDI3IDE1MTUuMCA2Ni4wUTE0OTEgMTA1IDE0OTEgMTU2UTE0OTEgMjA5IDE1MTguNSAyNDcuMFExNTQ2IDI4NSAxNTkyLjUgMzA2LjBRMTYzOSAzMjcgMTY5NiAzMjdRMTcyNyAzMjcgMTc1Mi41IDMyMy41UTE3NzggMzIwIDE3OTguMCAzMTUuMFExODE4IDMxMCAxODMxIDMwNFYzMjZRMTgzMSAzNjcgMTgwMC4wIDM5My41UTE3NjkgNDIwIDE3MTUgNDIwUTE2NzkgNDIwIDE2NDUuNSA0MDMuNVExNjEyIDM4NyAxNTkwIDM2MEwxNTA2IDQyNlExNTMxIDQ1OCAxNTY0LjAgNDgwLjVRMTU5NyA1MDMgMTYzNy4wIDUxNC41UTE2NzcgNTI2IDE3MjEgNTI2UTE4MzggNTI2IDE4OTkuMCA0NzIuMFExOTYwIDQxOCAxOTYwIDMxNFYwSDE4MzFWNTJIMTgyM1ExODA5IDM0IDE3ODguMCAxOC41UTE3NjcgMyAxNzM5LjAgLTYuNVExNzExIC0xNiAxNjc2IC0xNlpNMTcwNyA4NlExNzQ3IDg2IDE3NzQuNSAxMDMuNVExODAyIDEyMSAxODE2LjUgMTQ5LjBRMTgzMSAxNzcgMTgzMSAyMDhRMTgwOSAyMTkgMTc4MS4wIDIyNS41UTE3NTMgMjMyIDE3MjQgMjMyUTE2NjYgMjMyIDE2NDQuMCAyMTAuMFExNjIyIDE4OCAxNjIyIDE1NlExNjIyIDEyNiAxNjQzLjUgMTA2LjBRMTY2NSA4NiAxNzA3IDg2Wk0yMzE0IC0yMzJRMjI0NSAtMjMyIDIxOTQuNSAtMjEwLjVRMjE0NCAtMTg5IDIxMTIuMCAtMTU1LjBRMjA4MCAtMTIxIDIwNjcgLTg0TDIxOTAgLTM0UTIyMDYgLTcxIDIyMzguNSAtOTMuNVEyMjcxIC0xMTYgMjMxNCAtMTE2UTIzNzUgLTExNiAyNDEyLjAgLTc4LjVRMjQ0OSAtNDEgMjQ0OSAzMFY3MEgyNDQxUTI0MTcgMzYgMjM3OC4wIDE4LjBRMjMzOSAwIDIyODkgMFEyMjI3IDAgMjE3Mi41IDMyLjBRMjExOCA2NCAyMDg0LjUgMTIzLjBRMjA1MSAxODIgMjA1MSAyNjNRMjA1MSAzNDUgMjA4NC41IDQwMy41UTIxMTggNDYyIDIxNzIuNSA0OTQuMFEyMjI3IDUyNiAyMjg5IDUyNlEyMzM5IDUyNiAyMzc4LjAgNTA4LjVRMjQxNyA0OTEgMjQ0MSA0NTZIMjQ0OVY1MTBIMjU3NVYzNVEyNTc1IC00NyAyNTQzLjAgLTEwNy4wUTI1MTEgLTE2NyAyNDUyLjUgLTE5OS41UTIzOTQgLTIzMiAyMzE0IC0yMzJaTTIzMTYgMTE5UTIzNTEgMTE5IDIzODEuNSAxMzUuNVEyNDEyIDE1MiAyNDMwLjUgMTg0LjVRMjQ0OSAyMTcgMjQ0OSAyNjNRMjQ0OSAzMTEgMjQzMC41IDM0My4wUTI0MTIgMzc1IDIzODEuNSAzOTEuMFEyMzUxIDQwNyAyMzE2IDQwN1EyMjgxIDQwNyAyMjUwLjAgMzkxLjBRMjIxOSAzNzUgMjIwMC41IDM0My4wUTIxODIgMzExIDIxODIgMjYzUTIxODIgMjE2IDIyMDAuNSAxODMuNVEyMjE5IDE1MSAyMjUwLjAgMTM1LjBRMjI4MSAxMTkgMjMxNiAxMTlaTTMxNTQgLTE2UTMwODQgLTE2IDMwMjguMCAxOC41UTI5NzIgNTMgMjkzOS41IDExNC4wUTI5MDcgMTc1IDI5MDcgMjU1UTI5MDcgMzM1IDI5MzkuNSAzOTYuMFEyOTcyIDQ1NyAzMDI4LjAgNDkxLjVRMzA4NCA1MjYgMzE1NCA1MjZRMzE5MSA1MjYgMzIyMS4wIDUxNS4wUTMyNTEgNTA0IDMyNzMuMCA0ODYuMFEzMjk1IDQ2OCAzMzA3IDQ0OEgzMzE1TDMzMDcgNTIwVjcxNkgzNDM3VjBIMzMxNVY2MUgzMzA3UTMyOTUgNDEgMzI3My4wIDIzLjVRMzI1MSA2IDMyMjEuMCAtNS4wUTMxOTEgLTE2IDMxNTQgLTE2Wk0zMTc2IDEwNVEzMjEzIDEwNSAzMjQ0LjUgMTI0LjBRMzI3NiAxNDMgMzI5NS41IDE3Ni41UTMzMTUgMjEwIDMzMTUgMjU1UTMzMTUgMzAwIDMyOTUuNSAzMzMuNVEzMjc2IDM2NyAzMjQ0LjUgMzg1LjVRMzIxMyA0MDQgMzE3NiA0MDRRMzE0MCA0MDQgMzEwOC41IDM4NS41UTMwNzcgMzY3IDMwNTcuNSAzMzQuMFEzMDM4IDMwMSAzMDM4IDI1NVEzMDM4IDIxMCAzMDU3LjUgMTc2LjBRMzA3NyAxNDIgMzEwOC41IDEyMy41UTMxNDAgMTA1IDMxNzYgMTA1Wk0zODAyIC0xNlEzNzI1IC0xNiAzNjY0LjUgMTkuMFEzNjA0IDU0IDM1NjkuNSAxMTUuMFEzNTM1IDE3NiAzNTM1IDI1NFEzNTM1IDMyNyAzNTY5LjAgMzg5LjBRMzYwMyA0NTEgMzY2Mi4wIDQ4OC41UTM3MjEgNTI2IDM3OTcgNTI2UTM4NzkgNTI2IDM5MzUuMCA0OTEuMFEzOTkxIDQ1NiA0MDIwLjAgMzk3LjVRNDA0OSAzMzkgNDA0OSAyNjhRNDA0OSAyNTIgNDA0OC4wIDI0MC41UTQwNDcgMjI5IDQwNDYgMjI0SDM2MDhWMzE3SDM5MjNRMzkyMiAzMzQgMzkxMy4wIDM1Mi4wUTM5MDQgMzcwIDM4ODguMCAzODUuMFEzODcyIDQwMCAzODQ5LjUgNDA5LjVRMzgyNyA0MTkgMzc5OCA0MTlRMzc2MCA0MTkgMzcyOC41IDM5OS4wUTM2OTcgMzc5IDM2NzkuMCAzNDMuNVEzNjYxIDMwOCAzNjYxIDI1OVEzNjYxIDIwOCAzNjgwLjAgMTcyLjVRMzY5OSAxMzcgMzczMS41IDExOC41UTM3NjQgMTAwIDM4MDQgMTAwUTM4NTEgMTAwIDM4ODMuMCAxMjAuNVEzOTE1IDE0MSAzOTMzIDE3Mkw0MDM5IDEyMFE0MDAzIDU3IDM5NDUuMCAyMC41UTM4ODcgLTE2IDM4MDIgLTE2Wk00NDMxIC0xNlE0Mzk0IC0xNiA0MzY0LjAgLTUuMFE0MzM0IDYgNDMxMi41IDIzLjVRNDI5MSA0MSA0Mjc4IDYxSDQyNzBWMEg0MTQ3VjcxNkg0Mjc4VjUyMEw0MjcwIDQ0OEg0Mjc4UTQyOTEgNDY4IDQzMTIuNSA0ODYuMFE0MzM0IDUwNCA0MzY0LjAgNTE1LjBRNDM5NCA1MjYgNDQzMSA1MjZRNDUwMSA1MjYgNDU1Ni41IDQ5MS41UTQ2MTIgNDU3IDQ2NDQuNSAzOTYuMFE0Njc3IDMzNSA0Njc3IDI1NVE0Njc3IDE3NSA0NjQ0LjUgMTE0LjBRNDYxMiA1MyA0NTU2LjUgMTguNVE0NTAxIC0xNiA0NDMxIC0xNlpNNDQwOCAxMDVRNDQ0NSAxMDUgNDQ3Ni41IDEyMy41UTQ1MDggMTQyIDQ1MjcuNSAxNzYuMFE0NTQ3IDIxMCA0NTQ3IDI1NVE0NTQ3IDMwMSA0NTI3LjUgMzM0LjBRNDUwOCAzNjcgNDQ3Ni41IDM4NS41UTQ0NDUgNDA0IDQ0MDggNDA0UTQzNzIgNDA0IDQzNDAuNSAzODUuNVE0MzA5IDM2NyA0Mjg5LjUgMzMzLjVRNDI3MCAzMDAgNDI3MCAyNTVRNDI3MCAyMTAgNDI4OS41IDE3Ni41UTQzMDkgMTQzIDQzNDAuNSAxMjQuMFE0MzcyIDEwNSA0NDA4IDEwNVpNNDk1OSAtMTZRNDg2NSAtMTYgNDgxOC4wIDQyLjBRNDc3MSAxMDAgNDc3MSAyMDBWNTEwSDQ5MDJWMjE2UTQ5MDIgMTY0IDQ5MjcuNSAxMzQuNVE0OTUzIDEwNSA0OTkzIDEwNVE1MDMyIDEwNSA1MDU5LjAgMTI0LjVRNTA4NiAxNDQgNTEwMC41IDE3Ny4wUTUxMTUgMjEwIDUxMTUgMjUwVjUxMEg1MjQ2VjBINTEyM1Y2NEg1MTE1UTUxMDAgNDAgNTA3Ni4wIDIyLjBRNTA1MiA0IDUwMjIuNSAtNi4wUTQ5OTMgLTE2IDQ5NTkgLTE2Wk01NjA3IC0yMzJRNTUzOCAtMjMyIDU0ODcuNSAtMjEwLjVRNTQzNyAtMTg5IDU0MDUuMCAtMTU1LjBRNTM3MyAtMTIxIDUzNjAgLTg0TDU0ODMgLTM0UTU0OTkgLTcxIDU1MzEuNSAtOTMuNVE1NTY0IC0xMTYgNTYwNyAtMTE2UTU2NjggLTExNiA1NzA1LjAgLTc4LjVRNTc0MiAtNDEgNTc0MiAzMFY3MEg1NzM0UTU3MTAgMzYgNTY3MS4wIDE4LjBRNTYzMiAwIDU1ODIgMFE1NTIwIDAgNTQ2NS41IDMyLjBRNTQxMSA2NCA1Mzc3LjUgMTIzLjBRNTM0NCAxODIgNTM0NCAyNjNRNTM0NCAzNDUgNTM3Ny41IDQwMy41UTU0MTEgNDYyIDU0NjUuNSA0OTQuMFE1NTIwIDUyNiA1NTgyIDUyNlE1NjMyIDUyNiA1NjcxLjAgNTA4LjVRNTcxMCA0OTEgNTczNCA0NTZINTc0MlY1MTBINTg2OFYzNVE1ODY4IC00NyA1ODM2LjAgLTEwNy4wUTU4MDQgLTE2NyA1NzQ1LjUgLTE5OS41UTU2ODcgLTIzMiA1NjA3IC0yMzJaTTU2MDkgMTE5UTU2NDQgMTE5IDU2NzQuNSAxMzUuNVE1NzA1IDE1MiA1NzIzLjUgMTg0LjVRNTc0MiAyMTcgNTc0MiAyNjNRNTc0MiAzMTEgNTcyMy41IDM0My4wUTU3MDUgMzc1IDU2NzQuNSAzOTEuMFE1NjQ0IDQwNyA1NjA5IDQwN1E1NTc0IDQwNyA1NTQzLjAgMzkxLjBRNTUxMiAzNzUgNTQ5My41IDM0My4wUTU0NzUgMzExIDU0NzUgMjYzUTU0NzUgMjE2IDU0OTMuNSAxODMuNVE1NTEyIDE1MSA1NTQzLjAgMTM1LjBRNTU3NCAxMTkgNTYwOSAxMTlaTTYyMjkgLTIzMlE2MTYwIC0yMzIgNjEwOS41IC0yMTAuNVE2MDU5IC0xODkgNjAyNy4wIC0xNTUuMFE1OTk1IC0xMjEgNTk4MiAtODRMNjEwNSAtMzRRNjEyMSAtNzEgNjE1My41IC05My41UTYxODYgLTExNiA2MjI5IC0xMTZRNjI5MCAtMTE2IDYzMjcuMCAtNzguNVE2MzY0IC00MSA2MzY0IDMwVjcwSDYzNTZRNjMzMiAzNiA2MjkzLjAgMTguMFE2MjU0IDAgNjIwNCAwUTYxNDIgMCA2MDg3LjUgMzIuMFE2MDMzIDY0IDU5OTkuNSAxMjMuMFE1OTY2IDE4MiA1OTY2IDI2M1E1OTY2IDM0NSA1OTk5LjUgNDAzLjVRNjAzMyA0NjIgNjA4Ny41IDQ5NC4wUTYxNDIgNTI2IDYyMDQgNTI2UTYyNTQgNTI2IDYyOTMuMCA1MDguNVE2MzMyIDQ5MSA2MzU2IDQ1Nkg2MzY0VjUxMEg2NDkwVjM1UTY0OTAgLTQ3IDY0NTguMCAtMTA3LjBRNjQyNiAtMTY3IDYzNjcuNSAtMTk5LjVRNjMwOSAtMjMyIDYyMjkgLTIzMlpNNjIzMSAxMTlRNjI2NiAxMTkgNjI5Ni41IDEzNS41UTYzMjcgMTUyIDYzNDUuNSAxODQuNVE2MzY0IDIxNyA2MzY0IDI2M1E2MzY0IDMxMSA2MzQ1LjUgMzQzLjBRNjMyNyAzNzUgNjI5Ni41IDM5MS4wUTYyNjYgNDA3IDYyMzEgNDA3UTYxOTYgNDA3IDYxNjUuMCAzOTEuMFE2MTM0IDM3NSA2MTE1LjUgMzQzLjBRNjA5NyAzMTEgNjA5NyAyNjNRNjA5NyAyMTYgNjExNS41IDE4My41UTYxMzQgMTUxIDYxNjUuMCAxMzUuMFE2MTk2IDExOSA2MjMxIDExOVpNNjg1NSAtMTZRNjc3OCAtMTYgNjcxNy41IDE5LjBRNjY1NyA1NCA2NjIyLjUgMTE1LjBRNjU4OCAxNzYgNjU4OCAyNTRRNjU4OCAzMjcgNjYyMi4wIDM4OS4wUTY2NTYgNDUxIDY3MTUuMCA0ODguNVE2Nzc0IDUyNiA2ODUwIDUyNlE2OTMyIDUyNiA2OTg4LjAgNDkxLjBRNzA0NCA0NTYgNzA3My4wIDM5Ny41UTcxMDIgMzM5IDcxMDIgMjY4UTcxMDIgMjUyIDcxMDEuMCAyNDAuNVE3MTAwIDIyOSA3MDk5IDIyNEg2NjYxVjMxN0g2OTc2UTY5NzUgMzM0IDY5NjYuMCAzNTIuMFE2OTU3IDM3MCA2OTQxLjAgMzg1LjBRNjkyNSA0MDAgNjkwMi41IDQwOS41UTY4ODAgNDE5IDY4NTEgNDE5UTY4MTMgNDE5IDY3ODEuNSAzOTkuMFE2NzUwIDM3OSA2NzMyLjAgMzQzLjVRNjcxNCAzMDggNjcxNCAyNTlRNjcxNCAyMDggNjczMy4wIDE3Mi41UTY3NTIgMTM3IDY3ODQuNSAxMTguNVE2ODE3IDEwMCA2ODU3IDEwMFE2OTA0IDEwMCA2OTM2LjAgMTIwLjVRNjk2OCAxNDEgNjk4NiAxNzJMNzA5MiAxMjBRNzA1NiA1NyA2OTk4LjAgMjAuNVE2OTQwIC0xNiA2ODU1IC0xNlpNNzIwMCAwVjUxMEg3MzIzVjQ0Mkg3MzMxUTczNDQgNDY2IDczNjUuNSA0ODQuNVE3Mzg3IDUwMyA3NDE2LjAgNTE0LjBRNzQ0NSA1MjUgNzQ3OCA1MjVRNzQ5OCA1MjUgNzUxNC4wIDUyMi4wUTc1MzAgNTE5IDc1NDIgNTE0VjM4M1E3NTIxIDM5MSA3NTAwLjUgMzk2LjVRNzQ4MCA0MDIgNzQ1NyA0MDJRNzQxOCA0MDIgNzM4OS41IDM4Mi41UTczNjEgMzYzIDczNDYuMCAzMjkuNVE3MzMxIDI5NiA3MzMxIDI1NFYwWiIvPgo8L2c+Cjwvc3ZnPg==",
12
+ "atd-icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzYiIGhlaWdodD0iMjI0IiB2aWV3Qm94PSItOCAtOCAzMzYgMjI0IiByb2xlPSJpbWciIGFyaWEtbGFiZWw9ImFpIHRhZyBkZWJ1Z2dlciBlbWJsZW0iPjx0aXRsZT5haSB0YWcgZGVidWdnZXIgZW1ibGVtIOKAlCBsaWdodDwvdGl0bGU+PHBhdGggZmlsbD0iI0Q5NTMxRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNDIgMEgyMjRRMjM3IDAgMjQ3IDEwTDMxMiA4OFEzMjggMTA0IDMxMiAxMjBMMjQ3IDE5OFEyMzcgMjA4IDIyNCAyMDhINDJRMCAyMDggMCAxNjZWNDJRMCAwIDQyIDBaIE00OSA5MVE2MSA3OSA3MyA5MUwxMDYgMTI0TDE4MCA1MFExOTIgMzggMjA0IDUwUTIxNiA2MiAyMDQgNzRMMTE4IDE2MFExMDYgMTcyIDk0IDE2MEw0OSAxMTVRMzcgMTAzIDQ5IDkxWiBNMjgxIDEwNGExNyAxNyAwIDEgMCAtMzQgMGExNyAxNyAwIDEgMCAzNCAwWiIgLz48L3N2Zz4=",
13
13
  "favicon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE50lEQVR4nMRXa0xbVRz/3b64lLbAGI+WlQGCOBiODYMzi8SJAffFsKnDmS26mIAzPvHxyTi/+ZqPzMfIiJljLvrB6MSR6JYQSYxl06SIIhkLYQO6sgLLVgq0tL3Hc0/vbXtbKF2G7Jfcnse/5//4nf//3HM1iAJvMu/jCBoBbivHwYIVBCG4Qn97CYdTXrfzhDzPMcO8eb1Kh6N0WI9VATkjLKDZ63VeVjEvtNzJ1TPOLNZzWnwt9tS8MW+/iuNewCqD47gCtS5tVEONN+E2QbStAUFVKBOWhrXmaRRsa4YudS1NJsIeSC0REJ6LHkfkoXbG2YeR7oPwucciiqlttZY3fZDIuGXLHpQ1vAWVOpWNBUG0AKZYNCKwNjIvj0n0mEKjzwEJLGDGcS6inOMMmkTG15ZsR9nDbzPlRDIaYUA5JtFOLSonUGn0cTaWdMCYV4Hyxk+kiEg4EgUD0vhSz/uYnbyAnIpHkVnSEJKTGGYkJ5NyIMVkQWXTl+DUKcooZLrlPRZCSl0D30EI+JCSsR6ZxfVLMIDkHNDwJmzacwyalHS2MLK3ApOLSgW/Dw77CdoPILfySYT1xuYEEJMjZDkHOFTs+hx8ujUccdDvxfj5dvi9HqyraaGOmeB29mPcdpit4DOKEbFP4Jnoh3vcBj6zFCZrrRQ5iQSTyIGs0jqYLNWhKKU9dg12Yay3jfXVOgPy72kJ7a9sVFBGNfHXcbhHe6BNy4VxXW1M1SCxA/PXRiK1i1CbmlkUlvPphVK2QxG1rJjEBCgEBWXVLLcFc9PDGP/jGK39p8Ke67MrsWlvF4I0yfiMQqkkoxmIcgYkLCOSc9HnQlJJONJzCDpDPs3mB8Peaw1maKOyms8oRd6WZ2lfgD63CuaaVgTmXDCY72XVoOGzoDMWMAYUVbOIB5zeZImb5VRabNh1HGnZGxTZH5fdEs0iFtxOTNg/g+eKDZnZZvi8s5if9cJgrUNW+TP0EErDjZFOTPZ9lJiBkDE/hn46gLt2dkBnyg8bJ4rzXRoLQUwNfovpfztQ29iC6rpDMK7JZXomHcOwnW6H/cw+ZFe9EpewSzIgI8VkxZ2PfAU1Lb3Ys13OEb/HhdHuZrS88z2yzEVs/urlQej4NDouZP+9aP8V33z8OtKLH8P034eXZ0CG+OYa/uUl3LGjjb43NIozX2bDaf8UdbtfZMYHbF3obHsD857rbH1GjhVNrW0o3fwAqrbVof/82ZtjQIYx/z6sLd8rRS5luVRaznMH8WZHP60SP97dvxEL87OKtfklm9Hy3mlMUFa+aBUvXULyDMiYcdjYsxjMxRvF2w1uTDnijItwjQ2yNsdaRl/pqnDS3pQDiSAnlkq1uKpgMJhwvQq3CNfYBUZ/enY+1uQVxcnLqh8K/08IBlbeAVHpb6eOUAZUeLz1CC3BvLDMUlyJxuc+ZP1LA72Lrk8qCZcFzYEnXmtH+dYd8TJRu3TnFCvkz7MnFWK1Vmc4IN7NcIv45/dOeOdmGAPalFQseOcwOTaEIXs3Y0JE8d3304PpaGQrCLmqod710W4DVgDiqSc+sbg+NY7tu1+F42If/D5vREBtc3qjpZF2fsD/DFOWBe5rTuWtiGAn2x29yfwzdWdFWEgW9CD7cX7G2ciqIEC4l6ljPqwS6CHuQcD3vNhXfBPdjs/z/wAAAP//hkxTugAAAAZJREFUAwAgrRNzbxNrdwAAAABJRU5ErkJggg==",
14
14
  };
package/src/browser.js CHANGED
@@ -3,7 +3,7 @@ import { createRequire } from "node:module";
3
3
  import { readFile, rm, writeFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { chromium, devices } from "playwright";
6
- import { parseTrackingRequest, isCollectionEndpoint, providerOf, vendorOf, resolveProviders } from "./parsers.js";
6
+ import { parseTrackingRequest, isCollectionEndpoint, providerOf, vendorOf, resolveProviders, PROVIDERS } from "./parsers.js";
7
7
  import { redactBody, redactParams, redactPush, redactUrl } from "./redact.js";
8
8
  import { hostScope, isPrivateAddress, navigationError, privateHostChecker } from "./guard.js";
9
9
  import { startEgressProxy } from "./egress.js";
@@ -341,13 +341,25 @@ async function cleanRecording(file) {
341
341
  await writeFile(file, JSON.stringify(har));
342
342
  }
343
343
 
344
+ /** Where the step left the browser, without query or fragment, so the route can be compared across runs. */
345
+ function pagePath(href) {
346
+ try {
347
+ const u = new URL(href);
348
+ return /^https?:$/.test(u.protocol) ? u.origin + u.pathname : null;
349
+ } catch {
350
+ return null;
351
+ }
352
+ }
353
+
344
354
  export class AuditSession {
345
355
  /**
346
356
  * @param {{ viewport: string, site?: string, allowedHosts?: string[], providers?: string[], keepBodies?: boolean, blockPrivate?: boolean | ((ip: string) => boolean), blockHits?: boolean, headless?: boolean }} opts
347
357
  * keepBodies: store tracking URLs and bodies as sent. By default, user data for ad matching
348
358
  * (emails, phone numbers, user ids, hashed or not) is replaced with a marker first.
349
- * providers: which tracking providers to record (default GA4, Google Ads, Meta, TikTok). Requests to the
350
- * others are still answered locally, but only counted, per step, in this.skipped.
359
+ * providers: which tracking providers to record. Requests to the others are still answered locally,
360
+ * but only counted, per step, in this.skipped.
361
+ * detect: also record any other known provider the site sends to, from its first request
362
+ * (default: when no providers were chosen). They join this.providers.
351
363
  * site: navigation is limited to this site's host and its subdomains, plus allowedHosts.
352
364
  * recordHar: save every response the site sends into this .har file, so the journey can be replayed offline later.
353
365
  * closeTimeoutMs: how long close() waits for the recording to be written (default 30 s) before skipping it.
@@ -370,6 +382,7 @@ export class AuditSession {
370
382
  this.dataLayerLog = [];
371
383
  this.network = [];
372
384
  this.providers = resolveProviders(this.opts.providers);
385
+ this.detect = this.opts.detect ?? !this.opts.providers?.length;
373
386
  this.skipped = {}; // step index -> { vendor label: requests }
374
387
  this.loadedIn = new Map(); // page address -> the last step whose main-frame navigation reached it
375
388
  this.leaving = null; // the page address being navigated away from, until the next page commits
@@ -424,7 +437,7 @@ export class AuditSession {
424
437
  if (!hits) return;
425
438
  const recorded = [];
426
439
  for (const hit of hits) {
427
- if (!this.providers.includes(hit.platform)) continue;
440
+ if (!this.checks(hit.platform)) continue;
428
441
  const entry = { ...this.redactHit(hit), step: this.stepForHit(hit), pageUrl: this.page.url(), t: Date.now() };
429
442
  if (this.record("hits", entry)) recorded.push(entry);
430
443
  }
@@ -443,7 +456,7 @@ export class AuditSession {
443
456
  this.context.on("request", (request) => {
444
457
  const provider = providerOf(request.url());
445
458
  if (!provider) return;
446
- if (!provider.always && !this.providers.includes(provider.key)) {
459
+ if (!provider.always && !this.checks(provider.key)) {
447
460
  const counts = (this.skipped[this.currentStep] ??= {});
448
461
  counts[provider.label] = (counts[provider.label] ?? 0) + 1;
449
462
  return;
@@ -553,6 +566,14 @@ export class AuditSession {
553
566
  }
554
567
 
555
568
  /** The hit with user data for ad matching redacted, and userData: { fields, plain } when there was any. */
569
+ /** Whether requests of this provider are recorded; with detection on, a known provider seen for the first time joins the list. */
570
+ checks(key) {
571
+ if (this.providers.includes(key)) return true;
572
+ if (!this.detect || !(key in PROVIDERS)) return false;
573
+ this.providers.push(key);
574
+ return true;
575
+ }
576
+
556
577
  redactHit({ userFields, ...hit }) {
557
578
  const found = { fields: [], plain: [] };
558
579
  const site = hostOf(hit.params?.page_location) ?? hostOf(this.page.url());
@@ -808,6 +829,7 @@ export class AuditSession {
808
829
  await this.trackCookies();
809
830
  // A scripted replay of this step may fail the same way, which must not end the journey there.
810
831
  if (error) this.steps[this.currentStep].error = error;
832
+ this.steps[this.currentStep].pagePath = pagePath(this.page.url());
811
833
  return error;
812
834
  }
813
835
 
package/src/changes.js CHANGED
@@ -35,14 +35,42 @@ function planProblems(pc) {
35
35
  return out;
36
36
  }
37
37
 
38
+ /** The pages one run visited, in order, one entry per journey and viewport. Null when it recorded none (older runs). */
39
+ function routes(runs = []) {
40
+ const out = new Map();
41
+ for (const r of runs) {
42
+ const pages = [];
43
+ for (const s of r.steps ?? []) if (s.pagePath && pages.at(-1) !== s.pagePath) pages.push(s.pagePath);
44
+ if (pages.length) out.set(`${r.journeyId}|${r.viewport}`, { journeyId: r.journeyId, viewport: r.viewport, pages });
45
+ }
46
+ return out;
47
+ }
48
+
49
+ /** Journeys whose route through the site differs from the previous run: [{ journeyId, viewport, before, after }]. */
50
+ export function compareRoutes(prevRuns, runs) {
51
+ const before = routes(prevRuns);
52
+ const out = [];
53
+ for (const [k, now] of routes(runs)) {
54
+ const was = before.get(k);
55
+ if (was && was.pages.join("\n") !== now.pages.join("\n")) out.push({ journeyId: now.journeyId, viewport: now.viewport, before: was.pages, after: now.pages });
56
+ }
57
+ return out;
58
+ }
59
+
38
60
  /**
39
61
  * What changed since the previous run of the same site. Compares plan coverage when both runs were
40
62
  * checked against a plan, and the health findings otherwise.
41
63
  * Returns { previous: null } when there is no earlier run, else
42
64
  * { previous, mode: "plan" | "findings", fixed: [...], new: [...] }.
43
65
  */
44
- export function compareRuns(prev, { findings, planCheck = null }) {
66
+ export function compareRuns(prev, { findings, planCheck = null, runs = [] }) {
45
67
  if (!prev) return { previous: null };
68
+ const routeChanges = compareRoutes(prev.capture?.runs, runs);
69
+ const base = compareFindings(prev, { findings, planCheck });
70
+ return routeChanges.length ? { ...base, routes: routeChanges } : base;
71
+ }
72
+
73
+ function compareFindings(prev, { findings, planCheck }) {
46
74
  if (planCheck && prev.planCheck) {
47
75
  const before = planProblems(prev.planCheck);
48
76
  const now = planProblems(planCheck);