UNPKG

@semantic-components/re-captcha

Version:

**@semantic-components/re-captcha** is an Angular library designed to simplify the integration of Google reCAPTCHA into your Angular applications. It supports reCAPTCHA v2 and v3, providing an easy-to-use API and seamless setup for enhancing your app's se

1 lines 73.3 kB
{"version":3,"file":"semantic-components-re-captcha.mjs","sources":["../tmp-esm2022/lib/re-captcha/re-captcha-config.js","../tmp-esm2022/lib/re-captcha/re-captcha-provider.js","../tmp-esm2022/lib/re-captcha/re-captcha.service.js","../tmp-esm2022/lib/re-captcha/score-re-captcha.js","../tmp-esm2022/lib/re-captcha/id-generator.js","../tmp-esm2022/lib/re-captcha/re-captcha-base.js","../tmp-esm2022/lib/re-captcha/checkbox-re-captcha.js","../tmp-esm2022/lib/re-captcha/invisible-re-captcha.js","../tmp-esm2022/semantic-components-re-captcha.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const SC_RE_CAPTCHA_V2_SITE_KEY = new InjectionToken('SC_RE_CAPTCHA_V2_SITE_KEY');\nexport const SC_RE_CAPTCHA_V3_SITE_KEY = new InjectionToken('SC_RE_CAPTCHA_V3_SITE_KEY');\nexport const SC_RE_CAPTCHA_LANGUAGE_CODE = new InjectionToken('SC_RE_CAPTCHA_LANGUAGE_CODE');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtY2FwdGNoYS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3JlLWNhcHRjaGEvc3JjL2xpYi9yZS1jYXB0Y2hhL3JlLWNhcHRjaGEtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQVMsMkJBQTJCLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBUywyQkFBMkIsQ0FBQyxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUMzRCw2QkFBNkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBTQ19SRV9DQVBUQ0hBX1YyX1NJVEVfS0VZID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1NDX1JFX0NBUFRDSEFfVjJfU0lURV9LRVknKTtcblxuZXhwb3J0IGNvbnN0IFNDX1JFX0NBUFRDSEFfVjNfU0lURV9LRVkgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignU0NfUkVfQ0FQVENIQV9WM19TSVRFX0tFWScpO1xuXG5leHBvcnQgY29uc3QgU0NfUkVfQ0FQVENIQV9MQU5HVUFHRV9DT0RFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdTQ19SRV9DQVBUQ0hBX0xBTkdVQUdFX0NPREUnLFxuKTtcbiJdfQ==","import { makeEnvironmentProviders } from '@angular/core';\nimport { SC_RE_CAPTCHA_LANGUAGE_CODE, SC_RE_CAPTCHA_V2_SITE_KEY, SC_RE_CAPTCHA_V3_SITE_KEY, } from './re-captcha-config';\nexport function provideScReCaptchaSettings(settings) {\n const providers = [];\n if (settings.v2SiteKey) {\n providers.push({\n provide: SC_RE_CAPTCHA_V2_SITE_KEY,\n useValue: settings.v2SiteKey,\n });\n }\n if (settings.v3SiteKey) {\n providers.push({\n provide: SC_RE_CAPTCHA_V3_SITE_KEY,\n useValue: settings.v3SiteKey,\n });\n }\n if (settings.languageCode) {\n providers.push({\n provide: SC_RE_CAPTCHA_LANGUAGE_CODE,\n useValue: settings.languageCode,\n });\n }\n return makeEnvironmentProviders(providers);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtY2FwdGNoYS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmUtY2FwdGNoYS9zcmMvbGliL3JlLWNhcHRjaGEvcmUtY2FwdGNoYS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixHQUMxQixNQUFNLHFCQUFxQixDQUFDO0FBUTdCLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUE2QjtJQUN0RSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFckIsSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNiLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QixTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2IsT0FBTyxFQUFFLHlCQUF5QjtZQUNsQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDYixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFFBQVEsRUFBRSxRQUFRLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTQ19SRV9DQVBUQ0hBX0xBTkdVQUdFX0NPREUsXG4gIFNDX1JFX0NBUFRDSEFfVjJfU0lURV9LRVksXG4gIFNDX1JFX0NBUFRDSEFfVjNfU0lURV9LRVksXG59IGZyb20gJy4vcmUtY2FwdGNoYS1jb25maWcnO1xuXG5pbnRlcmZhY2UgU2NSZUNhcHRjaGFTZXR0aW5ncyB7XG4gIHYyU2l0ZUtleT86IHN0cmluZztcbiAgdjNTaXRlS2V5Pzogc3RyaW5nO1xuICBsYW5ndWFnZUNvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlU2NSZUNhcHRjaGFTZXR0aW5ncyhzZXR0aW5nczogU2NSZUNhcHRjaGFTZXR0aW5ncyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgcHJvdmlkZXJzID0gW107XG5cbiAgaWYgKHNldHRpbmdzLnYyU2l0ZUtleSkge1xuICAgIHByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNDX1JFX0NBUFRDSEFfVjJfU0lURV9LRVksXG4gICAgICB1c2VWYWx1ZTogc2V0dGluZ3MudjJTaXRlS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHNldHRpbmdzLnYzU2l0ZUtleSkge1xuICAgIHByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNDX1JFX0NBUFRDSEFfVjNfU0lURV9LRVksXG4gICAgICB1c2VWYWx1ZTogc2V0dGluZ3MudjNTaXRlS2V5LFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHNldHRpbmdzLmxhbmd1YWdlQ29kZSkge1xuICAgIHByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNDX1JFX0NBUFRDSEFfTEFOR1VBR0VfQ09ERSxcbiAgICAgIHVzZVZhbHVlOiBzZXR0aW5ncy5sYW5ndWFnZUNvZGUsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=","import { Injectable, inject, signal } from '@angular/core';\nimport { SC_RE_CAPTCHA_LANGUAGE_CODE, SC_RE_CAPTCHA_V3_SITE_KEY } from './re-captcha-config';\nimport * as i0 from \"@angular/core\";\nexport class ScReCaptchaService {\n v3SiteKey = inject(SC_RE_CAPTCHA_V3_SITE_KEY, { optional: true });\n languageCode = inject(SC_RE_CAPTCHA_LANGUAGE_CODE, { optional: true });\n scriptId = 'recaptcha-script';\n apiUrl = 'https://www.google.com/recaptcha/api.js';\n scriptStatus = signal(null);\n loadPromise = null;\n /**\n * Check if the script already exists in the document\n */\n checkScriptExists() {\n const existingScript = document.getElementById(this.scriptId);\n if (existingScript) {\n // Check if grecaptcha is actually available in window object\n if (window['grecaptcha'] && typeof window['grecaptcha'].render === 'function') {\n this.scriptStatus.set(true);\n }\n }\n }\n /**\n * Load the reCAPTCHA script dynamically\n * @returns Promise that resolves to true when script is loaded\n */\n loadScript() {\n // First check if script exists and is loaded\n this.checkScriptExists();\n // If script is already loaded, return success immediately\n if (this.scriptStatus() === true) {\n return Promise.resolve(true);\n }\n // If script is currently loading, return the existing promise\n if (this.loadPromise) {\n return this.loadPromise;\n }\n // Create a new loading promise\n this.loadPromise = new Promise((resolve, reject) => {\n // Create a unique callback function name if not provided\n const callbackName = `onRecaptchaLoaded_${Date.now()}`;\n // Define the callback function in window scope\n window[callbackName] = () => {\n // Start checking for grecaptcha object\n this.checkGrecaptchaAvailability(3, resolve, reject);\n };\n // Build URL with parameters if provided\n let url = this.apiUrl;\n const params = [];\n if (this.v3SiteKey) {\n params.push(`render=${this.v3SiteKey}`);\n }\n else {\n params.push(`render=explicit`);\n }\n if (this.languageCode) {\n params.push(`hl=${this.languageCode}`);\n }\n // Always include onload parameter\n params.push(`onload=${callbackName}`);\n if (params.length > 0) {\n url = `${url}?${params.join('&')}`;\n }\n // Create script element\n const script = document.createElement('script');\n script.id = this.scriptId;\n script.src = url;\n script.async = true;\n script.defer = true;\n // Set up error handler\n script.onerror = () => {\n this.loadPromise = null;\n console.error('Error loading reCAPTCHA script');\n this.scriptStatus.set(false);\n reject(new Error('Failed to load reCAPTCHA script'));\n };\n // Add script to document\n document.head.appendChild(script);\n });\n return this.loadPromise;\n }\n /**\n * Check repeatedly if grecaptcha is available\n * @param attempts Number of attempts to check\n * @param resolve Promise resolve function\n * @param reject Promise reject function\n */\n checkGrecaptchaAvailability(attempts, resolve, reject) {\n if (window['grecaptcha'] && typeof window['grecaptcha'].render === 'function') {\n this.scriptStatus.set(true);\n this.loadPromise = null;\n resolve(true);\n return;\n }\n if (attempts <= 0) {\n this.loadPromise = null;\n console.error('reCAPTCHA script loaded but grecaptcha object not available');\n this.scriptStatus.set(false);\n reject(new Error('reCAPTCHA script loaded but grecaptcha object not available'));\n return;\n }\n // Try again after a short delay\n setTimeout(() => this.checkGrecaptchaAvailability(attempts - 1, resolve, reject), 200);\n }\n /**\n * Remove the reCAPTCHA script from the DOM\n */\n removeScript() {\n const script = document.getElementById(this.scriptId);\n if (script) {\n script.remove();\n delete window['grecaptcha'];\n this.scriptStatus.set(null);\n this.loadPromise = null;\n }\n }\n /**\n * Reset all reCAPTCHA instances on the page\n */\n resetAll() {\n if (this.scriptStatus() === true && window['grecaptcha']) {\n try {\n window['grecaptcha'].reset();\n }\n catch (e) {\n console.warn('Error resetting reCAPTCHA:', e);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScReCaptchaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScReCaptchaService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScReCaptchaService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtY2FwdGNoYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZS1jYXB0Y2hhL3NyYy9saWIvcmUtY2FwdGNoYS9yZS1jYXB0Y2hhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWlCN0YsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLFNBQVMsR0FBRyxNQUFNLENBQVMseUJBQXlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRSxZQUFZLEdBQUcsTUFBTSxDQUFTLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFL0UsUUFBUSxHQUFHLGtCQUFrQixDQUFDO0lBQzlCLE1BQU0sR0FBRyx5Q0FBeUMsQ0FBQztJQUVuRCxZQUFZLEdBQUcsTUFBTSxDQUFlLElBQUksQ0FBQyxDQUFDO0lBQ25ELFdBQVcsR0FBNEIsSUFBSSxDQUFDO0lBRXBEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsNkRBQTZEO1lBQzdELElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lB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LElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQXJKVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU0NfUkVfQ0FQVENIQV9MQU5HVUFHRV9DT0RFLCBTQ19SRV9DQVBUQ0hBX1YzX1NJVEVfS0VZIH0gZnJvbSAnLi9yZS1jYXB0Y2hhLWNvbmZpZyc7XG5cbi8vIEV4dGVuZCB0aGUgV2luZG93IGludGVyZmFjZSB0byBpbmNsdWRlIGN1c3RvbSByZUNBUFRDSEEgcHJvcGVydGllc1xuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBncmVjYXB0Y2hhPzogYW55O1xuICB9XG59XG5cbi8qKlxuICogU2NyaXB0IHN0YXR1czogbnVsbCAoaW5pdGlhbCksIHRydWUgKGxvYWRlZCksIGZhbHNlIChlcnJvcilcbiAqL1xuZXhwb3J0IHR5cGUgU2NyaXB0U3RhdHVzID0gYm9vbGVhbiB8IG51bGw7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1JlQ2FwdGNoYVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHYzU2l0ZUtleSA9IGluamVjdDxzdHJpbmc+KFNDX1JFX0NBUFRDSEFfVjNfU0lURV9LRVksIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VDb2RlID0gaW5qZWN0PHN0cmluZz4oU0NfUkVfQ0FQVENIQV9MQU5HVUFHRV9DT0RFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NyaXB0SWQgPSAncmVjYXB0Y2hhLXNjcmlwdCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVXJsID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcyc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY3JpcHRTdGF0dXMgPSBzaWduYWw8U2NyaXB0U3RhdHVzPihudWxsKTtcbiAgcHJpdmF0ZSBsb2FkUHJvbWlzZTogUHJvbWlzZTxib29sZWFuPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgc2NyaXB0IGFscmVhZHkgZXhpc3RzIGluIHRoZSBkb2N1bWVudFxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja1NjcmlwdEV4aXN0cygpOiB2b2lkIHtcbiAgICBjb25zdCBleGlzdGluZ1NjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2NyaXB0SWQpO1xuICAgIGlmIChleGlzdGluZ1NjcmlwdCkge1xuICAgICAgLy8gQ2hlY2sgaWYgZ3JlY2FwdGNoYSBpcyBhY3R1YWxseSBhdmFpbGFibGUgaW4gd2luZG93IG9iamVjdFxuICAgICAgaWYgKHdpbmRvd1snZ3JlY2FwdGNoYSddICYmIHR5cGVvZiB3aW5kb3dbJ2dyZWNhcHRjaGEnXS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5zY3JpcHRTdGF0dXMuc2V0KHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSByZUNBUFRDSEEgc2NyaXB0IGR5bmFtaWNhbGx5XG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0cnVlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZFxuICAgKi9cbiAgbG9hZFNjcmlwdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBGaXJzdCBjaGVjayBpZiBzY3JpcHQgZXhpc3RzIGFuZCBpcyBsb2FkZWRcbiAgICB0aGlzLmNoZWNrU2NyaXB0RXhpc3RzKCk7XG5cbiAgICAvLyBJZiBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQsIHJldHVybiBzdWNjZXNzIGltbWVkaWF0ZWx5XG4gICAgaWYgKHRoaXMuc2NyaXB0U3RhdHVzKCkgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gSWYgc2NyaXB0IGlzIGN1cnJlbnRseSBsb2FkaW5nLCByZXR1cm4gdGhlIGV4aXN0aW5nIHByb21pc2VcbiAgICBpZiAodGhpcy5sb2FkUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZFByb21pc2U7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGxvYWRpbmcgcHJvbWlzZVxuICAgIHRoaXMubG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAvLyBDcmVhdGUgYSB1bmlxdWUgY2FsbGJhY2sgZnVuY3Rpb24gbmFtZSBpZiBub3QgcHJvdmlkZWRcbiAgICAgIGNvbnN0IGNhbGxiYWNrTmFtZSA9IGBvblJlY2FwdGNoYUxvYWRlZF8ke0RhdGUubm93KCl9YDtcblxuICAgICAgLy8gRGVmaW5lIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBpbiB3aW5kb3cgc2NvcGVcbiAgICAgICh3aW5kb3cgYXMgYW55KVtjYWxsYmFja05hbWVdID0gKCkgPT4ge1xuICAgICAgICAvLyBTdGFydCBjaGVja2luZyBmb3IgZ3JlY2FwdGNoYSBvYmplY3RcbiAgICAgICAgdGhpcy5jaGVja0dyZWNhcHRjaGFBdmFpbGFiaWxpdHkoMywgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEJ1aWxkIFVSTCB3aXRoIHBhcmFtZXRlcnMgaWYgcHJvdmlkZWRcbiAgICAgIGxldCB1cmwgPSB0aGlzLmFwaVVybDtcbiAgICAgIGNvbnN0IHBhcmFtczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgaWYgKHRoaXMudjNTaXRlS2V5KSB7XG4gICAgICAgIHBhcmFtcy5wdXNoKGByZW5kZXI9JHt0aGlzLnYzU2l0ZUtleX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmFtcy5wdXNoKGByZW5kZXI9ZXhwbGljaXRgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubGFuZ3VhZ2VDb2RlKSB7XG4gICAgICAgIHBhcmFtcy5wdXNoKGBobD0ke3RoaXMubGFuZ3VhZ2VDb2RlfWApO1xuICAgICAgfVxuXG4gICAgICAvLyBBbHdheXMgaW5jbHVkZSBvbmxvYWQgcGFyYW1ldGVyXG4gICAgICBwYXJhbXMucHVzaChgb25sb2FkPSR7Y2FsbGJhY2tOYW1lfWApO1xuXG4gICAgICBpZiAocGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdXJsID0gYCR7dXJsfT8ke3BhcmFtcy5qb2luKCcmJyl9YDtcbiAgICAgIH1cblxuICAgICAgLy8gQ3JlYXRlIHNjcmlwdCBlbGVtZW50XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5pZCA9IHRoaXMuc2NyaXB0SWQ7XG4gICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG5cbiAgICAgIC8vIFNldCB1cCBlcnJvciBoYW5kbGVyXG4gICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgcmVDQVBUQ0hBIHNjcmlwdCcpO1xuICAgICAgICB0aGlzLnNjcmlwdFN0YXR1cy5zZXQoZmFsc2UpO1xuICAgICAgICByZWplY3QobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCByZUNBUFRDSEEgc2NyaXB0JykpO1xuICAgICAgfTtcblxuICAgICAgLy8gQWRkIHNjcmlwdCB0byBkb2N1bWVudFxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMubG9hZFByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgcmVwZWF0ZWRseSBpZiBncmVjYXB0Y2hhIGlzIGF2YWlsYWJsZVxuICAgKiBAcGFyYW0gYXR0ZW1wdHMgTnVtYmVyIG9mIGF0dGVtcHRzIHRvIGNoZWNrXG4gICAqIEBwYXJhbSByZXNvbHZlIFByb21pc2UgcmVzb2x2ZSBmdW5jdGlvblxuICAgKiBAcGFyYW0gcmVqZWN0IFByb21pc2UgcmVqZWN0IGZ1bmN0aW9uXG4gICAqL1xuICBwcml2YXRlIGNoZWNrR3JlY2FwdGNoYUF2YWlsYWJpbGl0eShcbiAgICBhdHRlbXB0czogbnVtYmVyLFxuICAgIHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCxcbiAgICByZWplY3Q6IChyZWFzb246IGFueSkgPT4gdm9pZCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvd1snZ3JlY2FwdGNoYSddICYmIHR5cGVvZiB3aW5kb3dbJ2dyZWNhcHRjaGEnXS5yZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuc2NyaXB0U3RhdHVzLnNldCh0cnVlKTtcbiAgICAgIHRoaXMubG9hZFByb21pc2UgPSBudWxsO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXR0ZW1wdHMgPD0gMCkge1xuICAgICAgdGhpcy5sb2FkUHJvbWlzZSA9IG51bGw7XG4gICAgICBjb25zb2xlLmVycm9yKCdyZUNBUFRDSEEgc2NyaXB0IGxvYWRlZCBidXQgZ3JlY2FwdGNoYSBvYmplY3Qgbm90IGF2YWlsYWJsZScpO1xuICAgICAgdGhpcy5zY3JpcHRTdGF0dXMuc2V0KGZhbHNlKTtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ3JlQ0FQVENIQSBzY3JpcHQgbG9hZGVkIGJ1dCBncmVjYXB0Y2hhIG9iamVjdCBub3QgYXZhaWxhYmxlJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbiBhZnRlciBhIHNob3J0IGRlbGF5XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrR3JlY2FwdGNoYUF2YWlsYWJpbGl0eShhdHRlbXB0cyAtIDEsIHJlc29sdmUsIHJlamVjdCksIDIwMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSByZUNBUFRDSEEgc2NyaXB0IGZyb20gdGhlIERPTVxuICAgKi9cbiAgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2NyaXB0SWQpO1xuICAgIGlmIChzY3JpcHQpIHtcbiAgICAgIHNjcmlwdC5yZW1vdmUoKTtcbiAgICAgIGRlbGV0ZSB3aW5kb3dbJ2dyZWNhcHRjaGEnXTtcbiAgICAgIHRoaXMuc2NyaXB0U3RhdHVzLnNldChudWxsKTtcbiAgICAgIHRoaXMubG9hZFByb21pc2UgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBhbGwgcmVDQVBUQ0hBIGluc3RhbmNlcyBvbiB0aGUgcGFnZVxuICAgKi9cbiAgcmVzZXRBbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2NyaXB0U3RhdHVzKCkgPT09IHRydWUgJiYgd2luZG93WydncmVjYXB0Y2hhJ10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHdpbmRvd1snZ3JlY2FwdGNoYSddLnJlc2V0KCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignRXJyb3IgcmVzZXR0aW5nIHJlQ0FQVENIQTonLCBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Injectable, afterNextRender, inject } from '@angular/core';\nimport { SC_RE_CAPTCHA_V3_SITE_KEY } from './re-captcha-config';\nimport { ScReCaptchaService } from './re-captcha.service';\nimport * as i0 from \"@angular/core\";\nexport class ScScoreReCaptcha {\n v3SiteKey = inject(SC_RE_CAPTCHA_V3_SITE_KEY);\n scReCaptchaService = inject(ScReCaptchaService);\n constructor() {\n afterNextRender(async () => {\n await this.scReCaptchaService.loadScript();\n });\n }\n async execute(actionName) {\n return new Promise((resolve) => {\n grecaptcha.ready(() => {\n grecaptcha.execute(this.v3SiteKey, { action: actionName }).then((token) => {\n resolve(token);\n });\n });\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScScoreReCaptcha, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScScoreReCaptcha, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScScoreReCaptcha, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcmUtcmUtY2FwdGNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmUtY2FwdGNoYS9zcmMvbGliL3JlLWNhcHRjaGEvc2NvcmUtcmUtY2FwdGNoYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFDVixTQUFTLEdBQUcsTUFBTSxDQUFTLHlCQUF5QixDQUFDLENBQUM7SUFFdEQsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFakU7UUFDRSxlQUFlLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDekIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFrQjtRQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO29CQUNoRixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBbkJVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNDX1JFX0NBUFRDSEFfVjNfU0lURV9LRVkgfSBmcm9tICcuL3JlLWNhcHRjaGEtY29uZmlnJztcbmltcG9ydCB7IFNjUmVDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4vcmUtY2FwdGNoYS5zZXJ2aWNlJztcblxuZGVjbGFyZSBsZXQgZ3JlY2FwdGNoYTogYW55O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTY29yZVJlQ2FwdGNoYSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdjNTaXRlS2V5ID0gaW5qZWN0PHN0cmluZz4oU0NfUkVfQ0FQVENIQV9WM19TSVRFX0tFWSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY1JlQ2FwdGNoYVNlcnZpY2UgPSBpbmplY3QoU2NSZUNhcHRjaGFTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5zY1JlQ2FwdGNoYVNlcnZpY2UubG9hZFNjcmlwdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShhY3Rpb25OYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgZ3JlY2FwdGNoYS5yZWFkeSgoKSA9PiB7XG4gICAgICAgIGdyZWNhcHRjaGEuZXhlY3V0ZSh0aGlzLnYzU2l0ZUtleSwgeyBhY3Rpb246IGFjdGlvbk5hbWUgfSkudGhlbigodG9rZW46IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJlc29sdmUodG9rZW4pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=","import { APP_ID, Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Keeps track of the ID count per prefix. This helps us make the IDs a bit more deterministic\n * like they were before the service was introduced. Note that ideally we wouldn't have to do\n * this, but there are some internal tests that rely on the IDs.\n */\nconst counters = {};\n/** Service that generates unique IDs for DOM nodes. */\nexport class IdGenerator {\n appId = inject(APP_ID);\n /**\n * Generates a unique ID with a specific prefix.\n * @param prefix Prefix to add to the ID.\n */\n getId(prefix) {\n // Omit the app ID if it's the default `ng`. Since the vast majority of pages have one\n // Angular app on them, we can reduce the amount of breakages by not adding it.\n if (this.appId !== 'ng') {\n prefix += this.appId;\n }\n // eslint-disable-next-line no-prototype-builtins\n if (!counters.hasOwnProperty(prefix)) {\n counters[prefix] = 0;\n }\n return `${prefix}${counters[prefix]++}`;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: IdGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: IdGenerator, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: IdGenerator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZS1jYXB0Y2hhL3NyYy9saWIvcmUtY2FwdGNoYS9pZC1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzRDs7OztHQUlHO0FBQ0gsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQztBQUU1Qyx1REFBdUQ7QUFFdkQsTUFBTSxPQUFPLFdBQVc7SUFDTCxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFjO1FBQ2xCLHNGQUFzRjtRQUN0RiwrRUFBK0U7UUFDL0UsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDMUMsQ0FBQzt1R0FwQlUsV0FBVzsyR0FBWCxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lELCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgSUQgY291bnQgcGVyIHByZWZpeC4gVGhpcyBoZWxwcyB1cyBtYWtlIHRoZSBJRHMgYSBiaXQgbW9yZSBkZXRlcm1pbmlzdGljXG4gKiBsaWtlIHRoZXkgd2VyZSBiZWZvcmUgdGhlIHNlcnZpY2Ugd2FzIGludHJvZHVjZWQuIE5vdGUgdGhhdCBpZGVhbGx5IHdlIHdvdWxkbid0IGhhdmUgdG8gZG9cbiAqIHRoaXMsIGJ1dCB0aGVyZSBhcmUgc29tZSBpbnRlcm5hbCB0ZXN0cyB0aGF0IHJlbHkgb24gdGhlIElEcy5cbiAqL1xuY29uc3QgY291bnRlcnM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcblxuLyoqIFNlcnZpY2UgdGhhdCBnZW5lcmF0ZXMgdW5pcXVlIElEcyBmb3IgRE9NIG5vZGVzLiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJZEdlbmVyYXRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwSWQgPSBpbmplY3QoQVBQX0lEKTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgdW5pcXVlIElEIHdpdGggYSBzcGVjaWZpYyBwcmVmaXguXG4gICAqIEBwYXJhbSBwcmVmaXggUHJlZml4IHRvIGFkZCB0byB0aGUgSUQuXG4gICAqL1xuICBnZXRJZChwcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gT21pdCB0aGUgYXBwIElEIGlmIGl0J3MgdGhlIGRlZmF1bHQgYG5nYC4gU2luY2UgdGhlIHZhc3QgbWFqb3JpdHkgb2YgcGFnZXMgaGF2ZSBvbmVcbiAgICAvLyBBbmd1bGFyIGFwcCBvbiB0aGVtLCB3ZSBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgYnJlYWthZ2VzIGJ5IG5vdCBhZGRpbmcgaXQuXG4gICAgaWYgKHRoaXMuYXBwSWQgIT09ICduZycpIHtcbiAgICAgIHByZWZpeCArPSB0aGlzLmFwcElkO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICBpZiAoIWNvdW50ZXJzLmhhc093blByb3BlcnR5KHByZWZpeCkpIHtcbiAgICAgIGNvdW50ZXJzW3ByZWZpeF0gPSAwO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtwcmVmaXh9JHtjb3VudGVyc1twcmVmaXhdKyt9YDtcbiAgfVxufVxuIl19","import { ChangeDetectorRef, Directive, afterNextRender, computed, inject, input, signal, } from '@angular/core';\nimport { IdGenerator } from './id-generator';\nimport { SC_RE_CAPTCHA_V2_SITE_KEY } from './re-captcha-config';\nimport { ScReCaptchaService } from './re-captcha.service';\nimport * as i0 from \"@angular/core\";\nexport class ScReCaptchaBase {\n id = inject(IdGenerator).getId('sc-re-captcha-');\n widgetId = '';\n changeDetectorRef = inject(ChangeDetectorRef);\n scReCaptchaService = inject(ScReCaptchaService);\n v2SiteKey = inject(SC_RE_CAPTCHA_V2_SITE_KEY, {\n optional: true,\n });\n siteKeyInput = input('', {\n alias: 'siteKey',\n });\n siteKey = computed(() => {\n if (this.siteKeyInput()) {\n return this.siteKeyInput();\n }\n return this.v2SiteKey ?? '';\n });\n tabindex = input('0');\n callback = input(undefined);\n expiredCallback = input(undefined, {\n alias: 'expired-callback',\n });\n errorCallback = input(undefined, {\n alias: 'error-callback',\n });\n value = signal(null);\n constructor() {\n afterNextRender(async () => {\n await this.scReCaptchaService.loadScript();\n this.render();\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n render() { }\n renderWidget(themeOrBadge, themeOrBadgeValue, sizeOrInvisible) {\n this.widgetId = grecaptcha.render(this.id, {\n sitekey: this.siteKey(),\n [themeOrBadge]: themeOrBadgeValue,\n size: sizeOrInvisible,\n tabindex: this.tabindex(),\n callback: this.callback() ? this.callback() : this.defaultCallback.bind(this),\n 'expired-callback': this.expiredCallback()\n ? this.expiredCallback()\n : this.defaultExpiredCallback.bind(this),\n 'error-callback': this.errorCallback()\n ? this.errorCallback()\n : this.defaultErrorCallback.bind(this),\n }, true);\n }\n defaultCallback(token) {\n this.setValue(token);\n }\n defaultExpiredCallback() {\n this.setValue(null);\n }\n defaultErrorCallback() {\n console.error('error');\n this.setValue(null);\n }\n getResponse() {\n grecaptcha.getResponse(this.widgetId);\n }\n reset() {\n grecaptcha.reset(this.widgetId);\n }\n setValue(newValue) {\n this.value.set(newValue);\n this.onChange(newValue);\n this.changeDetectorRef.markForCheck();\n }\n writeValue(obj) {\n this.value.set(obj);\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = () => { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch = () => { };\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouch = fn;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScReCaptchaBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", type: ScReCaptchaBase, isStandalone: true, inputs: { siteKeyInput: { classPropertyName: \"siteKeyInput\", publicName: \"siteKey\", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: \"tabindex\", publicName: \"tabindex\", isSignal: true, isRequired: false, transformFunction: null }, callback: { classPropertyName: \"callback\", publicName: \"callback\", isSignal: true, isRequired: false, transformFunction: null }, expiredCallback: { classPropertyName: \"expiredCallback\", publicName: \"expired-callback\", isSignal: true, isRequired: false, transformFunction: null }, errorCallback: { classPropertyName: \"errorCallback\", publicName: \"error-callback\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"id\": \"id\", \"class.g-recaptcha\": \"true\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScReCaptchaBase, decorators: [{\n type: Directive,\n args: [{\n host: {\n '[id]': 'id',\n '[class.g-recaptcha]': 'true',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtY2FwdGNoYS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9yZS1jYXB0Y2hhL3NyYy9saWIvcmUtY2FwdGNoYS9yZS1jYXB0Y2hhLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBYzFELE1BQU0sT0FBTyxlQUFlO0lBQ1AsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxRCxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRVAsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFaEQsU0FBUyxHQUFHLE1BQU0sQ0FBUyx5QkFBeUIsRUFBRTtRQUNyRSxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUNNLFlBQVksR0FBRyxLQUFLLENBQVMsRUFBRSxFQUFFO1FBQ3hDLEtBQUssRUFBRSxTQUFTO0tBQ2pCLENBQUMsQ0FBQztJQUVjLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMs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RTtJQUNoRSxRQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3pCLGdFQUFnRTtJQUNoRSxPQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXhCLGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQzt1R0E3R1UsZUFBZTsyRkFBZixlQUFlOzsyRkFBZixlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNULElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsSUFBSTt3QkFDWixxQkFBcUIsRUFBRSxNQUFNO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuL2lkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBTQ19SRV9DQVBUQ0hBX1YyX1NJVEVfS0VZIH0gZnJvbSAnLi9yZS1jYXB0Y2hhLWNvbmZpZyc7XG5pbXBvcnQgeyBTY1JlQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuL3JlLWNhcHRjaGEuc2VydmljZSc7XG5cbmRlY2xhcmUgbGV0IGdyZWNhcHRjaGE6IGFueTtcblxudHlwZSBDYWxsYmFja0ZuID0gKHRva2VuOiBzdHJpbmcpID0+IHZvaWQ7XG50eXBlIEV4cGlyZWRDYWxsYmFja0ZuID0gKCkgPT4gdm9pZDtcbnR5cGUgRXJyb3JDYWxsYmFja0ZuID0gKCkgPT4gdm9pZDtcblxuQERpcmVjdGl2ZSh7XG4gIGhvc3Q6IHtcbiAgICAnW2lkXSc6ICdpZCcsXG4gICAgJ1tjbGFzcy5nLXJlY2FwdGNoYV0nOiAndHJ1ZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNjUmVDYXB0Y2hhQmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnc2MtcmUtY2FwdGNoYS0nKTtcbiAgcHJvdGVjdGVkIHdpZGdldElkID0gJyc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NSZUNhcHRjaGFTZXJ2aWNlID0gaW5qZWN0KFNjUmVDYXB0Y2hhU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2MlNpdGVLZXkgPSBpbmplY3Q8c3RyaW5nPihTQ19SRV9DQVBUQ0hBX1YyX1NJVEVfS0VZLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSBzaXRlS2V5SW5wdXQgPSBpbnB1dDxzdHJpbmc+KCcnLCB7XG4gICAgYWxpYXM6ICdzaXRlS2V5JyxcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzaXRlS2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLnNpdGVLZXlJbnB1dCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaXRlS2V5SW5wdXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52MlNpdGVLZXkgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhYmluZGV4ID0gaW5wdXQ8c3RyaW5nPignMCcpO1xuICByZWFkb25seSBjYWxsYmFjayA9IGlucHV0PENhbGxiYWNrRm4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGV4cGlyZWRDYWxsYmFjayA9IGlucHV0PEV4cGlyZWRDYWxsYmFja0ZuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICBhbGlhczogJ2V4cGlyZWQtY2FsbGJhY2snLFxuICB9KTtcbiAgcmVhZG9ubHkgZXJyb3JDYWxsYmFjayA9IGlucHV0PEVycm9yQ2FsbGJhY2tGbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdlcnJvci1jYWxsYmFjaycsXG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWUgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuc2NSZUNhcHRjaGFTZXJ2aWNlLmxvYWRTY3JpcHQoKTtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHJlbmRlcigpIHt9XG5cbiAgcHJvdGVjdGVkIHJlbmRlcldpZGdldChcbiAgICB0aGVtZU9yQmFkZ2U6ICd0aGVtZScgfCAnYmFkZ2UnLFxuICAgIHRoZW1lT3JCYWRnZVZhbHVlOiAnZGFyaycgfCAnbGlnaHQnIHwgJ2JvdHRvbXJpZ2h0JyB8ICdib3R0b21sZWZ0JyB8ICdpbmxpbmUnLFxuICAgIHNpemVPckludmlzaWJsZTogJ25vcm1hbCcgfCAnY29tcGFjdCcgfCAnaW52aXNpYmxlJyxcbiAgKSB7XG4gICAgdGhpcy53aWRnZXRJZCA9IGdyZWNhcHRjaGEucmVuZGVyKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHtcbiAgICAgICAgc2l0ZWtleTogdGhpcy5zaXRlS2V5KCksXG4gICAgICAgIFt0aGVtZU9yQmFkZ2VdOiB0aGVtZU9yQmFkZ2VWYWx1ZSxcbiAgICAgICAgc2l6ZTogc2l6ZU9ySW52aXNpYmxlLFxuICAgICAgICB0YWJpbmRleDogdGhpcy50YWJpbmRleCgpLFxuICAgICAgICBjYWxsYmFjazogdGhpcy5jYWxsYmFjaygpID8gdGhpcy5jYWxsYmFjaygpIDogdGhpcy5kZWZhdWx0Q2FsbGJhY2suYmluZCh0aGlzKSxcbiAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiB0aGlzLmV4cGlyZWRDYWxsYmFjaygpXG4gICAgICAgICAgPyB0aGlzLmV4cGlyZWRDYWxsYmFjaygpXG4gICAgICAgICAgOiB0aGlzLmRlZmF1bHRFeHBpcmVkQ2FsbGJhY2suYmluZCh0aGlzKSxcbiAgICAgICAgJ2Vycm9yLWNhbGxiYWNrJzogdGhpcy5lcnJvckNhbGxiYWNrKClcbiAgICAgICAgICA/IHRoaXMuZXJyb3JDYWxsYmFjaygpXG4gICAgICAgICAgOiB0aGlzLmRlZmF1bHRFcnJvckNhbGxiYWNrLmJpbmQodGhpcyksXG4gICAgICB9LFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q2FsbGJhY2sodG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuc2V0VmFsdWUodG9rZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0RXhwaXJlZENhbGxiYWNrKCkge1xuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRFcnJvckNhbGxiYWNrKCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yJyk7XG4gICAgdGhpcy5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIGdldFJlc3BvbnNlKCkge1xuICAgIGdyZWNhcHRjaGEuZ2V0UmVzcG9uc2UodGhpcy53aWRnZXRJZCk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICBncmVjYXB0Y2hhLnJlc2V0KHRoaXMud2lkZ2V0SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZShuZXdWYWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMudmFsdWUuc2V0KG5ld1ZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuc2V0KG9iaik7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, effect, forwardRef, inject, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ScReCaptchaBase } from './re-captcha-base';\nimport * as i0 from \"@angular/core\";\nexport class ScCheckboxReCaptcha extends ScReCaptchaBase {\n host = inject(ElementRef);\n theme = input('light');\n size = input('normal');\n render() {\n this.renderWidget('theme', this.theme(), this.size());\n }\n isFirstRun = true;\n firstTheme;\n constructor() {\n super();\n effect(() => {\n this.updateRecaptchaTheme(this.theme());\n });\n }\n reset() {\n super.reset();\n if (this.firstTheme !== this.theme()) {\n this.updateRecaptchaTheme(this.theme());\n }\n }\n updateRecaptchaTheme(newTheme) {\n if (this.isFirstRun) {\n this.firstTheme = newTheme;\n this.isFirstRun = false;\n return;\n }\n // Find the reCAPTCHA iframe\n const recaptchaFrame = this.host.nativeElement.querySelector('iframe[src*=\"recaptcha\"]');\n if (recaptchaFrame) {\n // Get the iframe URL\n let frameSource = recaptchaFrame.src;\n // Replace the theme parameter in the URL\n if (frameSource.includes('theme=')) {\n frameSource = frameSource.replace(/theme=(light|dark)/, `theme=${newTheme}`);\n }\n else {\n frameSource += `&theme=${newTheme}`;\n }\n // Update the iframe source\n recaptchaFrame.src = frameSource;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScCheckboxReCaptcha, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", type: ScCheckboxReCaptcha, isStandalone: true, selector: \"div[sc-checkbox-re-captcha]\", inputs: { theme: { classPropertyName: \"theme\", publicName: \"theme\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCheckboxReCaptcha),\n multi: true,\n },\n ], exportAs: [\"scCheckboxReCaptcha\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: ScCheckboxReCaptcha, decorators: [{\n type: Directive,\n args: [{\n selector: 'div[sc-checkbox-re-captcha]',\n exportAs: 'scCheckboxReCaptcha',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ScCheckboxReCaptcha),\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcmUtY2FwdGNoYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcmUtY2FwdGNoYS9zcmMvbGliL3JlLWNhcHRjaGEvY2hlY2tib3gtcmUtY2FwdGNoYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQWFwRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUNyQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWxDLEtBQUssR0FBRyxLQUFLLENBQW1CLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLElBQUksR0FBRyxLQUFLLENBQXVCLFFBQVEsQ0FBQyxDQUFDO0lBRTdDLE1BQU07UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFbEIsVUFBVSxDQUFvQjtJQUV0QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQTBCO1FBQ3JELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDMUQsMEJBQTBCLENBQ04sQ0FBQztRQUV2QixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLHFCQUFxQjtZQUNyQixJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDO1lBRXJDLHlDQUF5QztZQUN6QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsV0FBVyxHQUFHLFdBQVcsQ0