Skip to content

Commit

Permalink
Add build folder for PR 1004
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Aug 7, 2024
1 parent 3aab8b8 commit 93fc4ce
Show file tree
Hide file tree
Showing 237 changed files with 163,863 additions and 0 deletions.
6,280 changes: 6,280 additions & 0 deletions Sources/ContentScopeScripts/dist/contentScope.js

Large diffs are not rendered by default.

15,439 changes: 15,439 additions & 0 deletions Sources/ContentScopeScripts/dist/contentScopeIsolated.js

Large diffs are not rendered by default.

4,286 changes: 4,286 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/index.html

Large diffs are not rendered by default.

693 changes: 693 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/js/index.css

Large diffs are not rendered by default.

3,559 changes: 3,559 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/js/index.js

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/js/inline.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"use strict";
(() => {
// pages/duckplayer/src/js/inline.js
var param = new URLSearchParams(window.location.search).get("platform");
if (isAllowed(param)) {
document.documentElement.dataset.platform = String(param);
} else {
document.documentElement.dataset.platform = "apple";
}
function isAllowed(input) {
const allowed = ["windows", "apple", "integration"];
return allowed.includes(input);
}
})();
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/js/storage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
function deleteStorage (subject) {
Object.keys(subject).forEach((key) => {
if (key.indexOf('yt-player') === 0) {
return
}
subject.removeItem(key)
})
}

function deleteAllCookies () {
const cookies = document.cookie.split(';')
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i]
const eqPos = cookie.indexOf('=')
const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT;domain=youtube-nocookie.com;path=/;'
}
}

export function initStorage () {
window.addEventListener('unload', () => {
deleteStorage(localStorage)
deleteStorage(sessionStorage)
deleteAllCookies()
})

window.addEventListener('load', () => {
deleteStorage(localStorage)
deleteStorage(sessionStorage)
deleteAllCookies()
})
}
40 changes: 40 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/duckplayer/js/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { VideoParams } from '../../../../../../src/features/duckplayer/util'

/**
* @param {string} href
* @param {string} urlBase
* @return {null | string}
*/
export function createYoutubeURLForError (href, urlBase) {
const valid = VideoParams.forWatchPage(href)
if (!valid) return null

// this will not throw, since it was guarded above
const original = new URL(href)

// for now, we're only intercepting clicks when `emb_err_woyt` is present
// this may not be enough to cover all situations, but it solves our immediate
// problems whilst keeping the blast radius low
if (original.searchParams.get('feature') !== 'emb_err_woyt') return null

// if we get this far, we think a click is occurring that would cause a navigation loop
// construct the 'next' url
const url = new URL(urlBase)
url.searchParams.set('v', valid.id)

if (typeof valid.time === 'string') {
url.searchParams.set('t', valid.time)
}

return url.toString()
}

/**
* @param {string|null|undefined} iframeTitle
* @return {string | null}
*/
export function getValidVideoTitle (iframeTitle) {
if (typeof iframeTitle !== 'string') return null
if (iframeTitle === 'YouTube') return null
return iframeTitle.replace(/ - YouTube$/g, '')
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"smartling": {
"string_format": "icu",
"translate_paths": [
{
"path": "*/title",
"key": "{*}/title",
"instruction": "*/note"
}
]
},
"alwaysWatchHere": {
"title": "Always open YouTube videos here",
"note": "label text for a checkbox that enables this feature for all videos, not just the current one"
},
"keepEnabled": {
"title": "Keep Duck Player turned on",
"note": "label text for a checkbox that enables this feature for all videos, not just the current one"
},
"openInfoButton": {
"title": "Open Info",
"note": "aria label text on a button, to indicate there's more information to be shown if clicked"
},
"openSettingsButton": {
"title": "Open Settings",
"note": "aria label text on a button, opens a screen where the user can change settings"
},
"watchOnYoutube": {
"title": "Watch on YouTube",
"note": "text on a link that takes the user from the current page back onto YouTube.com"
},
"invalidIdError": {
"title": "<b>ERROR:</b> Invalid video id",
"note": "Shown when the page URL doesn't match a known video ID. Note for translators: The <b> tag makes the word 'ERROR:' bold. Depending on the grammar of the target language, you might need to move it so that the correct word is emphasized."
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions Sources/ContentScopeScripts/dist/pages/errorpage/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
body {
font-family:'-apple-system-font';
background: rgb(255, 255, 255);

display: flex;
height: 100vh;
margin: 0 auto;

text-align: center;
align-items: center;

cursor: default;
}

.content-container {
min-width: 320px;
max-width: 580px;
margin: 0 auto;
}

.error-header {
font-size: 14px;
font-weight: 600;
line-height: 18px;
margin: 0 auto;
padding: 0px;
}

.error-description {
font-size: 13px;
line-height: 16px;
margin: 0 auto;
padding: 8px;
}

.header-container .description-container {
color: rgb(44, 44, 44);
position: relative;
width: 100%;
word-wrap: break-word;
}

.watermark-container {
display: inline-block;
position: fixed;
width: 100px;
height: 100px;
bottom: 20px;
right: 20px;
opacity: 0.5;
filter: grayscale(100%);
pointer-events: none;
}

.watermark {
max-width: 100px;
max-height: 100px;
}

@media (prefers-color-scheme: dark) {
body {
background: rgb(51, 51, 51);
}

.error-description, .error-header {
color: rgb(210, 210, 210);
}
}
</style>
</head>
<body>
<div class="content-container">
<div class="error-container">
<div class="header-container">
<h1 class="error-header">$HEADER$</h1>
</div>
<div class="description-container">
<p class="error-description">$ERROR_DESCRIPTION$</p>
</div>
</div>
<div class="watermark-container">
<img alt="DuckDuckGo" class="watermark" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjU2IDUxMkMzOTcuMzg1IDUxMiA1MTIgMzk3LjM4NSA1MTIgMjU2QzUxMiAxMTQuNjE1IDM5Ny4zODUgMCAyNTYgMEMxMTQuNjE1IDAgMCAxMTQuNjE1IDAgMjU2QzAgMzk3LjM4NSAxMTQuNjE1IDUxMiAyNTYgNTEyWiIgZmlsbD0iI0RFNTgzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI5MiA0NDdDMjkyIDQ0NSAyOTIuNDkxIDQ0NC41NDQgMjg2LjEzMyA0MzEuODcyQzI2OS4yMzcgMzk4LjAzNyAyNTIuMjU2IDM1MC4zMzYgMjU5Ljk3OSAzMTkuNTczQzI2MS4zODcgMzEzLjk4NCAyNDQuMDY0IDExMi41OTcgMjMxLjgxOSAxMDYuMTEyQzIxOC4yMDggOTguODU4NCAyMDEuNDYyIDg3LjM1MjMgMTg2LjE0NCA4NC43OTIzQzE3OC4zNzMgODMuNTQ4OSAxNjguMTgzIDg0LjEzNzggMTYwLjIxNyA4NS4yMTA2QzE1OC44MDEgODUuNDAxMyAxNTguNzQzIDg3Ljk0NiAxNjAuMDk2IDg4LjQwNDRDMTY1LjMyNiA5MC4xNzYyIDE3MS42NzYgOTMuMjUyNSAxNzUuNDE4IDk3LjkwMzhDMTc2LjEyNyA5OC43ODQyIDE3NS4xNzYgMTAwLjE2OSAxNzQuMDQ3IDEwMC4yMTFDMTcwLjUxOSAxMDAuMzQxIDE2NC4xMTkgMTAxLjgyIDE1NS42NzYgMTA4Ljk5MkMxNTQuNjk5IDEwOS44MjEgMTU1LjUxIDExMS4zNjIgMTU2Ljc2NyAxMTEuMTEzQzE3NC45MTMgMTA3LjUyMyAxOTMuNDQ1IDEwOS4yOTIgMjA0LjM2NyAxMTkuMjE4QzIwNS4wNzUgMTE5Ljg2MyAyMDQuNzA1IDEyMS4wMTggMjAzLjc4MSAxMjEuMjdDMTA5LjAwNCAxNDcuMDI2IDEyNy43NjYgMjI5LjQ3IDE1Mi45OTcgMzMwLjY0NUMxNzUuNDcgNDIwLjc2NCAxODMuOTI4IDQ0OS44MTEgMTg2LjU5NCA0NTguNjZDMTg2Ljg1MiA0NTkuNTE3IDE4Ny40NTUgNDYwLjE5NiAxODguMjg2IDQ2MC41MjdDMjIwLjkxMiA0NzMuNTE5IDI5MiA0NzQuMDk2IDI5MiA0NTJWNDQ3WiIgZmlsbD0iI0RERERERCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ5MSAyNTZDNDkxIDM4NS43ODcgMzg1Ljc4NyA0OTEgMjU2IDQ5MUMxMjYuMjEzIDQ5MSAyMSAzODUuNzg3IDIxIDI1NkMyMSAxMjYuMjEzIDEyNi4yMTMgMjEgMjU2IDIxQzM4NS43ODcgMjEgNDkxIDEyNi4yMTMgNDkxIDI1NlpNMjAxLjE1NyA0NjMuOTQyQzE5NC42NjMgNDQzLjg4MiAxNzYuNTE0IDM4NS43MzkgMTU4LjU4OSAzMTIuMjZDMTU3Ljk5MiAzMDkuODEyIDE1Ny4zOTYgMzA3LjM3NSAxNTYuODAyIDMwNC45NTFMMTU2Ljc4NyAzMDQuODlDMTM1LjA5IDIxNi4yNjYgMTE3LjM2OCAxNDMuODggMjE0LjQ5NSAxMjEuMTRDMjE1LjM4MyAxMjAuOTMyIDIxNS44MTggMTE5Ljg3IDIxNS4yMyAxMTkuMTczQzIwNC4wODYgMTA1Ljk1MyAxODMuMjA5IDEwMS42MTkgMTU2LjgxMiAxMTAuNzI2QzE1NS43MjkgMTExLjEgMTU0Ljc4OSAxMTAuMDA4IDE1NS40NjEgMTA5LjA4MUMxNjAuNjM4IDEwMS45NDYgMTcwLjc1MyA5Ni40NjAyIDE3NS43NDcgOTQuMDU1M0MxNzYuNzggOTMuNTU4MiAxNzYuNzE3IDkyLjA0NjkgMTc1LjYyMyA5MS43MDQ2QzE3Mi4zNTcgOTAuNjgyMSAxNjYuNzk1IDg5LjExNzMgMTYwLjUzOSA4OC4xMDc1QzE1OS4wNTkgODcuODY4NiAxNTguOTI1IDg1LjMzMiAxNjAuNDExIDg1LjEzMkMxOTcuODM0IDgwLjA5NzEgMjM2LjkxMyA5MS4zMzI1IDI1Ni41MjMgMTE2LjAzNUMyNTYuNzA4IDExNi4yNjggMjU2Ljk3NSAxMTYuNDMgMjU3LjI2NSAxMTYuNDkyQzMyOS4wNzcgMTMxLjkxNCAzMzQuMjE4IDI0NS40MzIgMzI1Ljk0NiAyNTAuNjAzQzMyNC4zMTUgMjUxLjYyMiAzMTkuMDg4IDI1MS4wMzcgMzEyLjE5NCAyNTAuMjY2QzI4NC4yNTIgMjQ3LjEzOSAyMjguOTIyIDI0MC45NDkgMjc0LjU4OCAzMjYuMDU1QzI3NS4wMzkgMzI2Ljg5NSAyNzQuNDQxIDMyOC4wMDggMjczLjQ5OSAzMjguMTU1QzI0Ny44MzYgMzMyLjE0NSAyODAuNTIgNDEyLjI5MiAzMDQuNzQ5IDQ2NS40NUM0MDAuMDA3IDQ0My4zNjcgNDcxIDM1Ny45NzQgNDcxIDI1NkM0NzEgMTM3LjI1OSAzNzQuNzQxIDQxIDI1NiA0MUMxMzcuMjU5IDQxIDQxIDEzNy4yNTkgNDEgMjU2QzQxIDM1NS43ODcgMTA4Ljk4MSA0MzkuNjk3IDIwMS4xNTcgNDYzLjk0MloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0zMzcuMTIxIDM2Mi43OTJDMzMxLjY1NCAzNjAuMjU5IDMxMC42MzQgMzc1LjMzMyAyOTYuNjgzIDM4Ni45MDVDMjkzLjc2NyAzODIuNzggMjg4LjI2OSAzNzkuNzgxIDI3NS44NjggMzgxLjkzOEMyNjUuMDE0IDM4My44MjUgMjU5LjAyMiAzODYuNDQyIDI1Ni4zNDkgMzkwLjk1NEMyMzkuMjE3IDM4NC40NTggMjEwLjM5NiAzNzQuNDM1IDIwMy40MzQgMzg0LjExNUMxOTUuODIzIDM5NC42OTcgMjA1LjMzNiA0NDQuNzU3IDIxNS40NDQgNDUxLjI1N0MyMjAuNzIyIDQ1NC42NSAyNDUuOTY3IDQzOC40MjQgMjU5LjE1IDQyNy4yMzRDMjYxLjI3NyA0MzAuMjMxIDI2NC43MDEgNDMxLjk0NiAyNzEuNzQgNDMxLjc4M0MyODIuMzg3IDQzMS41MzYgMjk5LjY1NCA0MjkuMDU5IDMwMi4zMzQgNDI0LjFDMzAyLjQ5NyA0MjMuNzk5IDMwMi42MzcgNDIzLjQ0MyAzMDIuNzU3IDQyMy4wMzhDMzE2LjMwNyA0MjguMTAyIDM0MC4xNTQgNDMzLjQ2MiAzNDUuNDgyIDQzMi42NjFDMzU5LjM2NSA0MzAuNTc2IDM0My41NDggMzY1Ljc3IDMzNy4xMjEgMzYyLjc5MloiIGZpbGw9IiMzQ0E4MkIiLz4KPHBhdGggZD0iTTI5Ny45NjEgMzg4LjM4NkMyOTguNTM2IDM4OS40MTEgMjk4Ljk5OCAzOTAuNDkyIDI5OS4zOTEgMzkxLjU5MkMzMDEuMzIyIDM5Ni45OTQgMzA0LjQ3IDQxNC4xOCAzMDIuMDkgNDE4LjQyNUMyOTkuNzEgNDIyLjY3IDI4NC4yNTIgNDI0LjcyIDI3NC43MTYgNDI0Ljg4NUMyNjUuMTgxIDQyNS4wNDkgMjYzLjAzNCA0MjEuNTYyIDI2MS4xMDIgNDE2LjE2QzI1OS41NTcgNDExLjgzOCAyNTguNzk2IDQwMS42NzcgMjU4LjgxNSAzOTUuODU5QzI1OC40MjQgMzg3LjIyOSAyNjEuNTc3IDM4NC4xOTUgMjc2LjE1MSAzODEuODM3QzI4Ni45MzYgMzgwLjA5MSAyOTIuNjM4IDM4Mi4xMjEgMjk1LjkyOSAzODUuNTk1QzMxMS4yNDEgMzc0LjE2NyAzMzYuNzg4IDM1OC4wNCAzMzkuMjggMzYwLjk4N0MzNTEuNzA0IDM3NS42ODQgMzUzLjI3NSA0MTAuNjcgMzUwLjU4NCA0MjQuNzQ1QzM0OS43MDUgNDI5LjM0NyAzMDguNTY1IDQyMC4xODYgMzA4LjU2NSA0MTUuMjI0QzMwOC41NjUgMzk0LjYxNyAzMDMuMjE4IDM4OC45NjQgMjk3Ljk2MSAzODguMzg2WiIgZmlsbD0iIzRDQkEzQyIvPgo8cGF0aCBkPSJNMjA3Ljg0MiAzODEuOTUxQzIxMS4yMTEgMzc2LjYxOCAyMzguNTM2IDM4My4yNSAyNTMuNTM1IDM4OS45MjVDMjUzLjUzNSAzODkuOTI1IDI1MC40NTMgNDAzLjg4OSAyNTUuMzYgNDIwLjM0MUMyNTYuNzk1IDQyNS4xNTMgMjIwLjg1MiA0NDYuNTcyIDIxNi4xNiA0NDIuODg3QzIxMC43MzggNDM4LjYyOCAyMDAuNzU5IDM5My4xNiAyMDcuODQyIDM4MS45NTFaIiBmaWxsPSIjNENCQTNDIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjIxLjA3NiAyNzMuNjI2QzIyMy4yODYgMjY0LjAxMyAyMzMuNTg1IDI0NS44OTggMjcwLjM2IDI0Ni4zMzhDMjg4Ljk1MiAyNDYuMjYgMzEyLjA0NiAyNDYuMzMgMzI3LjM1NyAyNDQuNTkxQzM1MC4xMTQgMjQyLjAwNiAzNjcuMDA2IDIzNi41MDEgMzc4LjI2MiAyMzIuMjExQzM5NC4xODEgMjI2LjEzNyAzOTkuODMxIDIyNy40OTIgNDAxLjgxMSAyMzEuMTI2QzQwMy45ODggMjM1LjExOCA0MDEuNDIzIDI0Mi4wMTMgMzk1Ljg2MSAyNDguMzZDMzg1LjIzNiAyNjAuNDg0IDM2Ni4xMzUgMjY5Ljg3OCAzMzIuNDAxIDI3Mi42NjZDMjk4LjY2NyAyNzUuNDU0IDI3Ni4zMTkgMjY2LjQwNSAyNjYuNjk4IDI4MS4xMzhDMjYyLjU0OSAyODcuNDkyIDI2NS43NTcgMzAyLjQ2OCAyOTguMzggMzA3LjE4NEMzNDIuNDY0IDMxMy41NDYgMzc4LjY2OSAyOTkuNTE4IDM4My4xNDIgMzA3Ljk5QzM4Ny42MTYgMzE2LjQ2MiAzNjEuODQ3IDMzMy43IDMxNy42OTIgMzM0LjA2MUMyNzMuNTM3IDMzNC40MjIgMjQ1Ljk1NyAzMTguNjAxIDIzNi4xNzYgMzEwLjczN0MyMjMuNzY3IDMwMC43NiAyMTguMjE1IDI4Ni4yMDkgMjIxLjA3NiAyNzMuNjI2WiIgZmlsbD0iI0ZGQ0MzMyIvPgo8ZyBvcGFjaXR5PSIwLjgiPgo8cGF0aCBkPSJNMjc3LjMwOCAxNjguNTA4QzI3OS43NyAxNjQuNDc1IDI4NS4yMzIgMTYxLjM2MiAyOTQuMTcgMTYxLjM2MkMzMDMuMTA4IDE2MS4zNjIgMzA3LjMxMiAxNjQuOTE5IDMxMC4yMjMgMTY4Ljg4NUMzMTAuODE1IDE2OS42OTIgMzA5LjkxOCAxNzAuNjQxIDMwOSAxNzAuMjQ0QzMwOC43NzkgMTcwLjE0OSAzMDguNTU1IDE3MC4wNTEgMzA4LjMyOCAxNjkuOTUyQzMwNS4wNTkgMTY4LjUyNCAzMDEuMDQ2IDE2Ni43NzEgMjk0LjE3IDE2Ni42NzNDMjg2LjgxNiAxNjYuNTY5IDI4Mi4xNzkgMTY4LjQxIDI3OS4yNTkgMTY5Ljk5OEMyNzguMjc1IDE3MC41MzMgMjc2LjcyNCAxNjkuNDY0IDI3Ny4zMDggMTY4LjUwOFoiIGZpbGw9IiMxNDMwN0UiLz4KPHBhdGggZD0iTTE3Ni42ODMgMTczLjY2OEMxODUuMzYyIDE3MC4wNDEgMTkyLjE4MiAxNzAuNTEgMTk3LjAwNSAxNzEuNjVDMTk4LjAyIDE3MS44OTEgMTk4LjcyNSAxNzAuNzk4IDE5Ny45MTMgMTcwLjE0M0MxOTQuMTcxIDE2Ny4xMjQgMTg1Ljc5NCAxNjMuMzc2IDE3NC44NjkgMTY3LjQ1QzE2NS4xMjQgMTcxLjA4NCAxNjAuNTMxIDE3OC42MzQgMTYwLjUwMyAxODMuNTk4QzE2MC40OTcgMTg0Ljc2OCAxNjIuOTA0IDE4NC44NjcgMTYzLjUyNiAxODMuODc3QzE2NS4yMDggMTgxLjIwMSAxNjguMDA0IDE3Ny4yOTUgMTc2LjY4MyAxNzMuNjY4WiIgZmlsbD0iIzE0MzA3RSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwMS43NjIgMjIzLjY3OUMyOTQuMDg5IDIyMy42NzkgMjg3Ljg2NSAyMTcuNDczIDI4Ny44NjUgMjA5LjgzNEMyODcuODY1IDIwMi4xOTUgMjk0LjA4OSAxOTUuOTg5IDMwMS43NjIgMTk1Ljk4OUMzMDkuNDM0IDE5NS45ODkgMzE1LjY1OCAyMDIuMTk1IDMxNS42NTggMjA5LjgzNEMzMTUuNjU4IDIxNy40NzMgMzA5LjQzNCAyMjMuNjc5IDMwMS43NjIgMjIzLjY3OVpNMzExLjU0OSAyMDUuMjQ4QzMxMS41NDkgMjAzLjI3IDMwOS45MjkgMjAxLjY2NyAzMDcuOTUxIDIwMS42NjdDMzA1Ljk3MyAyMDEuNjY3IDMwNC4zNyAyMDMuMjcgMzA0LjM1MyAyMDUuMjQ4QzMwNC4zNTMgMjA3LjIyNSAzMDUuOTczIDIwOC44MjggMzA3Ljk1MSAyMDguODI4QzMwOS45NDYgMjA4LjgyOCAzMTEuNTQ5IDIwNy4yMjUgMzExLjU0OSAyMDUuMjQ4WiIgZmlsbD0iIzE0MzA3RSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIwOS42OTMgMjE5LjQxNkMyMDkuNjkzIDIyOC4zMzMgMjAyLjQ0NyAyMzUuNTYzIDE5My40OTUgMjM1LjU2M0MxODQuNTYxIDIzNS41NjMgMTc3LjI5OCAyMjguMzMzIDE3Ny4yOTggMjE5LjQxNkMxNzcuMjk4IDIxMC40OTggMTg0LjU2MSAyMDMuMjY5IDE5My40OTUgMjAzLjI2OUMyMDIuNDMgMjAzLjI2OSAyMDkuNjkzIDIxMC40OTggMjA5LjY5MyAyMTkuNDE2Wk0yMDQuOTE5IDIxNC4wNjJDMjA0LjkxOSAyMTEuNzYgMjAzLjA0MyAyMDkuODg1IDIwMC43MjUgMjA5Ljg4NUMxOTguNDIzIDIwOS44ODUgMTk2LjU0NyAyMTEuNzQzIDE5Ni41MyAyMTQuMDYyQzE5Ni41MyAyMTYuMzY0IDE5OC40MDYgMjE4LjIzOSAyMDAuNzI1IDIxOC4yMzlDMjAzLjA0MyAyMTguMjM5IDIwNC45MTkgMjE2LjM2NCAyMDQuOTE5IDIxNC4wNjJaIiBmaWxsPSIjMTQzMDdFIi8+CjwvZz4KPC9zdmc+Cg==" />
</div>
</div>
</body>
</html>
Loading

0 comments on commit 93fc4ce

Please sign in to comment.