From 369fa96e374656fb0b32d5a07300f0f78d62f23d Mon Sep 17 00:00:00 2001 From: Shubham Bansal Date: Mon, 6 Nov 2023 12:11:14 +0530 Subject: [PATCH 001/123] Issue #ED-3088: file upload packe upgrade --- src/app/client/package.json | 2 +- src/app/client/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/client/package.json b/src/app/client/package.json index aaa26c8acdc..163c0eb4048 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -70,7 +70,7 @@ "@project-sunbird/sb-themes": "0.0.88", "@project-sunbird/sunbird-collection-editor": "5.4.8", "@project-sunbird/sunbird-epub-player-v9": "5.6.0", - "@project-sunbird/sunbird-file-upload-library": "1.0.2", + "@project-sunbird/sunbird-file-upload-library": "1.0.4", "@project-sunbird/sunbird-pdf-player-v9": "5.5.0", "@project-sunbird/sunbird-quml-player": "5.7.0", "@project-sunbird/sunbird-quml-player-v9": "5.1.5", diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index 0cf2fef8100..6c9e4c809be 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -2405,10 +2405,10 @@ "@project-sunbird/sunbird-player-sdk-v9" "5.1.0" tslib "^2.0.0" -"@project-sunbird/sunbird-file-upload-library@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@project-sunbird/sunbird-file-upload-library/-/sunbird-file-upload-library-1.0.2.tgz#331465c478d4df45cdbaa813c597296609892517" - integrity sha512-oqbyAECe9ejyGac4vQK9lkkXNOdP3fnK+QXMeoZOZn5rAnStcWgAxyK+tdgoC8FDBFC5JOyWGjM9UfntUMsRaA== +"@project-sunbird/sunbird-file-upload-library@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@project-sunbird/sunbird-file-upload-library/-/sunbird-file-upload-library-1.0.4.tgz#28d682b3a16973fa413f85c65d348db5e6d4ff7a" + integrity sha512-IlM+31b/xHFl3d1SZnFSlyDWTTvlR3O4LLkoP8Nh5vC1xyf2wV81hYp/JpWNpeOeZ7cD/eTJje4LNUvKXVblgA== dependencies: axios "^1.4.0" From 6b4ba5b9a5ee596b7e1b8f78c8b095595d31d74e Mon Sep 17 00:00:00 2001 From: 5Amogh Date: Wed, 31 Jan 2024 12:31:16 +0530 Subject: [PATCH 002/123] Issue #ED-3381 fix: Package version fix for multiparty form for evidence upload issue --- src/app/package.json | 2 +- src/app/yarn.lock | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/app/package.json b/src/app/package.json index 0b9d4256972..51e769548c8 100644 --- a/src/app/package.json +++ b/src/app/package.json @@ -101,7 +101,7 @@ "mathjax-full": "3.0.0", "mobile-detect": "1.4.2", "morgan": "1.10.0", - "multiparty": "4.2.1", + "multiparty": "4.2.3", "node-rsa": "1.1.1", "path-to-regexp": "6.1.0", "properties": "1.2.1", diff --git a/src/app/yarn.lock b/src/app/yarn.lock index 870aca1e1e9..20950c604a0 100644 --- a/src/app/yarn.lock +++ b/src/app/yarn.lock @@ -6823,17 +6823,7 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multiparty@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.1.tgz#d9b6c46d8b8deab1ee70c734b0af771dd46e0b13" - integrity sha512-AvESCnNoQlZiOfP9R4mxN8M9csy2L16EIbWIkt3l4FuGti9kXBS8QVzlfyg4HEnarJhrzZilgNFlZtqmoiAIIA== - dependencies: - fd-slicer "1.1.0" - http-errors "~1.7.0" - safe-buffer "5.1.2" - uid-safe "2.1.5" - -multiparty@^4.2.1: +multiparty@4.2.3, multiparty@^4.2.1: version "4.2.3" resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-4.2.3.tgz#6b14981badb5ad3f0929622868751810368d4633" integrity sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ== From 6d41f79eb36e8e6e8f9a32b81aac132ff02afec8 Mon Sep 17 00:00:00 2001 From: 5Amogh Date: Thu, 1 Feb 2024 16:33:43 +0530 Subject: [PATCH 003/123] OCI file upload isssue fixed --- src/app/routes/mlRoutes.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/routes/mlRoutes.js b/src/app/routes/mlRoutes.js index c42cb893ef8..a024db577df 100644 --- a/src/app/routes/mlRoutes.js +++ b/src/app/routes/mlRoutes.js @@ -60,7 +60,8 @@ module.exports = function (app) { body: fileStream }; request(options, function (error, response) { - if (response.statusCode === 201) { + const successStatusOptions = [200,201,202,'200','201','202']; + if (successStatusOptions.includes(response.statusCode)) { res.send({ responseCode: "OK", status: 200 }) } else { res.send({ status: response.statusCode }) From 71fe1c718da8646bcf50ace56f5d351f67defb1a Mon Sep 17 00:00:00 2001 From: 5Amogh Date: Fri, 2 Feb 2024 11:16:46 +0530 Subject: [PATCH 004/123] Java Error in sonarcube --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f77d00b3d9..50dff349dc3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -42,15 +42,15 @@ jobs: name: Install Sonar Scanner command: | cd /tmp - wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip + wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip unzip || sudo apt install unzip -y - unzip sonar-scanner-cli-4.6.2.2472-linux.zip + unzip sonar-scanner-cli-5.0.1.3006-linux.zip cd - - run: name: run sonar scanner - command: 'cd ~/portal && /tmp/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner' + command: 'cd ~/portal && /tmp/sonar-scanner-5.0.1.3006-linux/bin/sonar-scanner' workflows: version: 2 build_and_test: jobs: - - test-cases + - test-cases \ No newline at end of file From 9776f9ab42e94884e32d5aaa7c863a78e273c217 Mon Sep 17 00:00:00 2001 From: Abhishek Nagesh Date: Thu, 15 Feb 2024 18:38:22 +0530 Subject: [PATCH 005/123] Issue #ED-0000: fixing deploy failing due to lower node engines --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 25ae115567e..8f30932b3bc 100644 --- a/build.sh +++ b/build.sh @@ -72,7 +72,7 @@ build_server(){ cd app_dist nvm use $NODE_VERSION echo "starting server yarn install" - yarn install --no-progress --production=true + yarn install --ignore-engines --no-progress --production=true echo "completed server yarn install" node helpers/resourceBundles/build.js -task="phraseAppPull" } From a1eaffd0919c95fd01f7cf7b0f696cac803f5d30 Mon Sep 17 00:00:00 2001 From: Abhishek P N <116337484+abhishekpnt@users.noreply.github.com> Date: Fri, 8 Mar 2024 16:25:05 +0530 Subject: [PATCH 006/123] Issue #ED-3575: fix for apis failing in oci desktop --- src/desktop/modules/helper/proxyHandler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/desktop/modules/helper/proxyHandler.ts b/src/desktop/modules/helper/proxyHandler.ts index 1f04b9e85ca..a074fc0d2ea 100644 --- a/src/desktop/modules/helper/proxyHandler.ts +++ b/src/desktop/modules/helper/proxyHandler.ts @@ -14,7 +14,7 @@ const decorateRequest = async (request, options) => { const { headers } = request; const userSDK: any = containerAPI.getUserSdkInstance(); const channel = _.get(headers, 'X-Channel-Id') || process.env.CHANNEL; - + headers['host']=`${process.env.APP_BASE_URL}`.split('//')[1]; if (channel && !_.get(headers, 'X-Channel-Id')) { headers['X-Channel-Id'] = channel; } @@ -116,7 +116,7 @@ export const customProxy = (host, options = {}) => { headers: headers, responseType: 'json' } - + config.headers['host']=`${process.env.APP_BASE_URL}`.split('//')[1] config = addAgent(proxyURL, config); defer(() => { switch (method) { From 700d94677821f16463f9f401e3f18f01741b5b9d Mon Sep 17 00:00:00 2001 From: Abhishek P N <116337484+abhishekpnt@users.noreply.github.com> Date: Fri, 8 Mar 2024 16:26:45 +0530 Subject: [PATCH 007/123] Issue #ED-3575: fix for apis failing in oci desktop --- src/desktop/modules/controllers/batchDetails.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/desktop/modules/controllers/batchDetails.ts b/src/desktop/modules/controllers/batchDetails.ts index 4b9f5efda25..7b7d7be84d3 100644 --- a/src/desktop/modules/controllers/batchDetails.ts +++ b/src/desktop/modules/controllers/batchDetails.ts @@ -50,8 +50,8 @@ export default class BatchDetails { if (_.get(courses, 'length')) { const currentCourse = _.find(courses, { userId, batchId }); - if (currentCourse.batch) { - res.status(200).send(Response.success(API_ID, { response: currentCourse.batch }, req)); + if (currentCourse['batch']) { + res.status(200).send(Response.success(API_ID, { response: currentCourse['batch'] }, req)); } } res.status(500).send(Response.error(API_ID, 500)); From acbd8f267622bc310575a9f268b1d8d9398de0c0 Mon Sep 17 00:00:00 2001 From: princegupta1131 <114015020+princegupta1131@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:44:23 +0530 Subject: [PATCH 008/123] ED-3731 feat:upgraded Angular v15 to v16 --- src/app/client/package.json | 34 +- .../modules/core/guard/auth-gard.service.ts | 4 +- .../modules/observation/guards/ml/ml.guard.ts | 4 +- .../landingpage-guard/landingpage.guard.ts | 4 +- .../pendingchanges.guard.ts | 4 +- .../guard/can-deactivate.guard.ts | 4 +- src/app/client/yarn.lock | 2527 ++++++++++------- 7 files changed, 1500 insertions(+), 1081 deletions(-) diff --git a/src/app/client/package.json b/src/app/client/package.json index 647e70212a1..09d6968c0c1 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -39,28 +39,28 @@ }, "private": true, "dependencies": { - "@angular-devkit/build-angular": "15.2.10", - "@angular/animations": "15.2.10", + "@angular-devkit/build-angular": "16.2.12", + "@angular/animations": "16.2.12", "@angular/cdk": "15.2.9", - "@angular/cli": "15.2.10", - "@angular/common": "15.2.10", - "@angular/compiler": "15.2.10", - "@angular/compiler-cli": "15.2.10", - "@angular/core": "15.2.10", - "@angular/forms": "15.2.10", - "@angular/localize": "15.2.10", + "@angular/cli": "16.2.12", + "@angular/common": "16.2.12", + "@angular/compiler": "16.2.12", + "@angular/compiler-cli": "16.2.12", + "@angular/core": "16.2.12", + "@angular/forms": "16.2.12", + "@angular/localize": "16.2.12", "@angular/material": "15.2.9", "@angular/material-moment-adapter": "15.2.9", - "@angular/platform-browser": "15.2.10", - "@angular/platform-browser-dynamic": "15.2.10", - "@angular/router": "15.2.10", + "@angular/platform-browser": "16.2.12", + "@angular/platform-browser-dynamic": "16.2.12", + "@angular/router": "16.2.12", "@derekbaker/ngx-ace-editor-wrapper": "12.2.16", "@ngx-translate/core": "14.0.0", "@ngx-translate/http-loader": "7.0.0", "@project-sunbird/chatbot-client": "8.0.0", "@project-sunbird/ckeditor-build-classic": "4.1.3", "@project-sunbird/client-services": "7.0.2", - "@project-sunbird/common-consumption": "8.0.1", + "@project-sunbird/common-consumption": "8.0.2", "@project-sunbird/common-form-elements-full": "8.0.0", "@project-sunbird/discussions-ui": "8.0.0", "@project-sunbird/sb-content-section": "8.0.1", @@ -78,8 +78,8 @@ "@project-sunbird/sunbird-resource-library": "7.0.3", "@project-sunbird/sunbird-video-player-v9": "5.5.1", "@project-sunbird/telemetry-sdk": "0.0.29", - "@project-sunbird/web-extensions": "8.0.0", - "@project-sunbird/sb-svg2pdf":"8.0.1", + "@project-sunbird/web-extensions": "8.0.1", + "@project-sunbird/sb-svg2pdf": "8.0.1", "@samagra-x/uci-console": "6.0.3", "@shikshalokam/sl-questionnaire": "2.3.1", "@shikshalokam/sl-reports-library": "3.0.1", @@ -142,10 +142,10 @@ "video.js": "7.18.1", "videojs-contrib-quality-levels": "2.1.0", "videojs-http-source-selector": "1.1.6", - "zone.js": "0.11.4" + "zone.js": "0.13.3" }, "devDependencies": { - "@angular/language-service": "15.2.10", + "@angular/language-service": "16.2.12", "@types/jest": "29.5.0", "@types/jquery": "3.5.29", "@types/jquery.fancytree": "2.7.34", diff --git a/src/app/client/src/app/modules/core/guard/auth-gard.service.ts b/src/app/client/src/app/modules/core/guard/auth-gard.service.ts index 3f6dd97a50f..daa15c776b6 100644 --- a/src/app/client/src/app/modules/core/guard/auth-gard.service.ts +++ b/src/app/client/src/app/modules/core/guard/auth-gard.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad } from '@angular/router'; +import { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { PermissionService } from './../services'; import { ConfigService, ResourceService, ToasterService } from '@sunbird/shared'; import { Observable } from 'rxjs'; @@ -11,7 +11,7 @@ import * as _ from 'lodash-es'; * based on roles and permission of logged in user. */ @Injectable() -export class AuthGuard implements CanActivate, CanLoad { +export class AuthGuard { /** * reference of permissionService service. */ diff --git a/src/app/client/src/app/modules/observation/guards/ml/ml.guard.ts b/src/app/client/src/app/modules/observation/guards/ml/ml.guard.ts index 6f55dc0ca77..eff7b53909e 100644 --- a/src/app/client/src/app/modules/observation/guards/ml/ml.guard.ts +++ b/src/app/client/src/app/modules/observation/guards/ml/ml.guard.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router'; import { Observable } from 'rxjs'; import { UserService } from '@sunbird/core'; import { IUserData, ToasterService, ResourceService } from '@sunbird/shared'; @@ -9,7 +9,7 @@ import * as _ from 'lodash-es'; @Injectable({ providedIn: 'root' }) -export class MlGuard implements CanActivate { +export class MlGuard { constructor(public userService: UserService, public resourceService: ResourceService, public toasterService: ToasterService, public router: Router) { } canActivate( diff --git a/src/app/client/src/app/modules/public/services/landingpage-guard/landingpage.guard.ts b/src/app/client/src/app/modules/public/services/landingpage-guard/landingpage.guard.ts index 9efb38cc446..642cffd205d 100644 --- a/src/app/client/src/app/modules/public/services/landingpage-guard/landingpage.guard.ts +++ b/src/app/client/src/app/modules/public/services/landingpage-guard/landingpage.guard.ts @@ -1,9 +1,9 @@ import { Injectable } from '@angular/core'; -import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; import { Observable } from 'rxjs'; import { environment } from '@sunbird/environment'; @Injectable() -export class LandingpageGuard implements CanActivate { +export class LandingpageGuard { constructor(private router: Router) { } canActivate( next: ActivatedRouteSnapshot, diff --git a/src/app/client/src/app/modules/public/services/pending-changes-guard/pendingchanges.guard.ts b/src/app/client/src/app/modules/public/services/pending-changes-guard/pendingchanges.guard.ts index 5f24ebcba58..bbb59fe83da 100644 --- a/src/app/client/src/app/modules/public/services/pending-changes-guard/pendingchanges.guard.ts +++ b/src/app/client/src/app/modules/public/services/pending-changes-guard/pendingchanges.guard.ts @@ -1,4 +1,4 @@ -import { CanDeactivate } from '@angular/router'; + import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { ResourceService } from '@sunbird/shared'; @@ -8,7 +8,7 @@ export interface ComponentCanDeactivate { } @Injectable() -export class PendingchangesGuard implements CanDeactivate { +export class PendingchangesGuard { constructor(public resourceService: ResourceService) { } canDeactivate(component: ComponentCanDeactivate): boolean | Observable { return component.canDeactivate() ? diff --git a/src/app/client/src/app/modules/questionnaire/guard/can-deactivate.guard.ts b/src/app/client/src/app/modules/questionnaire/guard/can-deactivate.guard.ts index aceb3de0c4f..7866fe91a6d 100644 --- a/src/app/client/src/app/modules/questionnaire/guard/can-deactivate.guard.ts +++ b/src/app/client/src/app/modules/questionnaire/guard/can-deactivate.guard.ts @@ -1,10 +1,10 @@ import { HostListener, Injectable, Directive } from '@angular/core'; -import { CanDeactivate } from '@angular/router'; + import { ResourceService } from '@sunbird/shared'; @Injectable() export class CanDeactivateGuard - implements CanDeactivate { + { constructor(public resourceService: ResourceService) {} canDeactivate(component: ComponentDeactivate): boolean { if (!component.canDeactivate()) { diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index 7a7a5b44fcb..bc1492d3f38 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@ampproject/remapping@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@ampproject/remapping@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": +"@ampproject/remapping@^2.2.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== @@ -18,47 +18,48 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@angular-devkit/architect@0.1502.10": - version "0.1502.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1502.10.tgz#4c25ba881635937d922b18e7959b38a476badc82" - integrity sha512-S8lN73WYCfpEpw1Q41ZcUinw7JfDeSM8LyGs797OVshnW75QcOkOecWj/3CKR23G44IgFrHN6sqtzWxKmMxLig== - dependencies: - "@angular-devkit/core" "15.2.10" - rxjs "6.6.7" - -"@angular-devkit/build-angular@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-15.2.10.tgz#af4080a4811461bd1cab4f3b1b10edef53f31da8" - integrity sha512-3pCPVEJilVwHIJC6Su1/PIEqvFfU1Lxew9yItxX4s6dud8HY+fuKrsDnao4NNMFNqCLqL4el5QbSBKnnpWH1sg== - dependencies: - "@ampproject/remapping" "2.2.0" - "@angular-devkit/architect" "0.1502.10" - "@angular-devkit/build-webpack" "0.1502.10" - "@angular-devkit/core" "15.2.10" - "@babel/core" "7.20.12" - "@babel/generator" "7.20.14" - "@babel/helper-annotate-as-pure" "7.18.6" - "@babel/helper-split-export-declaration" "7.18.6" +"@angular-devkit/architect@0.1602.12": + version "0.1602.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1602.12.tgz#a430970acd4ad9f7cc23d41facc2c04ea5770f65" + integrity sha512-19Fwwfx+KvJ01SyI6cstRgqT9+cwer8Ro1T27t1JqlGyOX8tY3pV78ulwxy2+wCzPjR18V6W7cb7Cv6fyK4xog== + dependencies: + "@angular-devkit/core" "16.2.12" + rxjs "7.8.1" + +"@angular-devkit/build-angular@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-16.2.12.tgz#f13031e1a29baa917ce5a01c3b7e50a9be7384d5" + integrity sha512-VVGKZ0N3gyR0DP7VrcZl4io3ruWYT94mrlyJsJMLlrYy/EX8JCvqrJC9c+dscrtKjhZzjwdyhszkJQY4JfwACA== + dependencies: + "@ampproject/remapping" "2.2.1" + "@angular-devkit/architect" "0.1602.12" + "@angular-devkit/build-webpack" "0.1602.12" + "@angular-devkit/core" "16.2.12" + "@babel/core" "7.22.9" + "@babel/generator" "7.22.9" + "@babel/helper-annotate-as-pure" "7.22.5" + "@babel/helper-split-export-declaration" "7.22.6" "@babel/plugin-proposal-async-generator-functions" "7.20.7" - "@babel/plugin-transform-async-to-generator" "7.20.7" - "@babel/plugin-transform-runtime" "7.19.6" - "@babel/preset-env" "7.20.2" - "@babel/runtime" "7.20.13" - "@babel/template" "7.20.7" + "@babel/plugin-transform-async-to-generator" "7.22.5" + "@babel/plugin-transform-runtime" "7.22.9" + "@babel/preset-env" "7.22.9" + "@babel/runtime" "7.22.6" + "@babel/template" "7.22.5" "@discoveryjs/json-ext" "0.5.7" - "@ngtools/webpack" "15.2.10" + "@ngtools/webpack" "16.2.12" + "@vitejs/plugin-basic-ssl" "1.0.1" ansi-colors "4.1.3" - autoprefixer "10.4.13" - babel-loader "9.1.2" + autoprefixer "10.4.14" + babel-loader "9.1.3" babel-plugin-istanbul "6.1.1" - browserslist "4.21.5" - cacache "17.0.4" + browserslist "^4.21.5" chokidar "3.5.3" copy-webpack-plugin "11.0.0" - critters "0.0.16" - css-loader "6.7.3" - esbuild-wasm "0.17.8" - glob "8.1.0" + critters "0.0.20" + css-loader "6.8.1" + esbuild-wasm "0.18.17" + fast-glob "3.3.1" + guess-parser "0.4.22" https-proxy-agent "5.0.1" inquirer "8.2.4" jsonc-parser "3.2.0" @@ -67,62 +68,66 @@ less-loader "11.1.0" license-webpack-plugin "4.0.2" loader-utils "3.2.1" - magic-string "0.29.0" - mini-css-extract-plugin "2.7.2" - open "8.4.1" + magic-string "0.30.1" + mini-css-extract-plugin "2.7.6" + mrmime "1.0.1" + open "8.4.2" ora "5.4.1" parse5-html-rewriting-stream "7.0.0" - piscina "3.2.0" + picomatch "2.3.1" + piscina "4.0.0" postcss "8.4.31" - postcss-loader "7.0.2" + postcss-loader "7.3.3" resolve-url-loader "5.0.0" - rxjs "6.6.7" - sass "1.58.1" - sass-loader "13.2.0" - semver "7.5.3" + rxjs "7.8.1" + sass "1.64.1" + sass-loader "13.3.2" + semver "7.5.4" source-map-loader "4.0.1" source-map-support "0.5.21" - terser "5.16.3" + terser "5.19.2" text-table "0.2.0" tree-kill "1.2.2" - tslib "2.5.0" - webpack "5.76.1" - webpack-dev-middleware "6.0.1" - webpack-dev-server "4.11.1" - webpack-merge "5.8.0" + tslib "2.6.1" + vite "4.5.2" + webpack "5.88.2" + webpack-dev-middleware "6.1.1" + webpack-dev-server "4.15.1" + webpack-merge "5.9.0" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.17.8" + esbuild "0.18.17" -"@angular-devkit/build-webpack@0.1502.10": - version "0.1502.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1502.10.tgz#665dfa76a0c6548821fa372356e2c9b55e8eebac" - integrity sha512-55b9WZIGU4DNgiIV2lkkN6iQxJrgWY5CDaNu0kJC/qazotJgBbcN/8jgBx2DD8HNE1V3iXxWk66pt1h946Po+Q== +"@angular-devkit/build-webpack@0.1602.12": + version "0.1602.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1602.12.tgz#a1bc95c3476da281addab25d853c55b9a96aefc7" + integrity sha512-1lmR4jCkxPJuAFXReesEY3CB+/5jSebGE5ry6qJJvNm6kuSc9bzfTytrcwosVY+Q7kAA2ij7kAYw0loGbTjLWA== dependencies: - "@angular-devkit/architect" "0.1502.10" - rxjs "6.6.7" + "@angular-devkit/architect" "0.1602.12" + rxjs "7.8.1" -"@angular-devkit/core@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-15.2.10.tgz#e2c1fadaaa87ae62b3f3c752fa6fafc31197151b" - integrity sha512-bFPm7wjvfBds9km2rCJxUhzkqe4h3h/199yJtzC1bNvwRr2LMHvtyoQAzftda+gs7Ulqac5wzUEZX/cVV3WrsA== +"@angular-devkit/core@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-16.2.12.tgz#5d40e8414d5da14a4281af519d32e1241b002c89" + integrity sha512-o6ziQs+EcEonFezrsA46jbZqkQrs4ckS1bAQj93g5ZjGtieUz8l/U3lclvKpL/iEzWkGVViSYuP2KyW2oqTDiQ== dependencies: ajv "8.12.0" ajv-formats "2.1.1" jsonc-parser "3.2.0" - rxjs "6.6.7" + picomatch "2.3.1" + rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/schematics@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-15.2.10.tgz#72ea6ac84082995221781bcb72df3143b4ffddc3" - integrity sha512-EeoDs4oKFpLZNa21G/8dqBdclEc4U2piI9EeXCVTaN6z5DYXIZ0G1WtCXU8nhD+GckS47rmfZ4/3lMaXAvED+g== +"@angular-devkit/schematics@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-16.2.12.tgz#9dbf287b2343059792c97bbfc60a3b52253c66f1" + integrity sha512-lf/Nz2o875pllxGNUcI2by4rctfRsOZOxvaLq2UaH6XG6Re9tqeNfn40a8qXrr9/IYntXnlvEid/pd9e8gFBIw== dependencies: - "@angular-devkit/core" "15.2.10" + "@angular-devkit/core" "16.2.12" jsonc-parser "3.2.0" - magic-string "0.29.0" + magic-string "0.30.1" ora "5.4.1" - rxjs "6.6.7" + rxjs "7.8.1" "@angular-slider/ngx-slider@^2.0.3": version "2.0.4" @@ -133,10 +138,10 @@ rxjs "^6.5.2" tslib "^1.9.0" -"@angular/animations@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-15.2.10.tgz#c9194ba9a2b9b4e466e9c76e18591cde096a28e8" - integrity sha512-yxfN8qQpMaukRU5LjFkJBmy85rqrOp86tYVCsf+hmPEFRiXBMUj6xYLeCMcpk3Mt1JtnWGBR34ivGx+7bNeAow== +"@angular/animations@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-16.2.12.tgz#27744d8176e09e70e0f6d837c3abcfcee843a936" + integrity sha512-MD0ElviEfAJY8qMOd6/jjSSvtqER2RDAi0lxe6EtUacC1DHCYkaPrKW4vLqY+tmZBg1yf+6n+uS77pXcHHcA3w== dependencies: tslib "^2.3.0" @@ -149,57 +154,55 @@ optionalDependencies: parse5 "^7.1.2" -"@angular/cli@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-15.2.10.tgz#4035a64510e11894be2ff695e48ee0ef6badb494" - integrity sha512-/TSnm/ZQML6A4lvunyN2tjTB5utuvk3d1Pnfyehp/FXtV6YfZm6+EZrOpKkKPCxTuAgW6c9KK4yQtt3RuNVpwQ== +"@angular/cli@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-16.2.12.tgz#f5ce4eea5409f708963a59a4ab787d6c08196fe3" + integrity sha512-Pcbiraoqdw4rR2Ey5Ooy0ESLS1Ffbjkb6sPfinKRkHmAvyqsmlvkfbB/qK8GrzDSFSWvAKMMXRw9l8nbjvQEXg== dependencies: - "@angular-devkit/architect" "0.1502.10" - "@angular-devkit/core" "15.2.10" - "@angular-devkit/schematics" "15.2.10" - "@schematics/angular" "15.2.10" + "@angular-devkit/architect" "0.1602.12" + "@angular-devkit/core" "16.2.12" + "@angular-devkit/schematics" "16.2.12" + "@schematics/angular" "16.2.12" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.3" - ini "3.0.1" + ini "4.1.1" inquirer "8.2.4" jsonc-parser "3.2.0" npm-package-arg "10.1.0" npm-pick-manifest "8.0.1" - open "8.4.1" + open "8.4.2" ora "5.4.1" - pacote "15.1.0" - resolve "1.22.1" - semver "7.5.3" + pacote "15.2.0" + resolve "1.22.2" + semver "7.5.4" symbol-observable "4.0.0" - yargs "17.6.2" + yargs "17.7.2" -"@angular/common@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-15.2.10.tgz#897923023c8ca4a361ce218bdee9a3f09060df75" - integrity sha512-jdBn3fctkqoNrJn9VLsUHpcCEhCxWSczdsR+BBbD6T0oLl6vMrAVNjPwfBejnlgfWN1KoRU9kgOYsMxa5apIWQ== +"@angular/common@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-16.2.12.tgz#aa1d1522701833f1998001caa1ac95c3ac11d077" + integrity sha512-B+WY/cT2VgEaz9HfJitBmgdk4I333XG/ybC98CMC4Wz8E49T8yzivmmxXB3OD6qvjcOB6ftuicl6WBqLbZNg2w== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-15.2.10.tgz#e51013aa0f3da303fc74f8e1948c550d8e74ead5" - integrity sha512-mCFIxrs60XicKfA2o42hA7LrQvhybi9BQveWuZn/2iIEOXx7R62Iemz8E21pLWftAZHGxEW3NECfBrY1d3gVmA== +"@angular/compiler-cli@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-16.2.12.tgz#e24b4bdaf23047b23d7b39e295b7d25b38c5734c" + integrity sha512-pWSrr152562ujh6lsFZR8NfNc5Ljj+zSTQO44DsuB0tZjwEpnRcjJEgzuhGXr+CoiBf+jTSPZKemtSktDk5aaA== dependencies: - "@babel/core" "7.19.3" + "@babel/core" "7.23.2" "@jridgewell/sourcemap-codec" "^1.4.14" chokidar "^3.0.0" convert-source-map "^1.5.1" - dependency-graph "^0.11.0" - magic-string "^0.27.0" reflect-metadata "^0.1.2" semver "^7.0.0" tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-15.2.10.tgz#bd78f327d12eb5978f9dd05440aa23d4b5b925a9" - integrity sha512-M0XkeU0O73UlJZwDvOyp8/apetz9UKj78eTFDseMYJDLcxe6MpkbkxqpsGZnKYDj7LIep8PmCAKEkhtenE82zw== +"@angular/compiler@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-16.2.12.tgz#d13366f190706c270b925495fbc12c29097e6b6c" + integrity sha512-6SMXUgSVekGM7R6l1Z9rCtUGtlg58GFmgbpMCsGf+VXxP468Njw8rjT2YZkf5aEPxEuRpSHhDYjqz7n14cwCXQ== dependencies: tslib "^2.3.0" @@ -208,10 +211,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/core@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-15.2.10.tgz#93c1e0d460d21711654c578d2709a402e1822023" - integrity sha512-meGGidnitQJGDxYd9/LrqYiVlId+vGaLoiLgJdKBz+o2ZO6OmXQGuNw2VBqf17/Cc0/UjzrOY7+kILNFKkk/WQ== +"@angular/core@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-16.2.12.tgz#f664204275ee5f5eb46bddc0867e7a514731605f" + integrity sha512-GLLlDeke/NjroaLYOks0uyzFVo6HyLl7VOm0K1QpLXnYvW63W9Ql/T3yguRZa7tRkOAeFZ3jw+1wnBD4O8MoUA== dependencies: tslib "^2.3.0" @@ -220,25 +223,25 @@ resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== -"@angular/forms@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-15.2.10.tgz#09308e887df2fa4d349300c9d1f05cadfb3872b3" - integrity sha512-NIntGsNcN6o8L1txsbWXOf6f3K/CUBizdKsxsYVYGJIXEW5qU6UnWmfAZffNNXsT/XvbgUCjgDwT0cAwcqZPuQ== +"@angular/forms@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-16.2.12.tgz#a533ad61a65080281e709ca68840a1da9f189afc" + integrity sha512-1Eao89hlBgLR3v8tU91vccn21BBKL06WWxl7zLpQmG6Hun+2jrThgOE4Pf3os4fkkbH4Apj0tWL2fNIWe/blbw== dependencies: tslib "^2.3.0" -"@angular/language-service@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-15.2.10.tgz#829a802aaf40bfab21d71463023a3b517500ffa9" - integrity sha512-G0g0teF4pBqLTgfyLcoBl55g91sCZvBK+V4VgTD/hXGpXyMNlNpOsgECSMliGQoJlsRLEugFsSlBNqy7CRoBtw== +"@angular/language-service@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-16.2.12.tgz#e81d9667ec96eac214b0dd54275bdfb835db3f3f" + integrity sha512-sZwB+ZEjChx9EYcqPaS4OnhC/q5RcedZjIdM9mCxuU/MtseURRYRI/8Hnm1RHo9qyc5PmsQpg7p9Vp/5hXLUjw== -"@angular/localize@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-15.2.10.tgz#9ca7ddcb6f51fc77b3000ec6a2b10b1bed005ce9" - integrity sha512-RHN+mUR4H34c/LLnNPAyQbfuZME4i9JgodK5YRRX8cSAFPafYLT0SspSuLsKtcCCEDadAZNDHzb8qv5MBtzJtg== +"@angular/localize@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-16.2.12.tgz#9e8c5c1d80574800fe159f9216654051a54abe19" + integrity sha512-sNIHDlZKENPQqx64qGF99g2sOCy9i9O4VOmjKD/FZbeE8O5qBbaQlkwOlFoQIt35/cnvtAtf7oQF6tqmiVtS2w== dependencies: - "@babel/core" "7.19.3" - glob "8.1.0" + "@babel/core" "7.23.2" + fast-glob "3.3.0" yargs "^17.2.1" "@angular/material-moment-adapter@15.2.9": @@ -302,24 +305,24 @@ "@material/typography" "15.0.0-canary.684e33d25.0" tslib "^2.3.0" -"@angular/platform-browser-dynamic@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.10.tgz#cc9ad3dcded6cb945ee8c4eef14db081dc6c3dfd" - integrity sha512-JHP6W+FX715Qv7DhqvfZLuBZXSDJrboiQsR06gUAgDSjAUyhbqmpVg/2YOtgeWpPkzNDtXdPU2PhcRdIv5J3Yg== +"@angular/platform-browser-dynamic@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.12.tgz#14488188c06013eb4153ac6e0603975f8b679f70" + integrity sha512-ya54jerNgreCVAR278wZavwjrUWImMr2F8yM5n9HBvsMBbFaAQ83anwbOEiHEF2BlR+gJiEBLfpuPRMw20pHqw== dependencies: tslib "^2.3.0" -"@angular/platform-browser@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-15.2.10.tgz#ca5a904b4da9e0cf719414db89514ee4221cb93d" - integrity sha512-9tbgVGSJqwfrOzT8aA/kWBLNhJSQ9gUg0CJxwFBSJm8VkBUJrszoBlDsnSvlxx8/W2ejNULKHFTXeUzq0O/+RQ== +"@angular/platform-browser@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-16.2.12.tgz#66b5611066cb3f8bb55f035658e978b50720f3b0" + integrity sha512-NnH7ju1iirmVEsUq432DTm0nZBGQsBrU40M3ZeVHMQ2subnGiyUs3QyzDz8+VWLL/T5xTxWLt9BkDn65vgzlIQ== dependencies: tslib "^2.3.0" -"@angular/router@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-15.2.10.tgz#a5d32d769b930e905582ed6c7aa8122e63655738" - integrity sha512-LmuqEg0iIXSw7bli6HKJ19cbxP91v37GtRwbGKswyLihqzTgvjBYpvcfMnB5FRQ5LWkTwq5JclkX03dZw290Yg== +"@angular/router@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-16.2.12.tgz#2f4cae64ddb7f998832aa340dd3f843cfb85cbc8" + integrity sha512-aU6QnYSza005V9P3W6PpkieL56O0IHps96DjqI1RS8yOJUl3THmokqYN4Fm5+HXy4f390FN9i6ftadYQDKeWmA== dependencies: tslib "^2.3.0" @@ -328,7 +331,7 @@ resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06" integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -336,52 +339,52 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" +"@babel/core@7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" + json5 "^2.2.2" + semver "^6.3.1" -"@babel/core@7.20.12": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" +"@babel/core@7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" + integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": version "7.24.0" @@ -404,16 +407,17 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.20.14": - version "7.20.14" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" - integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== +"@babel/generator@7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.19.3", "@babel/generator@^7.20.7", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": +"@babel/generator@^7.22.9", "@babel/generator@^7.23.0", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -423,14 +427,7 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": +"@babel/helper-annotate-as-pure@7.22.5", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== @@ -444,7 +441,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.19.3", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -455,7 +452,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": +"@babel/helper-create-class-features-plugin@^7.22.15": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz#fc7554141bdbfa2d17f7b4b80153b9b090e5d158" integrity sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g== @@ -479,17 +476,38 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-define-polyfill-provider@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz#fadc63f0c2ff3c8d02ed905dcea747c5b0fb74fd" + integrity sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA== dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" "@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" @@ -518,14 +536,14 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15": +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.23.3": +"@babel/helper-module-transforms@^7.22.9", "@babel/helper-module-transforms@^7.23.0", "@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== @@ -543,12 +561,12 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== -"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20": +"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== @@ -573,21 +591,14 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.22.6": +"@babel/helper-split-export-declaration@7.22.6", "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== @@ -604,7 +615,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.23.5": +"@babel/helper-validator-option@^7.22.5", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== @@ -618,7 +629,7 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.19.0", "@babel/helpers@^7.20.7", "@babel/helpers@^7.24.0": +"@babel/helpers@^7.22.6", "@babel/helpers@^7.23.2", "@babel/helpers@^7.24.0": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== @@ -636,19 +647,19 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.19.3", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== @@ -657,7 +668,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-proposal-async-generator-functions@7.20.7", "@babel/plugin-proposal-async-generator-functions@^7.20.1": +"@babel/plugin-proposal-async-generator-functions@7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== @@ -667,118 +678,12 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.21.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" - integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -828,14 +733,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.20.0": +"@babel/plugin-syntax-import-assertions@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -919,23 +831,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-to-generator@7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== +"@babel/plugin-transform-async-generator-functions@^7.22.7": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-async-to-generator@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + +"@babel/plugin-transform-async-to-generator@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== @@ -944,21 +874,38 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": +"@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.20.2": +"@babel/plugin-transform-block-scoping@^7.22.5": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.20.2": +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.6": version "7.23.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== @@ -972,7 +919,7 @@ "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": +"@babel/plugin-transform-computed-properties@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== @@ -980,14 +927,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.20.2": +"@babel/plugin-transform-destructuring@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== @@ -995,14 +942,22 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.18.9": +"@babel/plugin-transform-duplicate-keys@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== @@ -1010,7 +965,15 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-for-of@^7.18.8": +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.22.5": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== @@ -1018,7 +981,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-function-name@^7.18.9": +"@babel/plugin-transform-function-name@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== @@ -1027,21 +990,37 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-literals@^7.18.9": +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.18.6": +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.19.6": +"@babel/plugin-transform-modules-amd@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== @@ -1049,7 +1028,7 @@ "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.19.6": +"@babel/plugin-transform-modules-commonjs@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== @@ -1058,7 +1037,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": +"@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== @@ -1068,7 +1047,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.18.6": +"@babel/plugin-transform-modules-umd@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== @@ -1076,7 +1055,7 @@ "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== @@ -1084,14 +1063,41 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": +"@babel/plugin-transform-new-target@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz#7b836ad0088fdded2420ce96d4e1d3ed78b71df1" + integrity sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + +"@babel/plugin-transform-object-super@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== @@ -1099,7 +1105,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-chaining@^7.23.3": +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.6", "@babel/plugin-transform-optional-chaining@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== @@ -1108,21 +1122,39 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": +"@babel/plugin-transform-parameters@^7.22.5", "@babel/plugin-transform-parameters@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.18.6": +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.18.6": +"@babel/plugin-transform-regenerator@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== @@ -1130,33 +1162,33 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.18.6": +"@babel/plugin-transform-reserved-words@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" - integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== +"@babel/plugin-transform-runtime@7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" + integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.4" + babel-plugin-polyfill-corejs3 "^0.8.2" + babel-plugin-polyfill-regenerator "^0.5.1" + semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.18.6": +"@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== @@ -1164,35 +1196,43 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": +"@babel/plugin-transform-sticky-regex@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": +"@babel/plugin-transform-template-literals@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": +"@babel/plugin-transform-typeof-symbol@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": +"@babel/plugin-transform-unicode-escapes@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== @@ -1200,38 +1240,34 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" + integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1241,45 +1277,62 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" + "@babel/types" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.4" + babel-plugin-polyfill-corejs3 "^0.8.2" + babel-plugin-polyfill-regenerator "^0.5.1" + core-js-compat "^3.31.0" + semver "^6.3.1" "@babel/preset-modules@^0.1.5": version "0.1.6" @@ -1297,10 +1350,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.20.13": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== +"@babel/runtime@7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" + integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== dependencies: regenerator-runtime "^0.13.11" @@ -1311,16 +1364,16 @@ dependencies: regenerator-runtime "^0.14.0" -"@babel/template@7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== +"@babel/template@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": +"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.24.0", "@babel/template@^7.3.3": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== @@ -1329,7 +1382,7 @@ "@babel/parser" "^7.24.0" "@babel/types" "^7.24.0" -"@babel/traverse@^7.19.3", "@babel/traverse@^7.20.12", "@babel/traverse@^7.24.0": +"@babel/traverse@^7.22.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.24.0": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== @@ -1345,7 +1398,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.3", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== @@ -1630,220 +1683,330 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz#eafa8775019b3650a77e8310ba4dbd17ca7af6d5" integrity sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA== -"@esbuild/android-arm64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz#b3d5b65a3b2e073a6c7ee36b1f3c30c8f000315b" - integrity sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ== +"@esbuild/android-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz#9e00eb6865ed5f2dbe71a1e96f2c52254cd92903" + integrity sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== "@esbuild/android-arm64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz#68791afa389550736f682c15b963a4f37ec2f5f6" integrity sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A== -"@esbuild/android-arm@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.8.tgz#c41e496af541e175369d48164d0cf01a5f656cf6" - integrity sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w== +"@esbuild/android-arm@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.17.tgz#1aa013b65524f4e9f794946b415b32ae963a4618" + integrity sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== "@esbuild/android-arm@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.1.tgz#38c91d8ee8d5196f7fbbdf4f0061415dde3a473a" integrity sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw== -"@esbuild/android-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.8.tgz#080fa67c29be77f5a3ca5ee4cc78d5bf927e3a3b" - integrity sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg== +"@esbuild/android-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.17.tgz#c2bd0469b04ded352de011fae34a7a1d4dcecb79" + integrity sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== "@esbuild/android-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.1.tgz#93f6190ce997b313669c20edbf3645fc6c8d8f22" integrity sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA== -"@esbuild/darwin-arm64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz#053622bf9a82f43d5c075b7818e02618f7b4a397" - integrity sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg== +"@esbuild/darwin-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz#0c21a59cb5bd7a2cec66c7a42431dca42aefeddd" + integrity sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== "@esbuild/darwin-arm64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz#0d391f2e81fda833fe609182cc2fbb65e03a3c46" integrity sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA== -"@esbuild/darwin-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz#8a1aadb358d537d8efad817bb1a5bff91b84734b" - integrity sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw== +"@esbuild/darwin-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz#92f8763ff6f97dff1c28a584da7b51b585e87a7b" + integrity sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== "@esbuild/darwin-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz#92504077424584684862f483a2242cfde4055ba2" integrity sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA== -"@esbuild/freebsd-arm64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz#e6738d0081ba0721a5c6c674e84c6e7fcea61989" - integrity sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A== +"@esbuild/freebsd-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz#934f74bdf4022e143ba2f21d421b50fd0fead8f8" + integrity sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== "@esbuild/freebsd-arm64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz#a1646fa6ba87029c67ac8a102bb34384b9290774" integrity sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw== -"@esbuild/freebsd-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz#1855e562f2b730f4483f6e94086e9e2597feb4c3" - integrity sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q== +"@esbuild/freebsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz#16b6e90ba26ecc865eab71c56696258ec7f5d8bf" + integrity sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== "@esbuild/freebsd-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz#41c9243ab2b3254ea7fb512f71ffdb341562e951" integrity sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg== -"@esbuild/linux-arm64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz#481da38952721a3fdb77c17a36ceaacc4270b5c5" - integrity sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww== +"@esbuild/linux-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz#179a58e8d4c72116eb068563629349f8f4b48072" + integrity sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== "@esbuild/linux-arm64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz#f3c1e1269fbc9eedd9591a5bdd32bf707a883156" integrity sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w== -"@esbuild/linux-arm@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz#18127072b270bb6321c6d11be20bfd30e0d6ad17" - integrity sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA== +"@esbuild/linux-arm@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz#9d78cf87a310ae9ed985c3915d5126578665c7b5" + integrity sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== "@esbuild/linux-arm@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz#4503ca7001a8ee99589c072801ce9d7540717a21" integrity sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw== -"@esbuild/linux-ia32@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz#ee400af7b3bc69e8ca2e593ca35156ffb9abd54f" - integrity sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA== +"@esbuild/linux-ia32@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz#6fed202602d37361bca376c9d113266a722a908c" + integrity sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== "@esbuild/linux-ia32@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz#98c474e3e0cbb5bcbdd8561a6e65d18f5767ce48" integrity sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw== -"@esbuild/linux-loong64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz#8c509d8a454693d39824b83b3f66c400872fce82" - integrity sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA== +"@esbuild/linux-loong64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz#cdc60304830be1e74560c704bfd72cab8a02fa06" + integrity sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== "@esbuild/linux-loong64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz#a8097d28d14b9165c725fe58fc438f80decd2f33" integrity sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA== -"@esbuild/linux-mips64el@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz#f2b0d36e63fb26bc3f95b203b6a80638292101ca" - integrity sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA== +"@esbuild/linux-mips64el@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz#c367b2855bb0902f5576291a2049812af2088086" + integrity sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== "@esbuild/linux-mips64el@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz#c44f6f0d7d017c41ad3bb15bfdb69b690656b5ea" integrity sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA== -"@esbuild/linux-ppc64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz#1e628be003e036e90423716028cc884fe5ba25bd" - integrity sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw== +"@esbuild/linux-ppc64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz#7fdc0083d42d64a4651711ee0a7964f489242f45" + integrity sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== "@esbuild/linux-ppc64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz#0765a55389a99237b3c84227948c6e47eba96f0d" integrity sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw== -"@esbuild/linux-riscv64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz#419a815cb4c3fb9f1b78ef5295f5b48b8bf6427a" - integrity sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw== +"@esbuild/linux-riscv64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz#5198a417f3f5b86b10c95647b8bc032e5b6b2b1c" + integrity sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== "@esbuild/linux-riscv64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz#e4153b032288e3095ddf4c8be07893781b309a7e" integrity sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg== -"@esbuild/linux-s390x@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz#291c49ae5c3d11d226352755c0835911fe1a9e5c" - integrity sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw== +"@esbuild/linux-s390x@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz#7459c2fecdee2d582f0697fb76a4041f4ad1dd1e" + integrity sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== "@esbuild/linux-s390x@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz#b9ab8af6e4b73b26d63c1c426d7669a5d53eb5a7" integrity sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ== -"@esbuild/linux-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz#03199d91c76faf80bd54104f5cbf0a489bc39f6a" - integrity sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA== +"@esbuild/linux-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz#948cdbf46d81c81ebd7225a7633009bc56a4488c" + integrity sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== "@esbuild/linux-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz#0b25da17ac38c3e11cdd06ca3691d4d6bef2755f" integrity sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA== -"@esbuild/netbsd-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz#b436d767e1b21852f9ed212e2bb57f77203b0ae2" - integrity sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q== +"@esbuild/netbsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz#6bb89668c0e093c5a575ded08e1d308bd7fd63e7" + integrity sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== "@esbuild/netbsd-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz#3148e48406cd0d4f7ba1e0bf3f4d77d548c98407" integrity sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg== -"@esbuild/openbsd-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz#d1481d8539e21d4729cd04a0450a26c2c8789e89" - integrity sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg== +"@esbuild/openbsd-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz#abac2ae75fef820ef6c2c48da4666d092584c79d" + integrity sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== "@esbuild/openbsd-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz#7b73e852986a9750192626d377ac96ac2b749b76" integrity sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw== -"@esbuild/sunos-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz#2cfb8126e079b2c00fd1bf095541e9f5c47877e4" - integrity sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw== +"@esbuild/sunos-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz#74a45fe1db8ea96898f1a9bb401dcf1dadfc8371" + integrity sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== "@esbuild/sunos-x64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz#402a441cdac2eee98d8be378c7bc23e00c1861c5" integrity sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q== -"@esbuild/win32-arm64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz#7c6ecfd097ca23b82119753bf7072bbaefe51e3a" - integrity sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg== +"@esbuild/win32-arm64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz#fd95ffd217995589058a4ed8ac17ee72a3d7f615" + integrity sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== "@esbuild/win32-arm64@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz#36c4e311085806a6a0c5fc54d1ac4d7b27e94d7b" integrity sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A== -"@esbuild/win32-ia32@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz#cffec63c3cb0ef8563a04df4e09fa71056171d00" - integrity sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w== +"@esbuild/win32-ia32@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz#9b7ef5d0df97593a80f946b482e34fcba3fa4aaf" + integrity sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== "@esbuild/win32-ia32@0.20.1": version "0.20.1" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz#0cf933be3fb9dc58b45d149559fe03e9e22b54fe" integrity sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw== -"@esbuild/win32-x64@0.17.8": - version "0.17.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz#200a0965cf654ac28b971358ecdca9cc5b44c335" - integrity sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg== +"@esbuild/win32-x64@0.18.17": + version "0.18.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz#bcb2e042631b3c15792058e189ed879a22b2968b" + integrity sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== "@esbuild/win32-x64@0.20.1": version "0.20.1" @@ -2087,14 +2250,6 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" @@ -2109,12 +2264,12 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.2.1": +"@jridgewell/set-array@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/source-map@^0.3.2", "@jridgewell/source-map@^0.3.3": +"@jridgewell/source-map@^0.3.3": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== @@ -2122,7 +2277,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -2849,10 +3004,10 @@ "@material/theme" "15.0.0-canary.684e33d25.0" tslib "^2.1.0" -"@ngtools/webpack@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-15.2.10.tgz#8118450206ae9398d81ca2eebe1b369321ac5583" - integrity sha512-ZExB4rKh/Saad31O/Ofd2XvRuILuCNTYs0+qJL697Be2pzeewvzBhE4Xe1Mm7Jg13aWSPeuIdzSGOqCdwxxxFQ== +"@ngtools/webpack@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-16.2.12.tgz#478db8cca94a69f1708c38ad80b62d824c73f543" + integrity sha512-f9R9Qsk8v+ffDxryl6PQ7Wnf2JCNd4dDXOH+d/AuF06VFiwcwGDRDZpmqkAXbFxQfcWTbT1FFvfoJ+SFcJgXLA== "@ngx-translate/core@14.0.0": version "14.0.0" @@ -3015,10 +3170,10 @@ reflect-metadata "^0.1.13" whatwg-fetch "^3.6.2" -"@project-sunbird/common-consumption@8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@project-sunbird/common-consumption/-/common-consumption-8.0.1.tgz#795b3e7bb4d9bd43c74d9c81867a6aa6798e9690" - integrity sha512-Yk2Znqd7TkQFinnw1HtIdT9mURPkKj88JrOmHVcQ+y6QDdX5EV4/jfE0/VTdyJz4bBSRX01l/9TD36A96u9Ewg== +"@project-sunbird/common-consumption@8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@project-sunbird/common-consumption/-/common-consumption-8.0.2.tgz#ec2bdf9539473201493468ab963782f2f7c3976a" + integrity sha512-TXhfvxcVrJVfJA1rR//vfiIMNu0lcHiE4a97lxeOeh+lpxMn0/h67+Mkn2rt0xUPCL3dC3r4eapzbWdDV4o/3g== dependencies: tslib "^2.3.0" @@ -3186,10 +3341,10 @@ grunt-karma "^0.12.2" karma "^3.0.0" -"@project-sunbird/web-extensions@8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@project-sunbird/web-extensions/-/web-extensions-8.0.0.tgz#0e0d3051857ce29ad4b895d523cfb8b82bdb9fcc" - integrity sha512-Qvwrv292OZmBD6x8nfhb8wheisFY5qiakJSxvB0GIL3M0DTzliaaO6atXA6CcWyPTPGoZ/CAzPBKHO4f9PBsng== +"@project-sunbird/web-extensions@8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@project-sunbird/web-extensions/-/web-extensions-8.0.1.tgz#ec6b83b0c00f808f0b9d80304e958fc465fd8e64" + integrity sha512-pXqn8sjdm8BJhQPJGysH/xpV4yCv/ceFev+SNmifu1dhWKI8Ehrcxdy1zq6O2srwSmfF2chlLeoy0oJj45XBcQ== dependencies: tslib "^2.0.0" @@ -3205,13 +3360,13 @@ resolved "https://registry.yarnpkg.com/@scarf/scarf/-/scarf-0.1.5.tgz#fc4cc88294eca336eed9a91549180346de5e6946" integrity sha512-Fx6atDc7JM1r0WkPCDhNetVZNp+DO21q/HGlomAKBG+k8vb1B8fg8Yige4oCf1P9OWTZWm5tM5i3jlXhrSbNOg== -"@schematics/angular@15.2.10": - version "15.2.10" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-15.2.10.tgz#fa6c05f37ba82422abd6b3f13a2fc78ec7a4eb3d" - integrity sha512-eLdyP+T1TueNQ8FCP7sP+tt8z+YQ1BINsJsyAyoJT/XZjcCV7LUxgDIU94/kuvIotmJ2xTuFWHFPfAY+CN3duQ== +"@schematics/angular@16.2.12": + version "16.2.12" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-16.2.12.tgz#13e00e7390903cfc00eb8d5c2e74986262aff6ec" + integrity sha512-rc6Dxo7yLnNhECxZyvwv3qL40GvMHw/gMeme8DUGN7zgcUdBJ7LOCURp7EZqOBghMVeeJvLrohitEbs9NhRLBA== dependencies: - "@angular-devkit/core" "15.2.10" - "@angular-devkit/schematics" "15.2.10" + "@angular-devkit/core" "16.2.12" + "@angular-devkit/schematics" "16.2.12" jsonc-parser "3.2.0" "@shikshalokam/sl-questionnaire@2.3.1": @@ -3305,6 +3460,11 @@ dependencies: tslib "^2.0.0" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -3436,16 +3596,11 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": +"@types/estree@*", "@types/estree@^1.0.0": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.17.43" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" @@ -3677,7 +3832,7 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/ws@^8.5.1": +"@types/ws@^8.5.5": version "8.5.10" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== @@ -3774,127 +3929,142 @@ global "~4.4.0" is-function "^1.0.1" -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== - -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== - -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== - -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" +"@vitejs/plugin-basic-ssl@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz#48c46eab21e0730921986ce742563ae83fe7fe34" + integrity sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.11.5": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== - -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" - -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== - dependencies: - "@webassemblyjs/ast" "1.11.1" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" +"@wessberg/ts-evaluator@0.0.27": + version "0.0.27" + resolved "https://registry.yarnpkg.com/@wessberg/ts-evaluator/-/ts-evaluator-0.0.27.tgz#06e8b901d5e84f11199b9f84577c6426ae761767" + integrity sha512-7gOpVm3yYojUp/Yn7F4ZybJRxyqfMNf0LXK5KJiawbPfL0XTsJV+0mgrEDjOIR6Bi0OYk2Cyg4tjFu1r8MCZaA== + dependencies: + chalk "^4.1.0" + jsdom "^16.4.0" + object-path "^0.11.5" + tslib "^2.0.3" + "@xmldom/xmldom@^0.7.2", "@xmldom/xmldom@^0.7.5": version "0.7.13" resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.13.tgz#ff34942667a4e19a9f4a0996a76814daac364cf3" @@ -3925,7 +4095,7 @@ abab@^1.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" integrity sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A== -abab@^2.0.6: +abab@^2.0.3, abab@^2.0.5, abab@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== @@ -3957,6 +4127,14 @@ acorn-globals@^1.0.4: dependencies: acorn "^2.1.0" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-globals@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" @@ -3965,11 +4143,16 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.7.6: +acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: version "8.3.2" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" @@ -3980,7 +4163,12 @@ acorn@^2.1.0, acorn@^2.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" integrity sha512-pXK8ez/pVjqFdAgBkF1YPVRacuLQ9EXBKaKWaeh58WNfMkCmZhOZzu+NtKSPD5PHmCCHheQ5cD29qM1K4QTxIg== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -4301,6 +4489,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" @@ -4496,13 +4689,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@10.4.13: - version "10.4.13" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" - integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== +autoprefixer@10.4.14: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== dependencies: - browserslist "^4.21.4" - caniuse-lite "^1.0.30001426" + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -4547,12 +4740,12 @@ babel-jest@^29.7.0: graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@9.1.2: - version "9.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.2.tgz#a16a080de52d08854ee14570469905a5fc00d39c" - integrity sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA== +babel-loader@9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== dependencies: - find-cache-dir "^3.3.2" + find-cache-dir "^4.0.0" schema-utils "^4.0.0" babel-plugin-istanbul@6.1.1, babel-plugin-istanbul@^6.1.1: @@ -4576,29 +4769,29 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.4: + version "0.4.10" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz#276f41710b03a64f6467433cab72cbc2653c38b1" + integrity sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.1" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.2: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.4" + core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.5.0" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -4869,17 +5062,12 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.22.2, browserslist@^4.22.3: +browserslist@^4.14.5, browserslist@^4.21.5, browserslist@^4.22.2, browserslist@^4.22.3: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -4980,25 +5168,6 @@ bytes@3.1.2, bytes@^3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@17.0.4: - version "17.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.0.4.tgz#5023ed892ba8843e3b7361c26d0ada37e146290c" - integrity sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^8.0.1" - lru-cache "^7.7.1" - minipass "^4.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - promise-inflight "^1.0.1" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - cacache@^16.1.0: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" @@ -5092,7 +5261,12 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001587: +caniuse-lite@^1.0.30001464: + version "1.0.30001597" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz#8be94a8c1d679de23b22fbd944232aa1321639e6" + integrity sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w== + +caniuse-lite@^1.0.30001587: version "1.0.30001596" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz#da06b79c3d9c3d9958eb307aa832ac68ead79bee" integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== @@ -5539,10 +5713,10 @@ common-form-elements-web-v9@4.7.2: moment "^2.29.1" tslib "^1.10.0" -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== compare-versions@^3.6.0: version "3.6.0" @@ -5693,7 +5867,7 @@ copy-webpack-plugin@11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.25.1: +core-js-compat@^3.31.0, core-js-compat@^3.33.1: version "3.36.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== @@ -5736,16 +5910,15 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== +cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" path-type "^4.0.0" - yaml "^1.10.0" create-jest@^29.7.0: version "29.7.0" @@ -5770,16 +5943,17 @@ credentials-context@^1.0.0: resolved "https://registry.yarnpkg.com/credentials-context/-/credentials-context-1.0.0.tgz#a63cb4b7e0a4ca4460d247b7c9370a58b10ebac9" integrity sha512-rF3GPhTUGY58xlpuVRif/1i0BxVpynpmFdGNS81S2ezdKPSKoFke5ZOZWB8ZUvGi8bV8CuDM+ZcM/uf4z0PQVQ== -critters@0.0.16: - version "0.0.16" - resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.16.tgz#ffa2c5561a65b43c53b940036237ce72dcebfe93" - integrity sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A== +critters@0.0.20: + version "0.0.20" + resolved "https://registry.yarnpkg.com/critters/-/critters-0.0.20.tgz#08ddb961550ab7b3a59370537e4f01df208f7646" + integrity sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw== dependencies: chalk "^4.1.0" - css-select "^4.2.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - postcss "^8.3.7" + css-select "^5.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.2" + htmlparser2 "^8.0.2" + postcss "^8.4.23" pretty-bytes "^5.3.0" cross-spawn@^7.0.0, cross-spawn@^7.0.3: @@ -5822,29 +5996,29 @@ css-line-break@^2.1.0: dependencies: utrie "^1.0.2" -css-loader@6.7.3: - version "6.7.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" - integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== +css-loader@6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" + integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== dependencies: icss-utils "^5.1.0" - postcss "^8.4.19" + postcss "^8.4.21" postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" + postcss-modules-local-by-default "^4.0.3" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" semver "^7.3.8" -css-select@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" nth-check "^2.0.1" css-selector-tokenizer@^0.7.1: @@ -5855,7 +6029,7 @@ css-selector-tokenizer@^0.7.1: cssesc "^3.0.0" fastparse "^1.1.2" -css-what@^6.0.1: +css-what@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== @@ -5882,6 +6056,11 @@ cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", cssom@~0.3.6: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + cssom@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" @@ -5931,6 +6110,15 @@ data-uri-to-buffer@^3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + data-urls@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" @@ -6013,7 +6201,7 @@ decamelize@^1.1.1, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@^10.4.2: +decimal.js@^10.2.1, decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== @@ -6207,11 +6395,6 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -dependency-graph@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" - integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -6288,14 +6471,14 @@ dom-serialize@^2.2.0: extend "^3.0.0" void-elements "^2.0.0" -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" dom-to-image@2.6.0: version "2.6.0" @@ -6307,11 +6490,18 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== -domelementtype@^2.0.1, domelementtype@^2.2.0: +domelementtype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domexception@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" @@ -6319,21 +6509,21 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: - domelementtype "^2.2.0" + domelementtype "^2.3.0" -domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" duplexer2@0.0.2: version "0.0.2" @@ -6383,7 +6573,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.284, electron-to-chromium@^1.4.668: +electron-to-chromium@^1.4.668: version "1.4.695" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.695.tgz#1753f4017e8d7e72a1ce5058c0fc66c8b67bab8e" integrity sha512-eMijZmeqPtm774pCZIOrfUHMs/7ls++W1sLhxwqgu8KQ8E2WmMtzwyqOMt0XXUJ3HTIPfuwlfwF+I5cwnfItBA== @@ -6472,10 +6662,10 @@ engine.io@~3.2.0: engine.io-parser "~2.1.0" ws "~3.3.1" -enhanced-resolve@^5.10.0: - version "5.15.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz#384391e025f099e67b4b00bfd7f0906a408214e1" - integrity sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg== +enhanced-resolve@^5.15.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -6485,12 +6675,7 @@ ent@~2.2.0: resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^4.3.0, entities@^4.4.0: +entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -6546,10 +6731,10 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: version "0.10.64" @@ -6600,43 +6785,43 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild-wasm@0.17.8: - version "0.17.8" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz#c2348306430c27613ee3cc9a955cdd54df29137a" - integrity sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ== +esbuild-wasm@0.18.17: + version "0.18.17" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.18.17.tgz#d3d8827502c7714212a7b2544ee99132f07189cc" + integrity sha512-9OHGcuRzy+I8ziF9FzjfKLWAPbvi0e/metACVg9k6bK+SI4FFxeV6PcZsz8RIVaMD4YNehw+qj6UMR3+qj/EuQ== esbuild-wasm@>=0.13.8: version "0.20.1" resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.20.1.tgz#fdc14b95e3e16ec8e082dd641edb96140c1723f7" integrity sha512-6v/WJubRsjxBbQdz6izgvx7LsVFvVaGmSdwrFHmEzoVgfXL89hkKPoQHsnVI2ngOkcBUQT9kmAM1hVL1k/Av4A== -esbuild@0.17.8: - version "0.17.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.8.tgz#f7f799abc7cdce3f0f2e3e0c01f120d4d55193b4" - integrity sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g== +esbuild@0.18.17: + version "0.18.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.17.tgz#2aaf6bc6759b0c605777fdc435fea3969e091cad" + integrity sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg== optionalDependencies: - "@esbuild/android-arm" "0.17.8" - "@esbuild/android-arm64" "0.17.8" - "@esbuild/android-x64" "0.17.8" - "@esbuild/darwin-arm64" "0.17.8" - "@esbuild/darwin-x64" "0.17.8" - "@esbuild/freebsd-arm64" "0.17.8" - "@esbuild/freebsd-x64" "0.17.8" - "@esbuild/linux-arm" "0.17.8" - "@esbuild/linux-arm64" "0.17.8" - "@esbuild/linux-ia32" "0.17.8" - "@esbuild/linux-loong64" "0.17.8" - "@esbuild/linux-mips64el" "0.17.8" - "@esbuild/linux-ppc64" "0.17.8" - "@esbuild/linux-riscv64" "0.17.8" - "@esbuild/linux-s390x" "0.17.8" - "@esbuild/linux-x64" "0.17.8" - "@esbuild/netbsd-x64" "0.17.8" - "@esbuild/openbsd-x64" "0.17.8" - "@esbuild/sunos-x64" "0.17.8" - "@esbuild/win32-arm64" "0.17.8" - "@esbuild/win32-ia32" "0.17.8" - "@esbuild/win32-x64" "0.17.8" + "@esbuild/android-arm" "0.18.17" + "@esbuild/android-arm64" "0.18.17" + "@esbuild/android-x64" "0.18.17" + "@esbuild/darwin-arm64" "0.18.17" + "@esbuild/darwin-x64" "0.18.17" + "@esbuild/freebsd-arm64" "0.18.17" + "@esbuild/freebsd-x64" "0.18.17" + "@esbuild/linux-arm" "0.18.17" + "@esbuild/linux-arm64" "0.18.17" + "@esbuild/linux-ia32" "0.18.17" + "@esbuild/linux-loong64" "0.18.17" + "@esbuild/linux-mips64el" "0.18.17" + "@esbuild/linux-ppc64" "0.18.17" + "@esbuild/linux-riscv64" "0.18.17" + "@esbuild/linux-s390x" "0.18.17" + "@esbuild/linux-x64" "0.18.17" + "@esbuild/netbsd-x64" "0.18.17" + "@esbuild/openbsd-x64" "0.18.17" + "@esbuild/sunos-x64" "0.18.17" + "@esbuild/win32-arm64" "0.18.17" + "@esbuild/win32-ia32" "0.18.17" + "@esbuild/win32-x64" "0.18.17" esbuild@>=0.13.8: version "0.20.1" @@ -6667,6 +6852,34 @@ esbuild@>=0.13.8: "@esbuild/win32-ia32" "0.20.1" "@esbuild/win32-x64" "0.20.1" +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + escalade@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -7008,6 +7221,28 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" + integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-glob@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.11, fast-glob@^3.3.0: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" @@ -7156,14 +7391,13 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" find-insert-index@0.0.1: version "0.0.1" @@ -7186,6 +7420,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + find-versions@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" @@ -7282,6 +7524,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -7541,17 +7792,6 @@ glob-watcher@^5.0.3: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@8.1.0, glob@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - glob@^10.2.2: version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" @@ -7575,6 +7815,17 @@ glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -7657,6 +7908,13 @@ grunt-karma@^0.12.2: dependencies: lodash "^3.10.1" +guess-parser@0.4.22: + version "0.4.22" + resolved "https://registry.yarnpkg.com/guess-parser/-/guess-parser-0.4.22.tgz#c26ab9e21b69bbc761960c5a1511476ae85428eb" + integrity sha512-KcUWZ5ACGaBM69SbqwVIuWGoSAgD+9iJnchR9j/IarVI1jHVeXv+bUXBIMeqVMSKt3zrn0Dgf9UpcOEpPBLbSg== + dependencies: + "@wessberg/ts-evaluator" "0.0.27" + gulp-brotli@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/gulp-brotli/-/gulp-brotli-1.2.1.tgz#f064b5cdfd883f0beff176815f75d0f23a98046a" @@ -7951,6 +8209,13 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-encoding-sniffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" @@ -7983,6 +8248,16 @@ html2canvas@1.4.1: css-line-break "^2.1.0" text-segmentation "^1.0.3" +htmlparser2@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" @@ -8019,6 +8294,15 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" @@ -8163,7 +8447,7 @@ immutable@^4.0.0, immutable@^4.0.0-rc.12: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== -import-fresh@^3.1.0, import-fresh@^3.2.1: +import-fresh@^3.1.0, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -8222,10 +8506,10 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" - integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== ini@^1.3.4, ini@~1.3.0: version "1.3.8" @@ -8325,7 +8609,7 @@ is-buffer@^1.1.5, is-buffer@~1.1.1: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-core-module@^2.13.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -9089,6 +9373,11 @@ jest-worker@^29.7.0: import-local "^3.0.2" jest-cli "^29.5.0" +jiti@^1.18.2: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + joi@17.4.0: version "17.4.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20" @@ -9128,6 +9417,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -9138,6 +9434,39 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + jsdom@^20.0.0: version "20.0.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" @@ -9238,7 +9567,7 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.1.2, json5@^2.2.1, json5@^2.2.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -9445,7 +9774,7 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4, klona@^2.0.5: +klona@^2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== @@ -9471,6 +9800,14 @@ last-run@^1.1.0: default-resolution "^2.0.0" es6-weak-map "^2.0.1" +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + lazystream@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" @@ -9618,6 +9955,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + lodash-es@4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" @@ -9742,7 +10086,7 @@ lodash@^3.10.1: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ== -lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.5.0: +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.5.0, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9825,19 +10169,12 @@ m3u8-parser@^7.1.0: "@videojs/vhs-utils" "^3.0.5" global "^4.4.0" -magic-string@0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.29.0.tgz#f034f79f8c43dba4ae1730ffb5e8c4e084b16cf3" - integrity sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== +magic-string@0.30.1: + version "0.30.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.1.tgz#ce5cd4b0a81a5d032bd69aab4522299b2166284d" + integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" + "@jridgewell/sourcemap-codec" "^1.4.15" make-dir@^1.0.0: version "1.3.0" @@ -9854,13 +10191,6 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -10079,10 +10409,10 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -mini-css-extract-plugin@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz#e049d3ea7d3e4e773aad585c6cb329ce0c7b72d7" - integrity sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw== +mini-css-extract-plugin@2.7.6: + version "2.7.6" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" + integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== dependencies: schema-utils "^4.0.0" @@ -10192,11 +10522,6 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" - integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== - minipass@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" @@ -10275,7 +10600,7 @@ mpd-parser@^1.2.2, mpd-parser@^1.3.0: "@xmldom/xmldom" "^0.8.3" global "^4.4.0" -mrmime@^1.0.0: +mrmime@1.0.1, mrmime@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== @@ -10571,7 +10896,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.14, node-releases@^2.0.8: +node-releases@^2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== @@ -10745,7 +11070,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" integrity sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ== -nwsapi@^2.2.2: +nwsapi@^2.2.0, nwsapi@^2.2.2: version "2.2.7" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== @@ -10789,6 +11114,11 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object-path@^0.11.5: + version "0.11.8" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -10882,16 +11212,7 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.1.tgz#2ab3754c07f5d1f99a7a8d6a82737c95e3101cff" - integrity sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -open@^8.0.9: +open@8.4.2, open@^8.0.9: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -10978,6 +11299,13 @@ p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -10985,6 +11313,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -11005,10 +11340,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pacote@15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.1.0.tgz#2e0b12a4f55ffd801a8134a1ae28ef361dc3f243" - integrity sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg== +pacote@15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" + integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== dependencies: "@npmcli/git" "^4.0.0" "@npmcli/installed-package-contents" "^2.0.1" @@ -11016,7 +11351,7 @@ pacote@15.1.0: "@npmcli/run-script" "^6.0.0" cacache "^17.0.0" fs-minipass "^3.0.0" - minipass "^4.0.0" + minipass "^5.0.0" npm-package-arg "^10.0.0" npm-packlist "^7.0.0" npm-pick-manifest "^8.0.0" @@ -11025,7 +11360,7 @@ pacote@15.1.0: promise-retry "^2.0.1" read-package-json "^6.0.0" read-package-json-fast "^3.0.0" - sigstore "^1.0.0" + sigstore "^1.3.0" ssri "^10.0.0" tar "^6.1.11" @@ -11086,13 +11421,6 @@ parse5-html-rewriting-stream@7.0.0: parse5 "^7.0.0" parse5-sax-parser "^7.0.0" -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - parse5-sax-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz#4c05064254f0488676aca75fb39ca069ec96dee5" @@ -11100,16 +11428,16 @@ parse5-sax-parser@^7.0.0: dependencies: parse5 "^7.0.0" +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" integrity sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA== -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" @@ -11158,6 +11486,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -11244,7 +11577,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@2.3.1, picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -11281,10 +11614,10 @@ pirates@^4.0.4: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -piscina@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.2.0.tgz#f5a1dde0c05567775690cccefe59d9223924d154" - integrity sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA== +piscina@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.0.0.tgz#f8913d52b2000606d51aaa242f0813a0c77ca3b1" + integrity sha512-641nAmJS4k4iqpNUqfggqUBUMmlw0ZoM5VZKdQkV2e970Inn3Tk9kroCc1wpsYLD07vCwpys5iY0d3xI/9WkTg== dependencies: eventemitter-asyncresource "^1.0.0" hdr-histogram-js "^2.0.1" @@ -11299,13 +11632,20 @@ pkcs7@^1.0.4: dependencies: "@babel/runtime" "^7.5.5" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + platform@1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.3.tgz#646c77011899870b6a0903e75e997e8e51da7461" @@ -11349,13 +11689,13 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== -postcss-loader@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.0.2.tgz#b53ff44a26fba3688eee92a048c7f2d4802e23bb" - integrity sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg== +postcss-loader@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" + integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.5" + cosmiconfig "^8.2.0" + jiti "^1.18.2" semver "^7.3.8" postcss-modules-extract-imports@^3.0.0: @@ -11363,7 +11703,7 @@ postcss-modules-extract-imports@^3.0.0: resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^4.0.0: +postcss-modules-local-by-default@^4.0.3: version "4.0.4" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz#7cbed92abd312b94aaea85b68226d3dec39a14e6" integrity sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q== @@ -11408,7 +11748,7 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.2.14, postcss@^8.3.7, postcss@^8.4.19: +postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.27: version "8.4.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== @@ -12006,12 +12346,12 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@1.22.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -12076,6 +12416,13 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -12102,20 +12449,20 @@ rxjs@6.5.5: dependencies: tslib "^1.9.0" -rxjs@6.6.7, rxjs@^6.5.2, rxjs@^6.5.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.5: +rxjs@7.8.1, rxjs@^7.5.5: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" +rxjs@^6.5.2, rxjs@^6.5.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -12150,12 +12497,11 @@ safevalues@^0.3.4: resolved "https://registry.yarnpkg.com/safevalues/-/safevalues-0.3.4.tgz#82e846a02b6956d7d40bf9f41e92e13fce0186db" integrity sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw== -sass-loader@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.2.0.tgz#80195050f58c9aac63b792fa52acb6f5e0f6bdc3" - integrity sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg== +sass-loader@13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6" + integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== dependencies: - klona "^2.0.4" neo-async "^2.6.2" sass@1.56.1: @@ -12167,10 +12513,10 @@ sass@1.56.1: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -sass@1.58.1: - version "1.58.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.1.tgz#17ab0390076a50578ed0733f1cc45429e03405f6" - integrity sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg== +sass@1.64.1: + version "1.64.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" + integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -12188,6 +12534,13 @@ sax@>=0.6.0, sax@^1.1.4, sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + saxes@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" @@ -12205,7 +12558,7 @@ sb-tag-manager@3.9.19: reflect-metadata "^0.1.13" whatwg-fetch "^3.1.0" -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -12288,14 +12641,14 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== +semver@7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -12429,6 +12782,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" @@ -12449,7 +12807,7 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -sigstore@^1.0.0: +sigstore@^1.3.0: version "1.9.0" resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== @@ -13070,7 +13428,7 @@ tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" -terser-webpack-plugin@^5.1.3: +terser-webpack-plugin@^5.3.7: version "5.3.10" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== @@ -13081,13 +13439,13 @@ terser-webpack-plugin@^5.1.3: serialize-javascript "^6.0.1" terser "^5.26.0" -terser@5.16.3: - version "5.16.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.3.tgz#3266017a9b682edfe019b8ecddd2abaae7b39c6b" - integrity sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q== +terser@5.19.2: + version "5.19.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" + integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -13257,7 +13615,7 @@ tough-cookie@^2.2.0, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@^4.1.2: +tough-cookie@^4.0.0, tough-cookie@^4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== @@ -13267,6 +13625,13 @@ tough-cookie@^4.1.2: universalify "^0.2.0" url-parse "^1.5.3" +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + tr46@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" @@ -13335,22 +13700,22 @@ tslib@2.0.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== -tslib@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tslib@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.1.tgz#f2ad78c367857d54e49a0ef9def68737e1a67b21" integrity sha512-KaI6gPil5m9vF7DKaoXxx1ia9fxS4qG5YveErRRVknPDXXriu5M8h48YRjB6h5ZUOKuAKlSJYb0GaDe8I39fRw== +tslib@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== + tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -13593,7 +13958,7 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.13: +update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== @@ -13899,11 +14264,36 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" +vite@4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.2.tgz#d6ea8610e099851dad8c7371599969e0f8b97e82" + integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + w3c-xmlserializer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" @@ -13970,6 +14360,16 @@ webidl-conversions@^3.0.0, webidl-conversions@^3.0.1: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webidl-conversions@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" @@ -13990,10 +14390,10 @@ webpack-bundle-analyzer@4.7.0: sirv "^1.0.7" ws "^7.3.1" -webpack-dev-middleware@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz#fd585127ed44dab3f253daf0d98f4d58a5088cc2" - integrity sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw== +webpack-dev-middleware@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz#6bbc257ec83ae15522de7a62f995630efde7cc3d" + integrity sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ== dependencies: colorette "^2.0.10" memfs "^3.4.12" @@ -14012,10 +14412,10 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@4.11.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz#ae07f0d71ca0438cf88446f09029b92ce81380b5" - integrity sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw== +webpack-dev-server@4.15.1: + version "4.15.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" + integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" @@ -14023,7 +14423,7 @@ webpack-dev-server@4.11.1: "@types/serve-index" "^1.9.1" "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.1" + "@types/ws" "^8.5.5" ansi-html-community "^0.0.8" bonjour-service "^1.0.11" chokidar "^3.5.3" @@ -14036,6 +14436,7 @@ webpack-dev-server@4.11.1: html-entities "^2.3.2" http-proxy-middleware "^2.0.3" ipaddr.js "^2.0.1" + launch-editor "^2.6.0" open "^8.0.9" p-retry "^4.5.0" rimraf "^3.0.2" @@ -14045,12 +14446,12 @@ webpack-dev-server@4.11.1: sockjs "^0.3.24" spdy "^4.0.2" webpack-dev-middleware "^5.3.1" - ws "^8.4.2" + ws "^8.13.0" -webpack-merge@5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== +webpack-merge@5.9.0: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" + integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" @@ -14067,22 +14468,22 @@ webpack-subresource-integrity@5.1.0: dependencies: typed-assert "^1.0.8" -webpack@5.76.1: - version "5.76.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c" - integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ== +webpack@5.88.2: + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" acorn "^8.7.1" - acorn-import-assertions "^1.7.6" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.10.0" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -14091,9 +14492,9 @@ webpack@5.76.1: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" + terser-webpack-plugin "^5.3.7" watchpack "^2.4.0" webpack-sources "^3.2.3" @@ -14111,6 +14512,13 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + whatwg-encoding@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" @@ -14123,6 +14531,11 @@ whatwg-fetch@^3.1.0, whatwg-fetch@^3.6.2: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + whatwg-mimetype@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" @@ -14152,6 +14565,15 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -14258,12 +14680,12 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -ws@^7.3.1: +ws@^7.3.1, ws@^7.4.6: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.11.0, ws@^8.4.2: +ws@^8.11.0, ws@^8.13.0: version "8.16.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== @@ -14282,6 +14704,11 @@ ws@~3.3.1: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" integrity sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA== +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" @@ -14355,7 +14782,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.7.2: +yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -14381,10 +14808,10 @@ yargs-parser@^5.0.1: camelcase "^3.0.0" object.assign "^4.1.0" -yargs@17.6.2: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== +yargs@17.7.2, yargs@^17.2.1, yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -14411,19 +14838,6 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.2.1, yargs@^17.3.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" @@ -14466,12 +14880,17 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zone.js@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.11.4.tgz#0f70dcf6aba80f698af5735cbb257969396e8025" - integrity sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw== +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zone.js@0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.13.3.tgz#344c24098fa047eda6427a4c7ed486e391fd67b5" + integrity sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww== dependencies: - tslib "^2.0.0" + tslib "^2.3.0" zone.js@~0.10.3: version "0.10.3" From 50ec4822f2fd91092f9fdf612f6c7129e18951fe Mon Sep 17 00:00:00 2001 From: 5Amogh Date: Wed, 17 Apr 2024 12:40:55 +0530 Subject: [PATCH 009/123] #issue ED-4094 fix: observation list card click issue fix --- .../observation-listing/observation-listing.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.ts b/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.ts index efc4fde7d70..81d6be52c20 100644 --- a/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.ts +++ b/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.ts @@ -338,7 +338,7 @@ export class ObservationListingComponent solutionId: data.solutionId, observationId: data._id, solutionName: data.name, - programName: data.subject[0], + programName: data[this.categoryKeys[4].code], entityType:data.entityType }; this.router.navigate(['observation/details'], { From ff3278911cdee60a1a8e97d216d79443db126617 Mon Sep 17 00:00:00 2001 From: 5Amogh Date: Wed, 17 Apr 2024 14:02:48 +0530 Subject: [PATCH 010/123] jest test code change --- .../observation-listing/observation-listing.component.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.spec.ts b/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.spec.ts index 804754de5ad..4fd6fae8193 100644 --- a/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.spec.ts +++ b/src/app/client/src/app/modules/observation/components/observation-listing/observation-listing.component.spec.ts @@ -150,6 +150,7 @@ describe('ObservationListingComponent', () => { }); it('should call playcontent component', () => { + component.categoryKeys = [{code:'solution'}, {code:'solution_type'}, {code:'program'}, {code:'entityType'},{code:'programName'}] const mockEvent = { data: { programId: 'mock-program-id', @@ -167,7 +168,7 @@ describe('ObservationListingComponent', () => { solutionId: data.solutionId, observationId: data._id, solutionName: data.name, - programName: data.subject[0], + programName: data[component.categoryKeys[4].code], entityType: data.entityType }) expect(component.router.navigate).toHaveBeenCalledWith(['observation/details'], { From 6d08a88cbe63b14a4eeacb1622a6ed5a982c73b0 Mon Sep 17 00:00:00 2001 From: zooldev Date: Wed, 17 Apr 2024 14:37:33 +0530 Subject: [PATCH 011/123] Issue #ED-3965 fix: SCSS support for angular Migration While migrating Sunbird ED-Portal from Angular v14 to v15. - Font Rendering issue --- src/app/client/package.json | 2 +- .../content-type/content-type.component.scss | 2 +- .../explore-page/explore-page.component.html | 8 ++++---- .../explore-page/explore-page.component.scss | 8 ++++++++ .../src/assets/styles/components/_pagesection.scss | 2 +- src/app/client/src/assets/styles/global.scss | 10 +++++++++- src/app/client/yarn.lock | 8 ++++---- 7 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/app/client/package.json b/src/app/client/package.json index 8875e1946b1..80598a71958 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -69,7 +69,7 @@ "@project-sunbird/sb-notification": "8.0.1", "@project-sunbird/sb-styles": "0.0.16", "@project-sunbird/sb-svg2pdf": "8.0.1", - "@project-sunbird/sb-themes": "8.0.5", + "@project-sunbird/sb-themes": "8.0.6", "@project-sunbird/sunbird-collection-editor": "5.4.10", "@project-sunbird/sunbird-epub-player-v9": "5.6.0", "@project-sunbird/sunbird-epub-player-web-component": "1.2.0", diff --git a/src/app/client/src/app/modules/core/components/content-type/content-type.component.scss b/src/app/client/src/app/modules/core/components/content-type/content-type.component.scss index 7bb4244bf4d..dcbf4a60667 100644 --- a/src/app/client/src/app/modules/core/components/content-type/content-type.component.scss +++ b/src/app/client/src/app/modules/core/components/content-type/content-type.component.scss @@ -29,7 +29,7 @@ border-radius: calculateRem(6px); box-shadow: var(--sbt-box-shadow-6px); font-size: calculateRem(12px); - font-weight: bold; + font-weight: 500; margin-right: calculateRem(12px); height: calculateRem(48px); transition: all ease .3s; diff --git a/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.html b/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.html index 5e14735e46b..8f0ab0294dc 100644 --- a/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.html +++ b/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.html @@ -47,7 +47,7 @@

-

{{resourceService?.frmelmnts?.lbl?.hi}} {{userProfile?.firstName +

{{resourceService?.frmelmnts?.lbl?.hi}} {{userProfile?.firstName | titlecase}} {{userProfile?.lastName | titlecase}}

{{resourceService?.frmelmnts?.lbl?.yourPreferences}} @@ -57,8 +57,8 @@

{{ (resourceService?.frmelmnts?.lbl[category?.code] | transposeTerms: resourceService?.frmelmnts?.lbl[category?.code] : resourceService?.selectedLang) || category?.labels }}: - {{category?.values[0]}} ...+ {{category?.values?.length-1}} - {{category?.values[0]}} + {{category?.values[0]}} ...+ {{category?.values?.length-1}} + {{category?.values[0]}}

@@ -81,7 +81,7 @@

-
{{getBannerTitle(section?.section?.title)}} + diff --git a/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.scss b/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.scss index ff32d69c35a..cd195a418a8 100644 --- a/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.scss +++ b/src/app/client/src/app/modules/explore-page/components/explore-page/explore-page.component.scss @@ -23,6 +23,11 @@ flex: 1; .header { font-size: calculateRem(16px); + font-weight: 500; + } + + .value { + font-weight: 500; } .preference-icon{ position: relative; @@ -62,6 +67,9 @@ display: block !important; } } +.featured-text { + font-weight: 500; +} .home-container { padding:0; } diff --git a/src/app/client/src/assets/styles/components/_pagesection.scss b/src/app/client/src/assets/styles/components/_pagesection.scss index 78154fb65cf..64bfa4373e6 100644 --- a/src/app/client/src/assets/styles/components/_pagesection.scss +++ b/src/app/client/src/assets/styles/components/_pagesection.scss @@ -12,7 +12,7 @@ .sb-pageSection-title { font-size: calculateRem(16px); display: inline; - font-weight: 600; + font-weight: 500; line-height: normal; &.sb-pageSection-sentenceCase { text-transform: lowercase; diff --git a/src/app/client/src/assets/styles/global.scss b/src/app/client/src/assets/styles/global.scss index 35475035f02..352cc6a5204 100644 --- a/src/app/client/src/assets/styles/global.scss +++ b/src/app/client/src/assets/styles/global.scss @@ -18,7 +18,8 @@ // @include mat.core(); @include mat.core(); -$custom-typography: mat.define-typography-config($font-family: "var(--font-stack-en) !important", +$custom-typography: mat.define-typography-config( + $font-family: "var(--font-stack-en) !important", ); @include mat.all-component-typographies($custom-typography); @@ -127,6 +128,13 @@ body { } } +.sbt-dropdown-profile-area { + .sb-avatar__img { + font-weight: 600 !important; + padding-top: 0 !important; + } +} + // don't delete this .iziModal-isAttached { body { diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index ad8fd89ca7d..e6743482caa 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -3307,10 +3307,10 @@ dependencies: tslib "^2.0.0" -"@project-sunbird/sb-themes@8.0.5": - version "8.0.5" - resolved "https://registry.yarnpkg.com/@project-sunbird/sb-themes/-/sb-themes-8.0.5.tgz#76fecfbb45344381dec50381992ee2b4acc7a722" - integrity sha512-Ywk1/Wz+QyIHauIEZzILwhrh11tFSMxZtkUCL3JFpY/u6Ejlovr5FwCqzI+7XUDnfCX4DNA5Zr8cEuZpvyH3YQ== +"@project-sunbird/sb-themes@8.0.6": + version "8.0.6" + resolved "https://registry.yarnpkg.com/@project-sunbird/sb-themes/-/sb-themes-8.0.6.tgz#23cc3c7415f676a9940a5761e7a171c08f90805d" + integrity sha512-GLTnIpXjpmA3E+FRQybXjVaGOX4cTzLORO5xU7a8SF3iwcRfIdGjif6IDArs4OrYAqNksZZg5HHS+GxIEd3x0A== dependencies: "@project-sunbird/sb-styles" "0.0.14" From e3ccd1dd025550f2dd17eefae35038c6261b9fe4 Mon Sep 17 00:00:00 2001 From: Rajeev Sathish Date: Thu, 18 Apr 2024 11:51:25 +0530 Subject: [PATCH 012/123] Issue #ED-4021 Remove the deprecated APIs and update to the latest routes --- .../core/services/otp/otp.service.spec.ts | 6 ++-- .../services/tenant/tenant.service.spec.ts | 4 +-- .../core/services/user/user.service.spec.ts | 12 ++++---- .../components/otp/otp.component.spec.data.ts | 4 +-- .../services/signup/signup.service.spec.ts | 20 ++++++------- .../recover-account.service.spec.ts | 10 +++---- .../shared/services/config/url.config.json | 20 ++++++------- .../services/profile/profile.service.ts | 2 +- src/app/helpers/googleOauthHelper.js | 2 +- src/app/helpers/googleService.js | 6 ++-- src/app/helpers/ssoHelper.js | 2 +- src/app/helpers/telemetryEventConfig.json | 8 ++--- src/app/helpers/trampolineServiceHelper.js | 4 +-- src/app/helpers/userHelper.js | 4 +-- src/app/helpers/whitelistApis.js | 30 +++++++++---------- src/app/proxy/contentEditorProxy.js | 4 +-- src/app/routes/accountRecoveryRoute.js | 4 +-- src/app/routes/learnerRoutes.js | 12 ++++---- src/desktop/modules/routes.spec.ts | 16 +++++----- src/desktop/modules/routes/auth.ts | 12 ++++---- src/desktop/modules/routes/course.ts | 4 +-- src/desktop/modules/routes/data.ts | 2 +- src/desktop/modules/routes/desktop.ts | 6 ++-- 23 files changed, 97 insertions(+), 97 deletions(-) diff --git a/src/app/client/src/app/modules/core/services/otp/otp.service.spec.ts b/src/app/client/src/app/modules/core/services/otp/otp.service.spec.ts index b7c3ff70045..7cae427c6f3 100644 --- a/src/app/client/src/app/modules/core/services/otp/otp.service.spec.ts +++ b/src/app/client/src/app/modules/core/services/otp/otp.service.spec.ts @@ -10,10 +10,10 @@ describe('OtpService', () => { urlConFig: { URLS: { OTP: { - GENERATE: 'otp/v1/generate', - VERIFY: 'otp/v1/verify', + GENERATE: 'otp/v2/generate', + VERIFY: 'otp/v2/verify', ANONYMOUS:{ - GENERATE_USERDELETE:'anonymous/delete/otp/v1/generate' + GENERATE_USERDELETE:'anonymous/delete/otp/v2/generate' } } } diff --git a/src/app/client/src/app/modules/core/services/tenant/tenant.service.spec.ts b/src/app/client/src/app/modules/core/services/tenant/tenant.service.spec.ts index 90e8c404cb7..896e1a7c7ca 100644 --- a/src/app/client/src/app/modules/core/services/tenant/tenant.service.spec.ts +++ b/src/app/client/src/app/modules/core/services/tenant/tenant.service.spec.ts @@ -12,8 +12,8 @@ describe('TenantService', () => { urlConFig: { URLS: { OTP: { - GENERATE: 'otp/v1/generate', - VERIFY: 'otp/v1/verify', + GENERATE: 'otp/v2/generate', + VERIFY: 'otp/v2/verify', }, TENANT: { INFO: 'sunbird' diff --git a/src/app/client/src/app/modules/core/services/user/user.service.spec.ts b/src/app/client/src/app/modules/core/services/user/user.service.spec.ts index fe87f913988..57d3cd14ee9 100644 --- a/src/app/client/src/app/modules/core/services/user/user.service.spec.ts +++ b/src/app/client/src/app/modules/core/services/user/user.service.spec.ts @@ -19,8 +19,8 @@ describe('UserService', () => { }, URLS: { OTP: { - GENERATE: 'otp/v1/generate', - VERIFY: 'otp/v1/verify', + GENERATE: 'otp/v2/generate', + VERIFY: 'otp/v2/verify', }, USER: { GET_PROFILE: 'user/v5/read/', @@ -31,11 +31,11 @@ describe('UserService', () => { TNC_ACCEPT: 'user/v1/tnc/accept' }, OFFLINE: { - READ_USER: 'desktop/user/v1/read', - CREATE_USER: 'desktop/user/v1/create', - UPDATE_USER: 'desktop/user/v1/update', + READ_USER: 'desktop/user/v5/read', + CREATE_USER: 'desktop/user/v1/sso/create', + UPDATE_USER: 'desktop/user/v3/update', GET_USER_BY_KEY: 'desktop/user/v1/read/by/key', - USER_EXISTS_GET_USER_BY_KEY: 'desktop/user/v1/exists/by/key' + USER_EXISTS_GET_USER_BY_KEY: 'desktop/user/v2/exists/by/key' } } } diff --git a/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.spec.data.ts b/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.spec.data.ts index ca8916861a3..45586a73c9d 100644 --- a/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.spec.data.ts +++ b/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.spec.data.ts @@ -117,10 +117,10 @@ export const OtpComponentMockResponse = { }, 'status': 400, 'statusText': 'Bad Request', - 'url': 'http://localhost:3000/learner/otp/v1/verify', + 'url': 'http://localhost:3000/learner/otp/v2/verify', 'ok': false, 'name': 'HttpErrorResponse', - 'message': 'Http failure response for http://localhost:3000/learner/otp/v1/verify: 400 Bad Request', + 'message': 'Http failure response for http://localhost:3000/learner/otp/v2/verify: 400 Bad Request', 'error': { 'id': 'api.otp.verify', 'ver': 'v1', diff --git a/src/app/client/src/app/modules/public/module/signup/services/signup/signup.service.spec.ts b/src/app/client/src/app/modules/public/module/signup/services/signup/signup.service.spec.ts index dcec148016d..64ba84f225e 100644 --- a/src/app/client/src/app/modules/public/module/signup/services/signup/signup.service.spec.ts +++ b/src/app/client/src/app/modules/public/module/signup/services/signup/signup.service.spec.ts @@ -15,15 +15,15 @@ describe("SignupService", () => { urlConFig: { URLS: { OTP: { - GENERATE: "otp/v1/generate", - VERIFY: "otp/v1/verify", + GENERATE: "otp/v2/generate", + VERIFY: "otp/v2/verify", ANONYMOUS: { - GENERATE: "anonymous/otp/v1/generate", + GENERATE: "anonymous/otp/v2/generate", }, }, USER: { - GET_USER_BY_KEY: "user/v1/get", - CHECK_USER_EXISTS: "user/v1/exists", + GET_USER_BY_KEY: "user/v2/get", + CHECK_USER_EXISTS: "user/v2/exists", CREATE_V2: "user/v2/create", SIGN_UP_V1: "user/v2/signup", TNC_ACCEPT_LOGIN: "user/v2/accept/tnc", @@ -53,7 +53,7 @@ describe("SignupService", () => { it("should call generate API ", () => { const params = { request: { key: "1242142", type: "phone" } }; jest.spyOn(mockLearnerService, "post").mockReturnValue(of(mock.mockRes.generateOtpData)); - const options = { url: "otp/v1/generate", data: params }; + const options = { url: "otp/v2/generate", data: params }; component.generateOTP(params); expect(mockLearnerService.post).toHaveBeenCalledWith(options); }); @@ -64,7 +64,7 @@ describe("SignupService", () => { .spyOn(mockLearnerService, "post") .mockReturnValue(of(mock.mockRes.generateAnonymousOtpData)); const options = { - url: "anonymous/otp/v1/generate" + "?captchaResponse=" + "G-cjkdjflsfkja", + url: "anonymous/otp/v2/generate" + "?captchaResponse=" + "G-cjkdjflsfkja", data: params, }; component.generateOTPforAnonymousUser(params, "G-cjkdjflsfkja"); @@ -77,7 +77,7 @@ describe("SignupService", () => { .spyOn(mockLearnerService, "post") .mockReturnValue(of(mock.mockRes.verifyOtpData)); const options = { - url: "otp/v1/verify", + url: "otp/v2/verify", data: params, }; component.verifyOTP(params); @@ -87,7 +87,7 @@ describe("SignupService", () => { it("should call get User By Key API", () => { const params = { request: { key: "1242142", type: "phone" } }; jest.spyOn(mockLearnerService, "get").mockReturnValue(of(mock.mockRes.getUserData)); - const options = { url: "user/v1/get" }; + const options = { url: "user/v2/get" }; component.getUserByKey(params); expect(mockLearnerService.get).toHaveBeenCalled(); }); @@ -95,7 +95,7 @@ describe("SignupService", () => { it("should call check user exists API", () => { const params = { request: { key: "1242142", type: "phone" } }; jest.spyOn(mockLearnerService, "get").mockReturnValue(of(mock.mockRes.verifyUserData)); - const options = { url: "user/v1/exists" }; + const options = { url: "user/v2/exists" }; component.checkUserExists(params); expect(mockLearnerService.get).toHaveBeenCalled(); }); diff --git a/src/app/client/src/app/modules/recover-account/services/recover-account/recover-account.service.spec.ts b/src/app/client/src/app/modules/recover-account/services/recover-account/recover-account.service.spec.ts index 865aca661fb..d8dd27c01bc 100644 --- a/src/app/client/src/app/modules/recover-account/services/recover-account/recover-account.service.spec.ts +++ b/src/app/client/src/app/modules/recover-account/services/recover-account/recover-account.service.spec.ts @@ -21,10 +21,10 @@ describe('RecoverAccountService', () => { RESET_PASSWORD: "user/v1/password/reset" }, OTP: { - GENERATE: "otp/v1/generate", - VERIFY: "otp/v1/verify", + GENERATE: "otp/v2/generate", + VERIFY: "otp/v2/verify", ANONYMOUS: { - GENERATE: "anonymous/otp/v1/generate", + GENERATE: "anonymous/otp/v2/generate", }, }, } @@ -61,7 +61,7 @@ describe('RecoverAccountService', () => { const params = { 'request': { 'type': 'user', 'key': 'testKey', 'userId': 'testUserId' } }; jest.spyOn(mockLearnerService, 'post'); component.generateOTP(params); - const options = { url: 'anonymous/otp/v1/generate?captchaResponse=undefined', data: params }; + const options = { url: 'anonymous/otp/v2/generate?captchaResponse=undefined', data: params }; expect(mockLearnerService.post).toHaveBeenCalledWith(options); }); @@ -69,7 +69,7 @@ describe('RecoverAccountService', () => { const params = { 'request': { 'type': 'user', 'key': 'testKey', 'userId': 'testUserId' } }; jest.spyOn(mockLearnerService, 'post'); component.verifyOTP(params); - const options = { url: 'otp/v1/verify', data: params }; + const options = { url: 'otp/v2/verify', data: params }; expect(mockLearnerService.post).toHaveBeenCalledWith(options); }); diff --git a/src/app/client/src/app/modules/shared/services/config/url.config.json b/src/app/client/src/app/modules/shared/services/config/url.config.json index 7a49b64a219..f98122e28f6 100644 --- a/src/app/client/src/app/modules/shared/services/config/url.config.json +++ b/src/app/client/src/app/modules/shared/services/config/url.config.json @@ -88,7 +88,7 @@ "CREATE": "review/comment/v1/create/comment" }, "USER": { - "SIGNUP": "user/v1/create", + "SIGNUP": "user/v1/sso/create", "TNC_ACCEPT": "user/v1/tnc/accept", "UPDATE_USER_PROFILE": "user/v3/update", "GET_PROFILE": "user/v5/read/", @@ -99,8 +99,8 @@ "UPDATE_SKILLS": "user/v1/skill/update", "USER_SKILLS": "user/v1/skill/read", "UPDATE_PROF_VIS_FIELDS": "user/v1/profile/visibility", - "GET_USER_BY_KEY": "user/v1/get", - "CHECK_USER_EXISTS": "user/v1/exists", + "GET_USER_BY_KEY": "user/v2/get", + "CHECK_USER_EXISTS": "user/v2/exists", "CREATE_V2": "user/v2/create", "SIGN_UP_V1": "user/v2/signup", "LOCATION_SEARCH": "data/v1/location/search", @@ -111,7 +111,7 @@ "USER_MIGRATE": "user/v1/migrate", "TNC_ACCEPT_LOGIN": "user/v2/accept/tnc", "SIGN_UP_V4": "user/v4/create", - "SIGN_UP_MANAGED_USER": "user/v1/managed/create", + "SIGN_UP_MANAGED_USER": "user/v2/managed/create", "SWITCH_USER": "user/v1/switch", "END_SESSION": "endSession", "GET_MANAGED_USER": "user/v1/managed", @@ -261,11 +261,11 @@ "SYNC": "data/v1/telemetry" }, "OTP": { - "GENERATE": "otp/v1/generate", - "VERIFY": "otp/v1/verify", + "GENERATE": "otp/v2/generate", + "VERIFY": "otp/v2/verify", "ANONYMOUS": { - "GENERATE": "anonymous/otp/v1/generate", - "GENERATE_USERDELETE":"anonymous/delete/otp/v1/generate" + "GENERATE": "anonymous/otp/v2/generate", + "GENERATE_USERDELETE":"anonymous/delete/otp/v2/generate" } }, "OFFLINE": { @@ -280,9 +280,9 @@ "RETRY_IMPORT": "content/v1/import/retry", "REPORT_OTHER_ISSUE": "help/v1/report/issue", "READ_FAQ": "faqs/v1/read", - "CREATE_USER": "desktop/user/v1/create", + "CREATE_USER": "desktop/user/v1/sso/create", "UPDATE_USER": "desktop/user/v1/update", - "READ_USER": "desktop/user/v1/read", + "READ_USER": "desktop/user/v5/read", "LOCATION_SAVE": "data/v1/location/save", "LOCATION_READ": "data/v1/location/read", "APP_INFO": "app/v1/info", diff --git a/src/app/client/src/app/plugins/profile/services/profile/profile.service.ts b/src/app/client/src/app/plugins/profile/services/profile/profile.service.ts index 502335fcb22..5105f2e9cd6 100644 --- a/src/app/client/src/app/plugins/profile/services/profile/profile.service.ts +++ b/src/app/client/src/app/plugins/profile/services/profile/profile.service.ts @@ -34,7 +34,7 @@ export class ProfileService { public updatePrivateProfile(request) { const data = this.formatRequest(request); const options = { - url: 'portal/user/v2/update', + url: 'portal/user/v3/update', data: data }; return this.learnerService.patch(options); diff --git a/src/app/helpers/googleOauthHelper.js b/src/app/helpers/googleOauthHelper.js index c41d7d3d409..dec51966263 100644 --- a/src/app/helpers/googleOauthHelper.js +++ b/src/app/helpers/googleOauthHelper.js @@ -223,7 +223,7 @@ const createSession = async (emailId, reqQuery, req, res) => { const fetchUserByEmailId = async (emailId, req) => { const options = { method: 'GET', - url: envHelper.LEARNER_URL + 'user/v1/exists/email/'+ emailId, + url: envHelper.LEARNER_URL + 'user/v2/exists/email/'+ emailId, headers: getHeaders(req), json: true } diff --git a/src/app/helpers/googleService.js b/src/app/helpers/googleService.js index bfe78e200d5..40c399b29d9 100644 --- a/src/app/helpers/googleService.js +++ b/src/app/helpers/googleService.js @@ -11,12 +11,12 @@ const { parseJson } = require('./utilityService'); const validateRecaptcha = async (req, res, next) => { let errType; const reCaptchaMapping = { - '/learner/user/v1/exists/email/:emailId': envHelper.sunbird_p1_reCaptcha_enabled, - '/learner/user/v1/exists/phone/:phoneNumber': envHelper.sunbird_p1_reCaptcha_enabled, + '/learner/user/v2/exists/email/:emailId': envHelper.sunbird_p1_reCaptcha_enabled, + '/learner/user/v2/exists/phone/:phoneNumber': envHelper.sunbird_p1_reCaptcha_enabled, '/learner/user/v1/fuzzy/search': envHelper.sunbird_p1_reCaptcha_enabled, '/learner/user/v1/get/phone/*': envHelper.sunbird_p1_reCaptcha_enabled, '/learner/user/v1/get/email/*': envHelper.sunbird_p1_reCaptcha_enabled, - '/learner/anonymous/otp/v1/generate': envHelper.sunbird_p2_reCaptcha_enabled + '/learner/anonymous/otp/v2/generate': envHelper.sunbird_p2_reCaptcha_enabled }; if (_.get(reCaptchaMapping, req.route.path)) { try { diff --git a/src/app/helpers/ssoHelper.js b/src/app/helpers/ssoHelper.js index 8bf8c0a9322..ca329c19669 100644 --- a/src/app/helpers/ssoHelper.js +++ b/src/app/helpers/ssoHelper.js @@ -245,7 +245,7 @@ const updateRoles = (req, userId, jwtPayload) => { // will be called from player } const options = { method: 'POST', - url: envHelper?.learner_Service_Local_BaseUrl + privateBaseUrl +'v1/assign/role', + url: envHelper?.learner_Service_Local_BaseUrl + privateBaseUrl +'v2/assign/role', headers: getHeaders(req), body: { request: requestBody diff --git a/src/app/helpers/telemetryEventConfig.json b/src/app/helpers/telemetryEventConfig.json index 87db811797c..e0dd7c788d8 100644 --- a/src/app/helpers/telemetryEventConfig.json +++ b/src/app/helpers/telemetryEventConfig.json @@ -17,10 +17,10 @@ "message": "Calling role read api to get permisions", "env": "user" }, - "user/v1/read": { + "user/v5/read": { "title": "Read user profile", "category": "userread", - "url": "user/v1/read", + "url": "user/v5/read", "message": "Calling get user profile", "env": "user" }, @@ -52,10 +52,10 @@ "message": "Calling get user profile", "env": "user" }, - "user/v1/create": { + "user/v1/sso/create": { "title": "Create user profile", "category": "createuser", - "url": "user/v1/create", + "url": "user/v1/sso/create", "message": "Calling create user", "env": "user" }, diff --git a/src/app/helpers/trampolineServiceHelper.js b/src/app/helpers/trampolineServiceHelper.js index 2b82f90a8e8..8f8d32f7f75 100644 --- a/src/app/helpers/trampolineServiceHelper.js +++ b/src/app/helpers/trampolineServiceHelper.js @@ -225,7 +225,7 @@ module.exports = { createUser: function (req, payload, callback) { var options = { method: 'POST', - url: learnerURL + 'user/v1/create', + url: learnerURL + 'user/v1/sso/create', headers: { ts: dateFormat(new Date(), 'yyyy-mm-dd HH:MM:ss:lo'), 'x-msgid': uuidv1(), @@ -253,7 +253,7 @@ module.exports = { const telemetryData = { reqObj: req, options: options, - uri: 'user/v1/create', + uri: 'user/v1/sso/create', type: 'user', id: options.headers['x-consumer-id'], userId: options.headers['x-consumer-id'] diff --git a/src/app/helpers/userHelper.js b/src/app/helpers/userHelper.js index 4e0ef4e3847..0c9fe9ca723 100644 --- a/src/app/helpers/userHelper.js +++ b/src/app/helpers/userHelper.js @@ -14,7 +14,7 @@ module.exports = { getUserDetails: async function (userId, userToken) { const options = { method: 'GET', - url: learnerURL + 'user/v1/read/' + userId, + url: learnerURL + 'user/v5/read/' + userId, headers: { 'x-msgid': uuidv1(), 'content-type': 'application/json', @@ -71,7 +71,7 @@ module.exports = { getUserDetailsV2: async function (userId, userToken, req = undefined) { const options = { method: 'GET', - url: learnerURL + 'user/v2/read/' + userId, + url: learnerURL + 'user/v5/read/' + userId, qs: { fields: "locations" }, diff --git a/src/app/helpers/whitelistApis.js b/src/app/helpers/whitelistApis.js index 2abac3b6e4a..b11133e784d 100644 --- a/src/app/helpers/whitelistApis.js +++ b/src/app/helpers/whitelistApis.js @@ -430,7 +430,7 @@ const API_LIST = { }, //User related APIs - '/learner/user/v1/create': { + '/learner/user/v1/sso/create': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, @@ -455,11 +455,11 @@ const API_LIST = { ] } }, - '/learner/user/v1/get': { + '/learner/user/v2/get': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, - '/learner/user/v1/exists': { + '/learner/user/v2/exists': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, @@ -494,7 +494,7 @@ const API_LIST = { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, - '/learner/user/v2/search': { + '/learner/user/v3/search': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, @@ -520,7 +520,7 @@ const API_LIST = { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ALL] }, - '/learner/user/v1/consent/read': { + '/learner/user/v2/consent/read': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC, ROLE.ADMIN] }, @@ -544,12 +544,12 @@ const API_LIST = { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, - '/learner/user/v1/managed/create': { + '/learner/user/v2/managed/create': { description: 'API is to create managed user', checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, - '/learner/portal/user/v2/update': { + '/learner/portal/user/v3/update': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ORG_ADMIN] }, @@ -582,7 +582,7 @@ const API_LIST = { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, - '/learner/otp/v1/verify': { + '/learner/otp/v2/verify': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.PUBLIC] }, @@ -683,19 +683,19 @@ const API_LIST = { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, - '/learner/user/v1/exists/email/:emailId': { + '/learner/user/v2/exists/email/:emailId': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, - '/learner/user/v1/exists/phone/:phoneNumber': { + '/learner/user/v2/exists/phone/:phoneNumber': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, - '/learner/anonymous/otp/v1/generate': { + '/learner/anonymous/otp/v2/generate': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, - '/learner/anonymous/delete/otp/v1/generate': { + '/learner/anonymous/delete/otp/v2/generate': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ROLE.ANONYMOUS] }, @@ -1253,7 +1253,7 @@ const API_LIST = { }, // User service - '/action/user/v1/search': { + '/action/user/v3/search': { checksNeeded: ['ROLE_CHECK'], ROLE_CHECK: [ ROLE.CONTENT_CREATOR, @@ -1942,8 +1942,8 @@ const API_LIST = { '/learner/user/v1/feed/:userId', '/learner/course/v1/batch/read/:batchId', '/learner/dashboard/v2/progress/course/:batchId', - '/learner/user/v1/exists/email/:emailId', - '/learner/user/v1/exists/phone/:phoneNumber', + '/learner/user/v2/exists/email/:emailId', + '/learner/user/v2/exists/phone/:phoneNumber', '/learner/group/v1/read/:groupId', '/learner/user/v2/exists/:key/:value', '/learner/certreg/v2/certs/download/:id', diff --git a/src/app/proxy/contentEditorProxy.js b/src/app/proxy/contentEditorProxy.js index 070741908c1..f2fdabb2666 100644 --- a/src/app/proxy/contentEditorProxy.js +++ b/src/app/proxy/contentEditorProxy.js @@ -126,7 +126,7 @@ module.exports = function (app) { userResDecorator: userResDecorator })) - app.post('/action/user/v1/search', + app.post('/action/user/v3/search', isAPIWhitelisted.isAllowed(), addCorsHeaders, proxyUtils.verifyToken(), @@ -134,7 +134,7 @@ module.exports = function (app) { limit: reqDataLimitOfContentUpload, proxyReqOptDecorator: proxyUtils.decorateRequestHeaders(learnerURL), proxyReqPathResolver: function (req) { - let originalUrl = req.originalUrl.replace('/action/user/v1/search', 'user/v3/search') + let originalUrl = req.originalUrl.replace('/action/user/v3/search', 'user/v3/search') return require('url').parse(learnerURL + originalUrl).path }, userResDecorator: userResDecorator diff --git a/src/app/routes/accountRecoveryRoute.js b/src/app/routes/accountRecoveryRoute.js index d0489297bcf..146fd3d2703 100644 --- a/src/app/routes/accountRecoveryRoute.js +++ b/src/app/routes/accountRecoveryRoute.js @@ -20,7 +20,7 @@ module.exports = (app) => { proxyReqOptDecorator: proxyUtils.decorateRequestHeaders(learner_Service_Local_BaseUrl), proxyReqPathResolver: (req) => { logger.info({ msg: `${req.url} called`}); - return '/private/user/v1/search'; + return '/private/user/v3/search'; } })) @@ -59,7 +59,7 @@ module.exports = (app) => { } })) - app.all('/learner/otp/v1/verify', + app.all('/learner/otp/v2/verify', bodyParser.urlencoded({ extended: false }), bodyParser.json({ limit: '10mb' }), proxy(LEARNER_URL, { proxyReqOptDecorator: proxyUtils.decorateRequestHeaders(LEARNER_URL), diff --git a/src/app/routes/learnerRoutes.js b/src/app/routes/learnerRoutes.js index 3c36517b6e1..d3088b1a199 100644 --- a/src/app/routes/learnerRoutes.js +++ b/src/app/routes/learnerRoutes.js @@ -24,7 +24,7 @@ const _ = require('lodash'); module.exports = function (app) { require('./accountRecoveryRoute.js')(app) // account recovery route // Helper route to enable enable admin to update user fields - app.patch('/learner/portal/user/v1/update', + app.patch('/learner/portal/user/v3/update', proxyUtils.verifyToken(), proxy(learner_Service_Local_BaseUrl, { proxyReqOptDecorator: proxyUtils.decorateRequestHeaders(learner_Service_Local_BaseUrl), @@ -32,14 +32,14 @@ module.exports = function (app) { return '/private/user/v3/update'; }, userResDecorator: (proxyRes, proxyResData, req, res) => { - logger.info({ msg: '/learner/portal/user/v1/update called upstream url /private/user/v3/update' }); + logger.info({ msg: '/learner/portal/user/v3/update called upstream url /private/user/v3/update' }); try { const data = JSON.parse(proxyResData.toString('utf8')); if (req.method === 'GET' && proxyRes.statusCode === 404 && (typeof data.message === 'string' && data.message.toLowerCase() === 'API not found with these values'.toLowerCase())) res.redirect('/') else return proxyUtils.handleSessionExpiry(proxyRes, proxyResData, req, res, data); } catch (err) { logger.error({ msg: 'learner route : userResDecorator json parse error:', proxyResData }); - logger.error({ msg: 'learner route : error for /learner/portal/user/v1/update upstram url is /private/user/v3/update ', err }); + logger.error({ msg: 'learner route : error for /learner/portal/user/v3/update upstram url is /private/user/v3/update ', err }); return proxyUtils.handleSessionExpiry(proxyRes, proxyResData, req, res, null); } } @@ -76,12 +76,12 @@ module.exports = function (app) { app.get('/learner/user/v1/managed/*', proxyManagedUserRequest()); // Route to check user email id exists (or) already registered - app.get('/learner/user/v1/exists/email/:emailId', googleService.validateRecaptcha); + app.get('/learner/user/v2/exists/email/:emailId', googleService.validateRecaptcha); // Route to check user phone number exists (or) already registered - app.get('/learner/user/v1/exists/phone/:phoneNumber', googleService.validateRecaptcha); + app.get('/learner/user/v2/exists/phone/:phoneNumber', googleService.validateRecaptcha); - app.post('/learner/anonymous/otp/v1/generate', googleService.validateRecaptcha); + app.post('/learner/anonymous/otp/v2/generate', googleService.validateRecaptcha); // Route to check user email exists - SSO update contact workflow app.all('/learner/user/v1/get/email/*', googleService.validateRecaptcha, proxyObj()); diff --git a/src/desktop/modules/routes.spec.ts b/src/desktop/modules/routes.spec.ts index 946ec9e81cd..b8bb789f86e 100644 --- a/src/desktop/modules/routes.spec.ts +++ b/src/desktop/modules/routes.spec.ts @@ -416,7 +416,7 @@ describe("Test Telemetry", () => { describe("User API", () => { it("#User create success", (done) => { supertest(app) - .post("/api/desktop/user/v1/create") + .post("/api/desktop/user/v1/sso/create") .send({ request: { framework: { board: "english", medium: ["english"], gradeLevel: ["class 5"] } } }) .expect(200) .end((err, res) => { @@ -431,7 +431,7 @@ describe("User API", () => { it("#User create 409 conflict", (done) => { supertest(app) - .post("/api/desktop/user/v1/create") + .post("/api/desktop/user/v1/sso/create") .send({ request: { framework: { board: "english", medium: ["english"], gradeLevel: ["class 5"] } } }) .expect(409) .end((err, res) => { @@ -446,7 +446,7 @@ describe("User API", () => { it("#User create 500 internal server error", (done) => { supertest(app) - .post("/api/desktop/user/v1/create") + .post("/api/desktop/user/v1/sso/create") .send() .expect(500) .end((err, res) => { @@ -460,7 +460,7 @@ describe("User API", () => { it("#User read success", (done) => { supertest(app) - .get("/api/desktop/user/v1/read") + .get("/api/desktop/user/v5/read") .expect(200) .end((err, res) => { if (res.statusCode >= 500) { logger.error(err); return done(); } @@ -474,7 +474,7 @@ describe("User API", () => { }); it("#User update success", (done) => { supertest(app) - .post("/api/desktop/user/v1/update") + .post("/api/desktop/user/v3/update") .send({ request: { _id: "9783dc11-206c-4a3e-917a-cf4853ce23a2", framework: { board: "english", medium: ["english"], gradeLevel: ["class 5"] } } }) @@ -490,7 +490,7 @@ describe("User API", () => { }); it("#User update 500 internal server error", (done) => { supertest(app) - .post("/api/desktop/user/v1/update") + .post("/api/desktop/user/v3/update") .send() .expect(500) .end((err, res) => { @@ -504,7 +504,7 @@ describe("User API", () => { it("#User update bad request", (done) => { supertest(app) - .post("/api/desktop/user/v1/update") + .post("/api/desktop/user/v3/update") .send({ request: { framework: { board: "english", medium: ["english"], gradeLevel: ["class 5"] } } }) .expect(400) @@ -519,7 +519,7 @@ describe("User API", () => { it("#User update 404 (ERROR)", (done) => { supertest(app) - .post("/api/desktop/user/v1/update") + .post("/api/desktop/user/v3/update") .expect(404) .end((err, res) => { expect(res.body.params.status).to.equal("failed"); diff --git a/src/desktop/modules/routes/auth.ts b/src/desktop/modules/routes/auth.ts index e18d584b7ff..a48c38b34e7 100644 --- a/src/desktop/modules/routes/auth.ts +++ b/src/desktop/modules/routes/auth.ts @@ -71,7 +71,7 @@ export default (app, proxyURL) => { }); app.patch([ - '/learner/user/v1/update', + '/learner/user/v3/update', '/learner/user/v3/update', "/learner/notification/v1/feed/update", '/learner/user/v1/declarations' @@ -118,9 +118,9 @@ export default (app, proxyURL) => { }); app.post([ - "/learner/otp/v1/generate", - "/learner/otp/v1/verify", - "/learner/user/v1/consent/read", + "/learner/otp/v2/generate", + "/learner/otp/v2/verify", + "/learner/user/v2/consent/read", "/learner/user/v1/consent/update", "/learner/user/v1/tnc/accept", "/learner/user/v1/delete" @@ -128,7 +128,7 @@ export default (app, proxyURL) => { res.status(res.statusCode).send(res.body); }); - app.post(["/learner/user/v4/create", "/learner/user/v5/create", "/learner/user/v1/managed/create"], customProxy(proxyURL, defaultProxyConfig),async (req, res) => { + app.post(["/learner/user/v4/create", "/learner/user/v5/create", "/learner/user/v2/managed/create"], customProxy(proxyURL, defaultProxyConfig),async (req, res) => { const userSDK: any = containerAPI.getUserSdkInstance(); const userId = _.get(res, 'body.result.userId'); const userToken: string = await userSDK.getUserToken().catch(error => { @@ -170,7 +170,7 @@ export default (app, proxyURL) => { } }); - app.post(["/learner/anonymous/otp/v1/generate","/learner/anonymous/delete/otp/v1/generate"], (req, res, next) => { + app.post(["/learner/anonymous/otp/v2/generate","/learner/anonymous/delete/otp/v2/generate"], (req, res, next) => { if (req.url.indexOf('anonymous') > -1) { req.originalUrl = req.originalUrl.replace('anonymous/', ''); } diff --git a/src/desktop/modules/routes/course.ts b/src/desktop/modules/routes/course.ts index e37641b23d1..bd6df3e82a8 100644 --- a/src/desktop/modules/routes/course.ts +++ b/src/desktop/modules/routes/course.ts @@ -37,7 +37,7 @@ export default (app, proxyURL) => { }); app.post([ - "/learner/user/v1/search", + "/learner/user/v3/search", "/learner/course/v1/enrol", "/learner/course/v1/unenrol", "/discussion/forum/v2/read", @@ -53,7 +53,7 @@ export default (app, proxyURL) => { } }); - app.post("/learner/user/v2/search", customProxy(proxyURL, defaultProxyConfig), (req, res) => { + app.post("/learner/user/v3/search", customProxy(proxyURL, defaultProxyConfig), (req, res) => { res.status(res.statusCode).send(res.body); }); diff --git a/src/desktop/modules/routes/data.ts b/src/desktop/modules/routes/data.ts index 10714e4f711..05e863e8240 100644 --- a/src/desktop/modules/routes/data.ts +++ b/src/desktop/modules/routes/data.ts @@ -120,7 +120,7 @@ export default (app, proxyURL) => { }); const user = new User(manifest); - app.get("/api/desktop/user/v1/read", + app.get("/api/desktop/user/v5/read", user.read.bind(user), ); } diff --git a/src/desktop/modules/routes/desktop.ts b/src/desktop/modules/routes/desktop.ts index 74eb741c0ac..8c93695089d 100644 --- a/src/desktop/modules/routes/desktop.ts +++ b/src/desktop/modules/routes/desktop.ts @@ -67,15 +67,15 @@ export default (app, proxyURL) => { }); const user = new User(manifest); - app.post("/api/desktop/user/v1/create", + app.post("/api/desktop/user/v1/sso/create", user.create.bind(user), ); - app.get("/api/desktop/user/v1/read", + app.get("/api/desktop/user/v5/read", user.read.bind(user), ); app.post( - "/api/desktop/user/v1/update", user.update.bind(user), + "/api/desktop/user/v3/update", user.update.bind(user), ); From 39c975ebbd5a4ccaa04359b3c31ad3322605d952 Mon Sep 17 00:00:00 2001 From: Abhishek Nagesh Date: Fri, 19 Apr 2024 11:49:37 +0530 Subject: [PATCH 013/123] Issue #ED-4009 fix: Added UCI console package in portal codebase --- src/app/client/package.json | 4 +- .../components/uci/uci.component.html | 4 +- .../app/modules/uci-admin/uci-admin.module.ts | 4 +- .../src/assets/libs/uci-console/README.md | 22 + .../esm2022/lib/common/constants.json | 597 +++++ .../lib/components/components.module.mjs | 81 + .../conversation-add.component.mjs | 376 +++ .../conversation-list.component.mjs | 120 + .../conversation-success.component.mjs | 40 + .../lib-entry/lib-entry.component.mjs | 55 + .../side-panel/side-panel.component.mjs | 76 + .../terms-conditions.component.mjs | 16 + .../user-segment-add.component.mjs | 221 ++ .../user-segment-list.component.mjs | 100 + .../esm2022/lib/models/uci-config.model.mjs | 2 + .../esm2022/lib/models/uci.model.mjs | 9 + .../esm2022/lib/pipes/pipes.module.mjs | 19 + .../esm2022/lib/services/base.service.mjs | 69 + .../esm2022/lib/services/config.service.mjs | 58 + .../esm2022/lib/services/global.service.mjs | 32 + .../lib/services/uci-graph-ql.service.mjs | 99 + .../esm2022/lib/services/uci.service.mjs | 87 + .../esm2022/lib/telemetry-utils.service.mjs | 103 + .../esm2022/lib/uci-events.service.mjs | 27 + .../uci-console/esm2022/lib/uci-module.mjs | 34 + .../lib/uci-routing/uci-routing.module.mjs | 55 + .../libs/uci-console/esm2022/public-api.mjs | 8 + .../esm2022/samagra-x-uci-console.mjs | 5 + .../fesm2022/samagra-x-uci-console.mjs | 2195 +++++++++++++++++ .../fesm2022/samagra-x-uci-console.mjs.map | 1 + .../src/assets/libs/uci-console/index.d.ts | 6 + .../lib/components/components.module.d.ts | 21 + .../lib/components/components.module.d.ts.map | 1 + .../conversation-add.component.d.ts | 80 + .../conversation-add.component.d.ts.map | 1 + .../conversation-list.component.d.ts | 33 + .../conversation-list.component.d.ts.map | 1 + .../conversation-success.component.d.ts | 16 + .../conversation-success.component.d.ts.map | 1 + .../lib-entry/lib-entry.component.d.ts | 28 + .../lib-entry/lib-entry.component.d.ts.map | 1 + .../side-panel/side-panel.component.d.ts | 33 + .../side-panel/side-panel.component.d.ts.map | 1 + .../terms-conditions.component.d.ts | 9 + .../terms-conditions.component.d.ts.map | 1 + .../user-segment-add.component.d.ts | 40 + .../user-segment-add.component.d.ts.map | 1 + .../user-segment-list.component.d.ts | 31 + .../user-segment-list.component.d.ts.map | 1 + .../lib/models/uci-config.model.d.ts | 16 + .../lib/models/uci-config.model.d.ts.map | 1 + .../uci-console/lib/models/uci.model.d.ts | 70 + .../uci-console/lib/models/uci.model.d.ts.map | 1 + .../uci-console/lib/pipes/pipes.module.d.ts | 8 + .../lib/pipes/pipes.module.d.ts.map | 1 + .../lib/services/base.service.d.ts | 16 + .../lib/services/base.service.d.ts.map | 1 + .../lib/services/config.service.d.ts | 29 + .../lib/services/config.service.d.ts.map | 1 + .../lib/services/global.service.d.ts | 15 + .../lib/services/global.service.d.ts.map | 1 + .../lib/services/uci-graph-ql.service.d.ts | 21 + .../services/uci-graph-ql.service.d.ts.map | 1 + .../uci-console/lib/services/uci.service.d.ts | 33 + .../lib/services/uci.service.d.ts.map | 1 + .../lib/telemetry-utils.service.d.ts | 20 + .../lib/telemetry-utils.service.d.ts.map | 1 + .../uci-console/lib/uci-events.service.d.ts | 12 + .../lib/uci-events.service.d.ts.map | 1 + .../libs/uci-console/lib/uci-module.d.ts | 11 + .../libs/uci-console/lib/uci-module.d.ts.map | 1 + .../lib/uci-routing/uci-routing.module.d.ts | 9 + .../uci-routing/uci-routing.module.d.ts.map | 1 + .../src/assets/libs/uci-console/package.json | 44 + .../assets/libs/uci-console/public-api.d.ts | 5 + .../libs/uci-console/public-api.d.ts.map | 1 + .../samagra-x-uci-console.d.ts.map | 1 + src/app/client/yarn.lock | 128 +- 78 files changed, 5217 insertions(+), 59 deletions(-) create mode 100644 src/app/client/src/assets/libs/uci-console/README.md create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs create mode 100644 src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map create mode 100644 src/app/client/src/assets/libs/uci-console/index.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/package.json create mode 100644 src/app/client/src/assets/libs/uci-console/public-api.d.ts create mode 100644 src/app/client/src/assets/libs/uci-console/public-api.d.ts.map create mode 100644 src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map diff --git a/src/app/client/package.json b/src/app/client/package.json index 80598a71958..e2bc41cbe25 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -63,7 +63,7 @@ "@project-sunbird/common-consumption": "8.0.2", "@project-sunbird/common-form-elements-full": "8.0.1", "@project-sunbird/discussions-ui": "8.0.1", - "@project-sunbird/ng2-semantic-ui": "8.0.2", + "@project-sunbird/ng2-semantic-ui": "^8.0.3", "@project-sunbird/sb-content-section": "8.0.1", "@project-sunbird/sb-dashlet": "8.0.2", "@project-sunbird/sb-notification": "8.0.1", @@ -85,7 +85,7 @@ "@project-sunbird/sunbird-video-player-web-component": "1.1.1", "@project-sunbird/telemetry-sdk": "1.3.0", "@project-sunbird/web-extensions": "8.0.1", - "@samagra-x/uci-console": "6.0.3", + "@samagra-x/uci-console": "/Users/abhishek/projects/ekstep/uci-console/dist/uci-console", "@shikshalokam/sl-questionnaire": "7.0.0", "@shikshalokam/sl-reports-library": "3.0.1", "@swimlane/ngx-datatable": "20.1.0", diff --git a/src/app/client/src/app/modules/uci-admin/components/uci/uci.component.html b/src/app/client/src/app/modules/uci-admin/components/uci/uci.component.html index 527f6da954e..81c06a7260c 100644 --- a/src/app/client/src/app/modules/uci-admin/components/uci/uci.component.html +++ b/src/app/client/src/app/modules/uci-admin/components/uci/uci.component.html @@ -1,5 +1,5 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts b/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts index cb9bf4a4e2f..3578869577e 100644 --- a/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts +++ b/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts @@ -1,14 +1,14 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core'; import { UciComponent } from './components/uci/uci.component'; import { UciAdminRoutingModule } from './uci-admin-routing.module'; -// import {UciModule} from '@samagra-x/uci-console'; +import {UciModule} from '@samagra-x/uci-console'; @NgModule({ declarations: [UciComponent], imports: [ UciAdminRoutingModule, - // UciModule + UciModule ], schemas: [ CUSTOM_ELEMENTS_SCHEMA ] }) diff --git a/src/app/client/src/assets/libs/uci-console/README.md b/src/app/client/src/assets/libs/uci-console/README.md new file mode 100644 index 00000000000..1317bbc41df --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/README.md @@ -0,0 +1,22 @@ +# UCI-Console + +## Code scaffolding + +Run `ng generate component component-name --project uci-console` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project uci-console`. +> Note: Don't forget to add `--project uci-console` or else it will be added to the default project in your `angular.json` file. + +## Build + +Run `ng build uci-console` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Publishing + +After building your library with `ng build uci-console`, go to the dist folder `cd dist/uci-console` and run `npm publish`. + +## Running unit tests + +Run `ng test uci-console` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json b/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json new file mode 100644 index 00000000000..0601eb942d0 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json @@ -0,0 +1,597 @@ +{ + "categories": [{ + "cid": 1, + "name": "Announcements", + "description": "Check here for announcements about NodeBB", + "icon": "fa-bullhorn", + "slug": "1/announcements", + "topic_count": 73, + "disabled": 0, + "order": 1, + "bgColor": "#e57373", + "link": "", + "class": "col-lg-4 col-md-6 col-xs-12", + "numRecentReplies": 1, + "color": "#ffffff", + "post_count": 884, + "parentCid": 0, + "descriptionParsed": "

Check here for announcements about NodeBB

\n", + "minTags": 0, + "maxTags": 5, + "isSection": 0, + "totalPostCount": 854, + "totalTopicCount": 73, + "tagWhitelist": [], + "unread-class": "unread", + "children": [], + "posts": [{ + "pid": 79553, + "timestamp": 1597704130970, + "content": "

A bug in our validation logic made it possible to change the password of any user on a running NodeBB forum by sending a specially crafted socket.io call to the server.

\n

We have resolved this in the latest version of NodeBB, and the fix has already been rolled out as a patch on all of our hosted customers.

\n

For more information on the vulnerability as well as instructions on how to resolve this issue, please have a look here: https://github.com/NodeBB/NodeBB/security/advisories/GHSA-hr66-c8pg-5mg7

\n

Click here to see the full blog post

\n", + "timestampISO": "2020-08-17T22:42:10.970Z", + "user": { + "uid": 3, + "username": "psychobunny", + "userslug": "psychobunny", + "picture": "https://i.imgur.com/ltvPqkU.gif", + "displayname": "psychobunny", + "icon:text": "P", + "icon:bgColor": "#f44336" + }, + "index": 1, + "cid": 1, + "parentCid": 0, + "topic": { + "slug": "14967/nodebb-v1-14-3-a-critical-security-update", + "title": "NodeBB v1.14.3: A Critical Security Update" + } + }], + "teaser": { + "url": "/post/79553", + "timestampISO": "2020-08-17T22:42:10.970Z", + "pid": 79553, + "topic": { + "slug": "14967/nodebb-v1-14-3-a-critical-security-update", + "title": "NodeBB v1.14.3: A Critical Security Update" + } + } + }, + { + "cid": 2, + "name": "General Discussion", + "description": "A place to talk about whatever you want", + "icon": "fa-comment", + "slug": "2/general-discussion", + "topic_count": 3188, + "order": 2, + "bgColor": "#ba68c8", + "link": "", + "class": "col-lg-4 col-md-6 col-xs-12", + "numRecentReplies": 1, + "color": "#ffffff", + "post_count": 20024, + "descriptionParsed": "

A place to talk about whatever you want

\n", + "minTags": 0, + "maxTags": 5, + "parentCid": 0, + "disabled": 0, + "isSection": 0, + "totalPostCount": 20024, + "totalTopicCount": 3188, + "tagWhitelist": [], + "unread-class": "", + "children": [], + "posts": [{ + "pid": 80371, + "timestamp": 1605714102926, + "content": "

@gotwf pardon the late response, I've adopted your suggestion, thanks!

\n

@julian good to know! And apparently my spammers were all \"human-powered\"; ever since I made the changes suggested by @baris the blacklist hits and spam accounts have dropped to zero!

\n

Hopefully it stays that way so I can focus on content

\n

Cheers

\n", + "timestampISO": "2020-11-18T15:41:42.926Z", + "user": { + "uid": 19985, + "username": "Nefarius", + "userslug": "nefarius", + "picture": "https://i.imgur.com/v798aRw.png", + "displayname": "Nefarius", + "icon:text": "N", + "icon:bgColor": "#673ab7" + }, + "index": 6, + "cid": 2, + "parentCid": 0, + "topic": { + "slug": "15119/spam-registration-amount-and-handling-is-unbearable", + "title": "Spam registration amount and handling is unbearable" + } + }], + "teaser": { + "url": "/post/80371", + "timestampISO": "2020-11-18T15:41:42.926Z", + "pid": 80371, + "topic": { + "slug": "15119/spam-registration-amount-and-handling-is-unbearable", + "title": "Spam registration amount and handling is unbearable" + } + } + }, + { + "link": "", + "class": "col-lg-4 col-md-6 col-xs-12", + "icon": "fa-github", + "description": "Stay tuned here to hear more about new releases and features of NodeBB!", + "order": 3, + "topic_count": 1158, + "name": "NodeBB Development", + "cid": 3, + "post_count": 6760, + "numRecentReplies": 1, + "bgColor": "#4fc3f7", + "slug": "3/nodebb-development", + "color": "#ffffff", + "disabled": 0, + "descriptionParsed": "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", + "isSection": 0, + "minTags": 0, + "maxTags": 5, + "parentCid": 0, + "totalPostCount": 17980, + "totalTopicCount": 2992, + "tagWhitelist": [], + "unread-class": "unread", + "children": [{ + "cid": 5, + "name": "Feature Requests", + "description": "You have a cool idea about NodeBB? Post it here.", + "icon": "fa-lightbulb-o", + "slug": "5/feature-requests", + "topic_count": 692, + "order": 1, + "bgColor": "#ffb74d", + "link": "", + "class": "col-lg-4 col-md-6 col-xs-12", + "numRecentReplies": 1, + "color": "#ffffff", + "post_count": 4176, + "parentCid": 3, + "disabled": 0, + "minTags": 0, + "maxTags": 5, + "isSection": 0, + "totalPostCount": 4176, + "totalTopicCount": 692, + "descriptionParsed": "You have a cool idea about NodeBB? Post it here.", + "tagWhitelist": [], + "unread-class": "unread", + "children": [], + "parent": { + "link": "", + "class": "col-lg-4 col-md-6 col-xs-12", + "icon": "fa-github", + "description": "Stay tuned here to hear more about new releases and features of NodeBB!", + "order": 3, + "topic_count": 1158, + "name": "NodeBB Development", + "cid": 3, + "post_count": 6760, + "numRecentReplies": 1, + "bgColor": "#4fc3f7", + "slug": "3/nodebb-development", + "color": "#ffffff", + "disabled": 0, + "descriptionParsed": "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", + "isSection": 0, + "minTags": 0, + "maxTags": 5, + "parentCid": 0, + "totalPostCount": 6760, + "totalTopicCount": 1158, + "tagWhitelist": [], + "unread-class": "unread" + }, + "posts": [{ + "pid": 80380, + "timestamp": 1605820679025, + "content": "

@julian if this makes sense to you, do you think this can be a part of \"canned responses\" plugin?

\n", + "timestampISO": "2020-11-19T21:17:59.025Z", + "user": { + "uid": 16848, + "username": "crazycells", + "userslug": "crazycells", + "picture": "https://i.imgur.com/fnkHctr.png", + "displayname": "crazycells", + "icon:text": "C", + "icon:bgColor": "#009688" + }, + "index": 2, + "cid": 5, + "parentCid": 3, + "topic": { + "slug": "15137/canned-explanations-reasons-for-user-ban", + "title": "canned explanations(reasons) for user ban" + } + }] + }] + } + ], + "topics": [ + { + "cid": 13, + "lastposttime": 1606632795076, + "mainPid": 17647, + "postcount": 1, + "slug": "8917/hello-this-is-my-new-post", + "tid": 8917, + "timestamp": 1606632795069, + "title": "Hello this is my new post", + "uid": 104, + "viewcount": 1, + "deleted": 0, + "locked": 0, + "pinned": 0, + "upvotes": 0, + "downvotes": 0, + "deleterUid": 0, + "titleRaw": "Hello this is my new post", + "timestampISO": "2020-11-29T06:53:15.069Z", + "lastposttimeISO": "2020-11-29T06:53:15.076Z", + "votes": 0, + "teaserPid": null, + "category": { + "cid": 13, + "name": "Administration", + "slug": "13/administration", + "icon": "fa-comments", + "backgroundImage": null, + "imageClass": "cover", + "bgColor": "#DC9656", + "color": "#fff", + "disabled": 0 + }, + "user": { + "uid": 104, + "username": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + "fullname": "arunkumar pilli", + "userslug": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + "reputation": 0, + "postcount": 1, + "picture": null, + "signature": null, + "banned": 0, + "status": "online", + "icon:text": "5", + "icon:bgColor": "#1b5e20", + "banned_until_readable": "Not Banned" + }, + "teaser": { + "pid": 17647, + "uid": 104, + "timestamp": 1606632795076, + "tid": 8917, + "content": "adding new post in igot discussions\n", + "timestampISO": "2020-11-29T06:53:15.076Z", + "user": { + "uid": 104, + "username": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + "userslug": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + "picture": null, + "icon:text": "5", + "icon:bgColor": "#1b5e20" + }, + "index": 1 + }, + "tags": [], + "isOwner": false, + "ignored": false, + "unread": true, + "bookmark": 3, + "unreplied": false, + "icons": [], + "index": 0 + }, + { + "cid": 9, + "lastposttime": 1606297869195, + "mainPid": 17635, + "postcount": 5, + "slug": "8912/why-is-bangalore-s-infrastructure-bad", + "tid": 8912, + "timestamp": 1606134890874, + "title": "Why is Bangalore's infrastructure bad?", + "uid": 113, + "viewcount": 36, + "downvotes": 0, + "upvotes": 2, + "teaserPid": 17646, + "deleted": 0, + "locked": 0, + "pinned": 0, + "deleterUid": 0, + "titleRaw": "Why is Bangalore's infrastructure bad?", + "timestampISO": "2020-11-23T12:34:50.874Z", + "lastposttimeISO": "2020-11-25T09:51:09.195Z", + "votes": 2, + "category": { + "cid": 9, + "name": "Infrastructure", + "slug": "9/infrastructure", + "icon": "fa-comments", + "backgroundImage": null, + "imageClass": "cover", + "bgColor": "#86C1B9", + "color": "#333", + "disabled": 0 + }, + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "fullname": "Manimegalai Mohan", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "reputation": 3, + "postcount": 16, + "picture": null, + "signature": null, + "banned": 0, + "status": "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + "banned_until_readable": "Not Banned" + }, + "teaser": { + "pid": 17635, + "uid": 113, + "timestamp": 1606134890882, + "tid": 8912, + "content": "Why is Bangalore's infrastructure bad?\n", + "timestampISO": "2020-11-23T12:34:50.882Z", + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "picture": null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + "index": 1 + }, + "tags": [], + "isOwner": false, + "ignored": false, + "unread": true, + "bookmark": 7, + "unreplied": false, + "icons": [], + "index": 1 + }, + { + "cid": 13, + "lastposttime": 1606201083049, + "mainPid": 17645, + "postcount": 1, + "slug": "8916/origin-of-solar-system", + "tid": 8916, + "timestamp": 1606201083043, + "title": "Origin of Solar system", + "uid": 113, + "viewcount": 10, + "deleted": 0, + "locked": 0, + "pinned": 0, + "upvotes": 0, + "downvotes": 0, + "deleterUid": 0, + "titleRaw": "Origin of Solar system", + "timestampISO": "2020-11-24T06:58:03.043Z", + "lastposttimeISO": "2020-11-24T06:58:03.049Z", + "votes": 0, + "teaserPid": null, + "category": { + "cid": 13, + "name": "Administration", + "slug": "13/administration", + "icon": "fa-comments", + "backgroundImage": null, + "imageClass": "cover", + "bgColor": "#DC9656", + "color": "#fff", + "disabled": 0 + }, + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "fullname": "Manimegalai Mohan", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "reputation": 3, + "postcount": 16, + "picture": null, + "signature": null, + "banned": 0, + "status": "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + "banned_until_readable": "Not Banned" + }, + "teaser": { + "pid": 17645, + "uid": 113, + "timestamp": 1606201083049, + "tid": 8916, + "content": "Solar system\n", + "timestampISO": "2020-11-24T06:58:03.049Z", + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "picture": null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + "index": 1 + }, + "tags": [], + "isOwner": false, + "ignored": false, + "unread": true, + "bookmark": 3, + "unreplied": false, + "icons": [], + "index": 2 + }, + { + "cid": 11, + "lastposttime": 1606198830431, + "mainPid": 17644, + "postcount": 1, + "slug": "8915/who-opened-up-the-indian-economy", + "tid": 8915, + "timestamp": 1606198830424, + "title": "Who opened up the indian economy?", + "uid": 113, + "viewcount": 5, + "deleted": 0, + "locked": 0, + "pinned": 0, + "upvotes": 0, + "downvotes": 0, + "deleterUid": 0, + "titleRaw": "Who opened up the indian economy?", + "timestampISO": "2020-11-24T06:20:30.424Z", + "lastposttimeISO": "2020-11-24T06:20:30.431Z", + "votes": 0, + "teaserPid": null, + "category": { + "cid": 11, + "name": "Economy", + "slug": "11/economy", + "icon": "fa-comments", + "backgroundImage": null, + "imageClass": "cover", + "bgColor": "#F7CA88", + "color": "#333", + "disabled": 0 + }, + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "fullname": "Manimegalai Mohan", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "reputation": 3, + "postcount": 16, + "picture": null, + "signature": null, + "banned": 0, + "status": "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + "banned_until_readable": "Not Banned" + }, + "teaser": { + "pid": 17644, + "uid": 113, + "timestamp": 1606198830431, + "tid": 8915, + "content": "Who opened up the indian economy?\n", + "timestampISO": "2020-11-24T06:20:30.431Z", + "user": { + "uid": 113, + "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", + "picture": null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + "index": 1 + }, + "tags": [], + "isOwner": false, + "ignored": false, + "unread": true, + "bookmark": 3, + "unreplied": false, + "icons": [], + "index": 3 + }, + { + "cid": 11, + "lastposttime": 1606135442960, + "mainPid": 17637, + "postcount": 4, + "slug": "8914/how-covid-will-impact-indian-economy", + "tid": 8914, + "timestamp": 1606135371841, + "title": "How covid will impact indian economy ?", + "uid": 5, + "viewcount": 10, + "teaserPid": 17640, + "deleted": 0, + "locked": 0, + "pinned": 0, + "upvotes": 0, + "downvotes": 0, + "deleterUid": 0, + "titleRaw": "How covid will impact indian economy ?", + "timestampISO": "2020-11-23T12:42:51.841Z", + "lastposttimeISO": "2020-11-23T12:44:02.960Z", + "votes": 0, + "category": { + "cid": 11, + "name": "Economy", + "slug": "11/economy", + "icon": "fa-comments", + "backgroundImage": null, + "imageClass": "cover", + "bgColor": "#F7CA88", + "color": "#333", + "disabled": 0 + }, + "user": { + "uid": 5, + "username": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + "fullname": "Christopher F'des", + "userslug": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + "reputation": 8, + "postcount": 13, + "picture": null, + "signature": null, + "banned": 0, + "status": "offline", + "icon:text": "9", + "icon:bgColor": "#ff5722", + "banned_until_readable": "Not Banned" + }, + "teaser": { + "pid": 17637, + "uid": 5, + "timestamp": 1606135371849, + "tid": 8914, + "content": "How covid will impact indian economy ?\n", + "timestampISO": "2020-11-23T12:42:51.849Z", + "user": { + "uid": 5, + "username": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + "userslug": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + "picture": null, + "icon:text": "9", + "icon:bgColor": "#ff5722" + }, + "index": 1 + }, + "tags": [], + "isOwner": false, + "ignored": false, + "unread": true, + "bookmark": 6, + "unreplied": false, + "icons": [], + "index": 4 + } + ], + "ROUTES": { + "UCI": "/uci" + }, + "MENUOPTIONS": [ + { + "route": "uci", + "label": "Conversations", + "enable": true + } + ] +} diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs new file mode 100644 index 00000000000..bdfa2376588 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs @@ -0,0 +1,81 @@ +import { PipesModule } from '../pipes/pipes.module'; +import { UciService } from '../services/uci.service'; +import { ConfigService } from '../services/config.service'; +import { HttpClientModule } from '@angular/common/http'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SidePanelComponent } from './side-panel/side-panel.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { TagInputModule } from 'ngx-chips'; +import { ConversationListComponent } from './conversation-list/conversation-list.component'; +import { ConversationAddComponent } from './conversation-add/conversation-add.component'; +import { UserSegmentListComponent } from './user-segment-list/user-segment-list.component'; +import { CommonFormElementsModule } from '@project-sunbird/common-form-elements-full'; +import { UserSegmentAddComponent } from './user-segment-add/user-segment-add.component'; +import { SuiModule } from '@project-sunbird/ng2-semantic-ui'; +import { ConversationSuccessComponent } from './conversation-success/conversation-success.component'; +import { UciGraphQlService } from '../services/uci-graph-ql.service'; +import { TermsConditionsComponent } from './terms-conditions/terms-conditions.component'; +import * as i0 from "@angular/core"; +export class ComponentsModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [SidePanelComponent, + ConversationListComponent, + ConversationAddComponent, + UserSegmentListComponent, + UserSegmentAddComponent, + TermsConditionsComponent, + ConversationSuccessComponent], imports: [CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule], exports: [SidePanelComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, providers: [ + UciService, + ConfigService, + UciGraphQlService + ], imports: [CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + SidePanelComponent, + ConversationListComponent, + ConversationAddComponent, + UserSegmentListComponent, + UserSegmentAddComponent, + TermsConditionsComponent, + ConversationSuccessComponent + ], + imports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule, + ], + exports: [ + SidePanelComponent, + ], + providers: [ + UciService, + ConfigService, + UciGraphQlService + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDOztBQStCdkYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBM0JyQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4Qiw0QkFBNEIsYUFHNUIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLFNBQVMsYUFHVCxrQkFBa0I7Z0hBUWIsZ0JBQWdCLGFBTmQ7WUFDUCxVQUFVO1lBQ1YsYUFBYTtZQUNiLGlCQUFpQjtTQUNwQixZQWhCRyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFdBQVc7WUFDWCx3QkFBd0I7WUFDeEIsU0FBUzs7NEZBV0osZ0JBQWdCO2tCQTdCNUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3dCQUNsQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixTQUFTO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZXNNb2R1bGV9IGZyb20gJy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge1VjaVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3VjaS5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtIdHRwQ2xpZW50TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4vc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RhZ0lucHV0TW9kdWxlfSBmcm9tICduZ3gtY2hpcHMnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25MaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbnZlcnNhdGlvbi1saXN0L2NvbnZlcnNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnZlcnNhdGlvbkFkZENvbXBvbmVudH0gZnJvbSAnLi9jb252ZXJzYXRpb24tYWRkL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50JztcbmltcG9ydCB7VXNlclNlZ21lbnRMaXN0Q29tcG9uZW50fSBmcm9tICcuL3VzZXItc2VnbWVudC1saXN0L3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbkZvcm1FbGVtZW50c01vZHVsZX0gZnJvbSAnQHByb2plY3Qtc3VuYmlyZC9jb21tb24tZm9ybS1lbGVtZW50cy1mdWxsJztcbmltcG9ydCB7VXNlclNlZ21lbnRBZGRDb21wb25lbnR9IGZyb20gJy4vdXNlci1zZWdtZW50LWFkZC91c2VyLXNlZ21lbnQtYWRkLmNvbXBvbmVudCc7XG5pbXBvcnQge1N1aU1vZHVsZX0gZnJvbSAnQHByb2plY3Qtc3VuYmlyZC9uZzItc2VtYW50aWMtdWknO1xuaW1wb3J0IHtDb252ZXJzYXRpb25TdWNjZXNzQ29tcG9uZW50fSBmcm9tICcuL2NvbnZlcnNhdGlvbi1zdWNjZXNzL2NvbnZlcnNhdGlvbi1zdWNjZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQge1VjaUdyYXBoUWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy91Y2ktZ3JhcGgtcWwuc2VydmljZSc7XG5pbXBvcnQge1Rlcm1zQ29uZGl0aW9uc0NvbXBvbmVudH0gZnJvbSAnLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2lkZVBhbmVsQ29tcG9uZW50LFxuICAgICAgICBDb252ZXJzYXRpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICBDb252ZXJzYXRpb25BZGRDb21wb25lbnQsXG4gICAgICAgIFVzZXJTZWdtZW50TGlzdENvbXBvbmVudCxcbiAgICAgICAgVXNlclNlZ21lbnRBZGRDb21wb25lbnQsXG4gICAgICAgIFRlcm1zQ29uZGl0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgQ29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUYWdJbnB1dE1vZHVsZSxcbiAgICAgICAgUGlwZXNNb2R1bGUsXG4gICAgICAgIENvbW1vbkZvcm1FbGVtZW50c01vZHVsZSxcbiAgICAgICAgU3VpTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTaWRlUGFuZWxDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVWNpU2VydmljZSxcbiAgICAgICAgQ29uZmlnU2VydmljZSxcbiAgICAgICAgVWNpR3JhcGhRbFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUge1xufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs new file mode 100644 index 00000000000..5da3f659d66 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs @@ -0,0 +1,376 @@ +import { Component, ViewChild } from '@angular/core'; +import { Validators } from '@angular/forms'; +import moment from 'moment/moment'; +import { debounceTime } from 'rxjs/operators'; +import * as i0 from "@angular/core"; +import * as i1 from "../../services/uci.service"; +import * as i2 from "@angular/router"; +import * as i3 from "@angular/forms"; +import * as i4 from "../../services/global.service"; +import * as i5 from "@angular/common"; +import * as i6 from "@project-sunbird/ng2-semantic-ui"; +import * as i7 from "../user-segment-list/user-segment-list.component"; +import * as i8 from "../user-segment-add/user-segment-add.component"; +import * as i9 from "../terms-conditions/terms-conditions.component"; +export class ConversationAddComponent { + constructor(uciService, router, activatedRoute, fb, globalService) { + this.uciService = uciService; + this.router = router; + this.activatedRoute = activatedRoute; + this.fb = fb; + this.globalService = globalService; + this.currentViewState = 'ADD_CONVERSATION'; + this.stepIndex = 1; + this.selectedLogic = []; + this.userSegments = []; + this.column = ''; + this.sortDirection = ''; + this.reverse = false; + this.collectionListModal = false; + this.isLoaderShow = false; + this.isModalLoaderShow = false; + this.logicFormRequest = {}; + this.isCheckedTermCondition = false; + this.termsAndConditionModal = false; + this.verifyAllItemsModal = false; + this.startMinDate = new Date(); + this.Appropriateness = [ + { + text: 'No Hate speech, Abuse, Violence, Profanity', + checks: false + }, + { + text: 'No Sexual content, Nudity or Vulgarity', + checks: false + }, + { + text: 'No Discrimination or Defamation', + checks: false + }, + { + text: 'Is suitable for children', + checks: false + } + ]; + this.contentDetails = [ + { + text: 'Appropriate Title, Description', + checks: false + }, + { + text: 'Correct Board, Grade, Subject, Medium', + checks: false + }, + { + text: 'Appropriate tags such as Resource Type, Concepts', + checks: false + }, + { + text: 'Relevant keywords', + checks: false + } + ]; + this.usability = [ + { + text: 'Content plays correctly', + checks: false + }, + { + text: 'Can see the content clearly on Desktop and App', + checks: false + }, + { + text: 'Audio (if any) is clear and easy to understand', + checks: false + }, + { + text: 'No spelling mistakes in the text', + checks: false + }, + { + text: 'Language is simple to understand', + checks: false + } + ]; + this.odkFileAlreadyExist = false; + this.isStartingMessageExist = false; + const tempDate = moment().add(1, 'days').format('YYYY-MM-DD'); + this.endMinDate = new Date(tempDate); + } + ngOnInit() { + this.user = this.globalService.getUser(); + if (!this.user) { + this.router.navigate(['uci-admin']); + return; + } + this.conversationForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + purpose: ['', Validators.required], + startingMessage: ['', Validators.required], + startDate: [null], + endDate: [null], + status: ['Draft'] + }); + this.logicForm = this.fb.group({ + id: [null], + name: ['', Validators.required], + description: [''], + formId: ['', Validators.required] + }); + // Edit case + this.conversationId = this.activatedRoute.snapshot.paramMap.get('id'); + if (this.conversationId) { + this.getUserSegmentDetail(); + } + // start date and end date value change + this.conversationForm.get('startDate').valueChanges.subscribe(val => { + this.conversationForm.get('endDate').patchValue(null); + const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD'); + this.endMinDate = new Date(tempDate); + }); + this.conversationForm.get('startingMessage').valueChanges + .pipe(debounceTime(1000)) + .subscribe(value => { + this.onStarringMessageChange(); + }); + } + userSegment() { + this.currentViewState = 'SELECT_SEGMENT'; + } + onUserSegmentCancel() { + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentAddClick() { + this.currentViewState = 'ADD_SEGMENT'; + } + onUserSegmentAdd(segments) { + this.userSegments = segments; + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentCreate(segment) { + this.userSegments.push(segment); + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentDelete(index) { + this.userSegments.splice(index, 1); + } + nextStep() { + if (this.stepIndex === 1 && this.conversationForm.valid) { + this.stepIndex = 2; + } + } + backToStepOne() { + if (this.stepIndex === 2) { + this.stepIndex = 1; + } + } + onAddCancel() { + this.router.navigate(['uci-admin']); + } + onSubmit(isTriggerBot = false) { + const reqObj = { + ...this.conversationForm.value, + users: [], + logic: [] + }; + this.userSegments.forEach(userSegment => { + reqObj.users.push(userSegment.id); + }); + this.selectedLogic.forEach(logic => { + reqObj.logic.push(logic.id); + }); + this.isLoaderShow = true; + if (this.conversationId) { + this.uciService.botUpdate(this.conversationId, { data: reqObj }).subscribe(data => { + this.closeVerifyModal(); + this.isLoaderShow = false; + this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: this.conversationId } }); + }, error => { + this.isLoaderShow = false; + this.verifyAllItemsModal = true; + }); + } + else { + this.uciService.botCreate({ data: reqObj }).subscribe((data) => { + if (isTriggerBot) { + this.startConversation(data.data); + } + else { + this.closeVerifyModal(); + this.isLoaderShow = false; + this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: data.data.id } }); + } + }, error => { + this.isLoaderShow = false; + this.verifyAllItemsModal = true; + }); + } + } + startConversation(bot) { + this.uciService.startConversation(bot.id).subscribe(data => { + this.isLoaderShow = false; + this.closeVerifyModal(); + this.router.navigate(['uci-admin/success'], { + queryParams: { + text: this.conversationForm.value.startingMessage, + botId: bot.id + } + }); + }, error => { + this.verifyAllItemsModal = true; + this.isLoaderShow = false; + }); + } + closeVerifyModal() { + if (this.verifyAllModal) { + this.verifyAllModal.deny('denied'); + } + this.verifyAllItemsModal = false; + } + openModel() { + this.logicFormRequest = {}; + this.collectionListModal = true; + this.logicForm.reset(); + this.fileErrorStatus = null; + this.isStartingMessageExist = false; + } + openTermAndConditionModel() { + this.termsAndConditionModal = true; + } + openItemsVerifyModal(isSubmitBtn) { + this.verifyAllItemsModal = true; + this.isSubmit = isSubmitBtn; + } + onLogicAdd() { + const reqData = { + ...this.logicForm.value, + transformers: [ + { + id: 'bbf56981-b8c9-40e9-8067-468c2c753659', + meta: { + form: 'https://hosted.my.form.here.com', + formID: this.logicForm.value.formId + } + } + ], + adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324' + }; + this.isModalLoaderShow = true; + if (this.logicForm.get('id').value) { + this.uciService.updateLogic(this.logicForm.get('id').value, { data: reqData }).subscribe((data) => { + this.isModalLoaderShow = false; + const existingLogic = reqData; + delete existingLogic.id; + this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic); + }, error => { + this.isModalLoaderShow = false; + }); + } + else { + this.uciService.createLogic({ data: reqData }).subscribe((data) => { + this.isModalLoaderShow = false; + const existingLogic = reqData; + delete existingLogic.id; + this.selectedLogic.push({ + id: data.data.id, + ...existingLogic, + }); + }, error => { + this.isModalLoaderShow = false; + }); + } + } + getEditLogicData(item, index) { + if (item.id) { + this.selectedLogicIndex = index; + this.logicForm.patchValue({ + id: item.id, + name: item.name, + description: item.description, + formId: item.transformers[0].meta.formID + }); + } + } + onFileUpload(event) { + if (!event.target.files.length) { + return; + } + const file = event.target.files[0]; + const obj = { + form: file + }; + this.logicForm.patchValue({ formId: '' }); + this.isModalLoaderShow = true; + this.uciService.uploadFile(obj).subscribe((fileInfo) => { + if (fileInfo.result?.data) { + this.logicForm.patchValue({ formId: fileInfo.result?.data }); + } + this.isModalLoaderShow = false; + this.odkFileAlreadyExist = false; + }, error => { + this.isModalLoaderShow = false; + this.odkFileAlreadyExist = true; + this.fileErrorStatus = error.error.status; + }); + } + onDelete(logic, index) { + this.uciService.deleteLogic(logic.id).subscribe(file => { + this.selectedLogic.splice(index, 1); + }); + } + getUserSegmentDetail() { + this.uciService.getBotUserDetails(this.conversationId).subscribe((val) => { + if (val.data) { + this.conversationForm.patchValue({ + name: val.data.name, + description: val.data.description, + purpose: val.data.purpose, + startingMessage: val.data.startingMessage, + startDate: val.data.startDate ? val.data.startDate : '', + endDate: val.data.endDate ? val.data.endDate : '' + }); + if (val.data.userSegments) { + this.userSegments = val.data.userSegments; + } + if (val.data.logic) { + this.selectedLogic = val.data.logic; + } + } + }); + } + allCheck(isAllCheck = false) { + this.Appropriateness.forEach(val => { + val.checks = isAllCheck; + }); + this.contentDetails.forEach(val => { + val.checks = isAllCheck; + }); + this.usability.forEach(val => { + val.checks = isAllCheck; + }); + } + onStarringMessageChange() { + this.uciService.getCheckStartingMessage({ startingMessage: this.conversationForm.value.startingMessage }).subscribe(val => { + this.isStartingMessageExist = true; + }, error => { + this.isStartingMessageExist = false; + }); + } + manualDownload() { + window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank'); + } + sampleODKDownload() { + window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank'); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, deps: [{ token: i1.UciService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationAddComponent, selector: "lib-conversation-add", viewQueries: [{ propertyName: "verifyAllModal", first: true, predicate: ["verifyAllModal"], descendants: true }], ngImport: i0, template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "directive", type: i6.SuiDatepickerDirective, selector: "[suiDatepicker]", inputs: ["pickerMode", "pickerInitialDate", "pickerMaxDate", "pickerMinDate", "pickerFirstDayOfWeek", "pickerLocaleOverrides", "pickerPlacement", "pickerTransition", "pickerTransitionDuration"], outputs: ["pickerSelectedDateChange", "pickerValidatorChange"] }, { kind: "directive", type: i6.SuiDatepickerDirectiveValueAccessor, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerDirectiveValidator, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerInputDirective, selector: "input[suiDatepicker]", inputs: ["pickerUseNativeOnMobile"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i7.UserSegmentListComponent, selector: "lib-user-segment-list", inputs: ["selectedUserSegments"], outputs: ["cancel", "add"] }, { kind: "component", type: i8.UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: ["cancel", "add"] }, { kind: "component", type: i9.TermsConditionsComponent, selector: "lib-terms-conditions" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-add', template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"] }] + }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.GlobalService }]; }, propDecorators: { verifyAllModal: [{ + type: ViewChild, + args: ['verifyAllModal'] + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLWFkZC9jb252ZXJzYXRpb24tYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tYWRkL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUF1QyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRixPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQU81QyxNQUFNLE9BQU8sd0JBQXdCO0lBc0ZqQyxZQUNZLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixFQUFzQixFQUN0QixhQUE0QjtRQUo1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF6RnhDLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUss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QUF1QjtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEgsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEdBQUcsMkNBQTJDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRixDQUFDOytHQTFaUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw4S0NkckMsd3VxQkF3WkE7OzRGRDFZYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksc0JBQXNCO2dOQUtILGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLWFkZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgndmVyaWZ5QWxsTW9kYWwnKSB2ZXJpZnlBbGxNb2RhbDtcbiAgICBjdXJyZW50Vmlld1N0YXRlID0gJ0FERF9DT05WRVJTQVRJT04nO1xuICAgIHN0ZXBJbmRleCA9IDE7XG4gICAgc2VsZWN0ZWRMb2dpYyA9IFtdO1xuICAgIHVzZXJTZWdtZW50cyA9IFtdO1xuICAgIGNvbHVtbiA9ICcnO1xuICAgIHNvcnREaXJlY3Rpb24gPSAnJztcbiAgICByZXZlcnNlID0gZmFsc2U7XG4gICAgY29sbGVjdGlvbkxpc3RNb2RhbCA9IGZhbHNlO1xuICAgIGlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgIGlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgbG9naWNGb3JtUmVxdWVzdCA9IHt9O1xuICAgIGlzQ2hlY2tlZFRlcm1Db25kaXRpb24gPSBmYWxzZTtcbiAgICBjb252ZXJzYXRpb25Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIGxvZ2ljRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0ZXJtc0FuZENvbmRpdGlvbk1vZGFsID0gZmFsc2U7XG4gICAgdmVyaWZ5QWxsSXRlbXNNb2RhbCA9IGZhbHNlO1xuICAgIGNvbnZlcnNhdGlvbklkO1xuICAgIHNlbGVjdGVkTG9naWNJbmRleDtcbiAgICBzdGFydE1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGVuZE1pbkRhdGU7XG4gICAgQXBwcm9wcmlhdGVuZXNzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTm8gSGF0ZSBzcGVlY2gsIEFidXNlLCBWaW9sZW5jZSwgUHJvZmFuaXR5JyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ05vIFNleHVhbCBjb250ZW50LCBOdWRpdHkgb3IgVnVsZ2FyaXR5JyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ05vIERpc2NyaW1pbmF0aW9uIG9yIERlZmFtYXRpb24nLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnSXMgc3VpdGFibGUgZm9yIGNoaWxkcmVuJyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfVxuICAgIF07XG4gICAgY29udGVudERldGFpbHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdBcHByb3ByaWF0ZSBUaXRsZSwgRGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnQ29ycmVjdCBCb2FyZCwgR3JhZGUsIFN1YmplY3QsIE1lZGl1bScsXG4gICAgICAgICAgICBjaGVja3M6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdBcHByb3ByaWF0ZSB0YWdzIHN1Y2ggYXMgUmVzb3VyY2UgVHlwZSwgQ29uY2VwdHMnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnUmVsZXZhbnQga2V5d29yZHMnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9XG4gICAgXTtcbiAgICB1c2FiaWxpdHkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdDb250ZW50IHBsYXlzIGNvcnJlY3RseScsXG4gICAgICAgICAgICBjaGVja3M6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdDYW4gc2VlIHRoZSBjb250ZW50IGNsZWFybHkgb24gRGVza3RvcCBhbmQgQXBwJyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ0F1ZGlvIChpZiBhbnkpIGlzIGNsZWFyIGFuZCBlYXN5IHRvIHVuZGVyc3RhbmQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTm8gc3BlbGxpbmcgbWlzdGFrZXMgaW4gdGhlIHRleHQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTGFuZ3VhZ2UgaXMgc2ltcGxlIHRvIHVuZGVyc3RhbmQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9XG4gICAgXTtcbiAgICBpc1N1Ym1pdDogYm9vbGVhbjtcbiAgICBvZGtGaWxlQWxyZWFkeUV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNTdGFydGluZ01lc3NhZ2VFeGlzdCA9IGZhbHNlO1xuICAgIGZpbGVFcnJvclN0YXR1cztcbiAgICB1c2VyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHRlbXBEYXRlID0gbW9tZW50KCkuYWRkKDEsICdkYXlzJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgICAgIHRoaXMuZW5kTWluRGF0ZSA9IG5ldyBEYXRlKHRlbXBEYXRlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51c2VyID0gdGhpcy5nbG9iYWxTZXJ2aWNlLmdldFVzZXIoKTtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluJ10pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgcHVycG9zZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHN0YXJ0aW5nTWVzc2FnZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogW251bGxdLFxuICAgICAgICAgICAgZW5kRGF0ZTogW251bGxdLFxuICAgICAgICAgICAgc3RhdHVzOiBbJ0RyYWZ0J11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2dpY0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGlkOiBbbnVsbF0sXG4gICAgICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICAgICAgICBmb3JtSWQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRWRpdCBjYXNlXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udmVyc2F0aW9uSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VXNlclNlZ21lbnREZXRhaWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHN0YXJ0IGRhdGUgYW5kIGVuZCBkYXRlIHZhbHVlIGNoYW5nZVxuICAgICAgICB0aGlzLmNvbnZlcnNhdGlvbkZvcm0uZ2V0KCdzdGFydERhdGUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnNhdGlvbkZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRlID0gbW9tZW50KHZhbCkuYWRkKDEsICdkYXlzJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgICAgICAgICB0aGlzLmVuZE1pbkRhdGUgPSBuZXcgRGF0ZSh0ZW1wRGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybS5nZXQoJ3N0YXJ0aW5nTWVzc2FnZScpLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TdGFycmluZ01lc3NhZ2VDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHVzZXJTZWdtZW50KCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUgPSAnU0VMRUNUX1NFR01FTlQnO1xuICAgIH1cblxuICAgIG9uVXNlclNlZ21lbnRDYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfQ09OVkVSU0FUSU9OJztcbiAgICB9XG5cbiAgICBvblVzZXJTZWdtZW50QWRkQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfU0VHTUVOVCc7XG4gICAgfVxuXG4gICAgb25Vc2VyU2VnbWVudEFkZChzZWdtZW50cykge1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cyA9IHNlZ21lbnRzO1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUgPSAnQUREX0NPTlZFUlNBVElPTic7XG4gICAgfVxuXG4gICAgb25Vc2VyU2VnbWVudENyZWF0ZShzZWdtZW50KSB7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRzLnB1c2goc2VnbWVudCk7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfQ09OVkVSU0FUSU9OJztcbiAgICB9XG5cbiAgICBvblVzZXJTZWdtZW50RGVsZXRlKGluZGV4KSB7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgbmV4dFN0ZXAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBJbmRleCA9PT0gMSAmJiB0aGlzLmNvbnZlcnNhdGlvbkZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcEluZGV4ID0gMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tUb1N0ZXBPbmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBJbmRleCA9PT0gMikge1xuICAgICAgICAgICAgdGhpcy5zdGVwSW5kZXggPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BZGRDYW5jZWwoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluJ10pO1xuICAgIH1cblxuICAgIG9uU3VibWl0KGlzVHJpZ2dlckJvdCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHJlcU9iaiA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuY29udmVyc2F0aW9uRm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHVzZXJzOiBbXSxcbiAgICAgICAgICAgIGxvZ2ljOiBbXVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cy5mb3JFYWNoKHVzZXJTZWdtZW50ID0+IHtcbiAgICAgICAgICAgIHJlcU9iai51c2Vycy5wdXNoKHVzZXJTZWdtZW50LmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpYy5mb3JFYWNoKGxvZ2ljID0+IHtcbiAgICAgICAgICAgIHJlcU9iai5sb2dpYy5wdXNoKGxvZ2ljLmlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnZlcnNhdGlvbklkKSB7XG4gICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuYm90VXBkYXRlKHRoaXMuY29udmVyc2F0aW9uSWQsIHtkYXRhOiByZXFPYmp9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWZXJpZnlNb2RhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3VjaS1hZG1pbi9zdWNjZXNzJ10sIHtxdWVyeVBhcmFtczoge3RleHQ6IHJlcU9iai5zdGFydGluZ01lc3NhZ2UsIGJvdElkOiB0aGlzLmNvbnZlcnNhdGlvbklkfX0pO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbGxJdGVtc01vZGFsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmJvdENyZWF0ZSh7ZGF0YTogcmVxT2JqfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJpZ2dlckJvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydENvbnZlcnNhdGlvbihkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVZlcmlmeU1vZGFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd1Y2ktYWRtaW4vc3VjY2VzcyddLCB7cXVlcnlQYXJhbXM6IHt0ZXh0OiByZXFPYmouc3RhcnRpbmdNZXNzYWdlLCBib3RJZDogZGF0YS5kYXRhLmlkfX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXJ0Q29udmVyc2F0aW9uKGJvdCkge1xuICAgICAgICB0aGlzLnVjaVNlcnZpY2Uuc3RhcnRDb252ZXJzYXRpb24oYm90LmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWZXJpZnlNb2RhbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluL3N1Y2Nlc3MnXSwge1xuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5jb252ZXJzYXRpb25Gb3JtLnZhbHVlLnN0YXJ0aW5nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdElkOiBib3QuaWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbG9zZVZlcmlmeU1vZGFsKCkge1xuICAgICAgICBpZiAodGhpcy52ZXJpZnlBbGxNb2RhbCkge1xuICAgICAgICAgICAgdGhpcy52ZXJpZnlBbGxNb2RhbC5kZW55KCdkZW5pZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZlcmlmeUFsbEl0ZW1zTW9kYWwgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvcGVuTW9kZWwoKSB7XG4gICAgICAgIHRoaXMubG9naWNGb3JtUmVxdWVzdCA9IHt9O1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0TW9kYWwgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvZ2ljRm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmZpbGVFcnJvclN0YXR1cyA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNTdGFydGluZ01lc3NhZ2VFeGlzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9wZW5UZXJtQW5kQ29uZGl0aW9uTW9kZWwoKSB7XG4gICAgICAgIHRoaXMudGVybXNBbmRDb25kaXRpb25Nb2RhbCA9IHRydWU7XG4gICAgfVxuXG4gICAgb3Blbkl0ZW1zVmVyaWZ5TW9kYWwoaXNTdWJtaXRCdG46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy52ZXJpZnlBbGxJdGVtc01vZGFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGlzU3VibWl0QnRuO1xuICAgIH1cblxuICAgIG9uTG9naWNBZGQoKSB7XG4gICAgICAgIGNvbnN0IHJlcURhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmxvZ2ljRm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdiYmY1Njk4MS1iOGM5LTQwZTktODA2Ny00NjhjMmM3NTM2NTknLFxuICAgICAgICAgICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtOiAnaHR0cHM6Ly9ob3N0ZWQubXkuZm9ybS5oZXJlLmNvbScsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtSUQ6IHRoaXMubG9naWNGb3JtLnZhbHVlLmZvcm1JZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFkYXB0ZXI6ICc0NGE5ZGY3Mi0zZDdhLTRlY2UtOTRjNS05OGNmMjYzMDczMjQnXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmxvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS51cGRhdGVMb2dpYyh0aGlzLmxvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUsIHtkYXRhOiByZXFEYXRhfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ0xvZ2ljID0gcmVxRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGV4aXN0aW5nTG9naWMuaWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpY1t0aGlzLnNlbGVjdGVkTG9naWNJbmRleF0gPSBPYmplY3QuYXNzaWduKHRoaXMuc2VsZWN0ZWRMb2dpY1t0aGlzLnNlbGVjdGVkTG9naWNJbmRleF0sIGV4aXN0aW5nTG9naWMpO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuY3JlYXRlTG9naWMoe2RhdGE6IHJlcURhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTG9naWMgPSByZXFEYXRhO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgZXhpc3RpbmdMb2dpYy5pZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvZ2ljLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGRhdGEuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmV4aXN0aW5nTG9naWMsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGdldEVkaXRMb2dpY0RhdGEoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGl0ZW0uaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpY0luZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB0aGlzLmxvZ2ljRm9ybS5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JZDogaXRlbS50cmFuc2Zvcm1lcnNbMF0ubWV0YS5mb3JtSURcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25GaWxlVXBsb2FkKGV2ZW50KSB7XG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgIGZvcm06IGZpbGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2dpY0Zvcm0ucGF0Y2hWYWx1ZSh7Zm9ybUlkOiAnJ30pO1xuICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLnVwbG9hZEZpbGUob2JqKS5zdWJzY3JpYmUoKGZpbGVJbmZvOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZUluZm8ucmVzdWx0Py5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naWNGb3JtLnBhdGNoVmFsdWUoe2Zvcm1JZDogZmlsZUluZm8ucmVzdWx0Py5kYXRhfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2RhbExvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLm9ka0ZpbGVBbHJlYWR5RXhpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5vZGtGaWxlQWxyZWFkeUV4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVFcnJvclN0YXR1cyA9IGVycm9yLmVycm9yLnN0YXR1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShsb2dpYywgaW5kZXgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmRlbGV0ZUxvZ2ljKGxvZ2ljLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBmaWxlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTG9naWMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRVc2VyU2VnbWVudERldGFpbCgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmdldEJvdFVzZXJEZXRhaWxzKHRoaXMuY29udmVyc2F0aW9uSWQpLnN1YnNjcmliZSgodmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwuZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsLmRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHZhbC5kYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwdXJwb3NlOiB2YWwuZGF0YS5wdXJwb3NlLFxuICAgICAgICAgICAgICAgICAgICBzdGFydGluZ01lc3NhZ2U6IHZhbC5kYXRhLnN0YXJ0aW5nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiB2YWwuZGF0YS5zdGFydERhdGUgPyB2YWwuZGF0YS5zdGFydERhdGUgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZW5kRGF0ZTogdmFsLmRhdGEuZW5kRGF0ZSA/IHZhbC5kYXRhLmVuZERhdGUgOiAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh2YWwuZGF0YS51c2VyU2VnbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyU2VnbWVudHMgPSB2YWwuZGF0YS51c2VyU2VnbWVudHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWwuZGF0YS5sb2dpYykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTG9naWMgPSB2YWwuZGF0YS5sb2dpYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFsbENoZWNrKGlzQWxsQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLkFwcHJvcHJpYXRlbmVzcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICB2YWwuY2hlY2tzID0gaXNBbGxDaGVjaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGVudERldGFpbHMuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICAgICAgdmFsLmNoZWNrcyA9IGlzQWxsQ2hlY2s7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVzYWJpbGl0eS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICB2YWwuY2hlY2tzID0gaXNBbGxDaGVjaztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdGFycmluZ01lc3NhZ2VDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudWNpU2VydmljZS5nZXRDaGVja1N0YXJ0aW5nTWVzc2FnZSh7c3RhcnRpbmdNZXNzYWdlOiB0aGlzLmNvbnZlcnNhdGlvbkZvcm0udmFsdWUuc3RhcnRpbmdNZXNzYWdlfSkuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU3RhcnRpbmdNZXNzYWdlRXhpc3QgPSB0cnVlO1xuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU3RhcnRpbmdNZXNzYWdlRXhpc3QgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBtYW51YWxEb3dubG9hZCgpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5nbG9iYWxTZXJ2aWNlLmdldEJhc2VVcmwoKSArICcvVUNJJTIwXyUyME9ESyUyMEluc3RydWN0aW9uJTIwTWFudWFsLnBkZicsICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBzYW1wbGVPREtEb3dubG9hZCgpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5nbG9iYWxTZXJ2aWNlLmdldEJhc2VVcmwoKSArICcvU2FtcGxlX09ESy54bHN4JywgJ19ibGFuaycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImN1cnJlbnRWaWV3U3RhdGVcIj5cblxuICAgIDxsaWItdXNlci1zZWdtZW50LWFkZCAqbmdTd2l0Y2hDYXNlPVwiJ0FERF9TRUdNRU5UJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWwpPVwib25Vc2VyU2VnbWVudENhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZCk9XCJvblVzZXJTZWdtZW50Q3JlYXRlKCRldmVudClcIj5cbiAgICA8L2xpYi11c2VyLXNlZ21lbnQtYWRkPlxuXG4gICAgPGxpYi11c2VyLXNlZ21lbnQtbGlzdCAqbmdTd2l0Y2hDYXNlPVwiJ1NFTEVDVF9TRUdNRU5UJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsKT1cIm9uVXNlclNlZ21lbnRDYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkKT1cIm9uVXNlclNlZ21lbnRBZGQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRVc2VyU2VnbWVudHNdPVwidXNlclNlZ21lbnRzXCI+XG4gICAgPC9saWItdXNlci1zZWdtZW50LWxpc3Q+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInQUREX0NPTlZFUlNBVElPTidcIiBjbGFzcz1cInVjaS1hZGQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l4IHdpZGUgY29sdW1uIHByLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZvbnQtMC03NVwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGJhc2VsaW5lO1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjaXJjdWxhciB1aSBpY29uIGJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMC43NXJlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrVG9TdGVwT25lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2JsdWUtYmctd2hpdGUtdGV4dCc6IHN0ZXBJbmRleCA9PT0gMSwgJ2dyZWVuLWJnLXdoaXRlLXRleHQnOiBzdGVwSW5kZXggPT09IDJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNSBwdC0xMFwiPkNvbnZlcnNhdGlvbiBzZXR1cDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZSBtdC0yMCBtbC0yMCBtci0yMFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjaXJjdWxhciB1aSBpY29uIGJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMC43NXJlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYmx1ZS1iZy13aGl0ZS10ZXh0Jzogc3RlcEluZGV4ID09PSAyfVwiPjJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTUgcHQtMTAgZm9udC13ZWlnaHQtYm9sZFwiPkNvbnZlcnNhdGlvbiBmbG93PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXggd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RlcEluZGV4ID09PSAxOyBlbHNlIHN0cDJfYnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1mbG9hdGVkIHB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQWRkQ2FuY2VsKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNvbnZlcnNhdGlvbkZvcm0uaW52YWxpZCB8fCBpc1N0YXJ0aW5nTWVzc2FnZUV4aXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRTdGVwKClcIj4gTmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RwMl9idG4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdlbHZlIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiICpuZ0lmPVwiIWlzTG9hZGVyU2hvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2tUb1N0ZXBPbmUoKVwiPiBCYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiIChjbGljayk9XCJvcGVuSXRlbXNWZXJpZnlNb2RhbChmYWxzZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGVyU2hvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGVyU2hvdzsgZWxzZSBzdWJtaXRCdG4xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJtaXRCdG4xPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0NoZWNrZWRUZXJtQ29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuY29udmVyc2F0aW9uSWQgPyBvblN1Ym1pdCh0cnVlKSA6IG9wZW5JdGVtc1ZlcmlmeU1vZGFsKHRydWUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb252ZXJzYXRpb25JZCA/ICdVcGRhdGUnIDogJ1N1Ym1pdCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZXhhbXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpc0NoZWNrZWRUZXJtQ29uZGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgdC1hbmQtYy10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5UZXJtQW5kQ29uZGl0aW9uTW9kZWwoKVwiPiBJIGFncmVlIHRvIHRoZSByZXF1aXJlZCB0ZXJtcyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAxLXdyYXBwZXJcIiAqbmdJZj1cInN0ZXBJbmRleCA9PT0gMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uIGZvbnQtMS0yIGZvbnQtd2VpZ2h0LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgQWRkIG5ldyBjb252ZXJzYXRpb25cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uIHB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb252ZXJzYXRpb25Gb3JtXCIgY2xhc3M9XCJ1aSBmb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q29udmVyc2F0aW9uIG5hbWUgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkNvbnZlcnNhdGlvbiBkZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCI1XCIgbmFtZT1cImRlc2NyaXB0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlB1cnBvc2Ugb2YgdGhlIGNvbnZlcnNhdGlvbiA8c3VwPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgcHVycG9zZVwiIGZvcm1Db250cm9sTmFtZT1cInB1cnBvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlN0YXJ0aW5nIG1lc3NhZ2UgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3RhcnRpbmdNZXNzYWdlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRpbmdNZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiaXNTdGFydGluZ01lc3NhZ2VFeGlzdFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5UaGlzIHN0YXJ0aW5nIG1lc3NhZ2UgaGFzIGFscmVhZHkgYmVlbiB0YWtlbjwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TdGFydCBEYXRlIEFuZCBUaW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGxlZnQgaWNvbiBpbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjYWxlbmRhciBpY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN1aURhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIidkYXRldGltZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNaW5EYXRlXT1cInN0YXJ0TWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BpY2tlclVzZU5hdGl2ZU9uTW9iaWxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RW5kIERhdGUgQW5kIFRpbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgbGVmdCBpY29uIGlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNhbGVuZGFyIGljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3VpRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIidkYXRldGltZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNaW5EYXRlXT1cImVuZE1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJVc2VOYXRpdmVPbk1vYmlsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpeCB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8aDY+VXNlciBzZWdtZW50czwvaDY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMTBcIj57e3VzZXJTZWdtZW50cy5sZW5ndGh9fSBzZWdtZW50cyBhZGRlZDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l4IHdpZGUgY29sdW1uICByaWdodCBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblVzZXJTZWdtZW50QWRkQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBuZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwidXNlclNlZ21lbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENob29zZSBmcm9tIGV4aXN0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJTZWdtZW50cyAmJiB1c2VyU2VnbWVudHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSB0aHJlZSBjb2x1bW4gZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiICpuZ0Zvcj1cImxldCB1c2VyU2VnbWVudCBvZiB1c2VyU2VnbWVudHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZmx1aWQgY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJyaWdodCBmbG9hdGVkIGljb24gdHJhc2ggZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVXNlclNlZ21lbnREZWxldGUoaSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZXJTZWdtZW50Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGFcIj5Vc2VyIGNvdW50IHt7dXNlclNlZ21lbnQuY291bnR9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwMi13cmFwcGVyXCIgKm5nSWY9XCJzdGVwSW5kZXggPT09IDJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbiB3aWRlIGNvbHVtbiBmb250LTEtMiBmb250LXdlaWdodC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIENvbnZlcnNhdGlvbiBmbG93XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtbiByaWdodCBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTG9naWMgJiYgc2VsZWN0ZWRMb2dpYy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kZWwoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRkIExvZ2ljXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExvZ2ljICYmIHNlbGVjdGVkTG9naWMubGVuZ3RoIDw9IDA7IGVsc2Ugc2hvd1RhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d2VsdmUgd2lkZSBjb2x1bW4gY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMjUtcGVyIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW46IGF1dG87IHBhZGRpbmc6IDJyZW07XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIHNyYz1cImFzc2V0cy91Y2ktY29uc29sZS9pbWFnZXMvZW1wdHkuc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vIGxvZ2ljIEFkZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IG10LTEwXCIgKGNsaWNrKT1cIm9wZW5Nb2RlbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgbG9naWNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d2VsdmUgd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInVpIHRhYmxlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIGNlbnRlciBhbGlnbmVkIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGhyZWUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImZpdmUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJvbmUgd2lkZSBjZW50ZXIgYWxpZ25lZCBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cIlVwRm9yUmV2aWV3TGlzdEhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvZ2ljIG9mIHNlbGVjdGVkTG9naWM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+e3tpICsgMX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG9naWM/Lm5hbWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvZ2ljPy5kZXNjcmlwdGlvbn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBkcm9wZG93blwiIHN1aURyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWxsaXBzaXMgdmVydGljYWwgaWNvbiBlbGxpcHNpcy1pY29uIGRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgc3VpRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvcGVuTW9kZWwoKTsgZ2V0RWRpdExvZ2ljRGF0YShsb2dpYywgaSlcIj5FZGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvbkRlbGV0ZShsb2dpYywgaSlcIj5EZWxldGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPHN1aS1tb2RhbCAqbmdJZj1cImNvbGxlY3Rpb25MaXN0TW9kYWxcIiBbbXVzdFNjcm9sbF09XCJ0cnVlXCIgW2lzQ2xvc2FibGVdPVwiZmFsc2VcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcbiAgICAgICAgICAgY2xhc3M9XCJzYi1tb2RhbFwiIChkaXNtaXNzZWQpPVwidGhpcy5jb2xsZWN0aW9uTGlzdE1vZGFsID0gZmFsc2U7XCIgI21vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAge3tsb2dpY0Zvcm0uZ2V0KCdpZCcpLnZhbHVlID8gJyBVcGRhdGUnIDogJ0FkZCd9fSBDb252ZXJzYXRpb24gTG9naWNcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2ljRm9ybVwiIGNsYXNzPVwidWkgZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPk5hbWUgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPkRlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBuYW1lPVwiZGVzY3JpcHRpb25cIiBwbGFjZWhvbGRlcj1cIkVudGVyIGRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzIG0tMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZCBPREsgRm9ybSAoLnhtbCk8c3VwPjxpIGNsYXNzPVwiYXN0ZXJpc2sgaWNvbiBhc3Rlcmlzay1jb2xvclwiPjwvaT48L3N1cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHRleHQtcmlnaHQgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJteC0yMCBzYW1wbGUtZG93bmxvYWRcIiAoY2xpY2spPVwibWFudWFsRG93bmxvYWQoKVwiPkluc3RydWN0aW9uIE1hbnVhbDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1sLTEgc2FtcGxlLWRvd25sb2FkXCIgKGNsaWNrKT1cInNhbXBsZU9ES0Rvd25sb2FkKClcIj5TYW1wbGUgT0RLIEZvcm0gKC54bHN4KTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBwbGFjZWhvbGRlcj1cIkJyb3dzZSBYTUwgRmlsZS4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiBhY2NlcHQ9XCIueG1sXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwib2RrRmlsZUFscmVhZHlFeGlzdFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj57e2ZpbGVFcnJvclN0YXR1c319PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9kYWxMb2FkZXJTaG93OyBlbHNlIG1vZGFsQnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtb2RhbEJ0bj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeVwiIChjbGljayk9XCJvbkxvZ2ljQWRkKCk7bW9kYWwuZGVueSgnZGVuaWVkJylcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9naWNGb3JtLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICB7e2xvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUgPyAnIFVwZGF0ZScgOiAnQWRkJ319XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtb2RhbC5kZW55KCdkZW5pZWQnKTtpc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO2xvZ2ljRm9ybS5wYXRjaFZhbHVlKHtmb3JtSWQ6ICcnfSk7XCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3N1aS1tb2RhbD5cblxuPHN1aS1tb2RhbCAqbmdJZj1cInRlcm1zQW5kQ29uZGl0aW9uTW9kYWxcIiBbbXVzdFNjcm9sbF09XCJ0cnVlXCIgW2lzQ2xvc2FibGVdPVwiZmFsc2VcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcbiAgICAgICAgICAgY2xhc3M9XCJzYi1tb2RhbFwiIChkaXNtaXNzZWQpPVwidGhpcy50ZXJtc0FuZENvbmRpdGlvbk1vZGFsID0gZmFsc2VcIiAjbW9kYWw+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgICAgICBUZXJtcyBhbmQgQ29uZGl0aW9uc1xuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgIDxsaWItdGVybXMtY29uZGl0aW9ucz48L2xpYi10ZXJtcy1jb25kaXRpb25zPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuZGVueSgnZGVuaWVkJyk7XCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3N1aS1tb2RhbD5cbjxzdWktbW9kYWwgKm5nSWY9XCJ2ZXJpZnlBbGxJdGVtc01vZGFsXCIgW211c3RTY3JvbGxdPVwidHJ1ZVwiIFtpc0Nsb3NhYmxlXT1cImZhbHNlXCIgW3RyYW5zaXRpb25EdXJhdGlvbl09XCIwXCJcbiAgICAgICAgICAgW3NpemVdPVwiJ2xhcmdlJ1wiXG4gICAgICAgICAgIGNsYXNzPVwic2ItbW9kYWxcIiAoZGlzbWlzc2VkKT1cInRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IGZhbHNlXCIgI3ZlcmlmeUFsbE1vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgPGg0PlxuICAgICAgICAgICAgUGxlYXNlIGNvbmZpcm0gdGhhdCBBTEwgdGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgdmVyaWZpZWQgKGJ5IHRpY2tpbmcgdGhlIGNoZWNrLWJveGVzKSBiZWZvcmUgeW91IGNhbiBzdWJtaXQ6XG4gICAgICAgIDwvaDQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3VyIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoND5BcHByb3ByaWF0ZW5lc3M8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgQXBwcm9wcmlhdGVuZXNzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIidhcHByb3ByaWF0ZW5lc3MnICsgaVwiIFsobmdNb2RlbCldPVwibGlzdC5jaGVja3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gcGwtMCBwYi0wIGxpbmUtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2xpc3QudGV4dH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm91ciB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+Q29udGVudCBEZXRhaWxzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiICpuZ0Zvcj1cImxldCBsaXN0IG9mIGNvbnRlbnREZXRhaWxzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIidjb250ZW50RGV0YWlscycgKyBpXCIgWyhuZ01vZGVsKV09XCJsaXN0LmNoZWNrc1wiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbiB3aWRlIGNvbHVtbiBwbC0wIHBiLTAgbGluZS1oZWlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7bGlzdC50ZXh0fX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3VyIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoND5Vc2FiaWxpdHk8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgdXNhYmlsaXR5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIid1c2FiaWxpdHknICsgaVwiIFsobmdNb2RlbCldPVwibGlzdC5jaGVja3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gcGwtMCBwYi0wIGxpbmUtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2xpc3QudGV4dH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclNob3c7IGVsc2Ugc3VibWl0QnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJtaXRCdG4+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNTdWJtaXRcIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KHRydWUpO1wiPlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzU3VibWl0XCIgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdChmYWxzZSk7XCI+XG4gICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWxsQ2hlY2soZmFsc2UpOyB2ZXJpZnlBbGxNb2RhbC5kZW55KCdkZW5pZWQnKTtcIj5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IGFsbENoZWNrQnRuXCIgKGNsaWNrKT1cImFsbENoZWNrKHRydWUpXCI+XG4gICAgICAgICAgICBDb25maXJtIEFsbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvc3VpLW1vZGFsPlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs new file mode 100644 index 00000000000..b802fbe18be --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs @@ -0,0 +1,120 @@ +import { Component } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "../../services/uci.service"; +import * as i2 from "@angular/router"; +import * as i3 from "../../services/global.service"; +import * as i4 from "@angular/common"; +import * as i5 from "@angular/forms"; +import * as i6 from "@project-sunbird/ng2-semantic-ui"; +export class ConversationListComponent { + constructor(uciService, router, globalService) { + this.uciService = uciService; + this.router = router; + this.globalService = globalService; + this.chatBots = []; + this.pager = { + totalItems: 0, + currentPage: 1, + pageSize: 10, + totalPages: 0, + startPage: 0, + endPage: 0, + startIndex: 0, + endIndex: 0, + pages: [] + }; + this.pageNumber = 1; + this.column = ''; + this.sortDirection = ''; + this.reverse = false; + } + ngOnInit() { + this.user = this.globalService.getUser(); + if (!this.user) { + this.router.navigate(['uci-admin']); + return; + } + this.getAllChatBots(); + } + getAllChatBots() { + const param = { + page: this.pager.currentPage, + perPage: this.pager.pageSize + }; + if (this.search) { + param.name = this.search; + this.uciService.searchConversation(param).subscribe(data => this.parseConversations(data)); + } + else { + this.uciService.fetchConversation(param).subscribe(data => this.parseConversations(data)); + } + } + parseConversations(data) { + this.chatBots = []; + data.data.forEach(bot => { + const obj = { ...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft' }; + obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft'; + const segmentNames = []; + bot.userSegments.forEach(userSegment => { + segmentNames.push(userSegment.name); + obj.userCount += (userSegment.count || 0); + }); + obj.segmentText = segmentNames.join(', '); + this.chatBots.push(obj); + }); + this.pager.totalItems = data.total; + this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); + this.pager.pages = []; + let i = 1; + while (i <= Math.ceil(data.total / this.pager.pageSize)) { + this.pager.pages.push(i); + i++; + } + } + sortColumns(column) { + this.column = column; + this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc'; + this.reverse = !this.reverse; + } + navigateToPage(page) { + if (page < 1 || page > this.pager.totalPages) { + return; + } + this.pageNumber = page; + this.pager.currentPage = page; + this.getAllChatBots(); + } + getSearch() { + this.getAllChatBots(); + } + onAddNew() { + this.router.navigateByUrl('uci-admin/add'); + } + onEdit(conversation) { + this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`); + } + onStatusChange(conversation, index) { + if (conversation.status === 'Live') { + this.uciService.pauseConversation(conversation.id).subscribe(data => { + this.chatBots[index].status = 'Disabled'; + }); + } + else { + this.uciService.startConversation(conversation.id).subscribe(data => { + this.chatBots[index].status = 'Live'; + }); + } + } + onDelete(conversation, index) { + this.uciService.deleteConversation(conversation.id).subscribe(data => { + this.chatBots.splice(index, 1); + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, deps: [{ token: i1.UciService }, { token: i2.Router }, { token: i3.GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationListComponent, selector: "lib-conversation-list", ngImport: i0, template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-list', template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"] }] + }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }, { type: i3.GlobalService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi1saXN0L2NvbnZlcnNhdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tbGlzdC9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVVoRCxNQUFNLE9BQU8seUJBQXlCO0lBb0JsQyxZQUNZLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxhQUE0QjtRQUY1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRCeEMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFVBQUssR0FBUTtZQUNULFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFTaEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FB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QyxNQUFNLEdBQUcsVUFBVSxDQUFDO1lBQzdDLENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDeEQsSUFBSSxDQUFDLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3pDLENBQUMsQ0FDSixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQVksRUFBRSxLQUFLO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDekQsSUFBSSxDQUFDLEVBQUU7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDOytHQWhJUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw2RENWdEMsdW5JQXFGQTs7NEZEM0VhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0dsb2JhbFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLWxpc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNoYXRCb3RzID0gW107XG4gICAgcGFnZXI6IGFueSA9IHtcbiAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgICAgc3RhcnRQYWdlOiAwLFxuICAgICAgICBlbmRQYWdlOiAwLFxuICAgICAgICBzdGFydEluZGV4OiAwLFxuICAgICAgICBlbmRJbmRleDogMCxcbiAgICAgICAgcGFnZXM6IFtdXG4gICAgfTtcbiAgICBwYWdlTnVtYmVyID0gMTtcbiAgICBjb2x1bW4gPSAnJztcbiAgICBzb3J0RGlyZWN0aW9uID0gJyc7XG4gICAgcmV2ZXJzZSA9IGZhbHNlO1xuICAgIHF1ZXJ5UGFyYW1zOiBhbnk7XG4gICAgc2VhcmNoO1xuICAgIHVzZXI7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLmdsb2JhbFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgICBpZiAoIXRoaXMudXNlcikge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd1Y2ktYWRtaW4nXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIGdldEFsbENoYXRCb3RzKCkge1xuICAgICAgICBjb25zdCBwYXJhbTogYW55ID0ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlci5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGFnZXIucGFnZVNpemVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgICAgICAgICAgIHBhcmFtLm5hbWUgPSB0aGlzLnNlYXJjaDtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5zZWFyY2hDb252ZXJzYXRpb24ocGFyYW0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBkYXRhID0+IHRoaXMucGFyc2VDb252ZXJzYXRpb25zKGRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmZldGNoQ29udmVyc2F0aW9uKHBhcmFtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB0aGlzLnBhcnNlQ29udmVyc2F0aW9ucyhkYXRhKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcGFyc2VDb252ZXJzYXRpb25zKGRhdGEpIHtcbiAgICAgICAgdGhpcy5jaGF0Qm90cyA9IFtdO1xuICAgICAgICBkYXRhLmRhdGEuZm9yRWFjaChib3QgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gey4uLmJvdCwgc2VnbWVudFRleHQ6ICcnLCB1c2VyQ291bnQ6IDAsIHN0YXR1czogYm90LnN0YXR1cyB8fCAnRHJhZnQnfTtcbiAgICAgICAgICAgIG9iai5zdGF0dXMgPSBib3Quc3RhdHVzID09PSAnZW5hYmxlZCcgPyAnTGl2ZScgOiBib3Quc3RhdHVzID09PSAnZGlzYWJsZWQnID8gJ0Rpc2FibGVkJyA6ICdEcmFmdCc7XG4gICAgICAgICAgICBjb25zdCBzZWdtZW50TmFtZXMgPSBbXTtcbiAgICAgICAgICAgIGJvdC51c2VyU2VnbWVudHMuZm9yRWFjaCh1c2VyU2VnbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgc2VnbWVudE5hbWVzLnB1c2godXNlclNlZ21lbnQubmFtZSk7XG4gICAgICAgICAgICAgICAgb2JqLnVzZXJDb3VudCArPSAodXNlclNlZ21lbnQuY291bnQgfHwgMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9iai5zZWdtZW50VGV4dCA9IHNlZ21lbnROYW1lcy5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYXRCb3RzLnB1c2gob2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFnZXIudG90YWxJdGVtcyA9IGRhdGEudG90YWw7XG4gICAgICAgIHRoaXMucGFnZXIudG90YWxQYWdlcyA9IE1hdGguY2VpbChkYXRhLnRvdGFsIC8gdGhpcy5wYWdlci5wYWdlU2l6ZSk7XG4gICAgICAgIHRoaXMucGFnZXIucGFnZXMgPSBbXTtcbiAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICB3aGlsZSAoaSA8PSBNYXRoLmNlaWwoZGF0YS50b3RhbCAvIHRoaXMucGFnZXIucGFnZVNpemUpKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VyLnBhZ2VzLnB1c2goaSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzb3J0Q29sdW1ucyhjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgICAgICAgdGhpcy5yZXZlcnNlID0gIXRoaXMucmV2ZXJzZTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvUGFnZShwYWdlOiBudW1iZXIpOiB1bmRlZmluZWQgfCB2b2lkIHtcbiAgICAgICAgaWYgKHBhZ2UgPCAxIHx8IHBhZ2UgPiB0aGlzLnBhZ2VyLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2VyLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIGdldFNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIG9uQWRkTmV3KCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCd1Y2ktYWRtaW4vYWRkJyk7XG4gICAgfVxuXG4gICAgb25FZGl0KGNvbnZlcnNhdGlvbikge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGB1Y2ktYWRtaW4vJHtjb252ZXJzYXRpb24uaWR9L2VkaXRgKTtcbiAgICB9XG5cbiAgICBvblN0YXR1c0NoYW5nZShjb252ZXJzYXRpb24sIGluZGV4KSB7XG4gICAgICAgIGlmIChjb252ZXJzYXRpb24uc3RhdHVzID09PSAnTGl2ZScpIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5wYXVzZUNvbnZlcnNhdGlvbihjb252ZXJzYXRpb24uaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGF0Qm90c1tpbmRleF0uc3RhdHVzID0gJ0Rpc2FibGVkJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLnN0YXJ0Q29udmVyc2F0aW9uKGNvbnZlcnNhdGlvbi5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXRCb3RzW2luZGV4XS5zdGF0dXMgPSAnTGl2ZSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGVsZXRlKGNvbnZlcnNhdGlvbiwgaW5kZXgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmRlbGV0ZUNvbnZlcnNhdGlvbihjb252ZXJzYXRpb24uaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhdEJvdHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInVjaS1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Itc2VhcmNoLWJveCBiLTAgbWwtMCBsYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1kaXYgcmVsYXRpdmVcIiBpZD1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIGNsYXNzPVwic2VhcmNoIGljb25cIiBzcmM9XCJhc3NldHMvaW1hZ2VzL3NlYXJjaC1pY29uLnN2Z1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzYi1zZWFyY2gtaW5wdXQgZGlzYWJsZWQgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lXCIgaWQ9XCJrZXl3b3JkXCIgbmFtZT1cImZpbHRlcl9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIGRpc2FibGVkXCIgKGNsaWNrKT1cImdldFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBiLTEwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGROZXcoKVwiPiBBZGQgTmV3PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8dGFibGUgY2xhc3M9XCJ1aSBzaW5nbGUgbGluZSB1cEZvclJldmlld1RhYmxlIHRhYmxlXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidGhyZWUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBTdGF0dXNcbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJmb3VyIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMFwiPlxuICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidHdvIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMFwiPlxuICAgICAgICAgICAgICAgIFN0YXJ0aW5nIE1lc3NhZ2VcbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJvbmUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgVXNlciBDb3VudFxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICBBY3Rpb25cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwiVXBGb3JSZXZpZXdMaXN0SG92ZXJcIiAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBjaGF0Qm90czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgIDx0ZD57e2NvbnRlbnQubmFtZX19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCInc3RhdHVzLScgKyAoY29udGVudC5zdGF0dXMgPyBjb250ZW50LnN0YXR1cy50b0xvd2VyQ2FzZSgpOiAnJylcIj57e2NvbnRlbnQuc3RhdHVzfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudD8uZGVzY3JpcHRpb259fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3tjb250ZW50LnN0YXJ0aW5nTWVzc2FnZX19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+e3tjb250ZW50LnVzZXJDb3VudH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRyb3Bkb3duXCIgc3VpRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWxsaXBzaXMgdmVydGljYWwgaWNvbiBlbGxpcHNpcy1pY29uIGRyb3Bkb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudVwiIHN1aURyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cIm9uRWRpdChjb250ZW50KVwiPkVkaXQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGNvbnRlbnQsIGkpXCI+RGVsZXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvblN0YXR1c0NoYW5nZShjb250ZW50LCBpKVwiPnt7Y29udGVudC5zdGF0dXMgPT09ICdMaXZlJyA/ICdEaXNhYmxlJyA6ICdFbmFibGUnfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtblwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGItMTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgcGFnaW5hdGlvbiBtZW51IG10LTEwIHJpZ2h0LWZsb2F0ZWQgcHQtMFwiICpuZ0lmPVwicGFnZXIucGFnZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09MSB9XCIgY2xhc3M9XCJpdGVtIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZSgxKSBcIj5GaXJzdDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09MSB9XCIgY2xhc3M9XCJpdGVtIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZShwYWdlci5jdXJyZW50UGFnZSAtIDEpXCI+UHJldmlvdXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VyLnBhZ2VzXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTpwYWdlci5jdXJyZW50UGFnZT09PXBhZ2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2UpXCIgY2xhc3M9XCJpdGVtXCI+e3twYWdlfX08L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZT09PSBwYWdlci50b3RhbFBhZ2VzfVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZShwYWdlci5jdXJyZW50UGFnZSArIDEpXCIgY2xhc3M9XCJpdGVtXCI+TmV4dDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLnRvdGFsUGFnZXMpXCIgY2xhc3M9XCJpdGVtIFwiPkxhc3Q8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs new file mode 100644 index 00000000000..e9501d1619b --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs @@ -0,0 +1,40 @@ +import { Component } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +import * as i2 from "@angular/common"; +export class ConversationSuccessComponent { + constructor(router, activatedRoute) { + this.router = router; + this.activatedRoute = activatedRoute; + this.text = ''; + this.botId = ''; + } + ngOnInit() { + this.text = this.activatedRoute.snapshot.queryParams.text || ''; + this.botId = this.activatedRoute.snapshot.queryParams.botId || ''; + } + onCopy(id) { + const val = document.getElementById(id).innerText; + const selBox = document.createElement('textarea'); + selBox.style.position = 'fixed'; + selBox.style.left = '0'; + selBox.style.top = '0'; + selBox.style.opacity = '0'; + selBox.value = val; + document.body.appendChild(selBox); + selBox.focus(); + selBox.select(); + document.execCommand('copy'); + document.body.removeChild(selBox); + } + onClose() { + this.router.navigate(['/uci-admin']); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationSuccessComponent, selector: "lib-conversation-success", ngImport: i0, template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-success', template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n" }] + }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXN1Y2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi1zdWNjZXNzL2NvbnZlcnNhdGlvbi1zdWNjZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tc3VjY2Vzcy9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWhELE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFBb0IsTUFBYyxFQUFVLGNBQThCO1FBQXRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIMUUsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7SUFHWCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUU7UUFDTCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUMzQixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQTdCUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixnRUNSekMsNHFEQXNDQTs7NEZEOUJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLXN1Y2Nlc3MnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLXN1Y2Nlc3MuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblN1Y2Nlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHRleHQgPSAnJztcbiAgICBib3RJZCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy50ZXh0IHx8ICcnO1xuICAgICAgICB0aGlzLmJvdElkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5ib3RJZCB8fCAnJztcbiAgICB9XG5cbiAgICBvbkNvcHkoaWQpIHtcbiAgICAgICAgY29uc3QgdmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmlubmVyVGV4dDtcbiAgICAgICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgICAgc2VsQm94LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgICAgc2VsQm94LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XG4gICAgICAgIHNlbEJveC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICBzZWxCb3gudmFsdWUgPSB2YWw7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcbiAgICAgICAgc2VsQm94LmZvY3VzKCk7XG4gICAgICAgIHNlbEJveC5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWxCb3gpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VjaS1hZG1pbiddKTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1Y2ktY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBjZW50ZXIgYWxpZ25lZCBtdC04MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMCBkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMjUtcGVyIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW46IGF1dG87XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiU2VhcmNoIEljb25cIiBzcmM9XCJhc3NldHMvdWNpLWNvbnNvbGUvaW1hZ2VzL3N1Y2Nlc3Muc3ZnXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCI+XG4gICAgICAgICAgICAgICAgICAgIENvbmdyYXR1bGF0aW9ucyEgWW91IGhhdmUgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYSBuZXcgY29udmVyc2F0aW9uXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCI+XG4gICAgICAgICAgICAgICAgICAgIFVzZSB0aGUgZm9sbG93aW5nIFVSTCB0byB1c2UgRElLU0hBIGJvdDpcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48c3BhbiBpZD1cImNvcHlVcmxcIj5odHRwczovL2FwaS53aGF0c2FwcC5jb20vc2VuZD90ZXh0PXt7dGV4dH19JnBob25lPSs5MTIyNDk3NTc2Nzc8L3NwYW4+PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCIgKm5nSWY9XCJib3RJZFwiPlxuICAgICAgICAgICAgICAgICAgICBvciBzaGFyZSB0aGUgZm9sbG93aW5nIElEIHdpdGggRGlLU0hBIHRlYW06XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PHNwYW4gaWQ9XCJjb3B5SWRcIj57e2JvdElkfX08L3NwYW4+PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQ29weSgnY29weVVybCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb3B5IFVSTFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQ29weSgnY29weUlkJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvcHkgSURcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2VcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs new file mode 100644 index 00000000000..56610fd6aa8 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs @@ -0,0 +1,55 @@ +import { Component, Input } from '@angular/core'; +import { UciData } from '../../models/uci.model'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +import * as i2 from "../../services/uci.service"; +import * as i3 from "../../services/config.service"; +import * as i4 from "@angular/common"; +import * as i5 from "../../uci-events.service"; +import * as i6 from "../../telemetry-utils.service"; +import * as i7 from "../../services/global.service"; +import * as i8 from "../side-panel/side-panel.component"; +export class LibEntryComponent { + constructor(activatedRoute, uciService, configService, location, uciEventsService, telemetryUtils, globalService, router) { + this.activatedRoute = activatedRoute; + this.uciService = uciService; + this.configService = configService; + this.location = location; + this.uciEventsService = uciEventsService; + this.telemetryUtils = telemetryUtils; + this.globalService = globalService; + this.router = router; + } + ngOnInit() { + if (this.user) { + this.globalService.setUser(this.user); + } + if (this.baseUrl) { + this.globalService.setBaseUrl(this.baseUrl); + } + if (this.router.url === '/uci-admin') { + this.router.navigate(['uci-admin/home']); + } + } + goBack() { + this.location.back(); + } + close(event) { + const eventAction = { + action: 'DF_CLOSE' + }; + this.uciEventsService.emitTelemetry(eventAction); + this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UciService }, { token: i3.ConfigService }, { token: i4.Location }, { token: i5.UciEventsService }, { token: i6.TelemetryUtilsService }, { token: i7.GlobalService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LibEntryComponent, selector: "lib-lib-entry", inputs: { user: "user", baseUrl: "baseUrl" }, ngImport: i0, template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"], dependencies: [{ kind: "component", type: i8.SidePanelComponent, selector: "lib-side-panel" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-lib-entry', template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"] }] + }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.UciService }, { type: i3.ConfigService }, { type: i4.Location }, { type: i5.UciEventsService }, { type: i6.TelemetryUtilsService }, { type: i7.GlobalService }, { type: i1.Router }]; }, propDecorators: { user: [{ + type: Input + }], baseUrl: [{ + type: Input + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWVudHJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBT3ZELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVEvQyxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLFlBQ1csY0FBOEIsRUFDN0IsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsUUFBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLGNBQXFDLEVBQ3JDLGFBQTRCLEVBQzVCLE1BQWM7UUFQZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLFdBQVcsR0FBRztZQUNoQixNQUFNLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDOytHQXRDUSxpQkFBaUI7bUdBQWpCLGlCQUFpQixtR0NoQjlCLDI3QkFzQkE7OzRGRE5hLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlO3FTQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VWNpRXZlbnRzU2VydmljZX0gZnJvbSAnLi4vLi4vdWNpLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7SWRpc2N1c3Npb25Db25maWd9IGZyb20gJy4uLy4uL21vZGVscy91Y2ktY29uZmlnLm1vZGVsJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQge1RlbGVtZXRyeVV0aWxzU2VydmljZX0gZnJvbSAnLi4vLi4vdGVsZW1ldHJ5LXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lEYXRhfSBmcm9tICcuLi8uLi9tb2RlbHMvdWNpLm1vZGVsJztcbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1saWItZW50cnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWItZW50cnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpYi1lbnRyeS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExpYkVudHJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB1c2VyO1xuICAgIEBJbnB1dCgpIGJhc2VVcmw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIHVjaUV2ZW50c1NlcnZpY2U6IFVjaUV2ZW50c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGVsZW1ldHJ5VXRpbHM6IFRlbGVtZXRyeVV0aWxzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRVc2VyKHRoaXMudXNlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNldEJhc2VVcmwodGhpcy5iYXNlVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnL3VjaS1hZG1pbicpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluL2hvbWUnXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50QWN0aW9uID0ge1xuICAgICAgICAgICAgYWN0aW9uOiAnREZfQ0xPU0UnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudWNpRXZlbnRzU2VydmljZS5lbWl0VGVsZW1ldHJ5KGV2ZW50QWN0aW9uKTtcbiAgICAgICAgdGhpcy50ZWxlbWV0cnlVdGlscy5sb2dJbnRlcmFjdChldmVudCwgVWNpRGF0YS5JUGFnZU5hbWUuTElCX0VOVFJZKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidWlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgcG9zaXRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTggdWEtYnRuLWNvbnRhaW5lciB1YS1iYWNrLWJ0bi1jb250YWluZXIgcHgtMjAgei1pbmRleC0yXCI+XG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yMFwiPlxuICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IHNiLWxlZnQtaWNvbiBteC01XCI+XG4gICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy91Y2ktY29uc29sZS9pbWFnZXMvYmFjay1pbWcucG5nXCIgYWx0PVwiYmFjay1pbWFnZVwiIGNsYXNzPVwibWwtNFwiIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIj5cbiAgICAgICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1Y2ktYWRtaW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVjaS1hZG1pbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWNpLWFkbWluLWxlZnQtcGFuZWwgdWEtc2lkZS1jb250ZW50IHotaW5kZXgtMlwiPlxuICAgICAgICAgICAgICAgIDxsaWItc2lkZS1wYW5lbD48L2xpYi1zaWRlLXBhbmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWNpLWFkbWluLXJpZ2h0LXBhbmVsIHVhLW1haW4tY29udGVudCB6LWluZGV4LTJcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs new file mode 100644 index 00000000000..93b6d6b8018 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs @@ -0,0 +1,76 @@ +import { UciData } from '../../models/uci.model'; +import { Component } from '@angular/core'; +import * as CONSTANTS from '../../common/constants.json'; +/* tslint:disable */ +import * as _ from 'lodash'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +import * as i2 from "../../services/uci.service"; +import * as i3 from "../../telemetry-utils.service"; +import * as i4 from "../../services/config.service"; +import * as i5 from "@angular/common"; +/* tslint:enable */ +export class SidePanelComponent { + constructor(router, uciService, activatedRoute, telemetryUtils, configService) { + this.router = router; + this.uciService = uciService; + this.activatedRoute = activatedRoute; + this.telemetryUtils = telemetryUtils; + this.configService = configService; + this.defaultPage = 'categories'; + this.menu = []; + this.showSideMenu = true; + } + ngOnInit() { + // TODO: loader or spinner + this.telemetryUtils.setContext([]); + this.hideSidePanel = document.body.classList.contains('widget'); + this.telemetryUtils.logImpression(UciData.IPageName.HOME); + this.data = this.configService.getConfig(); + const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : CONSTANTS.MENUOPTIONS; + for (let i = 0; i < menuArr.length; i++) { + if (menuArr[i].enable) { + this.menu.push(menuArr[i]); + } + } + } + isActive(selectedItem) { + if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) { + if (!this.selectedTab) { + this.selectedTab = selectedItem; + } + return true; + } + else if (selectedItem === 'categories' && !this.selectedTab) { + return true; + } + return false; + } + navigate(pageName, event) { + this.selectedTab = pageName; + this.telemetryUtils.setContext([]); + if (event) { + this.telemetryUtils.logInteract(event, UciData.IPageName.HOME); + } + this.router.navigate([`uci-admin`], { queryParamsHandling: 'merge' }); + this.closeNav(); + } + ngOnDestroy() { + if (this.paramsSubscription) { + this.paramsSubscription.unsubscribe(); + } + } + showMenuButton() { + this.showSideMenu = this.showSideMenu ? false : true; + } + closeNav() { + this.showSideMenu = this.showSideMenu ? false : true; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, deps: [{ token: i1.Router }, { token: i2.UciService }, { token: i1.ActivatedRoute }, { token: i3.TelemetryUtilsService }, { token: i4.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SidePanelComponent, selector: "lib-side-panel", ngImport: i0, template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-side-panel', template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"] }] + }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.UciService }, { type: i1.ActivatedRoute }, { type: i3.TelemetryUtilsService }, { type: i4.ConfigService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLXBhbmVsL3NpZGUtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRy9DLE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRzNELE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBSTVCLG1CQUFtQjtBQU9uQixNQUFNLE9BQU8sa0JBQWtCO0lBYzNCLFlBQ1csTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLGNBQThCLEVBQzdCLGNBQXFDLEVBQ3JDLGFBQTRCO1FBSjdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFieEMsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFJM0IsU0FBSSxHQUF3QixFQUFFLENBQUM7UUFFL0IsaUJBQVksR0FBWSxJQUFJLENBQUM7SUFTN0IsQ0FBQztJQUVELFFBQVE7UUFDSiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM5SSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1NBQ0o7SUFFTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQzthQUNuQztZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLFlBQVksS0FBSyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCLEVBQUUsS0FBTTtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDOytHQXhFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzRENuQi9CLDYzQkFrQkE7OzRGRENhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VjaURhdGF9IGZyb20gJy4uLy4uL21vZGVscy91Y2kubW9kZWwnO1xuaW1wb3J0IHtUZWxlbWV0cnlVdGlsc1NlcnZpY2V9IGZyb20gJy4uLy4uL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIENPTlNUQU5UUyBmcm9tICcuLi8uLi9jb21tb24vY29uc3RhbnRzLmpzb24nO1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtJZGlzY3Vzc2lvbkNvbmZpZywgSU1lbnVPcHRpb25zfSBmcm9tICcuLi8uLi9tb2RlbHMvdWNpLWNvbmZpZy5tb2RlbCc7XG5cbi8qIHRzbGludDplbmFibGUgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItc2lkZS1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGUtcGFuZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwYXJhbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHVzZXJOYW1lOiBzdHJpbmc7XG5cbiAgICBkZWZhdWx0UGFnZSA9ICdjYXRlZ29yaWVzJztcblxuICAgIGRhdGE6IElkaXNjdXNzaW9uQ29uZmlnO1xuICAgIGhpZGVTaWRlUGFuZWw6IGJvb2xlYW47XG4gICAgbWVudTogQXJyYXk8SU1lbnVPcHRpb25zPiA9IFtdO1xuICAgIHNlbGVjdGVkVGFiOiBzdHJpbmc7XG4gICAgc2hvd1NpZGVNZW51OiBCb29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHRlbGVtZXRyeVV0aWxzOiBUZWxlbWV0cnlVdGlsc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBUT0RPOiBsb2FkZXIgb3Igc3Bpbm5lclxuICAgICAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLnNldENvbnRleHQoW10pO1xuICAgICAgICB0aGlzLmhpZGVTaWRlUGFuZWwgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnd2lkZ2V0Jyk7XG4gICAgICAgIHRoaXMudGVsZW1ldHJ5VXRpbHMubG9nSW1wcmVzc2lvbihVY2lEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICAgICAgICBjb25zdCBtZW51QXJyID0gXy5nZXQodGhpcy5kYXRhLCAnbWVudU9wdGlvbnMnKSAmJiBfLmdldCh0aGlzLmRhdGEsICdtZW51T3B0aW9ucycpLmxlbmd0aCA+IDAgPyB0aGlzLmRhdGEubWVudU9wdGlvbnMgOiBDT05TVEFOVFMuTUVOVU9QVElPTlM7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKG1lbnVBcnJbaV0uZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51LnB1c2gobWVudUFycltpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGlzQWN0aXZlKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICBpZiAodGhpcy5yb3V0ZXIudXJsLmluZGV4T2YoYC8ke3NlbGVjdGVkSXRlbX1gKSA+IC0xIHx8IHRoaXMuc2VsZWN0ZWRUYWIgPT09IHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHNlbGVjdGVkSXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSXRlbSA9PT0gJ2NhdGVnb3JpZXMnICYmICF0aGlzLnNlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbmF2aWdhdGUocGFnZU5hbWU6IHN0cmluZywgZXZlbnQ/KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBwYWdlTmFtZTtcbiAgICAgICAgdGhpcy50ZWxlbWV0cnlVdGlscy5zZXRDb250ZXh0KFtdKTtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLmxvZ0ludGVyYWN0KGV2ZW50LCBVY2lEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYHVjaS1hZG1pbmBdLCB7cXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ30pO1xuICAgICAgICB0aGlzLmNsb3NlTmF2KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYXJhbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dNZW51QnV0dG9uKCkge1xuICAgICAgICB0aGlzLnNob3dTaWRlTWVudSA9IHRoaXMuc2hvd1NpZGVNZW51ID8gZmFsc2UgOiB0cnVlO1xuICAgIH1cblxuICAgIGNsb3NlTmF2KCkge1xuICAgICAgICB0aGlzLnNob3dTaWRlTWVudSA9IHRoaXMuc2hvd1NpZGVNZW51ID8gZmFsc2UgOiB0cnVlO1xuICAgIH1cblxufVxuIiwiPHVsIGNsYXNzPVwic2Itc2lkZWJhci1tZW51IHBsLTBcIiAqbmdJZj1cIiFoaWRlU2lkZVBhbmVsXCI+XG4gICAgPGxpICpuZ0Zvcj0nbGV0IGQgb2YgbWVudScgY2xhc3M9XCJ1YS1zaWRlYmFyLW1lbnUtbGlzdFwiIFtuZ0NsYXNzXT1cInsnbWVudS1hY3RpdmUnOiBpc0FjdGl2ZShkLnJvdXRlKX1cIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGUoZC5yb3V0ZSwgJGV2ZW50KVwiIGlkPVwiZC5yb3V0ZVwiPjxhPnt7ZC5sYWJlbH19PC9hPjwvbGk+XG48L3VsPlxuXG48IS0tIGZvciBtb2JpbGUtdmlldyAtLT5cbjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwib3BlbmJ0blwiIChjbGljayk9XCJzaG93TWVudUJ1dHRvbigpXCI+4piwPC9idXR0b24+XG48ZGl2IGNsYXNzPVwib3ZlcmxheS1zaWRlYmFyXCIgKm5nSWY9XCIhc2hvd1NpZGVNZW51XCI+XG4gICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktc2lkZWJhcl9fbWVudVwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJjbG9zZWJ0blwiIChjbGljayk9XCJjbG9zZU5hdigpXCI+JnRpbWVzOzwvYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItbWVudV9fY29udGVudFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic2Itc2lkZWJhci1tZW51LW1vYiBwbC0wXCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidWEtc2lkZWJhci1tZW51LWxpc3RcIiAqbmdJZj1cImZhbHNlXCIgKGNsaWNrKT1cIm5hdmlnYXRlKCcnLCAkZXZlbnQpXCIgaWQ9XCJhbGwtZGlzY3Vzc2lvbnNcIj48YT5Cb3RzPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs new file mode 100644 index 00000000000..af2240c96f5 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@project-sunbird/ng2-semantic-ui"; +export class TermsConditionsComponent { + constructor() { + } + ngOnInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TermsConditionsComponent, selector: "lib-terms-conditions", ngImport: i0, template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i1.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i1.SuiTabset, selector: "sui-tabset" }, { kind: "directive", type: i1.SuiTabHeader, selector: "[suiTabHeader]", inputs: ["suiTabHeader", "isActive", "isDisabled"], outputs: ["isActiveChange", "activate", "deactivate"] }, { kind: "directive", type: i1.SuiTabContent, selector: "[suiTabContent]", inputs: ["suiTabContent"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-terms-conditions', template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"] }] + }], ctorParameters: function () { return []; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvdGVybXMtY29uZGl0aW9ucy90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7OztBQVV0RSxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDO0lBQ0EsQ0FBQztJQUdELFFBQVE7SUFDUixDQUFDOytHQU5RLHdCQUF3QjttR0FBeEIsd0JBQXdCLDREQ1ZyQywrdG9KQXkxRUE7OzRGRC8wRWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lHcmFwaFFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLWdyYXBoLXFsLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXRlcm1zLWNvbmRpdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZXJtc0NvbmRpdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidGFicy1jb250ZW50LXdyYXBwZXJcIj5cbiAgICA8c3VpLXRhYnNldD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlY29uZGFyeSBtZW51XCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIml0ZW1cIiBzdWlUYWJIZWFkZXI9XCIxXCI+VGVybXMgb2YgVXNlPC9hPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJpdGVtXCIgc3VpVGFiSGVhZGVyPVwiMlwiPlByaXZhY3kgUG9saWN5IDwvYT5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiaXRlbVwiIHN1aVRhYkhlYWRlcj1cIjNcIj5Db250ZW50IFBvbGljeSA8L2E+XG48IS0tICAgICAgICAgICAgPGEgY2xhc3M9XCJpdGVtXCIgc3VpVGFiSGVhZGVyPVwiNFwiPkdyb3VwIEd1aWRlbGluZXMgPC9hPi0tPlxuPCEtLSAgICAgICAgICAgIDxhIGNsYXNzPVwiaXRlbVwiIHN1aVRhYkhlYWRlcj1cIjVcIj5Db3Vyc2UgR3VpZGVsaW5lcyA8L2E+LS0+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIml0ZW1cIiBzdWlUYWJIZWFkZXI9XCI2XCI+QWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIDwvYT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSAgICB0ZXJtcyBhbmQgdXNlIHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiMVwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cInRlcm1zT2ZVc2VcIiBhcmlhLWxhYmVsbGVkYnk9XCJ0ZXJtcy1vZi11c2UtdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+VGVybXMgb2YgVXNlPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiggTGFzdCB1cGRhdGVkIG9uIDxiPjI4LTA0LTIwMjE8L2I+ICk8L2VtPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgd2Vic2l0ZSBpcyBkZXNpZ25lZCwgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBOYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKE5DRVJUKSAoTWluaXN0cnkgb2ZcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uIChNb0UpLCBHb3Zlcm5tZW50IG9mIEluZGlhKSAodG9nZXRoZXIgcmVmZXJyZWQgdG8gYXNcbiAgICAgICAgICAgICAgICAgICAgXCI8c3Ryb25nPkdvSTwvc3Ryb25nPlwiKS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoZXNlIHRlcm1zIG9mIHVzZSwgYXMgYW1lbmRlZCwgZ292ZXJuIHRoZSB1c2FnZSBvZiBESUtTSEEgKERpZ2l0YWxcbiAgICAgICAgICAgICAgICAgICAgSW5mcmFzdHJ1Y3R1cmUgZm9yIEtub3dsZWRnZSBTaGFyaW5nKSBieSBpdHMgVXNlcnMgKGFzIGRlZmluZWQgYmVsb3cpXG4gICAgICAgICAgICAgICAgICAgIChcIjxzdHJvbmc+VGVybXM8L3N0cm9uZz5cIikuIERJS1NIQSBpcyBhbiBpbml0aWF0aXZlIG9mIHRoZSBHb0kuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBCeSB1c2luZyBESUtTSEEsIHlvdSBoYXZlIGFjY2VwdGVkIGFuZCBhZ3JlZSB0byBiZSBnb3Zlcm5lZCBieSB0aGVzZVxuICAgICAgICAgICAgICAgICAgICBUZXJtcywgYXMgbWF5IGJlIGFtZW5kZWQgZnJvbSB0aW1lIHRvIHRpbWUuIFRoZSB0ZXJtcyBcInlvdVwiLCBcInlvdXJcIlxuICAgICAgICAgICAgICAgICAgICBoZXJlaW5hZnRlciByZWZlciB0byBhbnkgVXNlciBvZiBESUtTSEEsIGluY2x1ZGluZyBSZWdpc3RlcmVkIFVzZXJzIChhc1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJlbG93KS5cbiAgICAgICAgICAgICAgICA8L3A+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RGVmaW5pdGlvbnM8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9yIG1lYW5zIGFueSBuYXR1cmFsIHBlcnNvbiB3aG8gaXMgYVxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VyIGFuZCB3aG8gaXMgYXV0aG9yaXNlZCB0byBiZSBhbiBhZG1pbmlzdHJhdG9yIGJ5IGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXIgb24gYmVoYWxmIG9mIHN1Y2ggSW5zdGl0dXRpb25hbCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG1lYW5zIGFuZCBpbmNsdWRlcywgYXMgdGhlIGNvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzLCAoaSkgYW55IHRleHQsIHNjcmlwdHMsIGdyYXBoaWNzLCBwaG90b3MsIHNvdW5kcywgbXVzaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWRlb3MsIGF1ZGlvLXZpc3VhbCBjb21iaW5hdGlvbnMsIGludGVyYWN0aXZlIGNvbnRlbnQsIGZlYXR1cmVzXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgb3RoZXIgbWF0ZXJpYWxzIHlvdSBtYXkgdmlldywgYWNjZXNzIG9yIGNvbnRyaWJ1dGUsIChpaSkgYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IGFuZCBwb3N0aW5ncyB0aGF0IGFyZSB3cml0dGVuLCB1cGxvYWRlZCwgc3VibWl0dGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVkLCBzZW50LCByZWNlaXZlZCwgc2hhcmVkIG9yIG90aGVyd2lzZSBwcm92aWRlZCBieSBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBVc2Vycywgc3VjaCBhcyBwb3N0cywgY29tbWVudHMsIGZlZWRiYWNrLCBzdWJtaXNzaW9ucywgcmVzcG9uc2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gaW4gZm9ydW1zIG9yIGdyb3VwcywgZm9yIHRlYWNoaW5nIGFuZCBsZWFybmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzLCBhbmQvb3IgdXNpbmcgcHJvamVjdC8gc3VydmV5LyBvYnNlcnZhdGlvbiB0b29scywgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAoaWlpKSBhbGwgdHlwZXMgb2YgbGVhcm5pbmcgbWF0ZXJpYWwgY3JlYXRlZCwgdXBsb2FkZWQgb3IgY29uc3VtZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ5IGEgVXNlciwgc3VjaCBhcyByZXNvdXJjZXMgKGxpa2UgdGVhY2hpbmcgb3IgbGVhcm5pbmcgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZWQgYnkgdGVhY2hlcnMsIHBhcmVudHMgb3Igc3R1ZGVudHMpLCBjb2xsZWN0aW9ucyAoaS5lLiBzZXRzXG4gICAgICAgICAgICAgICAgICAgICAgICBvZiBvcmRlcmVkIHJlc291cmNlcyBidW5kbGVkIHRvZ2V0aGVyIHRvIGJlIGNvbnN1bWVkIGFzIGEgd2hvbGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9va3MsIGUtYm9va3MsIGxlc3NvbiBwbGFucywgcXVlc3Rpb25zLCBhc3Nlc3NtZW50cywgcXVpenplcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZXMsIGxlYXJuaW5nIGFjdGl2aXRpZXMsIHByb2plY3RzLCBjb3Vyc2VzIGFuZCBvdGhlciB0eXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGVhY2hpbmcgYW5kIGxlYXJuaW5nIG1hdGVyaWFscyB0aGF0IGlzIG1lYW50IGZvciB3aWRlIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bXB0aW9uLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgbWVhbnMgPHN0cm9uZz5EPC9zdHJvbmc+aWdpdGFsXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkk8L3N0cm9uZz5uZnJhc3RydWN0dXJlIGZvciA8c3Ryb25nPks8L3N0cm9uZz5ub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5TaGE8L3N0cm9uZz5yaW5nIHdoaWNoIGlzIHRoZSBOYXRpb25hbCBQbGF0Zm9ybSBmb3IgU2Nob29sXG4gICAgICAgICAgICAgICAgICAgICAgICBFZHVjYXRpb24sIGFuIGluaXRpYXRpdmUgb2YgdGhlIEdvSSwgYW5kIGlzIGFjY2Vzc2libGUgb25saW5lIGF0XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kaWtzaGEuZ292LmluL1wiPmh0dHBzOi8vZGlrc2hhLmdvdi5pbiw8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdWdoIHRoZSBESUtTSEEgYW5kcm9pZCBhcHBsaWNhdGlvbiBhbmQgdGhyb3VnaCB0aGUgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNrdG9wIGFwcGxpY2F0aW9uLCBhbmQgYW55IGluY2x1ZGVzIG90aGVyIHN1Yi1kb21haW5zIC8gZXh0ZW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbnMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXIgbWVhbnMgYW5kIGluY2x1ZGVzIE1vRSwgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICBFZHVjYXRpb24gRGVwYXJ0bWVudHMgKG9mIGJvdGggQ2VudHJhbCBHb3Zlcm5tZW50IGFuZCBTdGF0ZS9VVCksXG4gICAgICAgICAgICAgICAgICAgICAgICBOYXRpb25hbCBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKE5DRVJUKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFueSBTdGF0ZSBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKFNDRVJUKVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRyYWluaW5nIHN0YXR1dG9yeSBib2R5LCBHb3Zlcm5tZW50IGFmZmlsaWF0ZWQgYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9ub21vdXMgYXV0aG9yaXR5IHNldCB1cCBieSB0aGUgR292ZXJubWVudCwgQm9hcmRzIGFuZCBDb3VuY2lsc1xuICAgICAgICAgICAgICAgICAgICAgICAgb2YgZWR1Y2F0aW9uIChDZW50cmFsLCBTdGF0ZSBhbmQgb3RoZXJzKSwgU2Nob29scywgVW5pdmVyc2l0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgRGVlbWVkIFVuaXZlcnNpdGllcywgQXV0b25vbW91cyBlZHVjYXRpb25hbCBpbnN0aXR1dGlvbnMsIExlYXJuaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBDZW50cmVzIG9yIG90aGVyIHN1Y2ggaW5zdGl0dXRpb25zIG9yIG9yZ2FuaXNhdGlvbnMgd2hvIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXNlZCB0byBvcGVyYXRlIGFzIGEgdGVuYW50IG9uIHRoZSBESUtTSEEgZGlnaXRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmFzdHJ1Y3R1cmUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIChpKSBVc2VycyBvZiBESUtTSEEsIHdob1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIgdGhlbXNlbHZlcyBhcyB1c2VycyBvZiBESUtTSEEgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBvbiBESUtTSEEsIGFuZCAoaWkpIFVzZXJzIG9mIERJS1NIQSB3aG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiByZWdpc3RlcmVkIG9uIERJS1NIQSBieSBhbiBBZG1pbmlzdHJhdG9yIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50IGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLCBhbmQgc3VjaCB1c2VycyBjYW4gbG9nIGluIHRvIERJS1NIQSB3aXRoIHRoZWlyIHJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBhcmUgYWxsIG5hdHVyYWwgcGVyc29ucyB3aG8gYWNjZXNzIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGFjY2VzcywgdmlldyBvciB1c2UgQ29udGVudCBvbiBESUtTSEEsIGFuZCBzdWNoIFVzZXJzIGluY2x1ZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+QWNjZXNzIGFuZCBVc2U8L2g0PlxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2Vyczwvc3Ryb25nPiAtXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciB5b3UgcmVwcmVzZW50IGFuZCB3YXJyYW50IHRoYXQgeW91IGFyZSBvZiBsZWdhbCBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhcmUgbGVnYWxseSBjb21wZXRlbnQgdG8gZm9ybSBhIGJpbmRpbmcgY29udHJhY3QgKG9yIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICBub3QsIHlvdSd2ZSByZWNlaXZlZCB5b3VyIHBhcmVudCdzIG9yIGd1YXJkaWFuJ3MgcGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgdG8gdXNlIERJS1NIQSBhbmQgdGhleSBoYXZlIGFncmVlZCB0byB0aGVzZSBUZXJtcyBvbiB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWhhbGYpLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB5b3UgYXJlIGFncmVlaW5nIHRvIHRoZXNlIFRlcm1zIG9uIGJlaGFsZiBvZiBhIGRlcGFydG1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0aXR1dGlvbiwgb3JnYW5pemF0aW9uIG9yIG90aGVyIGxlZ2FsIGVudGl0eSAoZm9yIGV4YW1wbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiB5b3XigJlyZSBhbiBBZG1pbmlzdHJhdG9yIGFncmVlaW5nIHRvIHRoZSBUZXJtcyBvbiBiZWhhbGYgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgc2Nob29sLCBpbnN0aXR1dGlvbiwgb3JnYW5pc2F0aW9uLCBnb3Zlcm5tZW50IGRlcGFydG1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBub24tcHJvZml0IGVudGl0eSwgZXRjLiksIHlvdSBoZXJlYnkgcmVwcmVzZW50IGFuZCB3YXJyYW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHlvdSBhcmUgZHVseSBhdXRob3JpemVkIHRvIGFncmVlIHRvIHRoZXNlIFRlcm1zIG9uIGJlaGFsZlxuICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhhdCBkZXBhcnRtZW50LCBpbnN0aXR1dGlvbiwgb3JnYW5pemF0aW9uIG9yIGVudGl0eSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZXNlIFRlcm1zIGFyZSBiaW5kaW5nIG9uIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYWdyZWVpbmcgdG8gdGhpcyBUZXJtcyBvbiBiZWhhbGYgb2YgYSBzdHVkZW50IHdob1xuICAgICAgICAgICAgICAgICAgICAgICAgaXMgbm90IG9mIGxlZ2FsIGFnZSwgeW91IGhlcmVieSByZXByZXNlbnQgYW5kIHdhcnJhbnQgdGhhdCB5b3VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnQgLyBoYXZlIG9idGFpbmVkIGNvbnNlbnQgZnJvbSB0aGUgcGFyZW50KHMpIC8gbGVnYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGd1YXJkaWFuKHMpIG9uIGJlaGFsZiBvZiBzdWNoIHN0dWRlbnQsIHRvIGFjY2VzcywgdmlldyBhbmQgdXNlXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlc2UgVGVybXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYSBzdHVkZW50IHdobyBpcyBub3Qgb2YgbGVnYWwgYWdlLCB5b3UgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NpbmcgRElLU0hBIHdpdGggY29uc2VudCBvZiBwYXJlbnQvbGVnYWwgZ3VhcmRpYW4sIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGFjY2VzcywgdmlldyBhbmQgdXNlIENvbnRlbnQgb24gRElLU0hBIHdpdGhvdXQgcmVnaXN0ZXJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHlvdXJzZWxmIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgY2FuOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJBXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPmFjY2VzcyBhbmQgdXNlIENvbnRlbnQgYXZhaWxhYmxlIG9uIERJS1NIQSw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5jcmVhdGUgYW5kIG1hbmFnZSB0aGVpciBVc2VyIHByb2ZpbGVzLCBhbmQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5zaGFyZSBDb250ZW50IHdpdGggb3RoZXIgVXNlcnMuPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBzaG91bGQgYmUgdXNlZCBmb3IgbGVhcm5pbmcgYW5kIGVkdWNhdGlvbmFsIHB1cnBvc2VzLlxuICAgICAgICAgICAgICAgICAgICAgICAgQXMgYSBVc2VyLCB5b3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgYWxsIHlvdXIgYWN0aW9ucyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXRpZXMgaW4gcmVsYXRpb24gdG8geW91ciB1c2FnZSBvZiBESUtTSEEuIEFsbCBVc2VycyBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3cgdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhcyBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRpbWUgdG8gdGltZSwgc3VjaCBhcyB0aGVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5UZXJtcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBZb3VyIGFjY2VzcyBhbmQgdXNlIG9mIERJS1NIQSBtYXkgcG9zc2libHkgYmUgZGlzcnVwdGVkIGR1ZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5pY2FsIG9yIG9wZXJhdGlvbmFsIGRpZmZpY3VsdGllcywgd2l0aG91dCBwcmlvciBub3RpY2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd250aW1lLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxzdHJvbmc+UmVnaXN0ZXJlZCBVc2Vyczwvc3Ryb25nPiAtXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhbGxvd3MgVXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyBvbiBESUtTSEEgYnk6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cIkFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2VsZi1yZWdpc3RyYXRpb247PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U3RhdGUgbGVkIHJlZ2lzdHJhdGlvbi48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGVwZW5kaW5nIG9uIHlvdXIgbW9kZSBvZiByZWdpc3RyYXRpb24sIGFzIGEgUmVnaXN0ZXJlZCBVc2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGNvbGxlY3RzIGNlcnRhaW4gZGF0YSBhbmQgaW5mb3JtYXRpb24gYWJvdXQgeW91IGluXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiPjxiPlByaXZhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uIFJlZ2lzdGVyZWQgVXNlcnMgbWF5IGFsc28gY2hvb3NlIHRvIGdpdmUgdGhlaXIgY29uc2VudCBmb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRhaW4gb2YgdGhlaXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gdG8gYmUgYWNjZXNzZWQgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIGZvciBzcGVjaWZpZWQgcHVycG9zZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsZXZhbnQgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBIGFzIGFwcGxpY2FibGUgZnJvbVxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGNhbiB1c2UgLyBwYXJ0aWNpcGF0ZSBpbiBhIHZhcmlldHkgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyaW5ncyBvbiBESUtTSEEgaW5jbHVkaW5nOlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0dGluZyAvIHBvc3RpbmcgLyB1cGxvYWRpbmcgLyBvdGhlcndpc2UgcHJvdmlkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWNjZXNzaW5nIGNvdXJzZXMgb3Igb3RoZXIgY29sbGVjdGlvbnMgb2YgQ29udGVudDs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DcmVhdGluZyBvciBwYXJ0aWNpcGF0aW5nIGluIERJS1NIQSBHcm91cHMuPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSZWdpc3RlcmVkIFVzZXJzIChpbmNsdWRpbmcgQWRtaW5pc3RyYXRvcnMpIG11c3QgZm9sbG93XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGUgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBIGFzIGFwcGxpY2FibGUgZnJvbSB0aW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB0byB0aW1lLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZXNlIFRlcm1zLCB0aGUgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgUG9saWN5IG9mIERJS1NIQSBhbmQgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBLiBTb21lIFJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIG1heSBoYXZlIHJlYWQsIHdyaXRlIGFuZCBlZGl0IHJpZ2h0cyBvbiBESUtTSEEgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50LCBzdWNoIHJpZ2h0cyBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGdpdmVuIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVudGlhbGl0eSBvZiB0aGVpciBVc2VyIElEIGFuZCBQYXNzd29yZCBhbmQgYWxzb1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsbCBhY3Rpdml0aWVzIHRoYXQgb2NjdXIgdW5kZXIgdGhlaXIgVXNlciBJRFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIFBhc3N3b3JkLiBBcyBhIFJlZ2lzdGVyZWQgVXNlciwgeW91IGFncmVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPmludGVyIGFsaWE8L2VtPiwgdG8gcHJvdmlkZSB0cnVlLCBhY2N1cmF0ZSwgY3VycmVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHlvdXJzZWxmIGFzIHByb21wdGVkIGJ5IHRoZSBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbiBmb3JtIG9yIHByb3ZpZGVkIGJ5IHlvdSBhcyBhIHZpc2l0b3Igb3IgdXNlciBvZiBhXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlyZCBwYXJ0eSBzaXRlIHRocm91Z2ggd2hpY2ggeW91IGFjY2VzcyBESUtTSEEuIElmIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCBpcyB1bnRydWUsIGluYXBwcm9wcmlhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmFjY3VyYXRlLCBub3QgY3VycmVudCBvciBpbmNvbXBsZXRlIG9yIHRoZXJlIGFyZSByZWFzb25hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91bmRzIHRvIHN1c3BlY3QgdGhhdCBzdWNoIGluZm9ybWF0aW9uIGlzIHVudHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYWNjdXJhdGUsIGluYXBwcm9wcmlhdGUsIG5vdCBjdXJyZW50IG9yIGluY29tcGxldGUsIG9yIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZXNlIFRlcm1zLCB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQSBoYXZlIHRoZSByaWdodCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZWZpbml0ZWx5IHN1c3BlbmQgb3IgdGVybWluYXRlIHlvdXIgcmVnaXN0cmF0aW9uIG9yIGJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gYW5kIHBhcnRpY2lwYXRpb24gaW4gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBIFJlZ2lzdGVyZWQgVXNlciBtYXkgbm90IHRyYW5zZmVyIHRoZWlyIHJlZ2lzdHJhdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgYW55b25lIGVsc2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz5JbnN0aXR1dGlvbmFsIFVzZXJzIDwvc3Ryb25nPi1cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBjYW4gb3BlcmF0ZSBhcyBhIHRlbmFudCBvbiB0aGUgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWdpdGFsIGluZnJhc3RydWN0dXJlLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIHNoYWxsIGFwcG9pbnQgQWRtaW5pc3RyYXRvcnMgYW5kIHNoYWxsIGJlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIEFkbWluaXN0cmF0b3Jz4oCZIGNvbXBsaWFuY2UgYW5kIGVuZm9yY2VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBvZiB0ZXJtcyBhbmQgcG9saWNpZXMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIGNhbiBhdXRob3Jpc2UgUmVnaXN0ZXJlZCBVc2VycyB0byBjcmVhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJhdGUsIHJldmlldyBvciBwdWJsaXNoIENvbnRlbnQgb3IgY29sbGVjdGlvbnMgb2YgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzdWNoIFJlZ2lzdGVyZWQgVXNlcnPigJkgY29tcGxpYW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgdGVybXMgYW5kIHBvbGljaWVzIG9mIERJS1NIQS4gRm9yIG1vcmUgZGV0YWlscyBvbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgb2YgYWRtaW5pc3RyYXRvcnMsIGNyZWF0b3JzLCBjb250cmlidXRvcnMsIHJldmlld2VycyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyIHJvbGVzLCBwbGVhc2UgdmlzaXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kaWtzaGEuZ292LmluL2hlbHAvZ2V0dGluZy1zdGFydGVkL2V4cGxvcmUtZGlrc2hhL2luZGV4Lmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5IZWxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2VudGVyPC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBtYXkgcnVuIHByb2dyYW1zIG9uIHRoZSBESUtTSEEgZGlnaXRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIGluY2x1ZGluZyAoaSkgdG8gc291cmNlIENvbnRlbnQgdGhyb3VnaFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbXMgYW5kIHRvb2xzIHRoYXQgaW52aXRlIHRoZSBwYXJ0aWNpcGF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBlZHVjYXRpb24gZWNvc3lzdGVtLCBhbmQgKGlpKSB0byBvZmZlclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cnNlcywgY29uZHVjdCBxdWl6emVzLCBjb21wZXRpdGlvbnMsIGFzc2Vzc21lbnRzLCBvciBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbXMgdXNpbmcgdGhlIHZhcmlvdXMgdG9vbHMgYXZhaWxhYmxlIGluY2x1ZGluZyBwcm9qZWN0IC9cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cnZleSAvIG9ic2VydmF0aW9uIHRvb2xzIHRoYXQgaW52aXRlIHRoZSBwYXJ0aWNpcGF0aW9uIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBvZiBESUtTSEEuIFN1Y2ggcHJvZ3JhbXMgYW5kIGl0cyBwYXJ0aWNpcGFudHMgc2hhbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBhbmQgcG9saWNpZXMgb2YgRElLU0hBLCBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgYW55IHNwZWNpZmljIHRlcm1zIG9mIHVzZSBwcmVzY3JpYmVkIGZvciB0aGUgc2FtZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgYW5kIHNoYWxsIGNvbXBseVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbmRpYW4gbGF3IGN1cnJlbnRseSBpbiBmb3JjZSwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIChJbmRpYW4pIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFJlYXNvbmFibGUgU2VjdXJpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFByYWN0aWNlcyBhbmQgUHJvY2VkdXJlcykgUnVsZXMsIDIwMTEgd2l0aCByZXNwZWN0IHRvIGFueSBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgcGVyc29uYWwgaW5mb3JtYXRpb24gdGhhdCBpcyBjb2xsZWN0ZWQgZHVyaW5nIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHJ1bm5pbmcgc3VjaCBwcm9ncmFtcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlByb2hpYml0ZWQgQ29udGVudCBhbmQgVXNlPC9oND5cbiAgICAgICAgICAgICAgICA8cD5SZWdpc3RlcmVkIFVzZXJzIHNoYWxsIG5vdDo8L3A+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBESUtTSEEgZm9yIGFueSBwdXJwb3NlIG90aGVyIHRoYW4gbGVhcm5pbmcgYW5kIGVkdWNhdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcztcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCwgdXBsb2FkLCBvciBkaXN0cmlidXRlIGFueSBkZWZhbWF0b3J5LCBsaWJlbG91cywgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYWNjdXJhdGUgQ29udGVudCBvciBvdGhlciBjb250ZW50IG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCwgdXBsb2FkLCBvciBkaXN0cmlidXRlIGFueSBDb250ZW50IG9yIG90aGVyIGNvbnRlbnQgdGhhdCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5sYXdmdWwgb3IgdGhhdCBhIHJlYXNvbmFibGUgcGVyc29uIGNvdWxkIGRlZW0gdG8gYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdGlvbmFibGUsIG9mZmVuc2l2ZSwgaW5kZWNlbnQsIHBvcm5vZ3JhcGhpYywgaGFyYXNzaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWF0ZW5pbmcsIHZ1bGdhciwgaGF0ZWZ1bCwgcmFjaWFsbHkgb3IgZXRobmljYWxseSBvZmZlbnNpdmUsIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcndpc2UgaW5hcHByb3ByaWF0ZTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0ZSBhbnkgQ29udGVudCAoaW5jbHVkaW5nIGFueSBvZiB0aGUgZWxlbWVudHMgdGhhdCBzdWNoXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IGNvbXByaXNlcyBzdWNoIGFzIHRleHQsIHNjcmlwdHMsIGdyYXBoaWNzLCBwaG90b3MsIHNvdW5kcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11c2ljLCB2aWRlb3MsIGF1ZGlvLXZpc3VhbCBjb21iaW5hdGlvbnMgZXRjLikgdGhhdCBpbmZyaW5nZXMgdXBvblxuICAgICAgICAgICAgICAgICAgICAgICAgYW55IHRoaXJkIHBhcnR5IHJpZ2h0cyBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGludGVsbGVjdHVhbFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgcmlnaHRzIHN1Y2ggYXMgY29weXJpZ2h0cyBvciBhbnkgb3RoZXIgbGVnYWwgcmlnaHRzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRpdmlkdWFsKHMpL29yZ2FuaXNhdGlvbihzKTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIERJS1NIQSBpbiBhbnkgbWFubmVyIHRoYXQgaXMgaGFybWZ1bCB0byBtaW5vcnMsIG9yIGluIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFubmVyIHRoYXQgdmlvbGF0ZXMgdGhlIGV4dGFudFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5UZXJtcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZTwvYj48L2E+LCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCI+PGI+UHJpdmFjeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvbGljeTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiPjxiPkNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3k8L2I+PC9hPjtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW1wZXJzb25hdGUgYW55IHBlcnNvbiBvciBlbnRpdHksIGZhbHNlbHkgY2xhaW0gYW4gYWZmaWxpYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggYW55IHBlcnNvbiBvciBlbnRpdHksIG9yIGFjY2VzcyBESUtTSEEgYWNjb3VudHMgb2Ygb3RoZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRob3V0IHBlcm1pc3Npb24sIG9yIHBlcmZvcm0gYW55IG90aGVyIGZyYXVkdWxlbnQgYWN0aXZpdHk7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGUgY29weXJpZ2h0IG9yIG90aGVyIHByb3ByaWV0YXJ5IHJpZ2h0cyBub3RpY2VzIG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgb3Igb24gYW55IGxpY2Vuc2VkIENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCwgb3IgYXV0aG9yaXplLCBhc3Npc3QsIG9yIGVuY291cmFnZSBhbnkgdGhpcmQgcGFydHkgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCwgYWdhaW5zdCBESUtTSEEgYW55IGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYWltIHJlZ2FyZGluZyBhbnkgQ29udGVudCB5b3UgaGF2ZSB1c2VkLCBzdWJtaXR0ZWQsIG9yIG90aGVyd2lzZVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFkZSBhdmFpbGFibGUgb24gb3IgdGhyb3VnaCBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UgdW5zb2xpY2l0ZWQgb2ZmZXJzLCBhZHZlcnRpc2VtZW50cywgcHJvcG9zYWxzLCBvciBzZW5kIGp1bmtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haWwgb3Igc3BhbSB0byBvdGhlciBVc2VycyAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sXG4gICAgICAgICAgICAgICAgICAgICAgICB1bnNvbGljaXRlZCBhZHZlcnRpc2luZywgcHJvbW90aW9uYWwgbWF0ZXJpYWxzLCBvZmZlcmluZ3Mgb3Igb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGljaXRhdGlvbiBtYXRlcmlhbCwgYnVsayBtYWlsaW5nIG9mIGNvbW1lcmNpYWwgYWR2ZXJ0aXNpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFpbiBtYWlsLCBpbmZvcm1hdGlvbmFsIGFubm91bmNlbWVudHMsIGNoYXJpdHkgcmVxdWVzdHMsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGV0aXRpb25zIGZvciBzaWduYXR1cmVzKTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIERJS1NIQSBmb3IgYW55IGlsbGVnYWwgcHVycG9zZSwgb3IgaW4gdmlvbGF0aW9uIG9mIGFueSBsb2NhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLCBuYXRpb25hbCwgb3IgaW50ZXJuYXRpb25hbCBsYXcsIGluY2x1ZGluZywgd2l0aG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRhdGlvbiwgbGF3cyBnb3Zlcm5pbmcgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHJpZXRhcnkgcmlnaHRzLCBhbmQgZGF0YSBwcm90ZWN0aW9uIGFuZCBwcml2YWN5O1xuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhbWUsIGhhcmFzcywgYWJ1c2UsIHRocmVhdGVuIG9yIGRlZnJhdWQgVXNlcnMsIG9yIGNvbGxlY3QsIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0IHRvIGNvbGxlY3QsIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFib3V0IFVzZXJzIG9yIHRoaXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWVzIHdpdGhvdXQgdGhlaXIgY29uc2VudDtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlLCBjaXJjdW12ZW50LCBkaXNhYmxlLCBkYW1hZ2Ugb3Igb3RoZXJ3aXNlIGludGVyZmVyZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eS1yZWxhdGVkIGZlYXR1cmVzIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5LCBhZGFwdCwgdHJhbnNsYXRlIG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIGJhc2VkIHVwb25cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgb24gRElLU0hBIG9yIGFueSBwYXJ0IHRoZXJlb2YsIGV4Y2VwdCBhbmQgb25seSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVudCBleHByZXNzbHkgcGVybWl0dGVkIGJ5IHRoZSBsaWNlbnNlIGFwcGxpY2FibGUgdG8gc3VjaFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudDsgb3JcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZW50aW9uYWxseSBpbnRlcmZlcmUgd2l0aCBvciBkYW1hZ2Ugb3BlcmF0aW9uIG9mIERJS1NIQSBvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIncyB1c2FnZSBvZiBpdCwgYnkgYW55IG1lYW5zLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW9uIGluIGFueSBkZW5pYWwtb2Ytc2VydmljZSB0eXBlIGF0dGFja3Mgb3IgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGluZyBvciBvdGhlcndpc2UgZGlzc2VtaW5hdGluZyB2aXJ1c2VzLCBhZHdhcmUsIHNweXdhcmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3Jtcywgb3Igb3RoZXIgbWFsaWNpb3VzIGNvZGUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Qcml2YWN5IGFuZCBQZXJzb25hbCBJbmZvcm1hdGlvbjwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSB0YWtlcyB0aGUgcHJpdmFjeSBvZiBpdHMgdXNlcnMgdmVyeSBzZXJpb3VzbHkuIFBsZWFzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2aWV3IHRoZSBlbnRpcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgPjxiPlByaXZhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJ5IHVzaW5nIERJS1NIQSBhbmQvb3IgYnkgcHJvdmlkaW5nIHlvdXIgaW5mb3JtYXRpb24sIHlvdSBjb25zZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgY29sbGVjdGlvbiBhbmQgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiB5b3UgZGlzY2xvc2Ugb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYWJsZSBmcm9tIHRpbWUgdG8gdGltZSwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCI+PGI+UHJpdmFjeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvbGljeSBvZiBESUtTSEE8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNvbnRlbnQgUG9saWN5IG9mIERJS1NIQTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgaXMgYW4gb3BlbiBjb250ZW50IHJlcG9zaXRvcnkgdGhhdCBoYXMgYmVlbiBidWlsdCB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZSB0byBlbmFibGUgZ3JlYXRlciBhY2Nlc3MgdG8gbGVhcm5pbmcgYW5kIHRlYWNoaW5nIGNvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHlvdSB1c2UgRElLU0hBLCB5b3Ugam9pbiBhIHZhc3QgY29tbXVuaXR5IG9mIGxlYXJuZXJzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVhY2hlcnMgdXNpbmcgRElLU0hBIHdoaWNoIGludm9sdmVzIGEgY2VydGFpbiBsZXZlbCBvZiB0cnVzdC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgYXJlIGV4cGVjdGVkIHRvIHJlc3BlY3QgdGhhdCB0cnVzdCBhbmQgYmUgcmVzcG9uc2libGUgYWJvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIHVzYWdlIG9mIERJS1NIQSBhbmQgYWxsIGl0cyBDb250ZW50IGFuZCBmb2xsb3cgYWxsIHJlbGV2YW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXJtcywgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgYXBwbGljYWJsZSB0byBDb250ZW50LCBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5Db250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9saWN5IG9mIERJS1NIQTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBCeSBzdWJtaXR0aW5nIC8gdXBsb2FkaW5nIC8gY3JlYXRpbmcvIHB1Ymxpc2hpbmcgQ29udGVudCBvbiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBmb2xsb3dpbmcgdGhlIG9wZW4gbGljZW5zZSBmcmFtZXdvcmtzIGFkb3B0ZWQgYnkgRElLU0hBLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyByZWNvZ25pc2UgYW5kIGFjY2VwdCB0aGF0IHRoZSBDb250ZW50IHdpbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2VkIGFuZCB1c2VkIGJ5IGFueSBpbmRpdmlkdWFsLCBpbnN0aXR1dGlvbiBvciBvcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggdmFyaW91cyBwbGF0Zm9ybXMsIHBvcnRhbHMgYW5kIGFwcGxpY2F0aW9ucyBpbiBhY2NvcmRhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGxpY2Vuc2UgY29uZGl0aW9ucy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSXQgc2hhbGwgYmUgdGhlIHNvbGUgcmVzcG9uc2liaWxpdHkgb2YgUmVnaXN0ZXJlZCBVc2VycyB0byBlbnN1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgcHJvcGVyIGFuZCBjb3JyZWN0IGF0dHJpYnV0aW9ucywgYWNrbm93bGVkZ2VtZW50cyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjaW5nIHJlZmVyZW5jZXMgYXJlIGdpdmVuIHRvIHRoZSBDb250ZW50IGFuZCBpbmRpdmlkdWFsKHMpL1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGl0dXRpb24ocykgdGhhdCBoYXZlIGJlZW4gaW52b2x2ZWQgaW4gdGhlIGRldmVsb3BtZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb24gb2YgQ29udGVudCBhbmQgd2hlcmV2ZXIgQ29udGVudCBoYXMgYmVlbiBxdW90ZWQvdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSXQgc2hhbGwgYmUgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIFJlZ2lzdGVyZWQgVXNlcnMgbm90IHRvIGluZnJpbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICB1cG9uIGFueSB0aGlyZCBwYXJ0eSByaWdodHMgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBzdWNoIGFzIGNvcHlyaWdodHMgb3IgYW55IG90aGVyIGxlZ2FsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodHMgb2YgaW5kaXZpZHVhbChzKS9vcmdhbmlzYXRpb24ocykgd2l0aCByZWdhcmRzIHRvIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbmNsdWRpbmcgYWxsIHRoZSBlbGVtZW50cyB0aGF0IHN1Y2ggQ29udGVudCBjb21wcmlzZXMgc3VjaCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgc2NyaXB0cywgZ3JhcGhpY3MsIHBob3Rvcywgc291bmRzLCBtdXNpYywgdmlkZW9zLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8tdmlzdWFsIGNvbWJpbmF0aW9ucyBldGMuKSBjb250cmlidXRlZCBvbiBESUtTSEEuIEZvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsIG1hdHRlciBhcmlzaW5nIG91dCBvZiBpbmZyaW5nZW1lbnQgb2Ygc3VjaCByaWdodHMgYnkgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIsIHN1Y2ggUmVnaXN0ZXJlZCBVc2VyIHNoYWxsIGJlIHNvbGVseSByZXNwb25zaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGFueSBmaW5hbmNpYWwgb3Igb3RoZXIgZGFtYWdlcyBhcmlzaW5nIG91dCBvZiBzdWNoIHZpb2xhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkaXNwdXRlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNoYW5nZXMgaW4gRElLU0hBIFBvbGljaWVzPC9oND5cbiAgICAgICAgICAgICAgICA8cD5UaGVzZSBUZXJtcyAoaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgIGFueSBwb2xpY2llcywgdGVybXMgYW5kIGd1aWRlbGluZXMpIG1heSBiZSB1cGRhdGVkIG9yIG1vZGlmaWVkIGZyb21cbiAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lIGFuZCB0aGUgcmV2aXNlZCBUZXJtcyB3aWxsIGJlIHJlZmxlY3RlZCBoZXJlaW4uIFlvdXJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWVkIHVzZSBvZiBESUtTSEEgY29uc3RpdHV0ZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbi1jdXJyZW50XG4gICAgICAgICAgICAgICAgICAgIFRlcm1zLiBIZW5jZSwgd2UgZW5jb3VyYWdlIHlvdSB0byB2aXNpdCB0aGlzIHBhZ2UgcGVyaW9kaWNhbGx5IHRvXG4gICAgICAgICAgICAgICAgICAgIHJldmlldyBhbnkgY2hhbmdlcy5cblxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkxpbWl0ZWQgTGlhYmlsaXR5PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciB5b3Ugc2hhbGwgbm90IGNvbGxlY3QgYW55IHBlcnNvbmFsIGluZm9ybWF0aW9uIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5zaXRpdmUgcGVyc29uYWwgZGF0YSBvZiBvdGhlciBVc2VycyB0aHJvdWdoIERJS1NIQSwgYnV0IGlmIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgZG8gY29sbGVjdCBzdWNoIGluZm9ybWF0aW9uLCB5b3UgbXVzdCBlbnN1cmUgdGhhdCBzdWNoIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLCB0cmFuc2ZlciBhbmQgZGlzY2xvc3VyZSBpcyBpbiBhY2NvcmRhbmNlIHdpdGggSW5kaWFuIGxhd1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSAoSW5kaWFuKVxuICAgICAgICAgICAgICAgICAgICAgICAgSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoUmVhc29uYWJsZSBTZWN1cml0eSBQcmFjdGljZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9jZWR1cmVzKSBSdWxlcywgMjAxMS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JLCBhZG1pbmlzdHJhdG9ycyBhbmQgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIGRvIG5vdCBndWFyYW50ZWUgdGhlIGFjY3VyYWN5IG9mIGFueSBvZiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgb24gdGhlIERJS1NIQS4gR29JLCBhZG1pbmlzdHJhdG9ycyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIGFuZCBJbnN0aXR1dGlvbmFsIFVzZXJzIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICBub3QgdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgYW55IGV4dGVybmFsIHdlYnNpdGVzIGxpbmtlZCBvblxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLCBpbmNsdWRpbmcgY29tcGxpYW5jZSB3aXRoIEluZGlhbiBHb3Zlcm5tZW50IFdlYlxuICAgICAgICAgICAgICAgICAgICAgICAgR3VpZGVsaW5lcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IGFuZCBjb25maWRlbnRpYWxpdHkgb2YgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4gQW55XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmF1dGhvcmlzZWQgdXNlIG9mIHlvdXIgdXNlcm5hbWUgb3IgcGFzc3dvcmQgb3IgYW55IG90aGVyIGJyZWFjaFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Ygc2VjdXJpdHkgbXVzdCBiZSBub3RpZmllZCBieSBzZW5kaW5nIGFuIGVtYWlsIG5vdGlmaWNhdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHRlYW1kaWtzaGEub3JnXCI+PGI+c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZzwvYj48L2E+LiBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBJbnN0aXR1dGlvbmFsIFVzZXJzIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGxvc3Mgb3IgZGFtYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIHByb3Zpc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgcmVzcG9uc2libGUgZm9yIGFueSBvZmZlbnNpdmUgb3IgdW5sYXdmdWxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgcG9zdGVkLCB0cmFuc21pdHRlZCwgc2VudCBvciBjb21tdW5pY2F0ZWQgdGhyb3VnaCBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgICAgICBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIEluc3RpdHV0aW9uYWwgVXNlcnMgc2hhbGwgbm90IGJlIGhlbGQgcmVzcG9uc2libGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmZW5zaXZlIG9yIHVubGF3ZnVsIENvbnRlbnQgcG9zdGVkLCB1cGxvYWRlZCwgdHJhbnNtaXR0ZWQsIHNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZWNlaXZlZCB0aHJvdWdoIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gbm8gZXZlbnQgd2lsbCBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEgb3IgSW5zdGl0dXRpb25hbCBVc2VycyBiZSBsaWFibGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2UgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGluZGlyZWN0IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50aWFsIGxvc3Mgb3IgZGFtYWdlLCBvciBhbnkgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoYXRzb2V2ZXIgYXJpc2luZyBmcm9tIHVzZSwgb3IgbG9zcyBvZiB1c2UsIG9mIGRhdGEsIGFyaXNpbmcgb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIGFjY2VzcyBvciB1c2Ugb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+VGVybWluYXRpb248L2g0PlxuICAgICAgICAgICAgICAgIDxwPkFueSB2aW9sYXRpb24gb3IgYnJlYWNoIG9mIHRoZXNlIFRlcm1zLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgd2hpbGUgaW52ZXN0aWdhdGluZyBjb21wbGFpbnRzIG9yIGFsbGVnZWQgdmlvbGF0aW9uIG9mIHRoZXNlXG4gICAgICAgICAgICAgICAgICAgIFRlcm1zLCBtYXkgbGVhZCB0byBzdXNwZW5zaW9uIG9yIHRlcm1pbmF0aW9uIG9mIHlvdXIgcmVnaXN0cmF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gRElLU0hBLlxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RWxlY3Ryb25pYyBBZ3JlZW1lbnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxwPlRoaXMgZG9jdW1lbnQgaXMgYSB3cml0dGVuXG4gICAgICAgICAgICAgICAgICAgIGFncmVlbWVudCwgYW4gZWxlY3Ryb25pYyByZWNvcmQgYW5kIHZhbGlkIGFuZCBlbmZvcmNlYWJsZSBlbGVjdHJvbmljXG4gICAgICAgICAgICAgICAgICAgIGFncmVlbWVudCAvIGNvbnRyYWN0IHVuZGVyIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwIChhc1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhYmxlIGluIFJlcHVibGljIG9mIEluZGlhKSBhbmQgcnVsZXMgdGhlcmUgdW5kZXIgYXMgYXBwbGljYWJsZVxuICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGFtZW5kZWQgcHJvdmlzaW9ucyBwZXJ0YWluaW5nIHRvIGVsZWN0cm9uaWMgcmVjb3JkcyBpbiB2YXJpb3VzXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1dGVzIHVuZGVyIGFwcGxpY2FibGUgSW5kaWFuIGxhd3MuIFRoaXMgZWxlY3Ryb25pYyByZWNvcmQgaXNcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkIGJ5IGEgY29tcHV0ZXIgc3lzdGVtIGFuZCBkb2VzIG5vdCByZXF1aXJlIGFueSBwaHlzaWNhbCBvclxuICAgICAgICAgICAgICAgICAgICBkaWdpdGFsIHNpZ25hdHVyZXMuIFlvdXIgdXNhZ2Ugb2YgRElLU0hBIHNoYWxsIGJlIHlvdXIgZGVlbWVkXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdGFuY2Ugb2YgdGhlc2UgVGVybXMgYW5kIGFsbCB0aGUgbW9kaWZpY2F0aW9ucyBhbmQgdXBkYXRlc1xuICAgICAgICAgICAgICAgICAgICB0aGVyZXRvLlxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+R292ZXJuaW5nIExhdyBhbmQgRGlzcHV0ZSBSZXNvbHV0aW9uPC9oND5cbiAgICAgICAgICAgICAgICA8cD4gVGhlc2UgVGVybXNcbiAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgZ292ZXJuZWQgYnkgYW5kIGNvbnN0cnVlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEluZGlhbiBsYXcuXG4gICAgICAgICAgICAgICAgICAgIEFueSBkaXNwdXRlIGFyaXNpbmcgdW5kZXIgdGhlc2UgVGVybXMgc2hhbGwgYmUgc3ViamVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlIGp1cmlzZGljdGlvbiBvZiB0aGUgY291cnRzIG9mIE5ldyBEZWxoaSwgSW5kaWEuXG4gICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5EaXNjbGFpbWVyPC9oND5cbiAgICAgICAgICAgICAgICA8cD4gRElLU0hBIElTIEFWQUlMQUJMRSBPTiBBTiBcIkFTIElTXCIgQkFTSVNcbiAgICAgICAgICAgICAgICAgICAgQU5EIFRIRVJFIEFSRSBOTyBXQVJSQU5USUVTIE9GIEFOWSBLSU5EIFdJVEggUkVTUEVDVCBUTyBESUtTSEEuIEdPSVxuICAgICAgICAgICAgICAgICAgICBBTkQgVEhFIEFETUlOSVNUUkFUT1JTIEFORCBURUNITk9MT0dZIFNVUFBPUlQgUFJPVklERVJTIE9GIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICBTUEVDSUZJQ0FMTFkgRElTQ0xBSU0gQU5ZIElNUExJRUQgV0FSUkFOVElFUyBPRiBGSVRORVNTIEZPUiBBXG4gICAgICAgICAgICAgICAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT04tSU5GUklOR0VNRU5ULiBBQ0NFU1MgQU5EIFVTRSBPRiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgKElOQ0xVRElORyBBTlkgQ09OVEVOVCBPUiBJTkZPUk1BVElPTikgSVMgRU5USVJFTFkgQVQgWU9VUiBPV04gUklTSy5cbiAgICAgICAgICAgICAgICAgICAgSU4gTk8gRVZFTlQgV0lMTCBHT0kgT1IgVEhFIEFETUlOSVNUUkFUT1JTIEFORCBURUNITk9MT0dZIFNVUFBPUlRcbiAgICAgICAgICAgICAgICAgICAgUFJPVklERVJTIE9GIERJS1NIQSBCRSBMSUFCTEUgRk9SIEFOWSBFWFBFTlNFLCBMT1NTIE9SIERBTUFHRVxuICAgICAgICAgICAgICAgICAgICBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBMT1NTIE9SXG4gICAgICAgICAgICAgICAgICAgIERBTUFHRSwgT1IgQU5ZIEVYUEVOU0UsIExPU1MgT1IgREFNQUdFIFdIQVRTT0VWRVIgQVJJU0lORyBGUk9NIFVTRSwgT1JcbiAgICAgICAgICAgICAgICAgICAgTE9TUyBPRiBVU0UsIE9GIERBVEEsIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9GXG4gICAgICAgICAgICAgICAgICAgIERJS1NIQS4gV0hFTiBZT1UgU0VMRUNUIEEgTElOSyBUTyBBTiBPVVRTSURFIFdFQlNJVEUsIFlPVSBBUkUgTEVBVklOR1xuICAgICAgICAgICAgICAgICAgICBESUtTSEEgQU5EIEFSRSBTVUJKRUNUIFRPIFRIRSBQUklWQUNZIEFORCBTRUNVUklUWSBQT0xJQ0lFUyBPRiBUSEVcbiAgICAgICAgICAgICAgICAgICAgT1dORVJTL1NQT05TT1JTIE9GIFRIRSBPVVRTSURFIFdFQlNJVEUgLyBET01BSU4uXG4gICAgICAgICAgICAgICAgPC9wPlxuXG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInRleHQtcmlnaHQgVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj5SZWFkLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2E+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIHRlcm1zIGFuZCB1c2UgZW5kIGhlcmUtLT5cblxuICAgICAgICA8IS0tICAgIFByaXZhY3kgUG9saWN5IHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiMlwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cInByaXZhY3lQb2xpY3lcIiBhcmlhLWxhYmVsbGVkYnk9XCJwcml2YWN5LXBvbGljeS10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5Qcml2YWN5IFBvbGljeSBvZiBESUtTSEE8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgRElLU0hBIChEaWdpdGFsIEluZnJhc3RydWN0dXJlIGZvciBLbm93bGVkZ2UgU2hhcmluZyApIGlzIHRoZSBOYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybSBmb3IgU2Nob29sIEVkdWNhdGlvbiBmb3IgdGhlIGJlbmVmaXQgb2YgdGVhY2hlcnMgYW5kIGxlYXJuZXJzXG4gICAgICAgICAgICAgICAgICAgIGFjcm9zcyBJbmRpYS4gRElLU0hBIGlzIGFuIGluaXRpYXRpdmUgb2YgTmF0aW9uYWwgQ291bmNpbCBmb3JcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uYWwgUmVzZWFyY2ggYW5kIFRyYWluaW5nIChOQ0VSVCkgKE1pbmlzdHJ5IG9mIEVkdWNhdGlvbiAoTW9FKSxcbiAgICAgICAgICAgICAgICAgICAgR292ZXJubWVudCBvZiBJbmRpYSkuIFVzZXJzIG9mIERJS1NIQSBjYW4gYWNjZXNzIGNvbnRlbnQgZm9yIGxlYXJuaW5nIG9uXG4gICAgICAgICAgICAgICAgICAgIHRoZSB3ZWIgYXRcbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZGlrc2hhLmdvdi5pblwiIHRhcmdldD1cIl9ibGFua1wiPmh0dHBzOi8vZGlrc2hhLmdvdi5pbjwvYT4sIHRocm91Z2ggdGhlIERJS1NIQSBtb2JpbGUgYXBwbGljYXRpb24sIGFuZCB0aGUgZGVza3RvcCBhcHBsaWNhdGlvbi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoZSBwcml2YWN5IGFuZCBwcm90ZWN0aW9uIG9mIGRhdGEgb2YgRElLU0hB4oCZcyBVc2VycyBpcyBvZiB1dG1vc3RcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW5jZSBhbmQgc2hhbGwgYmUgZW5zdXJlZCBhdCBhbGwgdGltZXMuIFRoaXMgUHJpdmFjeSBQb2xpY3kgc2hhbGxcbiAgICAgICAgICAgICAgICAgICAgY292ZXIgZGV0YWlscyBvZiBkYXRhIHByb3RlY3Rpb24gYW5kIG1hbmFnZW1lbnQgb24gRElLU0hBLCBpbmNsdWRpbmcgaG93XG4gICAgICAgICAgICAgICAgICAgIHBlcnNvbmFsIGRhdGEgb2YgdXNlcnMgb2YgRElLU0hBIGlzIG1hbmFnZWQsIHVzZWQgYW5kIHByb2Nlc3NlZC4gVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgYXJlIGluZGl2aWR1YWxzIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgYW5kIGJyb2FkbHkgY29tcHJpc2UgKGkpIHVzZXJzXG4gICAgICAgICAgICAgICAgICAgIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgd2l0aG91dCByZWdpc3RlcmluZyB0aGVtc2VsdmVzIG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAoXCI8c3Ryb25nPlVzZXJzPC9zdHJvbmc+XCIpLCAoaWkpIHVzZXJzIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJpbmcgdGhlbXNlbHZlcyBvbiBESUtTSEEgKFwiPHN0cm9uZz5SZWdpc3RlcmVkIFVzZXJzPC9zdHJvbmc+XCIpLFxuICAgICAgICAgICAgICAgICAgICAoaWlpKSB1c2VycyB3aG8gYXJlIHJlZ2lzdGVyZWQgb24gRElLU0hBIGFuZCBhcmUgYXV0aG9yaXNlZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICBhZG1pbmlzdHJhdG9ycyBvbiBiZWhhbGYgb2YgSW5zdGl0dXRpb25hbCBVc2VycyAoc3VjaCBhcyBOQ0VSVCwgU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uIERlcGFydG1lbnRzIGV0Yy4pIChcIjxzdHJvbmc+QWRtaW5pc3RyYXRvcnM8L3N0cm9uZz5cIikuXG4gICAgICAgICAgICAgICAgICAgIEluc3RpdHV0aW9uYWwgVXNlcnMgb3BlcmF0ZSBhcyB0ZW5hbnRzIG9uIERJS1NIQS4gTW9yZSBkZXRhaWxzIG9uIHRoZVxuICAgICAgICAgICAgICAgICAgICByaWdodHMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgb2YgVXNlcnMgYW5kIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIHNldCBvdXQgaW5cbiAgICAgICAgICAgICAgICAgICAgdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBCeSBhY2Nlc3NpbmcgYW5kIHVzaW5nIERJS1NIQSwgYW5kIGJ5IHByb3ZpZGluZyB5b3VyIGluZm9ybWF0aW9uIG9uXG4gICAgICAgICAgICAgICAgICAgIERJS1NIQSwgeW91IGNvbnNlbnQgdG8gdGhlIGNvbGxlY3Rpb24gYW5kIHVzZSBvZiB0aGUgaW5mb3JtYXRpb24geW91XG4gICAgICAgICAgICAgICAgICAgIGRpc2Nsb3NlIG9uIERJS1NIQSBieSBESUtTSEEgYW5kIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzIG9mIERJS1NIQSBpblxuICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhcyBhcHBsaWNhYmxlIGZyb21cbiAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgYW5kIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uIElmIHlvdSBkbyBub3QgYWdyZWUgd2l0aCB0aGUgY29udGVudHMgb2YgdGhpcyBwb2xpY3ksIHBsZWFzZSBkbyBub3RcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzIG9yIHVzZSBESUtTSEEuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBUaGlzXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSByZWFkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDxzdHJvbmc+VGVybXMgb2YgVXNlPC9zdHJvbmc+LlxuICAgICAgICAgICAgICAgICAgICBEZWZpbmVkIHRlcm1zIHVzZWQgYnV0IG5vdCBkZWZpbmVkIGhlcmVpbiBzaGFsbCBoYXZlIHRoZSBtZWFuaW5nXG4gICAgICAgICAgICAgICAgICAgIGFzY3JpYmVkIHRvIHRoZW0gaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlJpZ2h0cyBvZiBVc2Vyczo8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBmYWlyLCB0cmFuc3BhcmVudCBhbmQgbGF3ZnVsIGNvbGxlY3Rpb24gb2YgeW91ciBkYXRhIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJpZ2h0IHRvIGJlIGluZm9ybWVkIGFib3V0IHRoZSB3YXlzIGluIHdoaWNoIHlvdXIgZGF0YSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgY29sbGVjdGVkIG9uIERJS1NIQSB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcmVjZWl2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIHRvIHByb3ZpZGUgaW5mb3JtZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnQgYmVmb3JlIGNvbGxlY3Rpb24gb2YgeW91ciBwZXJzb25hbGx5IGlkZW50aWZpYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3Igc2Vuc2l0aXZlIHBlcnNvbmFsIGRhdGEgb3IgaW5mb3JtYXRpb24gb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2hhcmluZyBvZiB0aGUgc2FtZSB3aXRoIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5SaWdodCB0byByZXZva2Ugc3VjaCBjb25zZW50PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcHJpdmFjeSBhbmQgY29uZmlkZW50aWFsaXR5IHJlZ2FyZGluZyB5b3VyIHBlcnNvbmFsIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBwcm9wZXIgdXNlIG9mIHlvdXIgcGVyc29uYWwgZGF0YSBhbmQgaW5mb3JtYXRpb24gYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIGZvciBzcGVjaWZpZWQgYW5kIGxlZ2l0aW1hdGUgcHVycG9zZXMgcmVsYXRlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciB1c2Ugb2YgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJpZ2h0IHRvIGtlZXAgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiBhY2N1cmF0ZSBhbmQgdXAgdG8gZGF0ZVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBzZWN1cmUgY29sbGVjdGlvbiwgaGFuZGxpbmcgYW5kIHN0b3JhZ2Ugb2YgeW91ciBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBhbmQgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcHJvdGVjdGlvbiBmcm9tIHVuYXV0aG9yaXNlZCBvciB1bmxhd2Z1bCB1c2Ugb2YgeW91clxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uYWwgZGF0YSBhbmQgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlJpZ2h0IHRvIHZpZXcgYW5kIGFjY2VzcyBESUtTSEHigJlzIHByaXZhY3kgcG9saWN5PC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlJlc3BvbnNpYmlsaXRpZXMgb2YgQWRtaW5pc3RyYXRvcnMgd2l0aCByZXNwZWN0IHRvIFVzZXIgZGF0YSBhbmRcbiAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb248L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+VG8gcmVzcGVjdCB0aGUgcHJpdmFjeSBhbmQgZGF0YSBwcm90ZWN0aW9uIHJpZ2h0cyBvZiBVc2VyczwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IGFueSBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24pIHNoYXJlZCBieSBSZWdpc3RlcmVkIFVzZXJzIGlzIGxpbWl0ZWQgc29sZWx5IHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBhbmQgcHVycG9zZXMgbWVudGlvbmVkIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8ga25vdyB0aGF0IGFueSB1c2Ugb2YgZGF0YSBmb3IgcHVycG9zZXMgb3V0c2lkZSBvZiB0aGUgcHJvcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Ugc2hhbGwgYmUgY29uc2lkZXJlZCB2aW9sYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoZSBwb2xpY2llcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgcmVzcG9uc2libGUgYW5kIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIG9ibGlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoZWlyIGNvbW11bmljYXRpb24gKGlmIGFueSkgd2l0aCBSZWdpc3RlcmVkIFVzZXJzIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlIG9mIHRoZWlyIHVzYWdlIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldCBvdXQgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIENvbnRlbnQgYW5kIHByb2dyYW1zIG9uIERJS1NIQSBhcmUgbm90IHVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhbnkgb2YgdGhlIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPldoYXQgVXNlciBkYXRhIGFuZCBpbmZvcm1hdGlvbiBpcyBjb2xsZWN0ZWQgb24gRElLU0hBPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFsbCA8c3Ryb25nPlVzZXJzPC9zdHJvbmc+IGNhbiBleHBlY3QgdGhlIGZvbGxvd2luZyBkYXRhIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb2YgdGhlaXJzIHRvIGJlIGNvbGxlY3RlZCBvbiBESUtTSEE6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QmFzaWMgSW5mb3JtYXRpb248L3N0cm9uZz46IFVzZXIgVHlwZSAoZWcuIHRlYWNoZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWRlbnQsIG90aGVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkdlb2dyYXBoaWNhbCBJbmZvcm1hdGlvbjwvc3Ryb25nPjogU3RhdGUgYW5kIERpc3RyaWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UHJlZmVyZW5jZXM6IDwvc3Ryb25nPkJvYXJkIG9mIGludGVyZXN0LCBNZWRpdW0gb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb24sIENsYXNzZXMgb2YgaW50ZXJlc3QsIFN1YmplY3RzIG9mIGludGVyZXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RElLU0hBIFVzYWdlOiA8L3N0cm9uZz5Vc2FnZSBoaXN0b3J5LCB0aW1lIHNwZW50IG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQsIENvbnRlbnQgY3JlYXRlZC8gY29udHJpYnV0ZWQgLyBwdWJsaXNoZWQgYW5kIGl0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSwgcHJvZ3Jlc3MgaW4gdHJhY2thYmxlIGNvbGxlY3Rpb25zIG9mIENvbnRlbnQgKGVnLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vyc2VzKSwgc2NvcmVzICZhbXA7IGFzc2Vzc21lbnQgcmVzdWx0cywgcXVlc3Rpb24td2lzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXJzIGFuZCBvdGhlciB0ZWxlbWV0cnkgZGF0YSBpbiByZWxhdGlvbiB0byB1c2FnZSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEsIGJhZGdlcyBnZW5lcmF0ZWQsIGNlcnRpZmljYXRlcyBpc3N1ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+SVAgQWRkcmVzczwvc3Ryb25nPjogVGhlIElQIGFkZHJlc3Mgb2YgYSBVc2VyIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZCBvbmNlIGZvciB0aGUgbGltaXRlZCBwdXJwb3NlIG9mIGRldGVybWluaW5nIHlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm94aW1hdGUgbG9jYXRpb24gLSB0aGUgU3RhdGUsIENpdHkgYW5kIERpc3RyaWN0IG9mIG9yaWdpbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIElQIGFkZHJlc3MgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2Ugb2YgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBhbmQgdGhlIHByZWNpc2UgbG9jYXRpb24gb2YgYW55IFVzZXIgY2Fubm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVybWluZWQuIFRoZSBVc2VyIGNhbiBjb25maXJtIG9yIG1vZGlmeSB0aGUgU3RhdGUgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RyaWN0IGRldGFpbHMgZGV0ZXJtaW5lZCBvbiB0aGUgYmFzaXMgb2YgdGhlIElQIGFkZHJlc3MuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSB1c2VzIGhhc2ggZGlnZXN0IGZ1bmN0aW9ucyBhbmQgZmluZ2VycHJpbnRpbmcgdG8gY3JlYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZSBpZGVudGlmaWVycyBmb3IgZGlmZmVyZW50IGRldmljZXMuIERJS1NIQSBhbHNvIHVzZXMgRkNNXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VucyB0byBlbmFibGUgcHVzaCBub3RpZmljYXRpb25zIHRvIHlvdXIgZGV2aWNlcywgc2hvdWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBjaG9vc2UgdG8gb3B0IGZvciB0aGUgc2FtZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFsc28gZ2VuZXJhdGVzIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGVhY2ggZGV2aWNlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYWNjZXNzIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gY2FzZSBvZiA8c3Ryb25nPlJlZ2lzdGVyZWQgVXNlcnM8L3N0cm9uZz4sIHRoZXkgY2FuIGV4cGVjdCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZWlycyB0byBiZSBjb2xsZWN0ZWQgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQTpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5OYW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RW1haWwgQWRkcmVzcyAvIE1vYmlsZSBudW1iZXIsIGFuZDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRJS1NIQSBQYXNzd29yZDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJlZ2lzdGVyZWQgVXNlcnMgPC9zdHJvbmc+aGF2ZSBhbiBvcHRpb24gdG8gcHJvdmlkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBvZiB0aGVpcnMgKFwiPHN0cm9uZz5EZWNsYXJlZCBJbmZvcm1hdGlvbjwvc3Ryb25nPlwiKSwgbmFtZWx5OlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJvdGggRW1haWwgQWRkcmVzcyBhbmQgTW9iaWxlIE51bWJlciw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5CbG9jayw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TY2hvb2wgb3IgT3JnYW5pc2F0aW9uIG5hbWUsPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2Nob29sIFUtRElTRSBjb2RlIG9yIE9yZ2FuaXNhdGlvbiBjb2RlIC8gbnVtYmVyLDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPklEIGFzIHByb3ZpZGVkIGJ5IHlvdXIgc3RhdGUvYm9hcmQvb3JnYW5pc2F0aW9uLjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBObyBvdGhlciBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBvciBzZW5zaXRpdmUgcGVyc29uYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgb3IgaW5mb3JtYXRpb24gb2YgdGhlIFVzZXIgaXMgY29sbGVjdGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBbGwgPHN0cm9uZz5Vc2VycyA8L3N0cm9uZz4odXNpbmcgdGhlIERJS1NIQSBtb2JpbGUgYXBwIHRvIGFjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBKSBoYXZlIGEgcHJvZmlsZSB3aGljaCBzcGVjaWZpZXMgdGhlIFVzZXIgdHlwZSwgR2VvZ3JhcGhpY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICBJbmZvcm1hdGlvbiBhbmQgUHJlZmVyZW5jZXMuIFRoZXkgbWF5IGNob29zZSB0byBjdXN0b21pc2UgdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUgYnkgY2hhbmdpbmcgdGhlc2UgZGV0YWlscyBhdCBhbnkgdGltZSBhcyB3ZWxsIGFzIHByb3ZpZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgbmFtZS4gSWYgVXNlcnMgYXJlIHVzaW5nIERJS1NIQSBhcyBhIGd1ZXN0IFVzZXIsIGkuZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgcmVnaXN0ZXJpbmcgb24gRElLU0hBLCB5b3VyIFVzZXIgdHlwZSBhbmQgUHJlZmVyZW5jZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZWQgbG9jYWxseSBvbiB5b3VyIGRldmljZS4gT25seSBSZWdpc3RlcmVkIFVzZXJzIGNhbiB2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVpciBwcm9maWxlIG9uIGJvdGggdGhlIERJS1NIQSBtb2JpbGUgYXBwIGFzIHdlbGwgYXMgdGhlIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgd2ViIHBvcnRhbCwgYW5kIHRoZWlyIHByb2ZpbGVzIHNwZWNpZnkgYWxsIHRoZSBhZGRpdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBzdWNoIGEgUmVnaXN0ZXJlZCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkNoaWxkcmVuIGFzIFJlZ2lzdGVyZWQgVXNlcnM8L3N0cm9uZz46IERJS1NIQSBjb2xsZWN0cyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIOKAmHllYXIgb2YgYmlydGjigJkgb2YgYSBVc2VyIGluIG9yZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGEgVXNlciBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVsb3cgMTggeWVhcnMuIEluIHRoZSBldmVudCBhIHBlcnNvbiB1bmRlciAxOCB5ZWFycyBvZiBhZ2UgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyaW5nIG9uIERJS1NIQSwgRElLU0hBIHByb21wdHMgdGhlIFVzZXIgdG8gcHJvdmlkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsIGFkZHJlc3Mgb3IgbW9iaWxlIG51bWJlciBvZiBhIHBhcmVudCAvIGd1YXJkaWFuIGZvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mIHJlZ2lzdHJhdGlvbi4gQ2hpbGRyZW4gdW5kZXIgMTggeWVhcnMgb2YgYWdlIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgbmVpdGhlciByZXF1aXJlZCB0byBub3IgZW5jb3VyYWdlZCB0byBwcm92aWRlIHRoZWlyIHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91IHJlcHJlc2VudCB0byB1cyB0aGF0IHRoZSBkYXRhIGFuZCBpbmZvcm1hdGlvbiB5b3UgcHJvdmlkZSBvblxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGZyb20gdGltZSB0byB0aW1lIGlzIGFuZCBzaGFsbCBiZSBjb3JyZWN0LCBjdXJyZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZCBhbmQgeW91IGhhdmUgYWxsIHRoZSByaWdodHMsIHBlcm1pc3Npb25zIGFuZCBjb25zZW50cyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBzdWNoIGRhdGEgYW5kIGluZm9ybWF0aW9uLiBZb3VyIHByb3ZpZGluZyB0aGUgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhdGEgYW5kIHRoZSBjb25zZXF1ZW50IHN0b3JhZ2UsIGNvbGxlY3Rpb24sIHVzYWdlLCB0cmFuc2ZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyBvciBwcm9jZXNzaW5nIG9mIHRoZSBzYW1lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgbm90IGJlIGluIHZpb2xhdGlvbiBvZiBhbnkgdGhpcmQgcGFydHkgYWdyZWVtZW50LCBsYXdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnRlciBkb2N1bWVudHMsIGp1ZGdtZW50cywgb3JkZXJzIGFuZCBkZWNyZWVzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPiBIb3cgaXMgVXNlciBkYXRhIGFuZCBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQ/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgSW5mb3JtYXRpb24sIEdlb2dyYXBoaWNhbCBJbmZvcm1hdGlvbiBhbmQgUHJlZmVyZW5jZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0ZWQgd2hlbiBhIFVzZXIgYWNjZXNzZXMgYW5kIHVzZXMgRElLU0hBIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZXNlIGRldGFpbHMgY2FuIGJlIHVwZGF0ZWQgYnkgdGhlIFVzZXIgZnJvbSB0aGVpciBwcm9maWxlLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2FnZSBkYXRhIG9mIFVzZXJzIGlzIGNvbGxlY3RlZCBhcyBhbmQgd2hlbiBhIFVzZXIgYWNjZXNzZXMsIHVzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBuYXZpZ2F0ZXMgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBSZWdpc3RlcmVkIFVzZXJzLCBuYW1lbHksXG4gICAgICAgICAgICAgICAgICAgICAgICAoaSkgTmFtZSAoaWkpIEVtYWlsIEFkZHJlc3MgLyBNb2JpbGUgTnVtYmVyIChpaWkpIFBhc3N3b3JkLCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGVkIHdoZW4gYSBVc2VyIGNyZWF0ZXMgYSByZWdpc3RlcmVkIGFjY291bnQgb24gRElLU0hBIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVjb21lcyBhIFJlZ2lzdGVyZWQgVXNlciBvciB3aGVuIGEgUmVnaXN0ZXJlZCBVc2VyIHVwZGF0ZXMgdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlY2xhcmVkIEluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnMgaXMgY29sbGVjdGVkIHdpdGggdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0IGNvbnNlbnQgd2hlbiB0aGV5IGNob29zZSB0byBwcm92aWRlIHRoZSBzYW1lIG9uIERJS1NIQSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggdGhlaXIgcHJvZmlsZSBvciBvdGhlcndpc2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaG8gaGFzIGFjY2VzcyB0byBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBVc2FnZSBkYXRhIChpbmNsdWRpbmcgVXNhZ2UgYWNyb3NzIHRoZSBTdGF0ZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBEaXN0cmljdHMpIGlzIGEgcGFydCBvZiBhbm9ueW1pc2VkIGFuZCBhZ2dyZWdhdGVkIGRhdGEgc2V0cyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBpcyBhY2Nlc3NpYmxlIHRvIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzIG9mIERJS1NIQSBhbmQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBlbXBsb3llZXMsIGNvbnRyYWN0b3JzIG9yIHN1YmNvbnRyYWN0b3JzIG9mIHRoZSB0ZWNobm9sb2d5IHNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYSBVc2VyLCB5b3VyIEJhc2ljIEluZm9ybWF0aW9uLCBHZW9ncmFwaGljYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIEluZm9ybWF0aW9uLCBQcmVmZXJlbmNlcywgYW5kIFVzYWdlIGRhdGEgaXMgYWNjZXNzaWJsZSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcGxveWVlcywgY29udHJhY3RvcnMgb3Igc3ViY29udHJhY3RvcnMgb2YgdGhlIHRlY2hub2xvZ3kgc2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzIG9mIERJS1NIQSAodW5kZXIgc3RyaWN0IGNvbmZpZGVudGlhbGl0eSBvYmxpZ2F0aW9ucykgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZXkgbmVlZCB0byBhY2Nlc3MgdGhlIGRhdGEgdG8gcHJvY2VzcyBpdCBvbiBiZWhhbGYgb2YgRElLU0hBIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhbiBBZG1pbmlzdHJhdG9yIG9yIHRvIHByb3ZpZGUgdGhlIHNlcnZpY2VzIGF2YWlsYWJsZSBvbiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgICAgICBGb3IgUmVnaXN0ZXJlZCBVc2VycywgeW91ciBOYW1lIGlzIGFsc28gYWNjZXNzaWJsZSBpbiB0aGlzIG1hbm5lci5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhbHNvIGhhdmUgYW4gb3B0aW9uIHRvIGV4cGxpY2l0bHkgY29uc2VudCB0byBnaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxldmFudCBBZG1pbmlzdHJhdG9ycyBhY2Nlc3MgdG8gdGhlaXIgTmFtZSwgQmFzaWMgSW5mb3JtYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBQcmVmZXJlbmNlcywgVXNhZ2UgZGF0YSwgYW5kIERlY2xhcmVkIEluZm9ybWF0aW9uIGZvciBzcGVjaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIHN1Y2ggYXMgaW1wbGVtZW50YXRpb24gb2YgcHJvZ3JhbXMgb24gRElLU0hBIGxpa2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXJzZXMuIE5vdGUgdGhhdCBJbnN0aXR1dGlvbmFsIFVzZXJzIGFyZSByZXF1aXJlZCB0byBlbnN1cmUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgcmVzcGVjdGl2ZSBBZG1pbmlzdHJhdG9ycyBjb21wbHkgd2l0aCBhbmQgQWRtaW5pc3RyYXRvcnMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJsZSB0byBjb21wbHkgd2l0aCB0aGUgcmVsZXZhbnQgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhcyBhcHBsaWNhYmxlIGZyb20gdGltZSB0byB0aW1lLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFVzYWdlIGRhdGEgd2hpY2ggaXMgYW5vbnltaXNlZCBhbmQgYWdncmVnYXRlZCBieSBTdGF0ZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIERpc3RyaWN0IGlzIGFsc28gYXZhaWxhYmxlIHB1YmxpY2x5IG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gb3JkZXIgdG8gcHJvdmlkZSBhbmQgaW1wcm92ZSBESUtTSEEsIGEgbGltaXRlZCBudW1iZXIgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXJkLXBhcnR5IHNlcnZpY2VzIHJlcXVpcmUgYWNjZXNzIHRvIHNvbWUgb2YgeW91ciBwZXJzb25hbCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgaW5mb3JtYXRpb24sIGVnLiBGcmVzaERlc2ssIEdvb2dsZSBQbGF5U3RvcmUuIFRoaXJkIHBhcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyBhcmUgY29udHJhY3R1YWxseSBwcm9oaWJpdGVkIGZyb20gdXNpbmcgeW91ciBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHRvIHByb3ZpZGUgdGhlIHNlcnZpY2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gaXMgb25seSBhY2Nlc3NpYmxlIG91dHNpZGUgb2YgdGhlIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gd2hlbiBpdCBpcyBuZWNlc3NhcnkgdG8gb2ZmZXIgdGhlIHNlcnZpY2UsIGNvbXBseSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXcsIG9yIHdpdGggeW91ciBwZXJtaXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBpcyBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIHVzZWQgZm9yPyA8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgcHJvY2Vzc2VzIHlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gd2hlbiBuZWNlc3NhcnkgZm9yXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRpbmcgYWNjZXNzIHRvIENvbnRlbnQgZm9yIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCBydW5uaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtcyBvbiBESUtTSEEuIFRoZXNlIHB1cnBvc2VzIGFyZSBsZWdpdGltYXRlLiBUaGUgdXNlcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhIGFyZSBzZXQgb3V0IGJlbG93OlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gY3JlYXRlIGEgcHJvZmlsZSBmb3IgeW91IHRvIGhhdmUgYSBjdXN0b21pc2VkIGV4cGVyaWVuY2Ugb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBzdWdnZXN0IHJlbGV2YW50IENvbnRlbnQgZm9yIHlvdSB0byBjb252ZW5pZW50bHkgZGlzY292ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBiYXNlZCBvbiB5b3VyIHByZWZlcmVuY2VzLCBhY3Rpdml0aWVzIG9uIERJS1NIQSwgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgeW91IGFyZSB2aWV3aW5nIG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5UbyBlbmFibGUgeW91IHRvIGFjY2VzcyBhbmQgdXNlIENvbnRlbnQgb24gRElLU0hBOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbmFibGUgeW91IHRvIHBhcnRpY2lwYXRlIGluIHByb2dyYW1zIHJ1biBieSBJbnN0aXR1dGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcHJvdmlkZSB5b3UgcHVzaCBub3RpZmljYXRpb25zIG9uIHlvdXIgaGFuZC1oZWxkIGRldmljZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkgaWYgeW91IGhhdmUgcHJvdmlkZWQgcGVybWlzc2lvbiBmb3IgdGhlIHNhbWUgZHVyaW5nIGFwcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsYXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHRyYWNrIHlvdXIgcHJvZ3Jlc3MgaW4gY29sbGVjdGlvbnMgb2YgQ29udGVudCBmb3Igd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgaXMgdHJhY2tlZCAvIHJlY29yZGVkIHN1Y2ggYXMgY291cnNlcywgVFZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbnMsIHRleHRib29rcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZ2VuZXJhdGUgYmFkZ2VzIGZvciBvciBpc3N1ZSBjZXJ0aWZpY2F0ZXMgdG8geW91IHVwb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiBvZiBtaWxlc3RvbmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBtYWludGFpbiByZWNvcmRzIG9mIHlvdXIgcHJvZ3Jlc3MgYW5kIGNlcnRpZmljYXRlcy9iYWRnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gcmVsYXRpb24gdG8gY29sbGVjdGlvbnMgb2YgQ29udGVudCB5b3UgaGF2ZSBhY2Nlc3NlZCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gbWVhc3VyZSBpbnRlcmVzdCBpbiB0aGUgb2ZmZXJpbmdzIG9uIERJS1NIQSBhbmQgdG8gaW1wcm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyB0cmFjayBhbmQgYW5hbHlzZSB1c2FnZSBvZiBDb250ZW50IG9uIERJS1NIQSBieVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBhbmQgQ29udGVudCBwcm92aWRlcnMgdG8gaW1wcm92ZSBESUtTSEEgYW5kIGl0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZlcmluZ3Mgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBhc3Nlc3MsIGV2YWx1YXRlLCB2YWxpZGF0ZSBDb250ZW50IHN1Ym1pdHRlZCAvIHBvc3RlZCAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlcG9ydCBhbm9ueW1pc2VkIHVzYWdlIG9mIERJS1NIQSBhbmQgaXRzIENvbnRlbnQgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgdG8gaW1wcm92ZSBESUtTSEEgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBjb250YWN0IHlvdSBhbmQgZGVsaXZlciBpbmZvcm1hdGlvbiwgYWRtaW5pc3RyYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWNlcywgc2VlayBmZWVkYmFjayBvciBvdGhlciBjb21tdW5pY2F0aW9ucyBpbiBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggeW91ciB1c2FnZSBvZiBESUtTSEEuIEJ5IGFjY2VwdGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgdGhlIFByaXZhY3kgUG9saWN5LCB5b3UgZXhwcmVzc2x5IGFncmVlIHRvIHJlY2VpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBpbmZvcm1hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gc3VnZ2VzdCBkZXRhaWxzIGZvciB5b3VyIHByb2ZpbGUgc3VjaCBhcyB5b3VyIGRlY2xhcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlIGFuZCBEaXN0cmljdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcmVzb2x2ZSBkaXNwdXRlcywgdHJvdWJsZXNob290IHByb2JsZW1zLCBkZXRlY3QgYW5kIHByb3RlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IGFnYWluc3QgZnJhdWQgYW5kIG90aGVyIGNyaW1pbmFsIGFjdGl2aXR5LCBlbmZvcmNlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtcyBvZiBVc2UgYW5kIGFueSBvdGhlciBhZ3JlZW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdCB0aW1lcyBtdWx0aXBsZSB1c2VycyBtYXkgYmUgbG9va2VkIGF0IHRvIGlkZW50aWZ5IHByb2JsZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHJlc29sdmUgZGlzcHV0ZXMsIGFuZCBpbiBwYXJ0aWN1bGFyIG1heSBleGFtaW5lIHlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3IgZGF0YSB0byBpZGVudGlmeSB1c2VycyB1c2luZyBtdWx0aXBsZSBVc2VyIElEc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBhbGlhc2VzLiBZb3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgbWF5IGJlIGNvbXBhcmVkIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmlld2VkIGZvciBlcnJvcnMsIG9taXNzaW9ucyBhbmQgZm9yIGFjY3VyYWN5OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGFueSBvdGhlciB1c2UgdGhhdCBtYXkgYmUgZGVzY3JpYmVkIHRvIHlvdSBhdCB0aGUgdGltZSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIG1heVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIHRoaXJkIHBhcnRpZXMgYXMgc2VydmljZSBwcm92aWRlcnMgdG8gZmFjaWxpdGF0ZSBvciBvdXRzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uZSBvciBtb3JlIGFzcGVjdHMgb2Ygc2VydmljZSBvcGVyYXRpb25zIHRoYXQgYXJlIHByb3ZpZGVkIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgKGUuZy4sIHNlYXJjaCB0ZWNobm9sb2d5LCBkaXNjdXNzaW9uIGJvYXJkcywgdGVjaG5pY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlIHByb3ZpZGVycywgYWZmaWxpYXRlKSBhbmQgdGhlcmVmb3JlIHNvbWUgb2YgeW91clxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3IgZGF0YSBtYXkgYmUgcHJvdmlkZWQgZGlyZWN0bHkgdG8gdGhlc2Ugc2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzLiBUaGVzZSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgc3ViamVjdCB0byBjb25maWRlbnRpYWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBvdGhlciBsZWdhbCByZXN0cmljdGlvbnMgdGhhdCBwcm9oaWJpdCB0aGVpciB1c2Ugb2YgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBwcm92aWRlZCB0byB0aGVtIGZvciBhbnkgcHVycG9zZSBvdGhlciB0aGFuIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWNpbGl0YXRlIHNwZWNpZmljIHdlYnNpdGUgcmVsYXRlZCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB3ZSB3aXNoIHRvIHVzZSB5b3VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIGZvciBhIG5ldyBwdXJwb3NlLCBub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdmVyZWQgYnkgdGhpcyBQcml2YWN5IFBvbGljeSwgdGhlbiB3ZSB3aWxsIHByb3ZpZGUgeW91IHdpdGggYVxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IG5vdGljZSBleHBsYWluaW5nIHRoaXMgbmV3IHVzZSBwcmlvciB0byBjb21tZW5jaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZyBhbmQgc2V0dGluZyBvdXQgdGhlIHJlbGV2YW50IHB1cnBvc2VzIGFuZCBwcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zLiBXaGVyZSBhbmQgd2hlbmV2ZXIgbmVjZXNzYXJ5LCB3ZSB3aWxsIHNlZWsgeW91ciBwcmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VudCB0byB0aGUgbmV3IHByb2Nlc3NpbmcsIHVubGVzcyBhdXRob3JpemVkIGJ5IGxhdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gYW55IGV2ZW50LCB5b3VyIGRhdGEgd2lsbCBub3QgYmUgdXNlZCBmb3IgYW55IG9mIHRoZSBmb2xsb3dpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZW50IG9yIHNhbGUgb3Igb3RoZXIgY29tbWVyY2lhbCBwdXJwb3Nlczs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BZHZlcnRpc2luZyBvciBtYXJrZXRpbmc7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lIGNhbGxzIG9yIG90aGVyIGZvcm1zIG9mIHVuc29saWNpdGVkIGNvbW11bmljYXRpb24gdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBub3QgcmVsYXRlZCB0byB5b3VyIHVzYWdlIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGRpbmcgYSBwZXJzb25hbCBwcm9maWxlLCBvdGhlciB0aGFuIGZvciBlZHVjYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcyBvbiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueSBvZiB0aGUgUHJvaGliaXRlZCBQdXJwb3NlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55IHB1cnBvc2UgdGhhdCBpcyBub3QgZGlzY2xvc2VkIGluIHRoaXMgcG9saWN5IG9yIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBhbnkgdXNlIG9mIGRhdGEgYW5kIGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRzaWRlIHRoZSBwcm9wZXIgdXNlIGFuZCBzaGFsbCBiZSBoZWxkIGFjY291bnRhYmxlIGZvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xhdGlvbiBvZiB0aGUgdGVybXMgYW5kIHBvbGljaWVzIG9mIERJS1NIQSwgYXMgd2VsbCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBmb3IgYW55IG1pc3VzZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIHNoYWxsIGJlIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGUgb2JsaWdhdGlvbiBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVyIHVzZSBvZiB5b3VyIGRhdGEgYW5kIGluZm9ybWF0aW9uLiBTaG91bGQgeW91IGJlbGlldmUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhIG9yIGluZm9ybWF0aW9uIGlzIGJlaW5nIHVzZWQgaW4gYSBtYW5uZXIgaW5jb25zaXN0ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHRoaXMgUHJpdmFjeSBQb2xpY3ksIHBsZWFzZSBjb250YWN0IHRoZSBESUtTSEEgc3VwcG9ydCB0ZWFtXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHRoZSBkZXRhaWxzIG9mIHlvdXIgY29uY2VybiBieSBzZW5kaW5nIGFuIGVtYWlsIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGVhbWRpa3NoYS5vcmdcIj48Yj5zdXBwb3J0QHRlYW1kaWtzaGEub3JnPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciwgeW91IHVuZGVyc3RhbmQsIGFncmVlIGFuZCBhY2tub3dsZWRnZSB0aGF0IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbiwgc3RvcmFnZSBhbmQgcHJvY2Vzc2luZyBvZiB5b3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpcyBmb3IgYSBsYXdmdWwgcHVycG9zZSBjb25uZWN0ZWQgd2l0aCBhIGZ1bmN0aW9uIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eSBvZiBESUtTSEEuIFlvdSBmdXJ0aGVyIHVuZGVyc3RhbmQsIGFncmVlIGFuZCBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB5b3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgd2hpY2ggaXMgY2xhc3NpZmllZCBhcyBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYXMgcGVyIGFwcGxpY2FibGUgbGF3cyBpcyBjb25zaWRlcmVkIG5lY2Vzc2FyeSBmb3IgdXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByb3ZpZGUgdmFyaW91cyBzZXJ2aWNlcyBvbiBhbmQgaW4gcmVsYXRpb24gdG8gRElLU0hBIHRvIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZvciB5b3VyIHVzYWdlIG9mIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkhvdyBpcyBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIHN0b3JlZD88L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFzb25hYmxlIGFuZCBhcHByb3ByaWF0ZSBzZWN1cml0eSBwcmFjdGljZXMgYW5kIHByb2NlZHVyZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBhZG9wdGVkIHRvIHNlY3VyZSB5b3VyIHBlcnNvbmFsIGRhdGEgYW5kIGluZm9ybWF0aW9uIGluXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggSW5kaWFuIGxhd3MgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChSZWFzb25hYmxlIFNlY3VyaXR5IFByYWN0aWNlcyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb2NlZHVyZXMgYW5kIFNlbnNpdGl2ZSBQZXJzb25hbCBEYXRhIG9yIEluZm9ybWF0aW9uKSBSdWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIDIwMTEuIFRoZXNlIG1lYXN1cmVzIGluY2x1ZGUgYWRtaW5pc3RyYXRpdmUsIHBoeXNpY2FsIHNlY3VyaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRlY2huaWNhbCBjb250cm9scyBpbiBvcmRlciB0byBzYWZlZ3VhcmQgeW91ciBwZXJzb25hbCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgaW5mb3JtYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSwgaW5jbHVkaW5nIHlvdXIgRGVjbGFyZWQgSW5mb3JtYXRpb24sIGFueSBwZXJzb25hbGx5XG4gICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gb3Igc2Vuc2l0aXZlIHBlcnNvbmFsIGRhdGEgb3IgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzIHNlY3VyZWx5IHN0b3JlZCB1c2luZyBNaWNyb3NvZnQgQXp1cmUgY2xvdWQgc2VydmljZXMgd2hpY2ggaGF2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgaXTigJlzIHNlcnZlcnMgaW4gSW5kaWEuIFlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gd2lsbCBwcmltYXJpbHkgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlZCBpbiBlbGVjdHJvbmljIGZvcm0gaG93ZXZlciBjZXJ0YWluIGRhdGEgbWF5IGFsc28gYmUgc3RvcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpbiBwaHlzaWNhbCBmb3JtLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlyZCBwYXJ0eSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgZW5nYWdlZCB0byBzdG9yZSBhbmQgcHJvY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhLiBUaGVzZSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgY29udHJhY3R1YWxseSBib3VuZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93IHJlYXNvbmFibGUgc2VjdXJpdHkgc3RhbmRhcmRzIHRvIHNhZmVndWFyZCB5b3VyIGRhdGEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZW1haWwgYWRkcmVzcyBhbmQgbW9iaWxlIG51bWJlciBhbmQgYW55IG90aGVyIHBlcnNvbmFsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBpcyBvbmx5IGNvbGxlY3RlZCBzaG91bGQgeW91IGNob29zZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSB0aGUgc2FtZSBhbmQgaXQgaXMgZW5jcnlwdGVkIGFuZCBzdG9yZWQgc2VjdXJlbHkuXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBpcyBvbmx5IHNoYXJlZCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBmb3IgcHVycG9zZXMgc3BlY2lmaWVkIHRvIHlvdSwgd2l0aCB5b3VyIGV4cGxpY2l0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZW50IGFuZCB1bmRlciB0aGUgb2JsaWdhdGlvbiB0aGF0IHRoZSBBZG1pbmlzdHJhdG9ycyB3aWxsIHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCBpbmZvcm1hdGlvbiBvbmx5IGluIGNvbm5lY3Rpb24gd2l0aCB5b3VyIHVzYWdlIG9mIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBJUCBhZGRyZXNzIGlzIG9ubHkgY29sbGVjdGVkIG9uY2UgZm9yIHRoZSBsaW1pdGVkIHB1cnBvc2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzY2VydGFpbmluZyBhbmQgc3VnZ2VzdGluZyB5b3VyIFN0YXRlIGFuZCBEaXN0cmljdC4gWW91ciBJUFxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyBpcyBub3Qgc3RvcmVkIG9uIERJS1NIQSBhdCBhbnkgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRkaXRpb25hbGx5LCBhIHZhcmlldHkgb2YgbWV0aG9kcyBzdWNoIGFzIG5ldHdvcmsgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZyYXN0cnVjdHVyZSBzZWN1cml0eSwgZW5jcnlwdGlvbiBhbmQgbWFudWFsIHNlY3VyaXR5IHByb2NlZHVyZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB1c2VkIHRvIHNlY3VyZSB5b3VyIGluZm9ybWF0aW9uIGFuZCBkYXRhIGFnYWluc3QgbG9zcyBvclxuICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlIGFuZCB0byBoZWxwIHByb3RlY3QgdGhlIGFjY3VyYWN5IGFuZCBzZWN1cml0eSBvZiB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25hbCBpbmZvcm1hdGlvbiAvIGdlbmVyYWwgaW5mb3JtYXRpb24gLyB1c2FnZSBkYXRhIGFuZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmVudCB1bmF1dGhvcml6ZWQgYWNjZXNzIG9yIGltcHJvcGVyIHVzZS4gSWYgeW91IHRoaW5rIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBvciBhbnkgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiAvIGdlbmVyYWwgaW5mb3JtYXRpb24gL1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2UgZGF0YSBpcyBub3Qgc2VjdXJlIG9yIHRoYXQgdGhlcmUgaGFzIGJlZW4gdW5hdXRob3JpemVkXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gdGhlIHdlYnNpdGUgb3IgeW91ciBwZXJzb25hbCBkYXRhLCBwbGVhc2UgY29udGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHRlYW1kaWtzaGEub3JnXCI+PGI+c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZzwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWx0aG91Z2ggRElLU0hBIHN0cml2ZXMgdG8gcHJvdGVjdCB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgaXQgY2Fubm90IGd1YXJhbnRlZSB0aGUgc2VjdXJpdHkgb2YgeW91ciBkYXRhIHdoaWxlIGl0IGlzXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWluZyB0cmFuc21pdHRlZCB0byBpdHMgc2l0ZTsgYW55IHRyYW5zbWlzc2lvbiBpcyBhdCB5b3VyIG93blxuICAgICAgICAgICAgICAgICAgICAgICAgcmlzay4gT25jZSB5b3VyIGluZm9ybWF0aW9uIGhhcyBiZWVuIHJlY2VpdmVkLCByZWFzb25hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZWR1cmVzIGFuZCBzZWN1cml0eSBmZWF0dXJlcyBhcmUgaW4gcGxhY2UgdG8gcmVhc29uYWJseVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kZWF2b3IgdG8gcHJldmVudCB1bmF1dGhvcml6ZWQgYWNjZXNzIGluIGFjY29yZGFuY2Ugd2l0aCBJbmRpYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkhvdyBsb25nIGlzIFVzZXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gc3RvcmVkPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSB3aWxsIG5vdCBiZSByZXRhaW5lZCBmb3IgYSBwZXJpb2QgbW9yZSB0aGFuIG5lY2Vzc2FyeSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVsZmlsbCB0aGUgcHVycG9zZXMgb3V0bGluZWQgaW4gdGhpcyBQcml2YWN5IFBvbGljeSwgdW5sZXNzIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdlciByZXRlbnRpb24gcGVyaW9kIGlzIHJlcXVpcmVkIGJ5IGxhdyBvciBmb3IgZGlyZWN0bHkgcmVsYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVnaXRpbWF0ZSBwdXJwb3Nlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGFyZSB0aGUgc3lzdGVtIHBlcm1pc3Npb25zIHJlcXVpcmVkIGJ5IHRoZSBESUtTSEE/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgTWljcm9waG9uZSAtIFlvdXIgc3lzdGVtIE1pY3JvcGhvbmUgd2lsbCBiZSB1c2VkIGlmIHZvaWNlXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRpbmcgaXMgZXhwbGljaXRseSByZXF1ZXN0ZWQgYXMgcGFydCBvZiBhIENvbnRlbnQgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZXMgb2YgcHJhY3RpY2UuIFRoaXMgdm9pY2UgcmVjb3JkaW5nIGlzIG9ubHkgc3RvcmVkIGxvY2FsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uIHlvdXIgc3lzdGVtLiBZb3VyIHN5c3RlbSBNaWNyb3Bob25lIHdpbGwgYmUgdXNlZCBpZiBhXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIgY3JlYXRpbmcgQ29udGVudCB3YW50cyB0byBhZGQgYSB2b2ljZSByZWNvcmRpbmcgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQuIFRoaXMgdm9pY2UgcmVjb3JkaW5nIHdpbGwgYmVjb21lIHBhcnQgb2YgdGhlIENvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENhbWVyYSAtIFlvdXIgc3lzdGVtIENhbWVyYSB3aWxsIG9ubHkgYmUgdXNlZCBpZiB5b3Ugd2FudCB0byBzY2FuXG4gICAgICAgICAgICAgICAgICAgICAgICBRUiBjb2RlcyB0byBhY2Nlc3MgQ29udGVudCBvbiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyB0byBmaWxlIG1hbmFnZXIgLSBUaGlzIGlzIHVzZWQgYnkgdGhlIERJS1NIQSBhbmRyb2lkXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiB0byB0cmFuc2ZlciBDb250ZW50IHRvIGFuIGV4dGVybmFsIHN0b3JhZ2Ugc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIG9uIHRoZSBESUtTSEEgZGVza3RvcCBhcHAsIHRoaXMgaXMgdXNlZCB0byB0cmFuc2ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCB0byBhbmQgZnJvbSBhbiBleHRlcm5hbCBzdG9yYWdlIGRldmljZSBsaWtlIGEgcGVuZHJpdmUgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFNEIGNhcmQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db29raWVzOiBIb3cgYXJlIHRoZXkgdXNlZD8gV2hhdCB0eXBlcyBvZiBjb29raWVzIGFyZSB1c2VkPyBIb3cgdG9cbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlIHlvdXIgY29va2llcz88L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBPdXQgb2YgYWxsIHRoZSBjb25zdW1wdGlvbiBjbGllbnRzLCBvbmx5IHRoZSBESUtTSEEgd2ViIHBvcnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBjb29raWVzLiBESUtTSEEgb25seSB1c2VzIHNlc3Npb24gY29va2llcywgbm9uZSBvZiB0aGUgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVzIG9mIGNvb2tpZXMuIERJS1NIQSBzZXNzaW9uIGNvb2tpZXMgYXJlIHVzZWQgdG8gc3RvcmUgVVJMcyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgdG8gYmV0dGVyIHJlZGlyZWN0IHVzZXJzIHRvIHRoZSByaWdodCBwYWdlcy4gRm9yIGV4YW1wbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVuIGEgVXNlciBzaWducy1pbiB0byBESUtTSEEgZnJvbSB0aGUgY291cnNlcyBwYWdlLCB0aGV5J2xsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGJlIHJlZGlyZWN0ZWQgYmFjayB0byB0aGUgY291cnNlcyBwYWdlIGF0IHRoZSBlbmQgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24taW4gZm9yIGEgY2xlYW5lciB1c2VyIGV4cGVyaWVuY2UuIFNlc3Npb24gY29va2llcyBhcmUgYWxzb1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCB0byBzdG9yZSB3aGV0aGVyIHRvIHVzZSB0aGUgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIChDRE4pIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWxsIGltYWdlcywgcGx1Z2lucyBhbmQgb3RoZXIgYXNzZXRzIHRoYXQgYXJlIHNob3duIG9uIHRoZSB1c2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UuIFRoaXMgaXMgdG8gZW5hYmxlIGZhc3RlciBsb2FkaW5nIG9mIHRoZSBwYWdlcyB0aGUgVXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RzIHdpdGguIE5vIHBlcnNvbmFsIGluZm9ybWF0aW9uLCBvciB1c2VyIHByZWZlcmVuY2VzIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVkIGluIGNvb2tpZXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIGNhbiBjbGVhciB0aGVpciBjb29raWVzIGJ5IGdvaW5nIHRvIHRoZWlyIGJyb3dzZXIgc2V0dGluZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBjbGVhcmluZyB0aGVpciBicm93c2luZyBkYXRhIChieSBzcGVjaWZpY2FsbHkgY2hlY2tpbmcgb2ZmIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIHRvIGNsZWFyIGNvb2tpZXMpLiBEb2luZyBzbywgZG9lcyBub3QgaW1wYWN0IHRoZWlyIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVyaWVuY2Ugb24gRElLU0hBIGFzIHVzYWdlIG9mIERJS1NIQSBzZXRzIHRoZSBjb29raWVzIGFnYWluLlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgY2FuIGFsc28gY2hvb3NlIHRvIGJsb2NrIGNvb2tpZXMgZnJvbSB0aGUgc2V0dGluZ3MgYXMgd2VsbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvaW5nIHNvLCB3aWxsIG1lYW4gdGhhdCBjZXJ0YWluIHRoaW5ncyBvbiBESUtTSEEgd2lsbCBub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb3Blcmx5LiBGb3IgZWcuLCBpbWFnZXMvcGx1Z2lucyBtYXkgdGFrZSBhIGxvbmcgdGltZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCBhbmQgdGhlIHVzZXIgd2lsbCBub3QgYmUgdGFrZW4gdG8gdGhlIHJpZ2h0IHBhZ2VzIGFmdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dpbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkRhdGEgYW5kIGluZm9ybWF0aW9uIERJS1NIQSBpcyBub3QgcmVzcG9uc2libGUgZm9yPC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIG1heSBoYXZlIENvbnRlbnQsIHdlYnBhZ2VzLCBjb29raWVzLCBmaWxlcywgc29mdHdhcmUsIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIG90aGVyIGluZm9ybWF0aW9uIG9yIGNvbW11bmljYXRpb24gbGlua3MgdGhhdCBhcmUgb3JpZ2luYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgb3IgcG9zdGVkIGJ5IHRoaXJkIHBhcnRpZXMgdGhhdCBtYXkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdCwgc3RvcmUgb3IgdXNlIHlvdXIgZGF0YSBvciBpbmZvcm1hdGlvbi4gVGhlIGFkbWluaXN0cmF0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgYXJlIG5vdCByZXNwb25zaWJsZSBmb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2ggZGF0YSBvciBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQsIHN0b3JlZCBvciB1c2VkIGJ5IHRoaXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWVzIGV2ZW4gaWYgc3VjaCB0aGlyZCBwYXJ0aWVzIHVzZSBESUtTSEEgdG8gY29sbGVjdCwgc3RvcmUgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBzdWNoIGRhdGEgb3IgaW5mb3JtYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhY2Nlc3MgRElLU0hBIHRocm91Z2ggYSB0aGlyZCBwYXJ0eSBRUiBjb2RlIHNjYW5uZXIgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggYSB3ZWIgYnJvd3NlciwgdGhlIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgdGhlIGRhdGEgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGNvbGxlY3RlZCBieSBzdWNoIHRoaXJkIHBhcnRpZXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHRoZSBwcml2YWN5IHByYWN0aWNlcyBvZiBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZXMgYW5kIHVzZXJzIG5lZWQgdG8gYmUgYXdhcmUgb2YgdGhlIGRhdGEgcHJpdmFjeSBwcmFjdGljZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHN1Y2ggc2l0ZXMgc2hvdWxkIHRoZXkgY2hvb3NlIHRvIHVzZSB0aGVzZSBsaW5rcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNvbXBsaWFuY2Ugd2l0aCBsYXdzIGFuZCBsYXcgZW5mb3JjZW1lbnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBjb29wZXJhdGUgd2l0aCBnb3Zlcm5tZW50cyBhbmQgbGF3IGVuZm9yY2VtZW50IGFnZW5jaWVzIG9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcmQgcGFydHkgYnkgYW55IG9yZGVyIHVuZGVyIGxhdyBmb3IgdGhlIHRpbWUgYmVpbmcgaW4gZm9yY2UgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZm9yY2UgYW5kIGNvbXBseSB3aXRoIHRoZSBsYXcuIEFueSBpbmZvcm1hdGlvbiBhYm91dCB5b3Ugd2lsbCBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzY2xvc2VkIHRvIHRoZSBnb3Zlcm5tZW50IG9yIGxhdyBlbmZvcmNlbWVudCBvZmZpY2lhbHMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcGFydGllcyBhcywgaW4gdGhlIHNvbGUgZGlzY3JldGlvbiBvZiB0aGUgYWRtaW5pc3RyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzLCBpZiB0aGV5IGJlbGlldmUgbmVjZXNzYXJ5IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSB0byByZXNwb25kIHRvIGNsYWltcyBhbmQgbGVnYWwgcHJvY2VzcywgdG8gcHJvdGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgcHJvcGVydHkgYW5kIHJpZ2h0cyBvciBhIHRoaXJkIHBhcnR5LCB0byBwcm90ZWN0IHRoZSBzYWZldHlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBwdWJsaWMgb3IgYW55IHBlcnNvbiwgb3IgdG8gcHJldmVudCBvciBzdG9wIGFueSBpbGxlZ2FsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5ldGhpY2FsIG9yIGxlZ2FsbHkgYWN0aW9uYWJsZSBhY3Rpdml0eS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBpbmZvcm1hdGlvbiBvciBkYXRhIG1heSBhbHNvIGJlIHByb3ZpZGVkIHRvIHZhcmlvdXMgdGF4XG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdGllcyB1cG9uIGFueSBkZW1hbmQgb3IgcmVxdWVzdCBmcm9tIHRoZW0uIFlvdSBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBESUtTSEEgY2FuIGJlIGFjY2Vzc2VkIGZyb20gYW55d2hlcmUgaW4gdGhlIHdvcmxkIGFuZCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXZlIHVzZXJzIGZyb20gYWxsIG92ZXIgdGhlIHdvcmxkIGFuZCB0aGVyZWZvcmUgZ292ZXJubWVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBqdWRpY2lhcmllcyBvciBsYXcgZW5mb3JjZW1lbnQgYXV0aG9yaXRpZXMgaW4gdmFyaW91cyBwYXJ0cyBvZiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkIG1heSBoYXZlIG9yIGFzc3VtZSBqdXJpc2RpY3Rpb24gb3ZlciBESUtTSEEgYW5kIERJS1NIQSBtYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlIHN1YmplY3QgdG8gdGhlIGxhd3MsIHJ1bGVzLCByZWd1bGF0aW9ucyBhbmQganVkZ21lbnRzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpb3VzIGNvdW50cmllcywgc3RhdGVzLCBtdW5pY2lwYWxpdGllcyBvciBwcm92aW5jZXMgd2hlcmUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heSBub3QgaGF2ZSBhIGRpcmVjdCBwcmVzZW5jZSB0byBzdG9yZSwgcHJvY2VzcywgY29sbGVjdCwgdXNlIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBrZWVwIHlvdXIgaW5mb3JtYXRpb24gb3IgZGF0YS4gWW91IGFja25vd2xlZGdlIHRoYXQgZ292ZXJubWVudCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF3IGVuZm9yY2VtZW50IGF1dGhvcml0aWVzIGluIHRoZSBjb3VudHJpZXMgd2hlcmUgeW91ciBkYXRhIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgbWF5IGhhdmUgdGhlIHJpZ2h0IHRvIGRlY3J5cHQsIGNvbGxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb25pdG9yIG9yIGFjY2VzcyB5b3VyIGRhdGEgb3IgaW5mb3JtYXRpb24sIHdoaWNoIGFjdGlvbnMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWx5IG91dCBvZiB0aGUgY29udHJvbCBvZiB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3lcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQS4gVGhlIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5XG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgZG8gbm90IHRha2UgYW55IHJlc3BvbnNpYmlsaXR5IGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCBhY3Rpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RGVsZXRpbmcgeW91ciBpbmZvcm1hdGlvbjwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSB3aXNoIHRvIGhhdmUgdGhlIGluZm9ybWF0aW9uIG9yIGRhdGEgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZCwgeW91IGNhbiBhbHdheXMgZG8gc28gYnkgc2VuZGluZyBhbiBlbWFpbCByZXF1ZXN0IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGVhbWRpa3NoYS5vcmdcIj48Yj5zdXBwb3J0QHRlYW1kaWtzaGEub3JnPC9iPjwvYT4uIFlvdSBtYXkgbm90ZSB0aGF0IGRlbGV0aW9uIG9mIGNlcnRhaW4gaW5mb3JtYXRpb24gb3IgZGF0YSBtYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWQgdG8gY2FuY2VsbGF0aW9uIG9mIHlvdXIgcmVnaXN0cmF0aW9uIHdpdGggRElLU0hBIGFuZCB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gY2VydGFpbiBmZWF0dXJlcyBvZiBESUtTSEEuIFlvdSBhbHNvIGFncmVlIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNrbm93bGVkZ2UgdGhhdCBjZXJ0YWluIGRhdGEgb3IgaW5mb3JtYXRpb24gY2Fubm90IGJlIGRlbGV0ZWQgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heSBiZSBwcm9oaWJpdGVkIHRvIGJlIGRlbGV0ZWQgYXMgcmVxdWlyZWQgdW5kZXIgYW55IGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdywgbGF3IGVuZm9yY2VtZW50IHJlcXVlc3RzIG9yIHVuZGVyIGFueSBqdWRpY2lhbCBwcm9jZWVkaW5ncy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNoYW5nZXMgdG8gdGhpcyBQcml2YWN5IFBvbGljeTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSByZXNlcnZlcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgcHJpdmFjeSBzdGF0ZW1lbnQgYXQgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCBzbyBwbGVhc2UgcmV2aWV3IGl0IGZyZXF1ZW50bHkuIElmIGEgbWF0ZXJpYWwgY2hhbmdlIGlzIG1hZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBwcmFjdGljZXMgcmVnYXJkaW5nIHlvdXIgcGVyc29uYWxseSBpZGVudGlmaWFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uLCB5b3Ugd2lsbCBiZSBub3RpZmllZCwgYnkgbWVhbnMgb2YgYSBub3RpY2Ugb24gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+SG93IHRvIGNvbnRhY3QgdXM/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IGhhdmUgYW55IHF1ZXJpZXMsIGNvbW1lbnRzLCBvciByZXF1ZXN0cywgcGxlYXNlIGNvbnRhY3QgdXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZ1wiPjxiPnN1cHBvcnRAdGVhbWRpa3NoYS5vcmc8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgVGVybXMgb2YgVXNlPC9hPi0tPlxuPCEtLSAgICAgICAgPC9zcGFuPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB1bGwtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPlJlYWQgQ29udGVudCBQb2xpY3kgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvaT48L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIFByaXZhY3kgUG9saWN5IGVuZCBoZXJlLS0+XG5cbiAgICAgICAgPCEtLSAgICBDb250ZW50IFBvbGljeSBzdGFydCBoZXJlLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50XCIgc3VpVGFiQ29udGVudD1cIjNcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJjb250ZW50UG9saWN5XCIgYXJpYS1sYWJlbGxlZGJ5PVwiY29udGVudC1wb2xpY3ktdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiggTGFzdCB1cGRhdGVkIG9uIDxiPjI4LTA0LTIwMjE8L2I+ICk8L2VtPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgQ29udGVudCBQb2xpY3kgc2V0cyBvdXQgdGhlIGd1aWRlbGluZXMgZm9yIGNvbnRlbnQgdG8gYmUgZm9sbG93ZWRcbiAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBLiBUaGUgRElLU0hBIFN0cmF0ZWd5IGFuZCBBcHByb2FjaCBQYXBlciBjbGVhcmx5IGFydGljdWxhdGVzXG4gICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgaW50ZW50aW9ucyBvZiBESUtTSEEgLSB0byBjcmVhdGUgYSBjb21tb24gcmVwb3NpdG9yeSBvZiBvcGVuXG4gICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbiByZXNvdXJjZXMgZm9yIGVhc3kgYWNjZXNzIHRvIHRlYWNoZXJzIGFjcm9zcyB0aGUgY291bnRyeS4gVGhpc1xuICAgICAgICAgICAgICAgICAgICBDb250ZW50IFBvbGljeSBzZXRzIG91dCB0aGUgcHJpbmNpcGxlcyBhbmQgcHJvY2VzcyB0byBhY2hpZXZlIHRoaXMgZW5kLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnQgY3JlYXRpb24gYW5kIGN1cmF0aW9uIHByb2Nlc3Mgb24gRElLU0hBIGlzIGVudmlzYWdlZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICBhbiBvcGVuIHByb2Nlc3Mgd2l0aCBsb3cgYmFycmllcnMgdG8gZW50cnkuIEl0IGNlbGVicmF0ZXMgYW5kIGVuY291cmFnZXNcbiAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhdGlvbiBieSBtYWtpbmcgaXQgc2ltcGxlIHRvIGNyZWF0ZSBhbmQgc2hhcmUgY29udGVudCBvbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0uIEl0IGF2b2lkcyBjcmVhdGluZyBiYXJyaWVycyB0byBlbnRyeSBpbiB0aGUgZm9ybSBvZlxuICAgICAgICAgICAgICAgICAgICBjZW50cmFsaXplZCByZXZpZXcgd29ya2Zsb3dzIGFuZCBmZWRlcmF0ZXMgdGhhdCBwcm9jZXNzIHRvIHRoZSBjb21tdW5pdHlcbiAgICAgICAgICAgICAgICAgICAgdG8gcG9saWNlIGl0c2VsZi4gSW5zdGl0dXRpb25hbCBVc2VycywgdGhyb3VnaCB0aGVpciBBZG1pbmlzdHJhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgYmVpbmcgdGhlIGN1c3RvZGlhbnMgb2YgRElLU0hBLCBmcmFtZSB0aGUgZ3VpZGVsaW5lcyBhbmQgY3VyYXRpb24gcnVsZXMsXG4gICAgICAgICAgICAgICAgICAgIGFuZCBkZWxlZ2F0ZSB0aGUgYXV0aG9yaXR5IHRvIGN1cmF0ZSB0byB0aGUgY29tbXVuaXR5LiBUaGlzIGNyZWF0ZXMgYVxuICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB0aGF0IGlzIG9wZW4sIGhhcyBsb3cgYmFycmllciB0byBlbnRyeSwgd2hpbGUgdGhlIHF1YWxpdHkgb2ZcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCBpcyBlbnN1cmVkIGJ5IHRoZSBmZWRlcmF0ZWQgcHJvY2Vzcy5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFNldCBvdXQgYmVsb3cgYXJlIHNvbWUgY29tbW9uLXNlbnNlIHJ1bGVzIHRoYXQgYWxsIFVzZXJzIG11c3QgY29tcGx5XG4gICAgICAgICAgICAgICAgICAgIHdpdGggcmVzcGVjdCB0byBDb250ZW50IG9uIERJS1NIQS4gVGhlc2UgcnVsZXMgYXJlIHRvIGJlIHRha2VuIHNlcmlvdXNseVxuICAgICAgICAgICAgICAgICAgICBhcyBBZG1pbmlzdHJhdG9ycyBhcmUgcmVxdWlyZWQgdG8gZW5mb3JjZSB0aGUgc2FtZSBzdHJpY3RseS4gVXNlcnMgYXJlXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZCBub3QgdG8gbG9vayBmb3IgbG9vcGhvbGVzIG9yIHdheXMgYXJvdW5kIHRoZXNlIGd1aWRlbGluZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgIHJlc3BlY3QgdGhlIHNwaXJpdCBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBjcmVhdGVkLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgUGxlYXNlIHJlYWQgdGhpcyBDb250ZW50IFBvbGljeSBjYXJlZnVsbHksIHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHJ1bGVzXG4gICAgICAgICAgICAgICAgICAgIG9uIGFwcHJvcHJpYXRlbmVzcywgYWNjdXJhY3ksIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgYW5kIGxpY2Vuc2luZ1xuICAgICAgICAgICAgICAgICAgICB0aGF0IGdvdmVybiBDb250ZW50IG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgQ29udGVudCBQb2xpY3kgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gYW5kIHRvZ2V0aGVyIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uIERlZmluZWQgdGVybXMgdXNlZCBidXQgbm90IGRlZmluZWQgaGVyZWluIHNoYWxsIGhhdmUgdGhlIG1lYW5pbmdcbiAgICAgICAgICAgICAgICAgICAgYXNjcmliZWQgdG8gdGhlbSBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5QcmluY2lwbGVzIGZvciBDb250ZW50IG9uIERJS1NIQTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgb24gdGhlIERJS1NIQSB3aWxsIGJlIGNvbnRyaWJ1dGVkIGJ5IHZhcmlvdXMgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzIGFjcm9zcyB0aGUgY291bnRyeS4gVGhlIGludGVudCBpcyB0byBlbmFibGUgYWNjZXNzIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHdpZGUgcmFuZ2UgYW5kIGRpdmVyc2UgY29udGVudCBmcm9tIGFjcm9zcyB0aGUgY291bnRyeSBzbyBhcyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIGJldHRlciBjb250ZXh0dWFsaXNhdGlvbiBvZiBjb250ZW50IGFuZCB3aWRlIGFjY2VzcyBmb3IgZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Vycy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWxsIGNvbnRlbnQgcHVibGlzaGVkIG9uIERJS1NIQSBiZWxvbmdzIHRvIHRoZSBjcmVhdG9ycyBvZiBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBiZSBpdCBpbmRpdmlkdWFscyBvciBvcmdhbmlzYXRpb25zIHRoYXQgaGF2ZSBtYWRlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0sIHRoZXkgYXJlIHJlc3BvbnNpYmxlIGZvciB1c2UgYnkgb3BlblxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhcm5pbmcgcGxhdGZvcm1zIGFuZCBhcHBsaWNhdGlvbnMgdGhlcmVmb3JlLCBjb250ZW50IGNyZWF0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmUgcmVzcG9uc2libGVzIGZvciBlbnN1cmluZyBhY2N1cmFjeSBhbmQgYXBwcm9wcmlhdGVuZXNzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBjYW4gbWFrZSBtdWx0aWxpbmd1YWwgYW5kIGRpdmVyc2UgY29udGVudCBhdmFpbGFibGUgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSByYW5naW5nIGZyb20gY291cnNlcyBmb3IgaW4tc2VydmljZSBhbmQgcHJlLXNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlYWNoZXJzIHRvIGNsYXNzcm9vbSByZXNvdXJjZXMgdG8gdG9vbHMgZm9yIGFzc2Vzc21lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsdWF0aW9uIGJvdGggb2YgdGVhY2hlcnMgYW5kIGxlYXJuZXJzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSBtZWFucyBhbmQgaW5jbHVkZXMsIChpKSBjb250ZW50IHRoYXQgaXMgd3JpdHRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkLCBzdWJtaXR0ZWQsIHN0b3JlZCwgc2VudCwgcmVjZWl2ZWQgb3Igc2hhcmVkIHVzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEsIHRlYWNoaW5nIGFuZCBsZWFybmluZyBjb250ZW50IGluIHRoZSBjb250ZXh0IG9mIHNjaG9vbFxuICAgICAgICAgICAgICAgICAgICAgICAgZWR1Y2F0aW9uLCBjb3Vyc2VzLCBsZXNzb24gcGxhbnMsIHdvcmtzaGVldHMsIHN1cHBsZW1lbnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzIGZvciBjbGFzc3Jvb20gYW5kIG90aGVyIHN1Y2ggbGVhcm5pbmcgbWF0ZXJpYWxzIG1lYW50XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3Igd2lkZSB1c2VyIGNvbnN1bXB0aW9uLCBhbmQgKGlpaSkgb3RoZXIgdHlwZXMgb2YgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVkIGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciB0aGUgYWNjdXJhY3ksXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZW5lc3MgYW5kIHZpb2xhdGlvbnMgb2YgYW55IHByaXZhY3kgcmlnaHRzLCB0aGlyZCBwYXJ0eVxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRzIGluY2x1ZGluZyBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHdpdGggcmVnYXJkcyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgQ29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGlmZmVyZW50IHR5cGVzIG9mIENvbnRlbnQgYXJlIHN1Ym1pdHRlZC8gcG9zdGVkLyB1cGxvYWRlZCAvXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWQgb24gRElLU0hBIGZvbGxvd2luZyBkaWZmZXJlbnQgcHJvY2Vzc2VzIGFuZCB3b3JrZmxvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSBwdXJwb3NlIG9mIHRoZSBDb250ZW50LiBDZXJ0YWluIENvbnRlbnQsIHN1Y2ggYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RzLCBjb21tZW50cywgZmVlZGJhY2ssIHN1Ym1pc3Npb25zLCByZXNwb25zZXMsIGV4cGxhbmF0aW9ucyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ydW1zL2dyb3VwcyBvciB1c2luZyBwcm9qZWN0LyBzdXJ2ZXkvIG9ic2VydmF0aW9uIHRvb2xzIGV0Yy4sXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmUgZGlyZWN0bHkgc3VibWl0dGVkLyBwb3N0ZWQvIHVwbG9hZGVkLiBDZXJ0YWluIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyaWJ1dGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnMgdGhhdCBpcyBtZWFudCBmb3Igd2lkZXIgdXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtcHRpb24gaXMgcHVibGlzaGVkIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMgYWZ0ZXIgZm9sbG93aW5nIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmlldyBwcm9jZXNzIGRlc2NyaWJlZCBiZWxvdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db250ZW50IENvbnRyaWJ1dGlvbjwvaDQ+IDxwPkNvbnRlbnQgdGhhdCBpcyBwdWJsaXNoZWQgb25cbiAgICAgICAgICAgICAgICBESUtTSEEgZm9yIHdpZGVyIHVzZXIgY29uc3VtcHRpb24gY2FuIG9ubHkgYmUgY3JlYXRlZCBieSBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgVXNlcnMgd2hvIGFyZSBhdXRob3Jpc2VkIGJ5IGFuIEluc3RpdHV0aW9uYWwgVXNlciB0byBoYXZlIHJlYWQsIHdyaXRlXG4gICAgICAgICAgICAgICAgYW5kIGVkaXQgcmlnaHRzIHRvIGNyZWF0ZSBDb250ZW50LiBUaGlzIGF1dGhvcmlzYXRpb24gbWF5IGhhcHBlbiBhdFxuICAgICAgICAgICAgICAgIGNlbnRyYWwgbGV2ZWwgb3Igc3RhdGUgbGV2ZWwuIEVhY2ggSW5zdGl0dXRpb25hbCBVc2VyIGhhcyB0aGVpciBvd25cbiAgICAgICAgICAgICAgICBndWlkZWxpbmVzIGZvciBzdWNoIGF1dGhvcmlzYXRpb24uIFJlZ2lzdGVyZWQgVXNlcnMgd2hvIGNyZWF0ZSBDb250ZW50XG4gICAgICAgICAgICAgICAgYXJlIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgY29udHJpYnV0aW5nIENvbnRlbnQgdGhhdCBjb21wbGllc1xuICAgICAgICAgICAgICAgIHdpdGggdGhpc1xuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48Yj5Db250ZW50IFBvbGljeTwvYj48L2E+LCB0aGVcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4sIGFuZCBhbnkgb3RoZXIgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgcHJlc2NyaWJlZCBmcm9tIHRpbWUgdG8gdGltZS5cbiAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHNoYWxsIGhhdmUgZXhlcmNpc2VkIHJlYXNvbmFibGUgZGlsaWdlbmNlIHRvIHNhdGlzZnlcbiAgICAgICAgICAgICAgICB0aGVtc2VsdmVzIHRoYXQgdGhlaXIgQ29udGVudCBpcyByZWFkeSBmb3IgcHVibGljIGNvbnN1bXB0aW9uIHByaW9yIHRvXG4gICAgICAgICAgICAgICAgYmVpbmcgc3VibWl0dGVkIGZvciByZXZpZXcgYW5kIHVzZSBvbiBESUtTSEEuPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db250ZW50IFJldmlldyAmYW1wOyBQdWJsaXNoaW5nIDwvaDQ+PHA+QWxsIENvbnRlbnQgcHVibGlzaGVkXG4gICAgICAgICAgICAgICAgb24gRElLU0hBIGZvciB3aWRlciB1c2VyIGNvbnN1bXB0aW9uIGlzIGN1cmF0ZWQsIHJldmlld2VkIGFuZFxuICAgICAgICAgICAgICAgIHB1Ymxpc2hlZCBieSBSZWdpc3RlcmVkIFVzZXJzIHdobyBhcmUgYXV0aG9yaXNlZCBieSBhbiBJbnN0aXR1dGlvbmFsXG4gICAgICAgICAgICAgICAgdG8gaGF2ZSByZWFkLCB3cml0ZSBhbmQgZWRpdCByaWdodHMgdG8gY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaFxuICAgICAgICAgICAgICAgIENvbnRlbnQuIFRoaXMgYXV0aG9yaXNhdGlvbiBtYXkgaGFwcGVuIGF0IGNlbnRyYWwgbGV2ZWwgb3Igc3RhdGVcbiAgICAgICAgICAgICAgICBsZXZlbC4gRWFjaCBJbnN0aXR1dGlvbmFsIFVzZXIgaGFzIHRoZWlyIG93biBndWlkZWxpbmVzIGZvciBzdWNoXG4gICAgICAgICAgICAgICAgYXV0aG9yaXNhdGlvbi4gUmVnaXN0ZXJlZCBVc2VycyB3aG8gY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50XG4gICAgICAgICAgICAgICAgc2hhbGwgZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgdGhleSBhY2NlcHQgY29tcGxpZXMgd2l0aCB0aGlzIENvbnRlbnRcbiAgICAgICAgICAgICAgICBQb2xpY3ksIHRoZVxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICBhbmRcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPiwgYW5kIGFueSBvdGhlciBwb2xpY2llcyBhbmQgZ3VpZGVsaW5lcyBwcmVzY3JpYmVkIGZyb20gdGltZSB0byB0aW1lLlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5BY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzIDwvaDQ+LSBSZWdpc3RlcmVkIFVzZXJzIG11c3RcbiAgICAgICAgICAgICAgICBlbnN1cmUgdGhhdCBhbGwgdGhlIENvbnRlbnQgdGhleSBoYXZlIGNyZWF0ZWQsIGNvbnRyaWJ1dGVkLCByZXZpZXdlZFxuICAgICAgICAgICAgICAgIG9yIHB1Ymxpc2hlZCBpcyBhcHByb3ByaWF0ZSBhbmQgYWNjdXJhdGUgYW5kIG1lZXRzIHRoZWlyIHBlZGFnb2dpY2FsXG4gICAgICAgICAgICAgICAgYW5kIHVzYWJpbGl0eSByZXF1aXJlbWVudHMgYXMgcHJlc2NyaWJlZCBieSBJbnN0aXR1dGlvbmFsIFVzZXJzLlxuICAgICAgICAgICAgICAgIENvbnRlbnQgaWRlbnRpZmllZCBhcyBpbmFwcHJvcHJpYXRlIG9yIGluYWNjdXJhdGUsIGFzIHBlciB0aGlzIENvbnRlbnRcbiAgICAgICAgICAgICAgICBQb2xpY3ksIHdpbGwgbm90IGJlIHB1Ymxpc2hlZCBhbmQgY2FuIGJlIHVuaWxhdGVyYWxseSByZW1vdmVkIGZyb21cbiAgICAgICAgICAgICAgICBESUtTSEEuXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QWNjdXJhdGUgQ29udGVudDwvc3Ryb25nPiAtIEFsbCBDb250ZW50IG11c3Q6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QmUgZmFjdHVhbGx5IGNvcnJlY3QsPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBsYW5ndWFnZSBpbiB0ZXh0LCBhdWRpbywgdmlkZW8gYW5kIGludGVyYWN0aXZlIG1hdGVyaWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGlzIHNpbXBsZSBhbmQgZWFzeSB0byB1bmRlcnN0YW5kLCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmUgY29udGV4dHVhbCBhbmQgcmVsZXZhbnQgdG8gdGhlIG5lZWRzIG9mIHRoZSBpbnRlbmRlZCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluYXBwcm9wcmlhdGUgQ29udGVudDwvc3Ryb25nPiBpbmNsdWRlcywgYnV0IGlzIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlZCB0bzpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGF0ZSBTcGVlY2ggLSBieSB3b3JkcyBlaXRoZXIgd3JpdHRlbiBvciBzcG9rZW4gb3IgYnkgc2lnbnMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgdmlzaWJsZSByZXByZXNlbnRhdGlvbiBvciBvdGhlcndpc2UgcHJvbW90ZXMgb3IgYXR0ZW1wdHMgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbW90ZSBmZWVsaW5ncyBvZiBlbm1pdHksIGhhdHJlZCBvciBpbGwtd2lsbCBhZ2FpbnN0IHBlcnNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNhc3RlPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DbGFzczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+VHJpYmU8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlJhY2U8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkV0aG5pY2l0eTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2V4LCBnZW5kZXIsIG9yIGdlbmRlciBpZGVudGl0eTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TmF0aW9uYWwgb3JpZ2luPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZWxpZ2lvdXMgYWZmaWxpYXRpb248L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNleHVhbCBvcmllbnRhdGlvbiwgb3I8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRpc2FiaWxpdGllcyBvciBkaXNlYXNlczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNleHVhbGx5IGV4cGxpY2l0IGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlBvcm5vZ3JhcGh5PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBsaWNpdCB0ZXh0L2ltYWdlcy9pbGx1c3RyYXRpb25zL3NvdW5kcyBvZiBzZXh1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRlc2NyaXB0aW9ucyBvZiBzZXh1YWwgYWN0czwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcGljdGlvbiBvZiBzZXh1YWwgdmlvbGVuY2UgYW5kIGV4cGxvaXRhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZXMgc2V4dWFsIGV4cGxvaXRhdGlvbiBvZiBtaW5vcnMsIGFuZCBzZXh1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NhdWx0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b2dyYXBocy8gSWxsdXN0cmF0aW9ucy92aWRlb3MgZGVwaWN0aW5nIGluY2lkZW50cyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNleHVhbCB2aW9sZW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwaWN0aW9uIG9mIG51ZGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVkaXR5IHdvdWxkIG1lYW4gZGlzcGxheWluZyBnZW5pdGFscywgYnJlYXN0cyBvciBidXR0b2Nrc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG90aGVkIG9yIHVuY2xvdGhlZCkgZm9yIHRoZSBwdXJwb3NlIG9mIHNleHVhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXRpZmljYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIHRoYW4gdGhlIGRlcGljdGlvbiBvZiBib2R5IHBhcnRzIHdoaWNoIGlzbuKAmXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmF0dWl0b3VzbHkgZ3JhcGhpYyBhbmQgaXMgZWR1Y2F0aW9uYWwsIGRvY3VtZW50YXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWVudGlmaWMsIG9yIGFydGlzdGljIC0gcGFpbnRpbmdzLCBzY3VscHR1cmVzLCBhbmQgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnQgdGhhdCBkZXBpY3RzIG51ZGUgZmlndXJlcywgd2hpY2ggaXMgcG9zdGVkIGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbmFsIHB1cnBvc2VzLiBQcm92aWRpbmcgY29udGV4dCB3aWxsIGhlbHAgdXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlcm1pbmUgdGhlIHB1cnBvc2Ugb2YgdGhlIGNvbnRlbnQvYXNzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHRoYXQgcHJvbW90ZXMgdmlvbGVuY2UsIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvbW90aW5nLCBlbmNvdXJhZ2luZywgc3VwcG9ydGluZywgcHJhaXNpbmcsIG9yIGNvbmRvbmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xlbnQgYWN0aW9ucywgYWN0aXZpdGllcyBhbmQgYmVoYXZpb3VyIC0gdmVyYmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsIG9yIGVtb3Rpb25hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWF0ZW5pbmcgb3IgaW5jaXRpbmcgb3RoZXJzIHRvIGNvbW1pdCBhY3RzIG9mIHZpb2xlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJlc3Npbmcgc3VwcG9ydCBvciBwcmFpc2UgZm9yIGdyb3VwcywgcGVvcGxlIHRoYXQgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2x2ZWQgaW4gdmlvbGVudCBvciBjcmltaW5hbCBiZWhhdmlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgdGhhdCBwcm9tb3Rlcy9kZXBpY3RzL3JlZmxlY3RzIGRpc2NyaW1pbmF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWxseWluZyBvciBlbmNvdXJhZ2luZyBzdWNoIGJlaGF2aW91ciwgaW5jbHVkaW5nOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0aW5nIGluZGl2aWR1YWxzIHdpdGggdGhlIGludGVudGlvbiBvZiBkZWdyYWRpbmcgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFtaW5nIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElsbHVzdHJhdGlvbnMgb3IgSW1hZ2VzIGFsdGVyZWQgdG8gZGVncmFkZSBpbmRpdmlkdWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QaG90b3Mgb3IgdmlkZW9zIG9mIHBoeXNpY2FsIG9yIHZlcmJhbCBidWxseWluZzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2hhcmluZyBwZXJzb25hbCBpbmZvcm1hdGlvbiBvciBoYXJhc3NpbmcgcGVvcGxlPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXRlZGx5IHRhcmdldGluZyBvdGhlciBwZW9wbGUgd2l0aCB1bndhbnRlZCByZXF1ZXN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIG1lc3NhZ2VzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcHJpc2VzIGhhcm1mdWwgb3IgZGFuZ2Vyb3VzIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIGludGVuZHMgdG8gaW5jaXRlIHZpb2xlbmNlIG9yIGVuY291cmFnZSBkYW5nZXJvdXMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsIGFjdGl2aXRpZXMgdGhhdCBoYXZlIGFuIGluaGVyZW50IHJpc2sgb2Ygc2VyaW91c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsIGhhcm0gb3IgZGVhdGguXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY291cmFnZXMgZGFuZ2Vyb3VzIG9yIGlsbGVnYWwgYWN0aXZpdGllcyBmb3IgaW5zdGFuY2UgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5IGxhdW5kZXJpbmcsIGdhbWJsaW5nLCBwZXJmb3JtaW5nIHN0dW50cywgaGlnaCByaXNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllcywgY2hva2luZyBnYW1lcywgZHJ1ZyB1c2UsIG9yIG90aGVyIGFjdHMgd2hlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpb3VzIGluanVyeSBvciBoYXJtIG1heSByZXN1bHQuIENvbnRlbnQgdGhhdCBkZXBpY3RzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzIGFjdHMgbWF5IGJlIGFsbG93ZWQgaWYgdGhlIHByaW1hcnkgcHVycG9zZSBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbmFsLCBkb2N1bWVudGFyeSwgc2NpZW50aWZpYywgb3IgYXJ0aXN0aWMgKEVEU0EpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpc27igJl0IGdyYXR1aXRvdXNseSBncmFwaGljLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXIgcG9zc2liaWxpdGllczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggdmlvbGF0ZXMgdGhlIGxhdyBmb3IgdGhlIHRpbWUgYmVpbmcgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCB3aGljaCBpbmZyaW5nZXMgYW55IHRyYWRlbWFyaywgY29weXJpZ2h0LCBvciBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggZGVjZWl2ZXMgb3IgbWlzbGVhZHMgdGhlIFVzZXIgYWJvdXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luIG9mIHN1Y2ggQ29udGVudCBhbmQgY29udmV5cyBpbmZvcm1hdGlvbiB3aGljaCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3NzbHkgb2ZmZW5zaXZlIG9yIG1lbmFjaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHdoaWNoIGNvbnRhaW5zIHNvZnR3YXJlIHZpcnVzZXMgb3IgYW55IG90aGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZXIgY29kZSwgZmlsZXMgb3IgcHJvZ3JhbXMgZGVzaWduZWQgdG8gaW50ZXJydXB0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3kgb3IgbGltaXQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW55IGNvbXB1dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggdGhyZWF0ZW5zIHRoZSB1bml0eSwgaW50ZWdyaXR5LCBkZWZlbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IG9yIHNvdmVyZWlnbnR5IG9mIEluZGlhLCBmcmllbmRseSByZWxhdGlvbnMgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ24gc3RhdGVzLCBvciBwdWJsaWMgb3JkZXIsIG9yIGNhdXNlcyBpbmNpdGVtZW50IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbW1pc3Npb24gb2YgYW55IGNvZ25pc2FibGUgb2ZmZW5jZSBvciBwcmV2ZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmVzdGlnYXRpb24gb2YgYW55IG9mZmVuY2Ugb3IgaXMgaW5zdWx0aW5nIGFueSBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmdzIG1pbm9ycy8gY2hpbGRyZW4gaW4gdmlvbGVuY2UgYXMgdmljdGltc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHBlcnBldHJhdG9ycyBvciBhcyBmb3JjZWQgd2l0bmVzc2VzIHRvIHZpb2xlbmNlLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dpbmcgY2hpbGRyZW4gYXMgYmVpbmcgc3ViamVjdGVkIHRvIGFueSBmb3JtIG9mIGNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1c2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIGFidXNlIG9yIHJpZGljdWxlIG9mIHBlb3BsZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJpbGl0aWVzIChwaHlzaWNhbCBvciBtZW50YWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db250ZW50IGludm9sdmluZyBjcnVlbHR5IHRvLCBvciBhYnVzZSBvZiBhbmltYWxzLDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwaWN0aW9uIG9mIHZpb2xlbmNlLCBjcnVlbHR5IGFuZCBob3Jyb3IsIHNjZW5lcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xlbmNlIHByaW1hcmlseSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgaW1hZ2VzL3RleHQvIGlsbHVzdHJhdGlvbnMgaGF2ZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Qgb2YgZW5jb3VyYWdpbmcsIGp1c3RpZnlpbmcsIGdsb3JpZnlpbmcsIGdsYW1vcmlzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxjb2hvbCBkcmlua2luZywgZHJ1Z3MgYW5kIHN1YnN0YW5jZSBhYnVzZTsgY29uc3VtcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0b2JhY2NvIG9yIHNtb2tpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIGRlZ3JhZGluZyBvciBkZW5pZ3JhdGluZyB3b21lbiBpbiBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIHZ1bGdhcml0eSwgb2JzY2VuaXR5IG9yIGRlcHJhdml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgZHVhbCBtZWFuaW5nIHdvcmRzIGFzIG9idmlvdXNseSBjYXRlciB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VyIGluc3RpbmN0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgdmlzdWFscyBvciB3b3JkcyBjb250ZW1wdHVvdXMgb2YgcmFjaWFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGlnaW91cyBvciBvdGhlciBncm91cHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIHZpc3VhbHMgb3Igd29yZHMgd2hpY2ggcHJvbW90ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyc3RpdGlvbiwgY29tbXVuYWwsIG9ic2N1cmFudGlzdCwgYW50aS1zY2llbnRpZmljXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0aXR1ZGUsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IGludm9sdmluZyB2aXN1YWxzIG9yIHdvcmRzIGludm9sdmluZyBkZWZhbWF0aW9uIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5kaXZpZHVhbCBvciBhIGJvZHkgb2YgaW5kaXZpZHVhbHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHM8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIENvbnRlbnQgdGhleSBoYXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkLCB1cGxvYWRlZCwgc291cmNlZCwgbGlua2VkLCBzdHJlYW1lZCwgY3VyYXRlZCwgcmV2aWV3ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvciBwdWJsaXNoZWQgb24gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG11c3QgZW5zdXJlIHRoYXQgQ29udGVudCAobWVhbnQgZm9yIHdpZGVyIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bXB0aW9uKSB0aGF0IHRoZXkgY3JlYXRlLCB1cGxvYWQsIHNvdXJjZSwgbGluaywgc3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBvbiBESUtTSEEgYWNjdXJhdGVseSByZWZsZWN0czpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BdXRob3I8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db3B5cmlnaHQgaG9sZGVyPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+WWVhciBvZiBjb3B5cmlnaHQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRpb25zIHRvIGNyZWF0b3JzIHdob3NlIGNvbnRlbnQgaGFzIGJlZW4gcmVsaWVkIG9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluLCBvciByZWZlcnJlZCB0byBpbiB0aGUgQ29udGVudCAoaWYgYW55KSBhbmQgc291cmNlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgY2l0YXRpb25zLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlRoZSByZWxldmFudCBsaWNlbnNlLCBhcyBwZXIgdGhlIExpY2Vuc2luZyBQb2xpY3k8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyB3aG8gaGF2ZSBjb3B5cmlnaHQgaW4gdGhlIENvbnRlbnQgdGhleSBoYXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cmlidXRlZCwgY29uc2VudCB0byBwdWJsaWNhdGlvbiBvZiB0aGVpciBDb250ZW50IGluIGFjY29yZGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEluIHJlbGF0aW9uIHRvIENvbnRlbnQgYmVpbmcgY29udHJpYnV0ZWQgYnkgYW55IHBlcnNvbiBvdGhlciB0aGFuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29weXJpZ2h0IGhvbGRlciBvZiB0aGUgQ29udGVudCwgUmVnaXN0ZXJlZCBVc2VycyBtdXN0IGVuc3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB0aGV5IGhhdmUgdGhlIG5lY2Vzc2FyeSBhdXRob3Jpc2F0aW9uLCBjb25zZW50LCBsaWNlbnNlLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbiB0byBwdWJsaXNoIHN1Y2ggQ29udGVudCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIENvbnRlbnQgaW5jbHVkZXMgY29weXJpZ2h0ZWQgbWF0ZXJpYWxzIChpbmNsdWRpbmcgdGV4dCwgaW1hZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zLCBpbGx1c3RyYXRpb25zLCBzb3VuZHMsIG11c2ljLCB2aWRlb3MsIGF1ZGlvLXZpc3VhbFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluYXRpb25zLCBldGMuKSwgUmVnaXN0ZXJlZCBVc2VycyAoY3JlYXRvcnMsIGN1cmF0b3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2aWV3ZXJzIGFuZCBwdWJsaXNoZXJzKSBtdXN0IGVuc3VyZSBjb21wbGlhbmNlIHdpdGggdGhlIGxpY2Vuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zLCBwcm9wZXIgYXR0cmlidXRpb24gYW5kIGFueSBvdGhlciB0aGlyZCBwYXJ0eSBpbnRlbGxlY3R1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IHJpZ2h0cy4gSW5mcmluZ2VtZW50IG9mIGNvcHlyaWdodCBvciBhbnkgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgaXMgbm90IGFjY2VwdGFibGUsIHRoZSBwcm9wZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0aW9ucyBhbmQgYWNrbm93bGVkZ2VtZW50IG9mIGF1dGhvcnMgYW5kIGNyZWF0b3JzIGZvciBvcGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBlZHVjYXRpb24gcmVzb3VyY2UgY29tbXVuaXR5IGFuZCBjcmVhdGl2ZSBjb21tb25zIGNvbW11bml0eSBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBiZSByZXNwZWN0ZWQgYW5kIHVwaGVsZCBhdCBhbGwgdGltZXMuIEFkbWluaXN0cmF0b3JzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgd2lsbCByZW1vdmUgYW55IENvbnRlbnQgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IG5vdGlmaWVkIHRoYXQgc3VjaCBDb250ZW50IGluZnJpbmdlcyBvbiBhbm90aGVyJ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3IgdmlvbGF0ZXMgdGhpcyBDb250ZW50IFBvbGljeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCAvIG9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJ5IHN1Ym1pdHRpbmcgLyB1cGxvYWRpbmcgLyBjcmVhdGluZy8gcHVibGlzaGluZyBDb250ZW50IG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZvbGxvd2luZyB0aGUgb3BlbiBsaWNlbnNlIGZyYW1ld29ya3MgYWRvcHRlZCBieSBESUtTSEEsXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHJlY29nbmlzZSBhbmQgYWNjZXB0IHRoYXQgdGhlIENvbnRlbnQgKGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxsIHRoZSBlbGVtZW50cyB0aGF0IHN1Y2ggQ29udGVudCBjb21wcmlzZXMgc3VjaCBhcyB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0cywgZ3JhcGhpY3MsIHBob3Rvcywgc291bmRzLCBtdXNpYywgdmlkZW9zLCBhdWRpby12aXN1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmF0aW9ucyBldGMuKSBpcyBwbGFjZWQgaW4gcHVibGljIGRvbWFpbiB3aWxsIGJlIGFjY2Vzc2VkIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCBieSBhbnkgaW5kaXZpZHVhbCwgaW5zdGl0dXRpb24gb3Igb3JnYW5pc2F0aW9uIHRocm91Z2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlvdXMgcGxhdGZvcm1zLCBwb3J0YWxzIGFuZCBhcHBsaWNhdGlvbnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgbGljZW5zZSBjb25kaXRpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJdCBzaGFsbCBiZSB0aGUgc29sZSByZXNwb25zaWJpbGl0eSBvZiBSZWdpc3RlcmVkIFVzZXJzIHRvIGVuc3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBwcm9wZXIgYW5kIGNvcnJlY3QgYXR0cmlidXRpb25zLCBhY2tub3dsZWRnZW1lbnRzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNpbmcgcmVmZXJlbmNlcyBhcmUgZ2l2ZW4gdG8gdGhlIENvbnRlbnQgYW5kIGluZGl2aWR1YWwocykvXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0aXR1dGlvbihzKSB0aGF0IGhhdmUgYmVlbiBpbnZvbHZlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbiBvZiBDb250ZW50IGFuZCB3aGVyZXZlciBDb250ZW50IGhhcyBiZWVuIHF1b3RlZC91c2VkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJdCBzaGFsbCBiZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgUmVnaXN0ZXJlZCBVc2VycyBub3QgdG8gaW5mcmluZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwb24gYW55IHRoaXJkIHBhcnR5IHJpZ2h0cyBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHN1Y2ggYXMgY29weXJpZ2h0cyBvciBhbnkgb3RoZXIgbGVnYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0cyBvZiBpbmRpdmlkdWFsKHMpL29yZ2FuaXNhdGlvbihzKSB3aXRoIHJlZ2FyZHMgdG8gQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0ZWQgb24gRElLU0hBLiBGb3IgYW55IGxlZ2FsIG1hdHRlciBhcmlzaW5nIG91dCBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmluZ2VtZW50IG9mIHN1Y2ggcmlnaHRzIGJ5IHRoZSBSZWdpc3RlcmVkIFVzZXIsIHN1Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlciBzaGFsbCBiZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGFueSBmaW5hbmNpYWwgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyIGRhbWFnZXMgYXJpc2luZyBvdXQgb2Ygc3VjaCB2aW9sYXRpb25zIGFuZCBkaXNwdXRlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JIGFuZC9vciB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciB0aGUgdmlvbGF0aW9ucyBvZiBhbnkgdGhpcmQgcGFydHlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0cyBpbmNsdWRpbmcgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBieSBhbnkgVXNlci5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQW55IHZpb2xhdGlvbnMgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyB3aWxsIGJlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNvbmNlcm5lZCBVc2Vycy4gQW55IGRpc3B1dGVzIHdpbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRsZWQgYnkgdGhlIHJlc3BlY3RpdmUgcGFydGllcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JIGFuZC9vciB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBkbyBub3QgZW5kb3JzZSBhbnkgQ29udGVudCBwdWJsaXNoZWQgb24gRElLU0hBLCBvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9waW5pb24sIHJlY29tbWVuZGF0aW9uLCBvciBhZHZpY2UgZXhwcmVzc2VkIHRoZXJlaW4sIGFuZCBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3NseSBkaXNjbGFpbXMgYW55IGFuZCBhbGwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5PcGVuIExpY2Vuc2luZyBQb2xpY3kgLSBDcmVhdGl2ZSBDb21tb25zIEZyYW1ld29yazwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgZm9sbG93cyBwcmluY2lwbGVzIG9mIG9wZW4gYWNjZXNzLCBvcGVuIGxpY2Vuc2luZyBhbmQgaXMgYVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gZm9yIG9wZW4gZWR1Y2F0aW9uIHJlc291cmNlcy4gUmVnaXN0ZXJlZCBVc2VycyBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnN1cmUgdGhhdCB0aGV5IGZvbGxvdyB0aGVzZSBsaWNlbnNpbmcgdGVybXMuIENvbnRlbnQgd2hpY2ggZG9lc1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90IGZvbGxvdyB0aGVzZSBsaWNlbnNpbmcgdGVybXMgc2hhbGwgYmUgcmVqZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICBGcmFtZXdvcmsuIENyZWF0aXZlIENvbW1vbnMgbGljZW5zZXMgcHJvdmlkZSBhbiBlYXN5IHdheSB0byBtYW5hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb3B5cmlnaHQgdGVybXMgdGhhdCBhdHRhY2ggYXV0b21hdGljYWxseSB0byBhbGwgY3JlYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsIHVuZGVyIGNvcHlyaWdodC4gQ3JlYXRpdmUgQ29tbW9ucyBsaWNlbnNlcyBhbGxvdyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbCB0byBiZSBzaGFyZWQgYW5kIHJldXNlZCB1bmRlciB0ZXJtcyB0aGF0IGFyZSBmbGV4aWJsZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsbHkgc291bmQuIENyZWF0aXZlIENvbW1vbnMgb2ZmZXJzIGEgY29yZSBzdWl0ZSBvZiBzaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlyaWdodCBsaWNlbnNlcy4gQW55b25lIGNhbiB1c2UgQ3JlYXRpdmUgQ29tbW9ucyBsaWNlbnNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzIGFzIGxvbmcgYXMgdGhlIGxpY2Vuc2UgY29uZGl0aW9ucyBhcmUgZm9sbG93ZWQuIE9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uIG9mIGFsbCBDcmVhdGl2ZSBDb21tb25zIGxpY2Vuc2VzIGlzIGF0dHJpYnV0aW9uLiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pdHMgdGhlIHVzZSBvZiB0aGUgZm9sbG93aW5nIGxpY2VuY2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC9sZWdhbGNvZGVcIj5DQyBCWTQuMDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEF0dHJpYnV0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1TQSA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1OQyA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1OQy1TQSA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsLVNoYXJlQWxpa2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmQvNC4wL2xlZ2FsY29kZVwiPkNDIEJZLU5EIDQuMDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEF0dHJpYnV0aW9uLU5vbi1EZXJpdmF0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPllvdVR1YmUgTGljZW5zZTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG11c3QgZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgc3VibWl0dGVkIHRvIGJlXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWQgb24gdGhlIERJS1NIQSBmb3Igd2lkZXIgdXNlciBjb25zdW1wdGlvbiBzcGVjaWZpZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVsZXZhbnQgbGljZW5zZSB1bmRlciB3aGljaCBzdWNoIENvbnRlbnQgd2lsbCBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgdG8gdGhlIFVzZXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGF0IHRoZSBhcHByb3ByaWF0ZSBsaWNlbnNlIHRlcm1zIGFuZCB3ZWxsIGFzIGF0dHJpYnV0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGluZyB0byBzdWNoIENvbnRlbnQgYXJlIHByb3Blcmx5IGZvbGxvd2VkLCBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyBvZiB0aGUgY3JlYXRvciBhbmQgc291cmNlLyBjaXRhdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYXQgbGljZW5zZSBvcHRpb25zIG1lbnRpb25lZCBoZXJlaW4gYXJlIGZvbGxvd2VkIGluIGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlcywgYW5kIHRoYXQgdGhlIHJlbGV2YW50IGxpY2Vuc2Ugc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29weXJpZ2h0IGxpY2Vuc2UgYXBwbGljYWJsZSB0byB0aGUgb3JpZ2luYWwgcGllY2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhY2tub3dsZWRnZSBhbmQgYWNjZXB0IHRoYXQgc2luY2UgdGhlIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVkIGhlcmVpbiBmb2xsb3dzIG9wZW4gbGljZW5zaW5nIG5vcm1zIHN1Y2ggYXMgY3JlYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbnMgbGljZW5zZXMgb3Igb3RoZXIgb3BlbiBsaWNlbnNlcywgdGhlIHVzZSBvZiB0aGUgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgbm90IGJlIGxpbWl0ZWQgdG8gc3BlY2lmaWMgSW5zdGl0dXRpb25hbCBVc2Vycy8gUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgdGhhdCBoYXZlIHB1Ymxpc2hlZCB0aGUgQ29udGVudCBhbmQgdGhleSBzaGFsbCBiZSBtYWRlXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgZm9yIGRpc2NvdmVyeSwgYWNjZXNzIGFuZCB1c2UgYnkgYW55IG9yZ2FuaXNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RpdHV0aW9uLCBwbGF0Zm9ybSwgYXBwbGljYXRpb24gYW5kIGluZGl2aWR1YWwgaW4gZ2VuZXJhbC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyByZWNvZ25pc2UgYW5kIGFjY2VwdCB0aGF0IG9uY2UgQ29udGVudCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkIGFuZCBwbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4gZm9yIHVzZSwgdGhleSBjYW5ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaWxhdGVyYWxseSB3aXRoZHJhdyB0aGUgQ29udGVudCBvciBjaGFuZ2UgdGhlIGxpY2Vuc2luZyB0ZXJtcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5CYWQgUHJhY3RpY2VzOjwvaDQ+IFJlZ2lzdGVyZWQgVXNlcnMgbXVzdCBub3QgaW5kdWxnZSBpblxuICAgICAgICAgICAgICAgIGFueSBvZiB0aGUgZm9sbG93aW5nIGJhZCBwcmFjdGljZXMgaW4gcmVsYXRpb24gdG8gdGhlaXIgQ29udGVudCxcbiAgICAgICAgICAgICAgICBpbmNsdWRpbmc6XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZW0+VXBsb2FkaW5nIENvbnRlbnQgKGluY2x1ZGluZyBwaG90b3Mgb3IgdmlkZW9zKSBvZiBpbmRpdmlkdWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgdGhlaXIgY29uc2VudDwvZW0+OiBQaG90b3Mgb3IgdmlkZW9zIHdoaWNoIGluY2x1ZGUgb3RoZXIgcGVvcGxlIHdobyBhcmUgbm90IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdCBvZiB0aGUgcGhvdG8gYW5kIGhhdmUgbm90IHNpZ25lZCBhIGNvbnNlbnQgLyByZWxlYXNlIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHNoYXJlIHRob3NlIHBob3RvcyBvciB2aWRlb3MsIGFyZSBub3QgcGVybWl0dGVkLiBBbnkgcGVyc29uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGFwcGVhcnMgaW4gdGhlIHBob3RvIG9yIHZpZGVvICh3aG9zZSBmYWNlIGlzIHZpc2libGUpIG11c3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgc2lnbmVkIGEgY29uc2VudCAvIHJlbGVhc2UgZm9ybSB3aGVyZSB0aGV5IGNvbnNlbnQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFyaW5nIG9mIHN1Y2ggcGhvdG8ocykgd2l0aCB0aGlyZCBwYXJ0aWVzLiBJZiB0aGUgaW5kaXZpZHVhbCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgYSBjaGlsZCB1bmRlciB0aGUgYWdlIG9mIDE4IHllYXJzLCB0aGUgcGFyZW50cyBvciBndWFyZGlhbnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2ggY2hpbGQgbXVzdCBoYXZlIHNpZ25lZCBzdWNoIGNvbnNlbnQvIHJlbGVhc2UgZm9ybS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlVwbG9hZGluZyBDb250ZW50IChpbmNsdWRpbmcgcGhvdG9zIG9yIHZpZGVvcykgd2l0aCBldGhpY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiA8L2VtPlBob3RvZ3JhcGhzIG9yIHZpZGVvcyBjb250YWluaW5nIHZpb2xlbnQsIHBvcm5vZ3JhcGhpYywgc2Vuc2l0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IG9yIG90aGVyIGluYXBwcm9wcmlhdGUgQ29udGVudCBkZXNjcmliZWQgaW4gdGhpcyBDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgdGhhdCBjb3VsZCwgaW4gc29tZSB3YXksIG9mZmVuZCBvdXIgVXNlcnMgYXJlIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZW0+VXBsb2FkaW5nIENvbnRlbnQgKGluY2x1ZGluZyBwaG90b3MsIHZpZGVvcyBvciBkb2N1bWVudHMpIHdoaWNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSBhdXRob3Jpc2F0aW9uIGZyb20gdGhlIGF1dGhvciAvIG93bmVyOiA8L2VtPkNlcnRhaW4gdHlwZXMgb2YgQ29udGVudCAoaW5jbHVkaW5nIHBob3RvZ3JhcGhzLCB2aWRlb3Mgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50cykgcmVxdWlyZSB0aGUgcGVybWlzc2lvbiBvZiB0aGUgYXV0aG9yIC8gb3duZXIgc3VjaCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29weXJpZ2h0ZWQgd29ya3MgKGVnLiBsb2dvcywgbGl0ZXJhcnkgb3IgYXJ0d29ya3MpLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW50aWFsIGRvY3VtZW50cy4gSXQgaXMgaW1wb3J0YW50IHRoYXQgYmVmb3JlIHVwbG9hZGluZyBzdWNoXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50LCBhcHByb3ByaWF0ZSB3cml0dGVuIHBlcm1pc3Npb25zIGFyZSB0YWtlbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlVwbG9hZGluZyBDb250ZW50IHdoaWNoIGRvZXNu4oCZdCBtZWV0IHNwZWNpZmllZCB0ZWNobmljYWwgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWwgcmVxdWlyZW1lbnRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9lbT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5VcGxvYWRpbmcgcmVwZWF0cyBvZiB0aGUgc2FtZSBDb250ZW50LiA8L2VtPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT48ZW0+VXBsb2FkaW5nIGZpbGVzIHRoYXQgY29udGFpbiB2aXJ1c2VzIG9yIG1hbHdhcmUuPC9lbT48L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlRha2Vkb3duIFBvbGljeSAtIDwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiBhIFVzZXIgYmVsaWV2ZXMgdGhhdCBjZXJ0YWluIENvbnRlbnQgcHVibGlzaGVkIG9uIERJS1NIQSBpcyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgdmlvbGF0aW9uIG9mIHRoaXMgQ29udGVudCBQb2xpY3kgb3IgYW55IGFwcGxpY2FibGUgbGF3cyBwbGVhc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QgdXMgYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZ1wiPjxiPnN1cHBvcnRAdGVhbWRpa3NoYS5vcmc8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5lY2Vzc2FyeSBhY3Rpb24gd2lsbCBiZSB0YWtlbiB0byByZXZpZXcgYW5kIC8gb3IgcmVtb3ZlIHN1Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgYXMgcXVpY2tseSBhcyBwb3NzaWJsZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIHJlc2VydmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByaWdodCB0byByZW1vdmUgQ29udGVudCBmcm9tIERJS1NIQSB3aXRob3V0IGFueSBwcmlvciBub3RpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhbnkgdmlvbGF0aW9uIG9mIHRoZSBDb250ZW50IFBvbGljeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+LCBvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uIFRoZXkgbWF5IGF0IHRoZWlyIHNvbGUgYW5kIGFic29sdXRlIGRpc2NyZXRpb24gZGVsZXRlLCByZW1vdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFjY2VzcyBvciBvdGhlcndpc2UgZGVhbCB3aXRoIGluZm9ybWF0aW9uLCBkYXRhIG9yIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIGNvbXBseSB3aXRoIGxhd3MgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgdGhlIEluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBUZWNobm9sb2d5IEFjdCwgMjAwMC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgPGVtPkRJU0NMQUlNRVI6IFRob3VnaCBhbGwgZWZmb3J0cyBoYXZlIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhlIGFjY3VyYWN5XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgY3VycmVuY3kgb2YgdGhlIENvbnRlbnQgb24gRElLU0hBLCB0aGUgc2FtZSBzaG91bGQgbm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1ZWQgYXMgYSBzdGF0ZW1lbnQgb2YgbGF3IG9yIHVzZWQgZm9yIGFueSBsZWdhbCBwdXJwb3Nlcy4gSW4gbm9cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50IHdpbGwgdGhlIEdvdmVybm1lbnQgb2YgSW5kaWEsIE1vRSBvciBOQ0VSVCBiZSBsaWFibGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2UgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGluZGlyZWN0IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50aWFsIGxvc3Mgb3IgZGFtYWdlLCBvciBhbnkgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoYXRzb2V2ZXIgYXJpc2luZyBmcm9tIHVzZSwgb3IgbG9zcyBvZiB1c2UsIG9mIGRhdGEsIGFyaXNpbmcgb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHVzZSBvZiBESUtTSEEuIExpbmtzIHRvIG90aGVyIHdlYnNpdGVzIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBpbmNsdWRlZCBvbiB0aGlzIHBsYXRmb3JtIGFyZSBwcm92aWRlZCBmb3IgcHVibGljXG4gICAgICAgICAgICAgICAgICAgICAgICBjb252ZW5pZW5jZSBvbmx5LjwvZW0+XG4gICAgICAgICAgICAgICAgPC9wPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cInRleHQtcmlnaHQgVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj4tLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBPC9hPi0tPlxuPCEtLSAgICAgICAgPC9zcGFuPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB1bGwtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJncm91cC1ndWlkZWxpbmVzLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJncm91cEd1aWRlbGluZXNcIj5SZWFkIEdyb3VwIEd1aWRlbGluZXMgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvaT48L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIENvbnRlbnQgUG9saWN5IGVuZCBoZXJlLS0+XG5cbiAgICAgICAgPCEtLSAgICBHcm91cCBHdWlkZWxpbmVzIHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGVcIiBpZD1cImdyb3VwR3VpZGVsaW5lc1wiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cImdyb3VwLWd1aWRlbGluZXMtdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+RElLU0hBIEdyb3VwIEd1aWRlbGluZXM8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlc2UgR3JvdXAgR3VpZGVsaW5lcyBzcGVjaWZ5IHRoZSByaWdodHMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgb2ZcbiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyB3aG8gdXNlIGFuZCBwYXJ0aWNpcGF0ZSBpbiBHcm91cHMuIFRoZXNlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgIEd1aWRlbGluZXMgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPixcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+LiBEZWZpbmVkIHRlcm1zIHVzZWQgYnV0IG5vdCBkZWZpbmVkIGhlcmVpbiBzaGFsbCBoYXZlIHRoZSBtZWFuaW5nXG4gICAgICAgICAgICAgICAgICAgIGFzY3JpYmVkIHRvIHRoZW0gaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiMVwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBpcyBhIEdyb3VwP1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkEgR3JvdXAgaXMgYSBzZXQgb2YgUmVnaXN0ZXJlZCBVc2VyczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIEdyb3VwIGNhbiBiZSBjcmVhdGVkIGJ5IGEgR3JvdXAgQWRtaW4gYW5kIGNvbXByaXNlcyBHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1iZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwcyBhcmUgb25seSB2aXNpYmxlIHRvIHRoZSBHcm91cCBBZG1pbiB3aG8gaGFzIGNyZWF0ZWQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIGFuZCB0aGUgR3JvdXAgTWVtYmVycyBhc3NpZ25lZCB0byB0aGUgR3JvdXAuIEdyb3VwcyBhcmUgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEFkbWlucyBjYW4gYXNzaWduIGFjdGl2aXRpZXMgb24gRElLU0hBIHRvIHRoZSBHcm91cCBNZW1iZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIG9uIHRoZSBHcm91cCkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgICAgICA8L2g0PjxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hvIGlzIGEgR3JvdXAgQWRtaW4/PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBBIFJlZ2lzdGVyZWQgVXNlciB3aG8gaGFzIGNyZWF0ZWQgYSBHcm91cCBvciBoYXMgYmVlbiBhc3NpZ25lZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgYSBHcm91cCBBZG1pbiBieSBhbm90aGVyIEdyb3VwIEFkbWluXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hvIGlzIGEgR3JvdXAgTWVtYmVyPzwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgQSBSZWdpc3RlcmVkIFVzZXIgd2hvIGhhcyBiZWVuIGFkZGVkIHRvIEdyb3VwIGFzIGEgR3JvdXAgTWVtYmVyIGJ5IGFcbiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEFkbWluLlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGNhbiBhIEdyb3VwIEFkbWluIGRvIG9uIERJS1NIQT88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DcmVhdGUgYSBHcm91cDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkIC8gUmVtb3ZlIEdyb3VwIE1lbWJlcnM8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk1hcmsgYW5vdGhlciBHcm91cCBNZW1iZXIgYXMgYSBHcm91cCBBZG1pbjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+Vmlldywgc2VhcmNoIGFuZCBzdWdnZXN0IGFjdGl2aXRpZXMgb24gRElLU0hBIHRvIHRoZSBHcm91cDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyB0aGUgcHJvZ3Jlc3Mgb2YgaW5kaXZpZHVhbCBHcm91cCBNZW1iZXJzIGluIHJlbGF0aW9uIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllcyBvZiB0aGUgR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbXVuaWNhdGUgd2l0aCB0aGUgR3JvdXAgTWVtYmVycyAoYXMgYSBHcm91cCBhbmQgaW5kaXZpZHVhbGx5KVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5EZWxldGUgdGhlIEdyb3VwPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBSZWdpc3RlcmVkIFVzZXIgZGF0YSBkb2VzIHRoZSBHcm91cCBBZG1pbiBoYXZlIGFjY2VzcyB0bz88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5OYW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmVzcyBhbmQgbWlsZXN0b25lcyBhY2hpZXZlZCBieSBHcm91cCBNZW1iZXJzIGluIHJlbGF0aW9uIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFjdGl2aXRpZXMgb2YgdGhlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGFyZSB0aGUgcmVzcG9uc2liaWxpdGllcyBvZiB0aGUgR3JvdXAgQWRtaW4/PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgYWN0aXZpdGllcyBvZiB0aGUgR3JvdXAgYXJlIGluIGxpbmUgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4sIGFuZCBhY2NvcmRpbmdseSBtZWV0IHRoZSBBY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyB1c2UgdGhlIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnMgb25seSBmb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZXMgb2YgdHJhY2tpbmcgdGhlIHByb2dyZXNzIG9mIEdyb3VwIE1lbWJlcnMsIGFuZCBmb3Igbm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciBwdXJwb3NlLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCBhbnkgY29tbXVuaWNhdGlvbiB3aXRoIEdyb3VwIE1lbWJlcnMgaXMgcmVsZXZhbnQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHVycG9zZSBvZiB0aGUgR3JvdXAgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlZnJhaW4gZnJvbSB1c2luZyB0aGUgR3JvdXAgZm9yIGFueSBvZiB0aGUgUHJvaGliaXRlZCBVc2VzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBjYW4gYSBHcm91cCBNZW1iZXIgZG8gb25jZSBhc3NpZ25lZCB0byBhIEdyb3VwPzwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcsIHBhcnRpY2lwYXRlIGFuZCBjb21tdW5pY2F0ZSBpbiByZWxhdGlvbiB0byB0aGUgYWN0aXZpdGllcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBHcm91cCBvbiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyB0aGVpciBvd24gcHJvZ3Jlc3MgaW4gcmVsYXRpb24gdG8gdGhlIGFjdGl2aXRpZXMgb2YgdGhlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlZpZXcgYSBsaXN0IG9mIG90aGVyIEdyb3VwIE1lbWJlcnM8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk9wdCBvdXQgb2YgYW55IEdyb3VwPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBhcmUgdGhlIHJlc3BvbnNpYmlsaXRpZXMgb2YgdGhlIEdyb3VwIE1lbWJlcj88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCBhbnkgY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIEdyb3VwIE1lbWJlcnMgb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgQWRtaW4gaXMgcmVsZXZhbnQgdG8gdGhlIHB1cnBvc2Ugb2YgdGhlIEdyb3VwIGFuZCBtZWV0IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcHJvcHJpYXRlbmVzcyBzdGFuZGFyZHMgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlZnJhaW4gZnJvbSB1c2luZyB0aGUgR3JvdXAgZm9yIGFueSBvZiB0aGUgUHJvaGliaXRlZCBVc2VzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgIDwvb2w+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgQ29udGVudCBQb2xpY3kgb2YtLT5cbjwhLS0gICAgICAgICAgICBESUtTSEE8L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHVsbC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvdXJzZS1ndWlkZWxpbmVzLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb3Vyc2VHdWlkZWxpbmVzXCI+UmVhZCBDb3Vyc2UgR3VpZGVsaW5lcyBvZiBESUtTSEEgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPjwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgR3JvdXAgR3VpZGVsaW5lcyBlbmQgaGVyZS0tPlxuXG4gICAgICAgIDwhLS0gICAgQ291cnNlIEd1aWRlbGluZXMgc3RhcnQgaGVyZS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudFwiIHN1aVRhYkNvbnRlbnQ9XCI1XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiY291cnNlR3VpZGVsaW5lc1wiICBhcmlhLWxhYmVsbGVkYnk9XCJjb3Vyc2UtZ3VpZGVsaW5lcy10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5ESUtTSEEgQ291cnNlIFRlcm1zPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiAoIExhc3QgdXBkYXRlZCBvbiA8Yj4yOC0wNC0yMDIxPC9iPiApPC9lbT48L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBUaGVzZSBDb3Vyc2UgVGVybXMgc3BlY2lmeSB0aGUgcmlnaHRzIGFuZCByZXNwb25zaWJpbGl0aWVzIG9mIFJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgVXNlcnMgd2hvIGNob29zZSB0byBqb2luIGEgY291cnNlIG9uIERJS1NIQSBhbmQgQWRtaW5pc3RyYXRvcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgY291cnNlcyBvbiBESUtTSEEuIEFkbWluaXN0cmF0b3JzIG9mIGEgY291cnNlIGFyZSBSZWdpc3RlcmVkIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcmlzZWQgYnkgSW5zdGl0dXRpb25hbCBVc2VycyB0byBvZmZlciBjb3Vyc2VzIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Gb3IgUmVnaXN0ZXJlZCBVc2VycyA8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiMVwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QSBSZWdpc3RlcmVkIFVzZXIgdGhhdCBjaG9vc2VzIHRvIGpvaW4gYSBjb3Vyc2Ugb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW46PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFjY2VzcyB0aGUgY291cnNlIGFuZCBpdHMgQ29udGVudDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+VmlldyB0aGVpciBvd24gcHJvZ3Jlc3M8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyBhbmQgZG93bmxvYWQgYW55IGNlcnRpZmljYXRlcyByZWNlaXZlZCBvbiBhY2hpZXZpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxlc3RvbmVzIGluIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+T3B0IG91dCBvZiB0aGUgY291cnNlIGF0IGFueSB0aW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aWRlIGNvbnNlbnQgZm9yIHNoYXJpbmcgcGVyc29uYWwgaW5mb3JtYXRpb24gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIG9mIGEgY291cnNlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldm9rZSBjb25zZW50IGZvciBzaGFyaW5nIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBvZiBhIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkFjY2VzcyBhbmQgUmV2b2NhdGlvbiBvZiBhY2Nlc3MgdG8gZGF0YSBhbmQgaW5mb3JtYXRpb24gb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcjpcbiAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IGNob29zaW5nIHRvIGpvaW4gYSBjb3Vyc2UsIHRoZSBSZWdpc3RlcmVkIFVzZXIgYWdyZWVzIHRvIGdpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZSBhY2Nlc3MgdG8gdGhlaXIgTmFtZSwgU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdHJpY3QsIHByb2dyZXNzIGluIHRoZSBjb3Vyc2UgYW5kIG1pbGVzdG9uZXMgYWNoaWV2ZWQgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mIGFuYWx5c2luZyB1c2FnZSBvZiBDb250ZW50IHRvIGltcHJvdmUgY29udGVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciBvZmZlcmluZ3MuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwb24gam9pbmluZyBhIGNvdXJzZSwgYSBSZWdpc3RlcmVkIFVzZXIgaGFzIHRoZSBvcHRpb24gdG8gcHJvdmlkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIGV4cGxpY2l0IGNvbnNlbnQgdG8gZ2l2ZSB0aGUgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIG5hbWVseTogKGkpIFVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCAoVGVhY2hlciBJRCkgKGlpKSBCbG9jayAoaWlpKSBTY2hvb2wgVS1ESVNFIGNvZGUgLyBPcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCBvciBudW1iZXIgKGl2KSBTY2hvb2wvT3JnYW5pc2F0aW9uIG5hbWUgKHYpIG1vYmlsZSBudW1iZXIgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpKSBlbWFpbCBhZGRyZXNzLiBUaGlzIGNvbnNlbnQgY2FuIGJlIGdpdmVuIGVpdGhlciB3aGVuIHByb21wdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgYSBwb3AtdXAgb3IgYnkgY2hhbmdpbmcgdGhlaXIgZGF0YSBzaGFyaW5nIHNldHRpbmdzLiBUaGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjYW4gb25seSBiZSB1c2VkIGJ5IHRoZSBBZG1pbmlzdHJhdG9ycyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb3Vyc2UgZm9yIHRoZSBwdXJwb3NlIG9mOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dHJhY2tpbmcgcHJvZ3Jlc3Mgb2YgdGhlIFJlZ2lzdGVyZWQgVXNlciA7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaW5nIHVzYWdlIHRvIGltcHJvdmUgdGhlIGNvdXJzZSwgQ29udGVudCBhbmQgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyaW5ncztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnZhbGlkYXRpbmcgY29udGFjdCBkZXRhaWxzOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5pc3N1aW5nIGNlcnRpZmljYXRlczsgYW5kPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdGluZyBSZWdpc3RlcmVkIFVzZXJzIHRvIHNlbmQgcmVsZXZhbnQgaW5mb3JtYXRpb24gb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZWsgZmVlZGJhY2suXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBjYW4gcmV2b2tlIHRoZWlyIGNvbnNlbnQgdG8gc2hhcmluZyBhZGRpdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYXQgYW55IHRpbWUgYnkgY2hhbmdpbmcgdGhlaXIgZGF0YSBzaGFyaW5nIHNldHRpbmdzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UmVzcG9uc2liaWxpdGllcyBvZiBSZWdpc3RlcmVkIFVzZXJzOiA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgYW55IG9mIHRoZWlyIGNvbW11bmljYXRpb24gaXMgcmVsZXZhbnQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZSBvZiB0aGUgY291cnNlIGFuZCBtZWV0IHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIHVzZSBvZiBjb3Vyc2VzIGRvZXMgbm90IHZpb2xhdGUgYW55IG9mIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZSA8c3Ryb25nPlRlcm1zIG9mIFVzZTwvc3Ryb25nPi5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Gb3IgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZTwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5BZG1pbmlzdHJhdG9ycyBvZiBhIGNvdXJzZSBvbiBESUtTSEEgY2FuOiA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q3JlYXRlLCByZXZpZXcgb3IgcHVibGlzaCBjb3Vyc2VzIG9uIERJS1NIQTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIGNvdXJzZXMgY3JlYXRlZCBieSBvciBhc3NpZ25lZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW0sIHdoaWNoIGNvbnRhaW46XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsIFN0YXRlLCBEaXN0cmljdCBhbmQgcHJvZ3Jlc3MgZGF0YSBvZiB0aGUgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgd2hvIGhhdmUgY2hvc2VuIHRvIGpvaW4gdGhlIGNvdXJzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJRCAoVGVhY2hlciBJRCksIEJsb2NrLCBTY2hvb2wgVS1ESVNFIGNvZGUgLyBPcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEIG9yIG51bWJlciwgU2Nob29sL09yZ2FuaXNhdGlvbiBuYW1lLCBtb2JpbGUgbnVtYmVyLCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsIGFkZHJlc3Mgb2YgUmVnaXN0ZXJlZCBVc2Vycywgb25seSBpZiB0aGUgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgaGF2ZSBnaXZlbiB0aGVpciBleHBsaWNpdCBjb25zZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3Vyc2UgdXNhZ2UgZGF0YSBzdWNoIGFzIHByb2dyZXNzIGFuZCBjb21wbGV0aW9uIGRldGFpbHMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciByZWxhdGVkIG1hdHRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IGFuZCB1c2Ugc3VjaCBkYXRhIGFuZCBpbmZvcm1hdGlvbi4gUmVwb3J0cyB3aXRoIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIG9ubHkgZm9yIGEgbGltaXRlZCBwZXJpb2RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aW1lIGFuZCB3aWxsIGV4cGlyZSBpbiAxNSBkYXlzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgdGhlIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBSZWdpc3RlcmVkIFVzZXJzIG9ubHkgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dHJhY2tpbmcgdGhlaXIgcHJvZ3Jlc3M7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaW5nIHVzYWdlIG9mIENvbnRlbnQgdG8gaW1wcm92ZSBjb250ZW50IGFuZCBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2ZmZXJpbmdzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dmFsaWRhdGluZyBjb250YWN0IGRldGFpbHM7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPmlzc3VpbmcgY2VydGlmaWNhdGVzOyBhbmQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0aW5nIFJlZ2lzdGVyZWQgVXNlcnMgdG8gc2VuZCByZWxldmFudCBpbmZvcm1hdGlvbiBvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlayBmZWVkYmFjay5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYW5kIGlzc3VlIGNlcnRpZmljYXRlcyBmb3IgUmVnaXN0ZXJlZCBVc2VycyB3aG8gaGF2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjaGlldmVkIG1pbGVzdG9uZXMgaW4gdGhlIGNvdXJzZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJlc3BvbnNpYmlsaXRpZXMgb2YgQWRtaW5pc3RyYXRvcnMgb2YgYSBjb3Vyc2U6IDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCB0aGUgY291cnNlcyBjcmVhdGVkLCByZXZpZXdlZCBvciBwdWJsaXNoZWQgYnkgdGhlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBpbiBsaW5lIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5IG9mIERJS1NIQTwvYj48L2E+LCBhbmQgYWNjb3JkaW5nbHkgbWVldCB0aGUgQWNjdXJhY3kgYW5kIEFwcHJvcHJpYXRlbmVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcmVzcGVjdCB0aGUgcHJpdmFjeSBhbmQgZGF0YSBwcm90ZWN0aW9uIHJpZ2h0cyBvZiBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSkgc2hhcmVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnMgaXMgbGltaXRlZCBzb2xlbHkgdG8gdGhlIHB1cnBvc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudGlvbmVkIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGtub3cgdGhhdCBhbnkgdXNlIG9mIGRhdGEgZm9yIHB1cnBvc2VzIG91dHNpZGUgb2YgdGhlIHByb3BlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBzaGFsbCBiZSBjb25zaWRlcmVkIHZpb2xhdGlvbiBvZiB0aGUgdGVybXMgb2YgdGhlIHBvbGljaWVzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGFuZCBsaWFibGUgZm9yIHN1Y2ggYWN0aW9ucyBhbmQgZm9yIGFueSBsb3NzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZGFtYWdlIGFyaXNpbmcgZnJvbSBmYWlsdXJlIHRvIGNvbXBseSB3aXRoIHRoaXMgb2JsaWdhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgdGhlaXIgY29tbXVuaWNhdGlvbiAoaWYgYW55KSB3aXRoIFJlZ2lzdGVyZWQgVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlIG9mIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbWVldHMgdGhlIEFwcHJvcHJpYXRlbmVzcyBzdGFuZGFyZHMgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uIFRoZSBlbWFpbCBhZGRyZXNzIGFuZCBwaG9uZSBudW1iZXIgb2YgUmVnaXN0ZXJlZCBVc2VycyBzaGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkgYmUgdXNlZCB0byBzaGFyZSBpbmZvcm1hdGlvbiBpbiBjb25uZWN0aW9uIHdpdGggdGhlIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBzaGFsbCBub3QgdW5kZXIgYW55IGNpcmN1bXN0YW5jZSBiZSB1c2VkIGZvciBhbnkgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXR0ZXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCB0aGVpciBjb3Vyc2VzIGFyZSBub3QgdXNlZCBmb3IgYW55IG9mIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlIG9mIERJS1NIQTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxlbT5UaGVzZSBDb3Vyc2UgR3VpZGVsaW5lcyBzaG91bGQgYmUgcmVhZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBLCBpbmNsdWRpbmcgdGhlIDwvZW0+PHN0cm9uZz48ZW0+PGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPiwgPC9lbT48c3Ryb25nPjxlbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3k8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPiBhbmQgPC9lbT48c3Ryb25nPjxlbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPi4gRGVmaW5lZCB0ZXJtcyB1c2VkIGJ1dCBub3QgZGVmaW5lZCBoZXJlaW4gc2hhbGwgaGF2ZSB0aGUgbWVhbmluZ1xuICAgICAgICAgICAgICAgICAgICBhc2NyaWJlZCB0byB0aGVtIGluIHRoZSA8L2VtPjxzdHJvbmc+PGVtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT48L2VtPjwvc3Ryb25nPjxlbT4uIDwvZW0+XG4gICAgICAgICAgICAgICAgPC9wPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImdyb3VwLWd1aWRlbGluZXMtdGFiXCIgdGFicGFuZXRvc2hvdz1cImdyb3VwR3VpZGVsaW5lc1wiPi0tPlxuPCEtLSAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tbGVmdFwiPjwvaT4gUmVhZCBHcm91cCBHdWlkZWxpbmVzIG9mIERJS1NIQS0tPlxuPCEtLSAgICAgICAgICA8L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHVsbC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImFkbWluaXN0cmF0b3ItZ3VpZGVsaW5lcy10YWJcIiB0YWJwYW5ldG9zaG93PVwiYWRtaW5pc3RyYXRvckd1aWRlbGluZXNcIj4tLT5cbjwhLS0gICAgICAgICAgICBSZWFkIEFkbWluaXN0cmF0b3IgR3VpZGVsaW5lcyBvZiBESUtTSEEtLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+LS0+XG48IS0tICAgICAgICAgIDwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgQ291cnNlIEd1aWRlbGluZXMgZW5kIGhlcmUtLT5cblxuICAgICAgICA8IS0tICAgIEFkbWluaXN0cmF0b3IgR3VpZGVsaW5lcyBzdGFydCBoZXJlLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50XCIgc3VpVGFiQ29udGVudD1cIjZcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJhZG1pbmlzdHJhdG9yR3VpZGVsaW5lc1wiIGFyaWEtbGFiZWxsZWRieT1cImFkbWluaXN0cmF0b3ItZ3VpZGVsaW5lcy10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5BZG1pbmlzdHJhdG9yIEd1aWRlbGluZXM8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlc2UgQWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIHNwZWNpZnkgdGhlIHJpZ2h0cyBhbmQgcmVzcG9uc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBvZiBSZWdpc3RlcmVkIFVzZXJzIHdobyBhcmUgQWRtaW5pc3RyYXRvcnMgb24gRElLU0hBLiBBZG1pbmlzdHJhdG9ycyBhcmVcbiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhdXRob3Jpc2VkIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMgdG8gYmUgYWRtaW5pc3RyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBIG9uIHRoZWlyIGJlaGFsZi5cbiAgICAgICAgICAgICAgICA8L3A+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+QWRtaW5pc3RyYXRvcnMgb24gRElLU0hBIGNhbjo8L2g0PlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIEFjY2VzcyB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnM6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPk5hbWU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+U3RhdGU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+RGlzdHJpY3Q8L2VtPjwvc3Ryb25nPiBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPmNvdXJzZSBwcm9ncmVzcyBkYXRhPC9lbT48L3N0cm9uZz4gb2YgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHdobyBoYXZlIGNob3NlbiB0byBqb2luIGNvdXJzZXMgb2ZmZXJlZCBieVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRoZSBJbnN0aXR1dGlvbmFsIFVzZXIgdGhhdCB0aGUgQWRtaW5pc3RyYXRvciBiZWxvbmdzIHRvLFxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxlbT5Vc2VyIElEPC9lbT48L3N0cm9uZz4gKDE2IGRpZ2l0IHJhbmRvbWlzZWQgc3lzdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZWQgaWRlbnRpZmllciBmb3IgZXZlcnkgUmVnaXN0ZXJlZCBVc2VyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPmV4dGVybmFsIElEPC9lbT48L3N0cm9uZz4gKElEIGVudGVyZWQgYnkgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIgd2hlbiB0aGV5IGNob29zZSB0byBzdWJtaXQgYWRkaXRpb25hbCBkZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZWlyIHByb2ZpbGUpLCA8c3Ryb25nPjxlbT5CbG9jazwvZW0+PC9zdHJvbmc+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48ZW0+U2Nob29sIFUtRElTRSBjb2RlIC8gT3JnYW5pc2F0aW9uIElEIG9yIG51bWJlcjwvZW0+PC9zdHJvbmc+LCA8c3Ryb25nPjxlbT5TY2hvb2wvT3JnYW5pc2F0aW9uIG5hbWU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+bW9iaWxlIG51bWJlcihzKTwvZW0+PC9zdHJvbmc+LCBhbmQgPHN0cm9uZz48ZW0+ZW1haWwgYWRkcmVzcyhzKTwvZW0+PC9zdHJvbmc+IGxpbmtlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHByb2ZpbGUgb2YgdGhlIFJlZ2lzdGVyZWQgVXNlcnMgb3IgYWRkaXRpb25hbGx5IHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgUmVnaXN0ZXJlZCBVc2VyLCA8c3Ryb25nPm9ubHkgaWY8L3N0cm9uZz4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGhhdmUgZ2l2ZW4gdGhlaXIgZXhwbGljaXQgY29uc2VudCB0byBzaGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlc2UgZGV0YWlscyB3aXRoIHRoZSBBZG1pbmlzdHJhdG9ycy4gVGhpcyBBZG1pbmlzdHJhdG9yIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlbG9uZyB0byB0aGUgc2FtZSBJbnN0aXR1dGlvbmFsIFVzZXIgdGhhdCB0aGUgUmVnaXN0ZXJlZCBVc2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWxvbmdzIHRvLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgZGF0YSBhbmQgaW5mb3JtYXRpb24gaW4gcmVsYXRpb24gdG8gdXNhZ2Ugb2YgRElLU0hBIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAgICAgQ29udGVudCwgd2hpY2ggaW5jbHVkZXM6IDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHBsYXlzIChpLmUuIGFueSBDb250ZW50IHBsYXllZCAvIHZpZXdlZCAvIHVzZWQgZm9yIGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFzdCAxMCBzZWNvbmRzKVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+Q29udGVudCBwbGF5IHRpbWUgKGluIG1pbnV0ZXMpPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUVIgY29kZSBzY2FucyAoaW5jbHVkaW5nIHVzaW5nIHRoZSBESUFMIENvZGUgZGlyZWN0bHkpIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkIHNjYW5zXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5Vc2VyIHJhdGluZ3MgYW5kIGZlZWRiYWNrIGZvciBDb250ZW50PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPk51bWJlciBhbmQgdHlwZXMgb2YgdW5pcXVlIGRldmljZXM8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+VHJhbnNhY3Rpb25zIHBlciBzZWNvbmQgb24gRElLU0hBPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0cyB0aGF0IGNvbXBpbGUgdGhlIGFib3ZlIG1lbnRpb25lZCBkYXRhIGFuZCBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgYnkgYm9hcmQsIG1lZGl1bSwgZ3JhZGUsIHN1YmplY3QsIGxvY2F0aW9uLCBjcmVhdG9yLCBkZXZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsIG51bWJlciBvZiB1bmlxdWUgZGV2aWNlcywgZW5lcmdpc2VkIHRleHRib29rIHNvIGFzIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgQWRtaW5pc3RyYXRvcnMgdG8gbGVhcm4gYWJvdXQgdXNhZ2Ugb2YgRElLU0hBIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW4gZGlmZmVyZW50IGNvbnRleHRzXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgdGhhdCBjb21waWxlIHRoZSBDb250ZW50IHByb3ZpZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIHRvb2xzIGxpa2Ugc3VydmV5cywgb2JzZXJ2YXRpb25zLCBhbmQgcHJvamVjdHNcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz4gVXNlIHRoZSBkYXRhIGFuZCBpbmZvcm1hdGlvbiBvbmx5IGZvciB0aGUgcHVycG9zZXMgb2Y6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEdhaW5pbmcgaW5zaWdodHMgdGhyb3VnaCBhbmFseXNpcyBvZiBkYXRhIHRvIGltcHJvdmUgcXVhbGl0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZW5lc3MsIHJlbGV2YW5jZSwgdXNhZ2Ugb2YgQ29udGVudCwgY291cnNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRib29rcywgcHJvZ3JhbXMgYW5kIG90aGVyIG9mZmVyaW5ncyBvdmVyIHRpbWUgYmFzZWQgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgdXNhZ2UsIGludGVyZXN0LCB1c2VyIGZlZWRiYWNrLCBwb3B1bGFyaXR5LCBjb21wbGV0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICByYXRlcywgaWRlbnRpZmllZCBtaXNjb25jZXB0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQXNzZXNzaW5nLCBldmFsdWF0aW5nLCB2YWxpZGF0aW5nIENvbnRlbnQgc3VibWl0dGVkIC8gcG9zdGVkIC9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkIC8gb3RoZXJ3aXNlIHByb3ZpZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkaW5nIGRldGFpbHMgc3VibWl0dGVkIGFuZCBleHByZXNzbHkgc2hhcmVkIGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG9ubHkgZm9yIHRoZSBwdXJwb3NlcyBtZW50aW9uZWQgaGVyZWluIGFuZCBpblxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHRoZSBwb2xpY2llcyBvZiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICBHcmFudCBvciByZXZva2UgcmlnaHRzIHRvIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaFxuICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSB0byBSZWdpc3RlcmVkIFVzZXJzLlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuXG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+UmVzcG9uc2liaWxpdGllcyBvZiBBZG1pbmlzdHJhdG9yczogPC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgY3JlYXRlZCwgcmV2aWV3ZWQgb3IgcHVibGlzaGVkIGJ5IHRoZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBpbiBsaW5lIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4sIGFuZCBhY2NvcmRpbmdseSBtZWV0IHRoZSBBY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZHM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlc3BlY3QgdGhlIHByaXZhY3kgYW5kIGRhdGEgcHJvdGVjdGlvbiByaWdodHMgb2YgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhKSBzaGFyZWQgYnkgUmVnaXN0ZXJlZCBVc2VycyBvciBvYnRhaW5lZCBmcm9tIERJS1NIQSBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlZCBzb2xlbHkgdG8gdGhlIHB1cnBvc2VzIG1lbnRpb25lZCBoZXJlIGFuZCBpcyBub3QgdXNlZCBmb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2FsZSBvciBvdGhlciBjb21tZXJjaWFsIHB1cnBvc2VzOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkdmVydGlzaW5nIG9yIG1hcmtldGluZzs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvbmUgY2FsbHMgb3Igb3RoZXIgZm9ybXMgb2YgdW5zb2xpY2l0ZWQgY29tbXVuaWNhdGlvbiB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCByZWxhdGVkIHRvIHVzYWdlIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGRpbmcgYSBwZXJzb25hbCBwcm9maWxlLCBvdGhlciB0aGFuIGZvciBlZHVjYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcyBvbiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmFtaW5nLCBoYXJhc3NpbmcsIGFidXNpbmcsIHRocmVhdGVuaW5nIG9yIGRlZnJhdWRpbmcgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltcGVyc29uYXRpbmcgYW55IHBlcnNvbiBvciBlbnRpdHksIGZhbHNlbHkgY2xhaW1pbmcgYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWxpYXRpb24gd2l0aCBhbnkgcGVyc29uIG9yIGVudGl0eSwgb3IgYWNjZXNzaW5nIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50cyB3aXRob3V0IHBlcm1pc3Npb24sIG9yIHBlcmZvcm0gYW55IG90aGVyIGZyYXVkdWxlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRpbmcganVuayBtYWlsIG9yIHNwYW0sIGluZm9ybWF0aW9uYWwgYW5ub3VuY2VtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcml0eSByZXF1ZXN0cywgYW5kIHBldGl0aW9ucyBmb3Igc2lnbmF0dXJlcyBldGMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueSBvZiB0aGUgUHJvaGliaXRlZCBQdXJwb3NlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55IHB1cnBvc2UgdGhhdCBpcyBub3QgZGlzY2xvc2VkIGluIHRoaXMgcG9saWN5IG9yIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8ga25vdyB0aGF0IGFueSB1c2Ugb2YgZGF0YSBmb3IgcHVycG9zZXMgb3V0c2lkZSBvZiB0aGUgcHJvcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Ugc2hhbGwgYmUgY29uc2lkZXJlZCB2aW9sYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoZSBwb2xpY2llcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgcmVzcG9uc2libGUgYW5kIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIG9ibGlnYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIGNvbW11bmljYXRpb24gKGlmIGFueSkgd2l0aCBSZWdpc3RlcmVkIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBpcyBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlcyBzcGVjaWZpZWQgaGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldCBvdXQgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3k8L2I+PC9hPi4gVGhlIGVtYWlsIGFkZHJlc3MgYW5kIHBob25lIG51bWJlciBvZiBSZWdpc3RlcmVkIFVzZXJzIHNoYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGJlIHVzZWQgdG8gc2hhcmUgaW5mb3JtYXRpb24gaW4gY29ubmVjdGlvbiB3aXRoIHVzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCBoZXJlIGFuZCBzaGFsbCBub3QgdW5kZXIgYW55IGNpcmN1bXN0YW5jZSBiZSB1c2VkIGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgYW55IG90aGVyIG1hdHRlcnMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxlbT5UaGVzZSBBZG1pbmlzdHJhdG9yIEd1aWRlbGluZXMgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSwgaW5jbHVkaW5nIHRoZSA8L2VtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+PGVtPlRlcm1zIG9mIFVzZTwvZW0+PC9iPjwvYT48ZW0+LCA8L2VtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48Yj48ZW0+Q29udGVudCBQb2xpY3k8L2VtPjwvYj48L2E+PGVtPiBhbmQgPC9lbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+PGVtPlByaXZhY3kgUG9saWN5PC9lbT48L2I+PC9hPjxlbT4uIERlZmluZWQgdGVybXMgdXNlZCBidXQgbm90IGRlZmluZWQgaGVyZWluIHNoYWxsIGhhdmUgdGhlIG1lYW5pbmdcbiAgICAgICAgICAgICAgICAgICAgYXNjcmliZWQgdG8gdGhlbSBpbiB0aGUgPC9lbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPjxlbT5UZXJtcyBvZiBVc2U8L2VtPjwvYj48L2E+PGVtPi4gPC9lbT5cbiAgICAgICAgICAgICAgICA8L3A+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY291cnNlLWd1aWRlbGluZXMtdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvdXJzZUd1aWRlbGluZXNcIj4tLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgQ291cnNlIEd1aWRlbGluZXMgb2YgRElLU0hBLS0+XG48IS0tICAgICAgICAgIDwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgQWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIGVuZCBoZXJlLS0+XG4gICAgPC9zdWktdGFic2V0PlxuPC9kaXY+XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs new file mode 100644 index 00000000000..e4d1e953c2e --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs @@ -0,0 +1,221 @@ +import { Component, EventEmitter, Output } from '@angular/core'; +import { Validators } from '@angular/forms'; +import * as i0 from "@angular/core"; +import * as i1 from "../../services/uci.service"; +import * as i2 from "@angular/forms"; +import * as i3 from "../../services/uci-graph-ql.service"; +import * as i4 from "@angular/common"; +import * as i5 from "@project-sunbird/ng2-semantic-ui"; +export class UserSegmentAddComponent { + constructor(uciService, fb, uciGraphQlService) { + this.uciService = uciService; + this.fb = fb; + this.uciGraphQlService = uciGraphQlService; + this.cancel = new EventEmitter(); + this.add = new EventEmitter(); + this.userSegment = {}; + this.isLoaderShow = false; + this.districts = []; + this.blocks = []; + this.schools = []; + this.clusters = []; + this.roles = []; + this.boards = []; + this.grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]; + this.subjects = []; + this.state = 'Haryana'; + } + ngOnInit() { + this.getUciDistrict(); + this.getUciRole(); + this.getUciBoard(); + this.userSegmentForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + district: [''], + block: [''], + cluster: [''], + school: [''], + role: [''], + board: [''], + grade: [''], + subject: [''] + }); + this.userSegmentForm.get('district').valueChanges.subscribe(item => { + if (item) { + this.userSegmentForm.get('block').patchValue(''); + this.blocks = []; + this.userSegmentForm.get('cluster').patchValue(''); + this.userSegmentForm.get('school').patchValue(''); + this.schools = []; + this.clusters = []; + this.getUciBlock(); + } + }); + this.userSegmentForm.get('block').valueChanges.subscribe(item => { + if (item) { + this.userSegmentForm.get('cluster').patchValue(''); + this.userSegmentForm.get('school').patchValue(''); + this.schools = []; + this.clusters = []; + this.getUciCluster(); + this.getUciSchoolDetails(); + } + }); + } + onCancel() { + this.cancel.emit(false); + } + onAdd() { + if (this.userSegmentForm.invalid) { + return; + } + this.isLoaderShow = true; + const formValue = this.userSegmentForm.value; + const locationData = []; + const blockData = []; + const districtData = []; + for (const school of this.schools) { + if (formValue.school.indexOf(school.school) !== -1) { + locationData.push(school); + if (blockData.indexOf(school.block) === -1) { + blockData.push(school.block); + districtData.push(school.district); + } + } + if (locationData.length === formValue.school) { + break; + } + } + if (blockData.length < formValue.block.length) { + for (const block of this.blocks) { + if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) { + locationData.push(block); + blockData.push(block.block); + districtData.push(block.district); + } + if (blockData.length === formValue.block) { + break; + } + } + } + if (districtData.length < formValue.district.length) { + for (const district of this.districts) { + if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) { + locationData.push(district); + } + } + } + const param = { + data: { + userLocation: locationData, + roles: formValue.role, + userType: { + type: 'student' + }, + framework: { + board: formValue.board, + gradeLevel: formValue.grade + } + } + }; + this.uciService.userSegmentQueryBuilder(param).subscribe(response => { + if (response) { + const items = { + ...response, + name: formValue.name, + description: formValue.description + }; + this.uciService.createUserSegment({ data: items }).subscribe((data) => { + this.isLoaderShow = false; + this.afterAdd(data.inserted); + }, err => { + this.isLoaderShow = false; + }); + } + }, error => { + this.isLoaderShow = false; + }); + } + afterAdd(data) { + this.add.emit(data); + } + getUciState() { + this.uciGraphQlService.getState().subscribe(res => { + }); + } + getUciDistrict() { + const params = { + state: this.state + }; + this.uciGraphQlService.getDistrict(params).subscribe((res) => { + this.districts = []; + if (res && res.data && res.data.organisation && res.data.organisation.length) { + this.districts = res.data.organisation; + } + }); + } + getUciBlock() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district + }; + this.uciGraphQlService.getBlock(params).subscribe((res) => { + this.blocks = []; + if (res && res.data && res.data.blocks && res.data.blocks.length) { + this.blocks = res.data.blocks; + } + }); + } + getUciCluster() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district, block: formVal.block + }; + this.uciGraphQlService.getClusters(params).subscribe((res) => { + this.clusters = []; + if (res && res.data && res.data.clusters && res.data.clusters.length) { + if (res.data.clusters[0].cluster) { + this.clusters = res.data.clusters; + } + } + }); + } + getUciSchoolDetails() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district, block: formVal.block + }; + this.uciGraphQlService.getSchoolDetails(params).subscribe((res) => { + this.schools = []; + if (res && res.data && res.data.schools && res.data.schools.length) { + this.schools = res.data.schools; + } + }); + } + getUciRole() { + this.uciGraphQlService.getRole().subscribe((res) => { + if (res && res.data && res.data.role && res.data.role.length) { + this.roles = res.data.role; + } + }); + } + getUciBoard() { + this.uciGraphQlService.getBoards().subscribe((res) => { + if (res && res.data && res.data.board && res.data.board.length) { + this.boards = res.data.board; + } + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, deps: [{ token: i1.UciService }, { token: i2.UntypedFormBuilder }, { token: i3.UciGraphQlService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "component", type: i5.SuiSelectOption, selector: "sui-select-option", inputs: ["value"], outputs: ["onSelected"] }, { kind: "component", type: i5.SuiMultiSelect, selector: "sui-multi-select", inputs: ["hasLabels", "placeholder", "maxSelected", "zeroSelectionText", "defaultSelectionText"], outputs: ["selectedOptionsChange"] }, { kind: "directive", type: i5.SuiMultiSelectValueAccessor, selector: "sui-multi-select" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-user-segment-add', template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"] }] + }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.UntypedFormBuilder }, { type: i3.UciGraphQlService }]; }, propDecorators: { cancel: [{ + type: Output + }], add: [{ + type: Output + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1zZWdtZW50LWFkZC91c2VyLXNlZ21lbnQtYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXNlZ21lbnQtYWRkL3VzZXItc2VnbWVudC1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RFLE9BQU8sRUFBdUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLHVCQUF1QjtJQWlCaEMsWUFBb0IsVUFBc0IsRUFDdEIsRUFBc0IsRUFDdEIsaUJBQW9DO1FBRnBDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCOUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxD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QUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6TlEsdUJBQXVCO21HQUF2Qix1QkFBdUIsdUdDVnBDLGk5TkE0SUE7OzRGRGxJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2tLQUt0QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQge1VjaUdyYXBoUWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2ktZ3JhcGgtcWwuc2VydmljZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi11c2VyLXNlZ21lbnQtYWRkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlZ21lbnRBZGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGZvcm1GaWVsZFByb3BlcnRpZXM6IEFycmF5PGFueT47XG4gICAgdXNlclNlZ21lbnQ6IGFueSA9IHt9O1xuICAgIGlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgIGRpc3RyaWN0cyA9IFtdO1xuICAgIGJsb2NrcyA9IFtdO1xuICAgIHNjaG9vbHMgPSBbXTtcbiAgICBjbHVzdGVycyA9IFtdO1xuICAgIHJvbGVzID0gW107XG4gICAgYm9hcmRzID0gW107XG4gICAgZ3JhZGUgPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDEyXTtcbiAgICBzdWJqZWN0cyA9IFtdO1xuICAgIHVzZXJTZWdtZW50Rm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBzdGF0ZSA9ICdIYXJ5YW5hJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB1Y2lHcmFwaFFsU2VydmljZTogVWNpR3JhcGhRbFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5nZXRVY2lEaXN0cmljdCgpO1xuICAgICAgICB0aGlzLmdldFVjaVJvbGUoKTtcbiAgICAgICAgdGhpcy5nZXRVY2lCb2FyZCgpO1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgZGlzdHJpY3Q6IFsnJ10sXG4gICAgICAgICAgICBibG9jazogWycnXSxcbiAgICAgICAgICAgIGNsdXN0ZXI6IFsnJ10sXG4gICAgICAgICAgICBzY2hvb2w6IFsnJ10sXG4gICAgICAgICAgICByb2xlOiBbJyddLFxuICAgICAgICAgICAgYm9hcmQ6IFsnJ10sXG4gICAgICAgICAgICBncmFkZTogWycnXSxcbiAgICAgICAgICAgIHN1YmplY3Q6IFsnJ11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51c2VyU2VnbWVudEZvcm0uZ2V0KCdkaXN0cmljdCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnYmxvY2snKS5wYXRjaFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnY2x1c3RlcicpLnBhdGNoVmFsdWUoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnc2Nob29sJykucGF0Y2hWYWx1ZSgnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hvb2xzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5jbHVzdGVycyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VWNpQmxvY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnYmxvY2snKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybS5nZXQoJ2NsdXN0ZXInKS5wYXRjaFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybS5nZXQoJ3NjaG9vbCcpLnBhdGNoVmFsdWUoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nob29scyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuY2x1c3RlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFVjaUNsdXN0ZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFVjaVNjaG9vbERldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uQWRkKCkge1xuICAgICAgICBpZiAodGhpcy51c2VyU2VnbWVudEZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy51c2VyU2VnbWVudEZvcm0udmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uRGF0YSA9IFtdO1xuICAgICAgICBjb25zdCBibG9ja0RhdGEgPSBbXTtcbiAgICAgICAgY29uc3QgZGlzdHJpY3REYXRhID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2Nob29sIG9mIHRoaXMuc2Nob29scykge1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZS5zY2hvb2wuaW5kZXhPZihzY2hvb2wuc2Nob29sKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbkRhdGEucHVzaChzY2hvb2wpO1xuICAgICAgICAgICAgICAgIGlmIChibG9ja0RhdGEuaW5kZXhPZihzY2hvb2wuYmxvY2spID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBibG9ja0RhdGEucHVzaChzY2hvb2wuYmxvY2spO1xuICAgICAgICAgICAgICAgICAgICBkaXN0cmljdERhdGEucHVzaChzY2hvb2wuZGlzdHJpY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsb2NhdGlvbkRhdGEubGVuZ3RoID09PSBmb3JtVmFsdWUuc2Nob29sKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrRGF0YS5sZW5ndGggPCBmb3JtVmFsdWUuYmxvY2subGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIHRoaXMuYmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZS5ibG9jay5pbmRleE9mKGJsb2NrLmJsb2NrKSAhPT0gLTEgJiYgYmxvY2tEYXRhLmluZGV4T2YoYmxvY2suYmxvY2spID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbkRhdGEucHVzaChibG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrRGF0YS5wdXNoKGJsb2NrLmJsb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3REYXRhLnB1c2goYmxvY2suZGlzdHJpY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYmxvY2tEYXRhLmxlbmd0aCA9PT0gZm9ybVZhbHVlLmJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlzdHJpY3REYXRhLmxlbmd0aCA8IGZvcm1WYWx1ZS5kaXN0cmljdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGlzdHJpY3Qgb2YgdGhpcy5kaXN0cmljdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybVZhbHVlLmRpc3RyaWN0LmluZGV4T2YoZGlzdHJpY3QuZGlzdHJpY3QpICE9PSAtMSAmJiBkaXN0cmljdERhdGEuaW5kZXhPZihkaXN0cmljdC5kaXN0cmljdCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uRGF0YS5wdXNoKGRpc3RyaWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYW0gPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXNlckxvY2F0aW9uOiBsb2NhdGlvbkRhdGEsXG4gICAgICAgICAgICAgICAgcm9sZXM6IGZvcm1WYWx1ZS5yb2xlLFxuICAgICAgICAgICAgICAgIHVzZXJUeXBlOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHVkZW50J1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnJhbWV3b3JrOiB7XG4gICAgICAgICAgICAgICAgICAgIGJvYXJkOiBmb3JtVmFsdWUuYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgIGdyYWRlTGV2ZWw6IGZvcm1WYWx1ZS5ncmFkZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnVjaVNlcnZpY2UudXNlclNlZ21lbnRRdWVyeUJ1aWxkZXIocGFyYW0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZvcm1WYWx1ZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVZhbHVlLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuY3JlYXRlVXNlclNlZ21lbnQoe2RhdGE6IGl0ZW1zfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlckFkZChkYXRhLmluc2VydGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZnRlckFkZChkYXRhKSB7XG4gICAgICAgIHRoaXMuYWRkLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpU3RhdGUoKSB7XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0U3RhdGUoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpRGlzdHJpY3QoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0RGlzdHJpY3QocGFyYW1zKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc3RyaWN0cyA9IFtdO1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5vcmdhbmlzYXRpb24gJiYgcmVzLmRhdGEub3JnYW5pc2F0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzdHJpY3RzID0gcmVzLmRhdGEub3JnYW5pc2F0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lCbG9jaygpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbCA9IHRoaXMudXNlclNlZ21lbnRGb3JtLnZhbHVlO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSwgZGlzdHJpY3Q6IGZvcm1WYWwuZGlzdHJpY3RcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51Y2lHcmFwaFFsU2VydmljZS5nZXRCbG9jayhwYXJhbXMpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tzID0gW107XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLmJsb2NrcyAmJiByZXMuZGF0YS5ibG9ja3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MgPSByZXMuZGF0YS5ibG9ja3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFVjaUNsdXN0ZXIoKSB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWwgPSB0aGlzLnVzZXJTZWdtZW50Rm9ybS52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgc3RhdGU6IHRoaXMuc3RhdGUsIGRpc3RyaWN0OiBmb3JtVmFsLmRpc3RyaWN0LCBibG9jazogZm9ybVZhbC5ibG9ja1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVjaUdyYXBoUWxTZXJ2aWNlLmdldENsdXN0ZXJzKHBhcmFtcykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbHVzdGVycyA9IFtdO1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5jbHVzdGVycyAmJiByZXMuZGF0YS5jbHVzdGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuY2x1c3RlcnNbMF0uY2x1c3Rlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsdXN0ZXJzID0gcmVzLmRhdGEuY2x1c3RlcnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lTY2hvb2xEZXRhaWxzKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsID0gdGhpcy51c2VyU2VnbWVudEZvcm0udmFsdWU7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLCBkaXN0cmljdDogZm9ybVZhbC5kaXN0cmljdCwgYmxvY2s6IGZvcm1WYWwuYmxvY2tcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51Y2lHcmFwaFFsU2VydmljZS5nZXRTY2hvb2xEZXRhaWxzKHBhcmFtcykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY2hvb2xzID0gW107XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnNjaG9vbHMgJiYgcmVzLmRhdGEuc2Nob29scy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjaG9vbHMgPSByZXMuZGF0YS5zY2hvb2xzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lSb2xlKCkge1xuICAgICAgICB0aGlzLnVjaUdyYXBoUWxTZXJ2aWNlLmdldFJvbGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnJvbGUgJiYgcmVzLmRhdGEucm9sZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvbGVzID0gcmVzLmRhdGEucm9sZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpQm9hcmQoKSB7XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0Qm9hcmRzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5ib2FyZCAmJiByZXMuZGF0YS5ib2FyZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkcyA9IHJlcy5kYXRhLmJvYXJkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidWNpLWFkZC1zZWdtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pbmUgd2lkZSBjb2x1bW4gZm9udC0xLTIgZm9udC13ZWlnaHQtYm9sZFwiPlxuICAgICAgICAgICAgQ3JlYXRlIG5ldyBzZWdtZW50XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWUgd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1mbG9hdGVkIHB0LTBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclNob3c7IGVsc2UgYWRkQnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeSBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBhY3RpdmUgdGlueSBpbmxpbmUgbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWRkQnRuPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVzZXJTZWdtZW50Rm9ybS5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gZm9udC0xLTJcIj5cbiAgICAgICAgPGZvcm0gY2xhc3M9XCJ1aSBmb3JtIHVzZXItc2VnbWVudC1mb3JtXCIgW2Zvcm1Hcm91cF09XCJ1c2VyU2VnbWVudEZvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD5OYW1lIDxzdXA+PGkgY2xhc3M9XCJhc3RlcmlzayBpY29uIGFzdGVyaXNrLWNvbG9yXCI+PC9pPjwvc3VwPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIk5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9XCJkZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBkaXZpZGVyIG10LTMwXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIGZpZWxkc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RGlzdHJpY3Q8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpc3RyaWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImRpc3RyaWN0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3REaXN0cmljdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdERpc3RyaWN0LmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uZGlzdHJpY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmxvY2s8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImJsb2Nrc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdEJsb2NrLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3byBmaWVsZHNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNsdXN0ZXJzLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q2x1c3RlcjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1tdWx0aS1zZWxlY3QgY2xhc3M9XCJzZWxlY3Rpb24gdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2x1c3RlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjbHVzdGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RDbHVzdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0Q2x1c3Rlci5maWx0ZXJlZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmNsdXN0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNjaG9vbDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1tdWx0aS1zZWxlY3QgY2xhc3M9XCJzZWxlY3Rpb24gdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Nob29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI211bHRpU2VsZWN0U2Nob29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0U2Nob29sLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uc2Nob29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLW11bHRpLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Sb2xlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnQgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3VpLW11bHRpLXNlbGVjdCBjbGFzcz1cInNlbGVjdGlvbiB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInJvbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtdWx0aVNlbGVjdFJvbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbXVsdGlTZWxlY3RSb2xlLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Qm9hcmQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJvYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImJvYXJkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RCb2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdEJvYXJkLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIGZpZWxkc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+R3JhZGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImdyYWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdyYWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtdWx0aVNlbGVjdEdyYWRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0R3JhZGUuZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs new file mode 100644 index 00000000000..9991bb98bca --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs @@ -0,0 +1,100 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "../../services/uci.service"; +import * as i2 from "@angular/router"; +import * as i3 from "@angular/common"; +import * as i4 from "@angular/forms"; +import * as i5 from "@project-sunbird/ng2-semantic-ui"; +export class UserSegmentListComponent { + constructor(uciService, route) { + this.uciService = uciService; + this.route = route; + this.cancel = new EventEmitter(); + this.add = new EventEmitter(); + this.selectedUserSegments = []; + this.userSegments = []; + this.selectedUserSegmentMap = {}; + this.pager = { + totalItems: 0, + currentPage: 1, + pageSize: 10, + totalPages: 0, + startPage: 0, + endPage: 0, + startIndex: 0, + endIndex: 0, + pages: [] + }; + this.pageNumber = 1; + this.column = ''; + this.reverse = false; + } + ngOnInit() { + this.selectedUserSegments.forEach(selectedUserSegment => { + this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment; + }); + this.getUserSegment(); + } + getUserSegment() { + const param = { + page: this.pager.currentPage, + perPage: this.pager.pageSize + }; + if (this.search) { + param.name = this.search; + this.uciService.searchUserSegment(param).subscribe(data => this.parseUserSegments(data)); + } + else { + this.uciService.fetchUserSegment(param).subscribe(data => this.parseUserSegments(data)); + } + } + parseUserSegments(data) { + this.userSegments = data.data; + this.pager.totalItems = data.total; + this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); + this.pager.pages = []; + let i = 1; + while (i <= Math.ceil(data.total / this.pager.pageSize)) { + this.pager.pages.push(i); + i++; + } + } + navigateToPage(page) { + if (page < 1 || page > this.pager.totalPages) { + return; + } + this.pageNumber = page; + this.pager.currentPage = page; + this.getUserSegment(); + } + getSearch() { + this.getUserSegment(); + } + onCancel() { + this.cancel.emit(false); + } + onCheck(event, userSegment) { + if (event.target.checked) { + this.selectedUserSegmentMap[userSegment.id] = userSegment; + } + else { + delete this.selectedUserSegmentMap[userSegment.id]; + } + } + onAdd() { + this.add.emit(Object.values(this.selectedUserSegmentMap)); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, deps: [{ token: i1.UciService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: { selectedUserSegments: "selectedUserSegments" }, outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.SuiDropdownMenuItem, selector: ".item" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-user-segment-list', template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"] }] + }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }]; }, propDecorators: { cancel: [{ + type: Output + }], add: [{ + type: Output + }], selectedUserSegments: [{ + type: Input + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZWdtZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItc2VnbWVudC1saXN0L3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXNlZ21lbnQtbGlzdC91c2VyLXNlZ21lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzdFLE1BQU0sT0FBTyx3QkFBd0I7SUF3QmpDLFlBQ1ksVUFBc0IsRUFDdEIsS0FBYTtRQURiLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQXpCZixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNyQyxRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQix5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFbkMsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLFVBQUssR0FBUTtZQUNULFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsV0FBTSxH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SztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDOytHQS9GUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrS0NUckMsb3NIQTZFQTs7NEZEcEVhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSx1QkFBdUI7c0hBS3ZCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXVzZXItc2VnbWVudC1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zZWdtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VnbWVudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVXNlclNlZ21lbnRzID0gW107XG5cbiAgICB1c2VyU2VnbWVudHMgPSBbXTtcbiAgICBzZWxlY3RlZFVzZXJTZWdtZW50TWFwID0ge307XG4gICAgcGFnZXI6IGFueSA9IHtcbiAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgICAgc3RhcnRQYWdlOiAwLFxuICAgICAgICBlbmRQYWdlOiAwLFxuICAgICAgICBzdGFydEluZGV4OiAwLFxuICAgICAgICBlbmRJbmRleDogMCxcbiAgICAgICAgcGFnZXM6IFtdXG4gICAgfTtcbiAgICBwYWdlTnVtYmVyID0gMTtcbiAgICBjb2x1bW4gPSAnJztcbiAgICByZXZlcnNlID0gZmFsc2U7XG4gICAgcXVlcnlQYXJhbXM6IGFueTtcbiAgICBzZWFyY2g7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXJcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50cy5mb3JFYWNoKHNlbGVjdGVkVXNlclNlZ21lbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50TWFwW3NlbGVjdGVkVXNlclNlZ21lbnQuaWRdID0gc2VsZWN0ZWRVc2VyU2VnbWVudDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRVc2VyU2VnbWVudCgpO1xuICAgIH1cblxuICAgIGdldFVzZXJTZWdtZW50KCkge1xuICAgICAgICBjb25zdCBwYXJhbTogYW55ID0ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlci5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGFnZXIucGFnZVNpemVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgICAgICAgICAgIHBhcmFtLm5hbWUgPSB0aGlzLnNlYXJjaDtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5zZWFyY2hVc2VyU2VnbWVudChwYXJhbSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGRhdGEgPT4gdGhpcy5wYXJzZVVzZXJTZWdtZW50cyhkYXRhKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5mZXRjaFVzZXJTZWdtZW50KHBhcmFtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB0aGlzLnBhcnNlVXNlclNlZ21lbnRzKGRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VVc2VyU2VnbWVudHMoZGF0YSkge1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cyA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy5wYWdlci50b3RhbEl0ZW1zID0gZGF0YS50b3RhbDtcbiAgICAgICAgdGhpcy5wYWdlci50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKGRhdGEudG90YWwgLyB0aGlzLnBhZ2VyLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5wYWdlci5wYWdlcyA9IFtdO1xuICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgIHdoaWxlIChpIDw9IE1hdGguY2VpbChkYXRhLnRvdGFsIC8gdGhpcy5wYWdlci5wYWdlU2l6ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZXIucGFnZXMucHVzaChpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdmlnYXRlVG9QYWdlKHBhZ2U6IG51bWJlcik6IHVuZGVmaW5lZCB8IHZvaWQge1xuICAgICAgICBpZiAocGFnZSA8IDEgfHwgcGFnZSA+IHRoaXMucGFnZXIudG90YWxQYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZU51bWJlciA9IHBhZ2U7XG4gICAgICAgIHRoaXMucGFnZXIuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLmdldFVzZXJTZWdtZW50KCk7XG4gICAgfVxuXG4gICAgZ2V0U2VhcmNoKCkge1xuICAgICAgICB0aGlzLmdldFVzZXJTZWdtZW50KCk7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uQ2hlY2soZXZlbnQsIHVzZXJTZWdtZW50KSB7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50TWFwW3VzZXJTZWdtZW50LmlkXSA9IHVzZXJTZWdtZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRVc2VyU2VnbWVudE1hcFt1c2VyU2VnbWVudC5pZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdChPYmplY3QudmFsdWVzKHRoaXMuc2VsZWN0ZWRVc2VyU2VnbWVudE1hcCkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1Y2ktY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNldmVuIHdpZGUgY29sdW1uIGZvbnQtMS0yIGZvbnQtd2VpZ2h0LWJvbGRcIj5cbiAgICAgICAgICAgIFNlbGVjdCB1c2VyIHNlZ21lbnRcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaXZlIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtZmxvYXRlZCBwdC0wXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnkgbXItMTBcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPiBDYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGQoKVwiPiBBZGQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Itc2VhcmNoLWJveCBiLTAgbWwtMCBsYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1kaXYgcmVsYXRpdmVcIiBpZD1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIGNsYXNzPVwic2VhcmNoIGljb25cIiBzcmM9XCJhc3NldHMvaW1hZ2VzL3NlYXJjaC1pY29uLnN2Z1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzYi1zZWFyY2gtaW5wdXQgZGlzYWJsZWQgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lXCIgaWQ9XCJrZXl3b3JkXCIgbmFtZT1cImZpbHRlcl9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIGRpc2FibGVkXCIgKGNsaWNrKT1cImdldFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHRhYmxlIGNsYXNzPVwidWkgc2luZ2xlIGxpbmUgdXBGb3JSZXZpZXdUYWJsZSB0YWJsZVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgdy01MC1weFwiPlxuXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiZm91ciB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiZm91ciB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInR3byB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICBUb3RhbCBtZW1iZXJzXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidHdvIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMCBjZW50ZXIgYWxpZ25lZFwiPlxuICAgICAgICAgICAgICAgIExhc3QgVXBkYXRlZCBPblxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgY2xhc3M9XCJVcEZvclJldmlld0xpc3RIb3ZlclwiICpuZ0Zvcj1cImxldCBjb250ZW50IG9mIHVzZXJTZWdtZW50czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cIiEhc2VsZWN0ZWRVc2VyU2VnbWVudE1hcFtjb250ZW50LmlkXVwiIChjaGFuZ2UpPVwib25DaGVjaygkZXZlbnQsIGNvbnRlbnQpXCI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudC5uYW1lfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudD8uY2F0ZWdvcnl9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjZW50ZXIgYWxpZ25lZFwiPnt7Y29udGVudD8uY291bnR9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjZW50ZXIgYWxpZ25lZFwiPnt7Y29udGVudD8udXBkYXRlZF9hdCB8IGRhdGV9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIHdpZGUgY29sdW1uXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYi0xMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBwYWdpbmF0aW9uIG1lbnUgbXQtMTAgcmlnaHQtZmxvYXRlZCBwdC0wXCIgKm5nSWY9XCJwYWdlci5wYWdlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0xIH1cIiBjbGFzcz1cIml0ZW0gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKDEpIFwiPkZpcnN0PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0xIH1cIiBjbGFzcz1cIml0ZW0gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLmN1cnJlbnRQYWdlIC0gMSlcIj5QcmV2aW91czwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXIucGFnZXNcIiBbbmdDbGFzc109XCJ7YWN0aXZlOnBhZ2VyLmN1cnJlbnRQYWdlPT09cGFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZSlcIiBjbGFzcz1cIml0ZW1cIj57e3BhZ2V9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLmN1cnJlbnRQYWdlICsgMSlcIiBjbGFzcz1cIml0ZW1cIj5OZXh0PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0gcGFnZXIudG90YWxQYWdlc31cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZXIudG90YWxQYWdlcylcIiBjbGFzcz1cIml0ZW0gXCI+TGFzdDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs new file mode 100644 index 00000000000..6a7ab62117a --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvbW9kZWxzL3VjaS1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSWRpc2N1c3Npb25Db25maWcge1xuICAgIG1lbnVPcHRpb25zPzogQXJyYXk8SU1lbnVPcHRpb25zPlxuICAgIHVzZXJOYW1lOiBzdHJpbmdcbiAgICBjb250ZXh0PzogT2JqZWN0XG4gICAgY2F0ZWdvcmllczogSWNhdGVnb3J5XG4gICAgcGF0aD86IHN0cmluZ1xuICAgIHJvdXRlclNsdWc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVudU9wdGlvbnMge1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgICBlbmFibGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2F0ZWdvcnkge1xuICAgIHJlc3VsdDogQXJyYXk8c3RyaW5nPlxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs new file mode 100644 index 00000000000..767c11d77b7 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs @@ -0,0 +1,9 @@ +export var UciData; +(function (UciData) { + let IPageName; + (function (IPageName) { + IPageName["HOME"] = "uci-admin"; + IPageName["LIB_ENTRY"] = "lib-entry"; + })(IPageName = UciData.IPageName || (UciData.IPageName = {})); +})(UciData || (UciData = {})); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9tb2RlbHMvdWNpLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxPQUFPLENBdUV2QjtBQXZFRCxXQUFpQixPQUFPO0lBbUV0QixJQUFZLFNBR1g7SUFIRCxXQUFZLFNBQVM7UUFDbkIsK0JBQWtCLENBQUE7UUFDbEIsb0NBQXVCLENBQUE7SUFDekIsQ0FBQyxFQUhXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBR3BCO0FBQ0gsQ0FBQyxFQXZFZ0IsT0FBTyxLQUFQLE9BQU8sUUF1RXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBVY2lEYXRhIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIElVc2VyIHtcbiAgICB1aWQ6IG51bWJlclxuICAgIHVzZXJuYW1lOiBzdHJpbmdcbiAgICBmdWxsbmFtZT86IHN0cmluZ1xuICAgIHVzZXJzbHVnOiBzdHJpbmdcbiAgICByZXB1dGF0aW9uOiBudW1iZXJcbiAgICBwb3N0Y291bnQ6IG51bWJlclxuICAgIHRvcGljY291bnQ/OiBudW1iZXJcbiAgICBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbFxuICAgIHNpZ25hdHVyZT86IHN0cmluZyB8IG51bGxcbiAgICBiYW5uZWQ6IG51bWJlclxuICAgICdiYW5uZWQ6ZXhwaXJlJz86IG51bWJlclxuICAgIHN0YXR1czogc3RyaW5nXG4gICAgbGFzdG9ubGluZT86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICBncm91cFRpdGxlPzogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZUFycmF5Pzogc3RyaW5nW11cbiAgICAnaWNvbjp0ZXh0Jz86IHN0cmluZ1xuICAgICdpY29uOmJnQ29sb3InPzogc3RyaW5nXG4gICAgbGFzdG9ubGluZUlTTz86IHN0cmluZ1xuICAgIGJhbm5lZF91bnRpbD86IG51bWJlciB8IGJvb2xlYW5cbiAgICBiYW5uZWRfdW50aWxfcmVhZGFibGU/OiBzdHJpbmdcbiAgICBzZWxlY3RlZEdyb3Vwcz86IGFueVtdXG4gICAgY3VzdG9tX3Byb2ZpbGVfaW5mbz86IGFueVtdXG4gIH1cbiAgXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVByb2ZpbGUge1xuICAgIHVpZDogbnVtYmVyXG4gICAgdXNlcm5hbWU6IHN0cmluZ1xuICAgIHVzZXJzbHVnOiBzdHJpbmdcbiAgICBlbWFpbDogc3RyaW5nXG4gICAgJ2VtYWlsOmNvbmZpcm1lZCc6IG51bWJlclxuICAgIGpvaW5kYXRlOiBudW1iZXJcbiAgICBsYXN0b25saW5lOiBudW1iZXJcbiAgICBwaWN0dXJlOiBzdHJpbmdcbiAgICBmdWxsbmFtZTogc3RyaW5nXG4gICAgbG9jYXRpb246IHN0cmluZ1xuICAgIGJpcnRoZGF5OiBzdHJpbmdcbiAgICB3ZWJzaXRlOiBzdHJpbmdcbiAgICBhYm91dG1lOiBzdHJpbmdcbiAgICBzaWduYXR1cmU6IHN0cmluZ1xuICAgIHVwbG9hZGVkcGljdHVyZTogc3RyaW5nXG4gICAgcHJvZmlsZXZpZXdzOiBudW1iZXJcbiAgICByZXB1dGF0aW9uOiBudW1iZXJcbiAgICBwb3N0Y291bnQ6IG51bWJlclxuICAgIHRvcGljY291bnQ6IG51bWJlclxuICAgIGxhc3Rwb3N0dGltZTogbnVtYmVyXG4gICAgYmFubmVkOiBudW1iZXJcbiAgICAnYmFubmVkOmV4cGlyZSc6IG51bWJlclxuICAgIHN0YXR1czogc3RyaW5nXG4gICAgZmxhZ3M6IG51bWJlclxuICAgIGZvbGxvd2VyQ291bnQ6IG51bWJlclxuICAgIGZvbGxvd2luZ0NvdW50OiBudW1iZXJcbiAgICAnY292ZXI6dXJsJzogc3RyaW5nXG4gICAgJ2NvdmVyOnBvc2l0aW9uJzogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZTogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZUFycmF5OiBbXVxuICAgIGpvaW5kYXRlSVNPOiBzdHJpbmdcbiAgICBsYXN0b25saW5lSVNPOiBzdHJpbmdcbiAgICBpc0Jsb2NrZWQ6IHRydWVcbiAgICBibG9ja3NDb3VudDogbnVtYmVyXG4gICAgY2FuRWRpdDogdHJ1ZVxuICAgIGNhbkJhbjogdHJ1ZVxuICAgIHRpdGxlOiBzdHJpbmdcbiAgfVxuXG4gIGV4cG9ydCBlbnVtIElQYWdlTmFtZSB7XG4gICAgSE9NRSA9ICd1Y2ktYWRtaW4nLFxuICAgIExJQl9FTlRSWSA9ICdsaWItZW50cnknXG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs new file mode 100644 index 00000000000..99189aca6f8 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import * as i0 from "@angular/core"; +export class PipesModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [], + imports: [ + CommonModule + ], + exports: [] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVy9DLE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxZQUpwQixZQUFZO2dIQUlILFdBQVcsWUFKcEIsWUFBWTs7NEZBSUgsV0FBVztrQkFQdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgUGlwZXNNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs new file mode 100644 index 00000000000..b30245b7c5c --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs @@ -0,0 +1,69 @@ +import { catchError, map } from 'rxjs/operators'; +import { Injectable } from '@angular/core'; +import { throwError } from 'rxjs'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "./global.service"; +export class BaseService { + constructor(http, globalService) { + this.http = http; + this.globalService = globalService; + } + getDefaultHeaders() { + const headers = {}; + const user = this.globalService.getUser(); + if (user && user.id) { + headers.ownerID = user.id; + } + if (user && user.rootOrgId) { + headers.ownerOrgID = user.rootOrgId; + } + return headers; + } + getRequest(url, params = {}, headers = {}) { + headers = { + ...headers, + ...this.getDefaultHeaders() + }; + return this.http.get(url, { params, headers }).pipe(map((res) => { + return res.result; + }), catchError(err => { + return this.handleError(err); + })); + } + postRequest(url, data = {}, headers = {}) { + headers = { + ...headers, + ...this.getDefaultHeaders() + }; + return this.http.post(url, data, { headers }).pipe(map((res) => { + return res.result; + }), catchError(err => { + return this.handleError(err); + })); + } + handleError(error) { + if (error instanceof ErrorEvent) { + return throwError(error['error']['message']); + } + return throwError(error.error); + } + toFormData(formValue) { + const formData = new FormData(); + console.error("[UCI Console]", JSON.stringify(formValue)); + for (const key of Object.keys(formValue)) { + const value = formValue[key]; + formData.append(key, value); + } + return formData; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7QUFLaEMsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsSUFBZ0IsRUFBUyxhQUE0QjtRQUFyRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDeEUsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsU0FBYyxFQUFFLEVBQUUsVUFBZSxFQUFFO1FBQ3RELE9BQU8sR0FBRztZQUNOLEdBQUcsT0FBTztZQUNWLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzlCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFVBQWUsRUFBRTtRQUNoRCxPQUFPLEdBQUc7WUFDTixHQUFHLE9BQU87WUFDVixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtTQUM5QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2IsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUdNLFdBQVcsQ0FBQyxLQUF3QjtRQUN2QyxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDN0IsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7UUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFVBQVUsQ0FBSSxTQUFZO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBRXpELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOytHQXBFUSxXQUFXO21IQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi9nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0SGVhZGVycygpIHtcbiAgICAgICAgY29uc3QgaGVhZGVyczogYW55ID0ge307XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdsb2JhbFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgICBpZiAodXNlciAmJiB1c2VyLmlkKSB7XG4gICAgICAgICAgICBoZWFkZXJzLm93bmVySUQgPSB1c2VyLmlkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyICYmIHVzZXIucm9vdE9yZ0lkKSB7XG4gICAgICAgICAgICBoZWFkZXJzLm93bmVyT3JnSUQgPSB1c2VyLnJvb3RPcmdJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZXF1ZXN0KHVybCwgcGFyYW1zOiBhbnkgPSB7fSwgaGVhZGVyczogYW55ID0ge30pIHtcbiAgICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIZWFkZXJzKClcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtwYXJhbXMsIGhlYWRlcnN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMucmVzdWx0O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RSZXF1ZXN0KHVybCwgZGF0YSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhlYWRlcnMoKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGRhdGEsIHtoZWFkZXJzfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnJlc3VsdDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuXG4gICAgcHVibGljIGhhbmRsZUVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvclsnZXJyb3InXVsnbWVzc2FnZSddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yLmVycm9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Gb3JtRGF0YTxUPihmb3JtVmFsdWU6IFQpIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltVQ0kgQ29uc29sZV1cIiwgSlNPTi5zdHJpbmdpZnkoZm9ybVZhbHVlKSlcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtVmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZvcm1WYWx1ZVtrZXldO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhO1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs new file mode 100644 index 00000000000..04dd24ae80c --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import * as _ from 'lodash'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +import * as i2 from "./uci.service"; +export class ConfigService { + constructor(activatedRoute, UciService) { + this.activatedRoute = activatedRoute; + this.UciService = UciService; + } + ngOnInit() { + } + setConfig(activatedRoute) { + activatedRoute.data.subscribe((config) => { + this._config = config.data; + }); + } + setConfigFromParams(activatedRoute) { + activatedRoute.queryParams.subscribe((params) => { + const obj = { + userName: _.get(params, 'userName'), + categories: JSON.parse(_.get(params, 'categories')) + }; + this._config = obj; + }); + } + getConfig() { + return this._config; + } + getCategories() { + this.getParams = this.getConfig(); + return _.get(this.getParams, 'categories'); + } + hasContext() { + this.hasContextData = this.getCategories() ? + (this.getCategories().result ? this.getCategories().result.length : null) + : null; + return this.hasContextData; + } + getContext() { + this.getContextData = this.getCategories() ? + (this.getCategories().result ? this.getCategories().result : null) + : null; + return this.getContextData; + } + getRouterSlug() { + return this._config.routerSlug ? this._config.routerSlug : ''; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1.ActivatedRoute }, { token: i2.UciService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.UciService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7QUFNM0IsTUFBTSxPQUFPLGFBQWE7SUFXeEIsWUFDUyxjQUE4QixFQUM3QixVQUFzQjtRQUR2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM1QixDQUFDO0lBRUwsUUFBUTtJQUVSLENBQUM7SUFFRCxTQUFTLENBQUMsY0FBYztRQUN0QixjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxjQUFjO1FBQ2hDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUMsTUFBTSxHQUFHLEdBQXNCO2dCQUM3QixRQUFRLEVBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUNwQyxVQUFVLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNyRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNqQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUIsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDOytHQTdEVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVjaVNlcnZpY2UgfSBmcm9tICcuL3VjaS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IElkaXNjdXNzaW9uQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3VjaS1jb25maWcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwYXJhbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfY29uZmlnOiBJZGlzY3Vzc2lvbkNvbmZpZztcbiAgcHVibGljIGNoZWNrQ29udGV4dDogYm9vbGVhbjtcbiAgcHVibGljIHF1ZXJ5UGFyYW1zO1xuICBnZXRDb250ZXh0RGF0YTogYW55O1xuICBoYXNDb250ZXh0RGF0YTogYW55O1xuICBnZXRQYXJhbXM6IElkaXNjdXNzaW9uQ29uZmlnO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIFVjaVNlcnZpY2U6IFVjaVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG4gIHNldENvbmZpZyhhY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZy5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q29uZmlnRnJvbVBhcmFtcyhhY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBvYmo6IElkaXNjdXNzaW9uQ29uZmlnID0ge1xuICAgICAgICB1c2VyTmFtZSA6IF8uZ2V0KHBhcmFtcywgJ3VzZXJOYW1lJyksXG4gICAgICAgIGNhdGVnb3JpZXMgOiBKU09OLnBhcnNlKF8uZ2V0KHBhcmFtcywgJ2NhdGVnb3JpZXMnKSlcbiAgICAgIH07XG4gICAgICB0aGlzLl9jb25maWcgPSBvYmo7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmdldFBhcmFtcyA9IHRoaXMuZ2V0Q29uZmlnKClcbiAgICByZXR1cm4gXy5nZXQodGhpcy5nZXRQYXJhbXMsICdjYXRlZ29yaWVzJylcbiAgfVxuXG4gIHB1YmxpYyBoYXNDb250ZXh0KCkge1xuICAgIHRoaXMuaGFzQ29udGV4dERhdGEgPSB0aGlzLmdldENhdGVnb3JpZXMoKSA/XG4gICAgICAodGhpcy5nZXRDYXRlZ29yaWVzKCkucmVzdWx0ID8gdGhpcy5nZXRDYXRlZ29yaWVzKCkucmVzdWx0Lmxlbmd0aCA6IG51bGwpXG4gICAgICA6IG51bGxcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZXh0RGF0YVxuICB9XG5cbiAgcHVibGljIGdldENvbnRleHQoKSB7XG4gICAgdGhpcy5nZXRDb250ZXh0RGF0YSA9IHRoaXMuZ2V0Q2F0ZWdvcmllcygpID9cbiAgICAgICh0aGlzLmdldENhdGVnb3JpZXMoKS5yZXN1bHQgPyB0aGlzLmdldENhdGVnb3JpZXMoKS5yZXN1bHQgOiBudWxsKVxuICAgICAgOiBudWxsXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dERhdGFcbiAgfVxuXG4gIHB1YmxpYyBnZXRSb3V0ZXJTbHVnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcucm91dGVyU2x1ZyA/IHRoaXMuX2NvbmZpZy5yb3V0ZXJTbHVnIDogJyc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs new file mode 100644 index 00000000000..b6154d93ccf --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs @@ -0,0 +1,32 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import * as i0 from "@angular/core"; +export class GlobalService { + constructor() { + this.user = new BehaviorSubject(undefined); + this.user$ = this.user.asObservable(); + this.baseUrl = new BehaviorSubject(undefined); + this.baseUrl$ = this.baseUrl.asObservable(); + } + setUser(user) { + this.user.next(user); + } + getUser() { + return this.user.value; + } + setBaseUrl(baseUrl) { + this.baseUrl.next(baseUrl); + } + getBaseUrl() { + return this.baseUrl.value; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return []; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFLckMsTUFBTSxPQUFPLGFBQWE7SUFNdEI7UUFMUSxTQUFJLEdBQXlCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLFlBQU8sR0FBeUIsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFHdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDOytHQXZCUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VydmljZSB7XG4gICAgcHJpdmF0ZSB1c2VyOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlciQgPSB0aGlzLnVzZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBiYXNlVXJsOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybCQgPSB0aGlzLmJhc2VVcmwuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBzZXRVc2VyKHVzZXIpIHtcbiAgICAgICAgdGhpcy51c2VyLm5leHQodXNlcik7XG4gICAgfVxuXG4gICAgZ2V0VXNlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlci52YWx1ZTtcbiAgICB9XG5cbiAgICBzZXRCYXNlVXJsKGJhc2VVcmwpIHtcbiAgICAgICAgdGhpcy5iYXNlVXJsLm5leHQoYmFzZVVybCk7XG4gICAgfVxuXG4gICAgZ2V0QmFzZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVybC52YWx1ZTtcbiAgICB9XG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs new file mode 100644 index 00000000000..2538a84ce3c --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs @@ -0,0 +1,99 @@ +import { Injectable } from '@angular/core'; +import { BaseService } from './base.service'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "./global.service"; +export class UciGraphQlService extends BaseService { + constructor(http, globalService) { + super(http, globalService); + this.http = http; + this.globalService = globalService; + this.globalService.baseUrl$.subscribe(value => { + if (value) { + this.BASE_URL = value + '/v1/graphql'; + } + }); + } + getState() { + return this.baseRequest({ + query: `query getListOfStates{ + organisation(distinct_on:state){ + state}}` + }); + } + getDistrict(param) { + return this.baseRequest({ + query: `query getListOfDistrictInState($state:String){ + organisation(where:{state:{_eq:$state}}, distinct_on:district){ + state + district}}`, + variables: param + }); + } + getBlock(param) { + return this.baseRequest({ + query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){ + blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){ + block + district + state + } + }`, + variables: param + }); + } + getSchoolDetails(param) { + return this.baseRequest({ + query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){ + schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){ + school + school_code + block + district + state + } + }`, + variables: param + }); + } + getClusters(param) { + return this.baseRequest({ + query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){ + clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){ + cluster + } + }`, + variables: param + }); + } + getRole() { + return this.baseRequest({ + query: `query fetchListOfRoles{ + role{ + id + name + } + }` + }); + } + getBoards() { + return this.baseRequest({ + query: `query listOfBoards{ + board{ + id + name}}` + }); + } + baseRequest(body) { + return this.http.post(this.BASE_URL, body, {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWdyYXBoLXFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL3VjaS1ncmFwaC1xbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBRzlDLFlBQW1CLElBQWdCLEVBQVMsYUFBNEI7UUFDcEUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQURaLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsYUFBYSxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNwQixLQUFLLEVBQUU7O29CQUVDO1NBQ1gsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7O3VCQUdJO1lBQ1gsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7Ozs7O2NBTUw7WUFDRixTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEIsS0FBSyxFQUFFOzs7Ozs7OztjQVFMO1lBQ0YsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7OztjQUlMO1lBQ0YsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEIsS0FBSyxFQUFFOzs7OztxQkFLRTtTQUNaLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7O3lCQUdNO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBSTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBM0ZRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmFzZVNlcnZpY2V9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi9nbG9iYWwuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVY2lHcmFwaFFsU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgICBCQVNFX1VSTDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgZ2xvYmFsU2VydmljZTogR2xvYmFsU2VydmljZSkge1xuICAgICAgICBzdXBlcihodHRwLCBnbG9iYWxTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmJhc2VVcmwkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gdmFsdWUgKyAnL3YxL2dyYXBocWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZTdGF0ZXN7XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24oZGlzdGluY3Rfb246c3RhdGUpe1xuICAgICAgICAgICAgc3RhdGV9fWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0RGlzdHJpY3QocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZEaXN0cmljdEluU3RhdGUoJHN0YXRlOlN0cmluZyl7XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfX0sICBkaXN0aW5jdF9vbjpkaXN0cmljdCl7XG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICAgZGlzdHJpY3R9fWAsXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHBhcmFtXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEJsb2NrKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VSZXF1ZXN0KHtcbiAgICAgICAgICAgIHF1ZXJ5OiBgcXVlcnkgZ2V0TGlzdE9mQmxvY2tzVW5kZXJEaXN0cmljdCgkZGlzdHJpY3Q6W1N0cmluZyFdLCRzdGF0ZTpTdHJpbmcpe1xuICAgICAgICAgICAgYmxvY2tzOiBvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH19LGRpc3RpbmN0X29uOmJsb2NrKXtcbiAgICAgICAgICAgIGJsb2NrXG4gICAgICAgICAgICBkaXN0cmljdFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBwYXJhbVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTY2hvb2xEZXRhaWxzKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VSZXF1ZXN0KHtcbiAgICAgICAgICAgIHF1ZXJ5OiBgcXVlcnkgZ2V0TGlzdE9mU2Nob29sc1VuZGVyQmxvY2tzQW5kRGlzdHJpY3QoJGRpc3RyaWN0OltTdHJpbmchXSwkc3RhdGU6U3RyaW5nLCRibG9jazpbU3RyaW5nIV0pe1xuICAgICAgICAgICAgc2Nob29sczpvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH0sYmxvY2s6e19pbjokYmxvY2t9fSl7XG4gICAgICAgICAgICBzY2hvb2xcbiAgICAgICAgICAgIHNjaG9vbF9jb2RlXG4gICAgICAgICAgICBibG9ja1xuICAgICAgICAgICAgZGlzdHJpY3RcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogcGFyYW1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Q2x1c3RlcnMocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZDbHVzdGVyc1VuZGVyQmxvY2tBbmREaXN0cmljdCgkYmxvY2s6W1N0cmluZyFdLCRkaXN0cmljdDpbU3RyaW5nIV0sJHN0YXRlOlN0cmluZyl7XG4gICAgICAgICAgICBjbHVzdGVyczpvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH0sYmxvY2s6e19pbjokYmxvY2t9fSxkaXN0aW5jdF9vbjpjbHVzdGVyKXtcbiAgICAgICAgICAgIGNsdXN0ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBwYXJhbVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRSb2xlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVxdWVzdCh7XG4gICAgICAgICAgICBxdWVyeTogYHF1ZXJ5IGZldGNoTGlzdE9mUm9sZXN7XG4gICAgICAgICAgICAgICAgICAgcm9sZXtcbiAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgfWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Qm9hcmRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVxdWVzdCh7XG4gICAgICAgICAgICBxdWVyeTogYHF1ZXJ5IGxpc3RPZkJvYXJkc3tcbiAgICAgICAgICAgICAgICAgIGJvYXJke1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIG5hbWV9fWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiYXNlUmVxdWVzdChib2R5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMLCBib2R5LCB7fSk7XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs new file mode 100644 index 00000000000..29d9c5f0d35 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs @@ -0,0 +1,87 @@ +import { Injectable } from '@angular/core'; +import { HttpHeaders } from '@angular/common/http'; +import { BaseService } from './base.service'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "./global.service"; +export class UciService extends BaseService { + constructor(http, globalService) { + super(http, globalService); + this.http = http; + this.globalService = globalService; + this.FORM_BASE_URL = 'https://dev.sunbirded.org/'; + this.globalService.baseUrl$.subscribe(value => { + if (value) { + this.BASE_URL = value + '/admin/v1/'; + } + }); + } + fetchConversation(params) { + return this.getRequest(this.BASE_URL + 'bot/get', params, { asset: 'bot' }); + } + searchConversation(params) { + return this.getRequest(this.BASE_URL + 'bot/search', params, { asset: 'bot' }); + } + pauseConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, { asset: 'bot' }); + } + startConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, { asset: 'bot' }); + } + deleteConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, { asset: 'bot' }); + } + getBotUserDetails(id) { + return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, { asset: 'bot' }); + } + getCheckStartingMessage(param) { + return this.getRequest(this.BASE_URL + `bot/getByParam`, param, { asset: 'bot' }); + } + botCreate(data) { + return this.postRequest(this.BASE_URL + 'bot/create', data, { asset: 'bot' }); + } + botUpdate(id, data) { + return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, { asset: 'bot' }); + } + // User Segment APIs + fetchUserSegment(params) { + return this.getRequest(this.BASE_URL + 'userSegment/get', params, { asset: 'userSegment' }); + } + searchUserSegment(params) { + return this.getRequest(this.BASE_URL + 'userSegment/search', params, { asset: 'userSegment' }); + } + createUserSegment(data) { + return this.postRequest(this.BASE_URL + 'userSegment/create', data, { asset: 'userSegment' }); + } + userSegmentQueryBuilder(data) { + return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, { asset: 'userSegment' }); + } + // Conversation APIs + createLogic(data) { + return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, { asset: 'conversationLogic' }); + } + updateLogic(id, data) { + return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, { asset: 'conversationLogic' }); + } + deleteLogic(id) { + return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, { asset: 'conversationLogic' }); + } + // Mis APIs + uploadFile(obj) { + let headers = new HttpHeaders(); + headers = headers.set('Content-Type', 'multipart/form-data'); + return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), { headers }); + } + readForm(data) { + return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL3VjaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU8zQyxNQUFNLE9BQU8sVUFBVyxTQUFRLFdBQVc7SUFJdkMsWUFBbUIsSUFBZ0IsRUFBUyxhQUE0QjtRQUNwRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRFosU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRnhFLGtCQUFhLEdBQUcsNEJBQTRCLENBQUM7UUFJekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksS0FBSyxFQUFFO2dCQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQzthQUN4QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQU07UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFNO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztJ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QUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVUsQ0FBQyxHQUFHO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBeEZRLFVBQVU7bUhBQVYsVUFBVSxjQUZQLE1BQU07OzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmFzZVNlcnZpY2V9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0dsb2JhbFNlcnZpY2V9IGZyb20gJy4vZ2xvYmFsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVjaVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gICAgQkFTRV9VUkw7XG4gICAgRk9STV9CQVNFX1VSTCA9ICdodHRwczovL2Rldi5zdW5iaXJkZWQub3JnLyc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cDogSHR0cENsaWVudCwgcHVibGljIGdsb2JhbFNlcnZpY2U6IEdsb2JhbFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaHR0cCwgZ2xvYmFsU2VydmljZSk7XG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5iYXNlVXJsJC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5CQVNFX1VSTCA9IHZhbHVlICsgJy9hZG1pbi92MS8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmZXRjaENvbnZlcnNhdGlvbihwYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnYm90L2dldCcsIHBhcmFtcywge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIHNlYXJjaENvbnZlcnNhdGlvbihwYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnYm90L3NlYXJjaCcsIHBhcmFtcywge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIHBhdXNlQ29udmVyc2F0aW9uKGJvdElkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC9wYXVzZS8ke2JvdElkfWAsIHt9LCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgc3RhcnRDb252ZXJzYXRpb24oYm90SWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgYm90L3N0YXJ0LyR7Ym90SWR9YCwge30sIHthc3NldDogJ2JvdCd9KTtcbiAgICB9XG5cbiAgICBkZWxldGVDb252ZXJzYXRpb24oYm90SWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgYm90L2RlbGV0ZS8ke2JvdElkfWAsIHt9LCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgZ2V0Qm90VXNlckRldGFpbHMoaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC9nZXQvJHtpZH1gLCB7fSwge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIGdldENoZWNrU3RhcnRpbmdNZXNzYWdlKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArIGBib3QvZ2V0QnlQYXJhbWAsIHBhcmFtLCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgYm90Q3JlYXRlKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICdib3QvY3JlYXRlJywgZGF0YSwge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIGJvdFVwZGF0ZShpZCwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3N0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC91cGRhdGUvJHtpZH1gLCBkYXRhLCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgLy8gVXNlciBTZWdtZW50IEFQSXNcbiAgICBmZXRjaFVzZXJTZWdtZW50KHBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9nZXQnLCBwYXJhbXMsIHthc3NldDogJ3VzZXJTZWdtZW50J30pO1xuICAgIH1cblxuICAgIHNlYXJjaFVzZXJTZWdtZW50KHBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9zZWFyY2gnLCBwYXJhbXMsIHthc3NldDogJ3VzZXJTZWdtZW50J30pO1xuICAgIH1cblxuICAgIGNyZWF0ZVVzZXJTZWdtZW50KGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9jcmVhdGUnLCBkYXRhLCB7YXNzZXQ6ICd1c2VyU2VnbWVudCd9KTtcbiAgICB9XG5cbiAgICB1c2VyU2VnbWVudFF1ZXJ5QnVpbGRlcihkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAndXNlclNlZ21lbnQvcXVlcnlCdWlsZGVyJywgZGF0YSwge2Fzc2V0OiAndXNlclNlZ21lbnQnfSk7XG4gICAgfVxuXG4gICAgLy8gQ29udmVyc2F0aW9uIEFQSXNcbiAgICBjcmVhdGVMb2dpYyhkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnY29udmVyc2F0aW9uTG9naWMvY3JlYXRlJywgZGF0YSwge2Fzc2V0OiAnY29udmVyc2F0aW9uTG9naWMnfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlTG9naWMoaWQsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArIGBjb252ZXJzYXRpb25Mb2dpYy91cGRhdGUvJHtpZH1gLCBkYXRhLCB7YXNzZXQ6ICdjb252ZXJzYXRpb25Mb2dpYyd9KTtcbiAgICB9XG5cbiAgICBkZWxldGVMb2dpYyhpZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgY29udmVyc2F0aW9uTG9naWMvZGVsZXRlLyR7aWR9YCwge30sIHthc3NldDogJ2NvbnZlcnNhdGlvbkxvZ2ljJ30pO1xuICAgIH1cblxuICAgIC8vIE1pcyBBUElzXG4gICAgdXBsb2FkRmlsZShvYmopOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgJ2Zvcm1zL3VwbG9hZCcsIHRoaXMudG9Gb3JtRGF0YShvYmopLCB7aGVhZGVyc30pO1xuICAgIH1cblxuICAgIHJlYWRGb3JtKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5GT1JNX0JBU0VfVVJMICsgJ2FwaS9kYXRhL3YxL2Zvcm0vcmVhZCcsIGRhdGEpO1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs new file mode 100644 index 00000000000..787f0764d18 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs @@ -0,0 +1,103 @@ +import { Injectable } from '@angular/core'; +/* tslint:disable */ +import * as _ from 'lodash'; +import * as i0 from "@angular/core"; +import * as i1 from "./uci-events.service"; +import * as i2 from "@angular/router"; +export class TelemetryUtilsService { + constructor(discussionEvents, router) { + this.discussionEvents = discussionEvents; + this.router = router; + this._context = []; + this.currentObj = {}; + } + setContext(context) { + this._context = context; + this.currentObj = _.last(context); + } + uppendContext(data) { + const matchedC = _.find(this._context, { id: data.id }); + if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) { + this._context.push(data); + } + this.currentObj = _.last(this._context); + } + deleteContext(prevTopic) { + const topic = _.find(this._context, prevTopic); + if (topic) { + this._context = _.reject(this._context, topic); + } + } + getContext() { + return this._context; + } + logImpression(pageId) { + this.discussionEvents.emitTelemetry({}); + const impressionEvent = { + eid: 'IMPRESSION', + edata: { + type: 'view', + pageid: pageId, + uri: this.router.url + } + }; + if (this.currentObj) { + impressionEvent.context = { cdata: [{ + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type') + } + ] }; + } + this.discussionEvents.emitTelemetry(impressionEvent); + } + logInteract(event, pageId) { + const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') || + _.get(event, 'srcElement.attributes.id'); + const interactEvent = { + eid: 'INTERACT', + edata: { + id: _.get(target, 'value') || _.get(event, 'action'), + type: 'CLICK', + pageid: pageId + } + }; + if (this.currentObj) { + const object = { + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type'), + ver: '1' + }; + object['rollup'] = this._context.length > 1 ? this.getRollUp() : {}; + interactEvent.context = { + cdata: [{ + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type') + }], object + }; + } + this.discussionEvents.emitTelemetry(interactEvent); + } + getRollUp() { + const rollUp = {}; + const data = _.reject(this._context, this.currentObj); + if (this._context.length > 1) { + data.forEach((element, index) => { + // console.log('rollup', element); + rollUp['l' + (index + 1)] = element.toString(); + }); + } + if (_.get(this.currentObj, 'type') !== 'Post') { + return rollUp; + } + return {}; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, deps: [{ token: i1.UciEventsService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.UciEventsService }, { type: i2.Router }]; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0Msb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7O0FBVzNCLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxnQkFBa0MsRUFDbEMsTUFBYztRQURkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUx4QixhQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2IsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQUtaLENBQUM7SUFFTCxVQUFVLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxR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QUNyQyxDQUFDLEVBQUUsTUFBTTthQUNYLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVM7UUFFTCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM5QixrQ0FBa0M7Z0JBQ2xDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRTtZQUM3QyxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFFZCxDQUFDOytHQXJHVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBVY2lFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi91Y2ktZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCdcbi8qIHRzbGludDplbmFibGUgKi9cbmludGVyZmFjZSBJVGVsZW1ldHJ5T2JqIHtcbiAgZWlkOiBzdHJpbmcsXG4gIGVkYXRhOiB7fSxcbiAgY29udGV4dD86IHt9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeVV0aWxzU2VydmljZSB7XG5cbiAgX2NvbnRleHQgPSBbXVxuICBjdXJyZW50T2JqID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaXNjdXNzaW9uRXZlbnRzOiBVY2lFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBzZXRDb250ZXh0KGNvbnRleHQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmN1cnJlbnRPYmogPSBfLmxhc3QoY29udGV4dCk7XG4gIH1cblxuICB1cHBlbmRDb250ZXh0KGRhdGEpIHtcbiAgICBjb25zdCBtYXRjaGVkQyA9IF8uZmluZCh0aGlzLl9jb250ZXh0LCB7IGlkOiBkYXRhLmlkIH0pO1xuICAgIGlmICghXy5pc0VtcHR5KGRhdGEpICYmICFfLmlzRXF1YWwoZGF0YSwgbWF0Y2hlZEMpKSB7XG4gICAgICB0aGlzLl9jb250ZXh0LnB1c2goZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudE9iaiA9IF8ubGFzdCh0aGlzLl9jb250ZXh0KTtcbiAgfVxuXG4gIGRlbGV0ZUNvbnRleHQocHJldlRvcGljKSB7XG4gICAgY29uc3QgdG9waWMgPSBfLmZpbmQodGhpcy5fY29udGV4dCwgcHJldlRvcGljKTtcbiAgICBpZiAodG9waWMpIHtcbiAgICAgIHRoaXMuX2NvbnRleHQgPSBfLnJlamVjdCh0aGlzLl9jb250ZXh0LCB0b3BpYyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIGxvZ0ltcHJlc3Npb24ocGFnZUlkKSB7XG4gICAgdGhpcy5kaXNjdXNzaW9uRXZlbnRzLmVtaXRUZWxlbWV0cnkoe30pO1xuICAgIGNvbnN0IGltcHJlc3Npb25FdmVudDogSVRlbGVtZXRyeU9iaiA9IHtcbiAgICAgIGVpZDogJ0lNUFJFU1NJT04nLFxuICAgICAgZWRhdGE6IHtcbiAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICBwYWdlaWQ6IHBhZ2VJZCxcbiAgICAgICAgdXJpOiB0aGlzLnJvdXRlci51cmxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudE9iaikge1xuICAgICAgaW1wcmVzc2lvbkV2ZW50LmNvbnRleHQgPSB7IGNkYXRhOiBbe1xuICAgICAgICBpZDogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAnaWQnKS50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiBfLmdldCh0aGlzLmN1cnJlbnRPYmosICd0eXBlJykgfVxuICAgICAgXX07XG4gICAgfVxuICAgIHRoaXMuZGlzY3Vzc2lvbkV2ZW50cy5lbWl0VGVsZW1ldHJ5KGltcHJlc3Npb25FdmVudCk7XG4gIH1cblxuICBsb2dJbnRlcmFjdChldmVudCwgcGFnZUlkKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gXy5nZXQoZXZlbnQsICdjdXJyZW50VGFyZ2V0LmF0dHJpYnV0ZXMuaWQnKSB8fCAgXy5nZXQoZXZlbnQsICd0YXJnZXQuYXR0cmlidXRlcy5pZCcpIHx8XG4gICAgIF8uZ2V0KGV2ZW50LCAnc3JjRWxlbWVudC5hdHRyaWJ1dGVzLmlkJyk7XG4gICAgY29uc3QgaW50ZXJhY3RFdmVudDogSVRlbGVtZXRyeU9iaiA9IHtcbiAgICAgIGVpZDogJ0lOVEVSQUNUJyxcbiAgICAgIGVkYXRhOiB7XG4gICAgICAgIGlkOiBfLmdldCh0YXJnZXQsICd2YWx1ZScpIHx8IF8uZ2V0KGV2ZW50LCAnYWN0aW9uJyksXG4gICAgICAgIHR5cGU6ICdDTElDSycsXG4gICAgICAgIHBhZ2VpZDogcGFnZUlkXG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRPYmopIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgICAgaWQ6IF8uZ2V0KHRoaXMuY3VycmVudE9iaiwgJ2lkJykudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAndHlwZScpLFxuICAgICAgICB2ZXI6ICcxJ1xuICAgICAgfTtcbiAgICAgIG9iamVjdFsncm9sbHVwJ10gPSB0aGlzLl9jb250ZXh0Lmxlbmd0aCA+IDEgPyAgdGhpcy5nZXRSb2xsVXAoKSA6IHt9O1xuICAgICAgaW50ZXJhY3RFdmVudC5jb250ZXh0ID0ge1xuICAgICAgICBjZGF0YTogW3tcbiAgICAgICAgICBpZDogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAnaWQnKS50b1N0cmluZygpLFxuICAgICAgICAgIHR5cGU6IF8uZ2V0KHRoaXMuY3VycmVudE9iaiwgJ3R5cGUnKVxuICAgICAgICB9XSwgb2JqZWN0XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuZGlzY3Vzc2lvbkV2ZW50cy5lbWl0VGVsZW1ldHJ5KGludGVyYWN0RXZlbnQpO1xuICB9XG5cbiAgZ2V0Um9sbFVwKCkge1xuXG4gICAgICBjb25zdCByb2xsVXAgPSB7fTtcbiAgICAgIGNvbnN0IGRhdGEgPSBfLnJlamVjdCh0aGlzLl9jb250ZXh0LCB0aGlzLmN1cnJlbnRPYmopO1xuXG4gICAgICBpZiAodGhpcy5fY29udGV4dC5sZW5ndGggPiAxKSB7XG4gICAgICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygncm9sbHVwJywgZWxlbWVudCk7XG4gICAgICAgICAgcm9sbFVwWydsJyArIChpbmRleCArIDEpXSA9IGVsZW1lbnQudG9TdHJpbmcoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmdldCh0aGlzLmN1cnJlbnRPYmosICd0eXBlJykgIT09ICdQb3N0Jykge1xuICAgICAgICByZXR1cm4gcm9sbFVwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge307XG5cbiAgfVxuXG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs new file mode 100644 index 00000000000..96cca67e43a --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs @@ -0,0 +1,27 @@ +import { Injectable, EventEmitter } from '@angular/core'; +import { Subject } from 'rxjs'; +/* tslint:disable */ +import * as _ from 'lodash'; +import * as i0 from "@angular/core"; +/* tslint:enable */ +export class UciEventsService { + constructor() { + this.telemetryEvent = new Subject(); + this.actionEvent = new EventEmitter(); + } + emitTelemetry(event) { + // console.log('Lib Event', event); + if (!_.isEmpty(event)) { + this.telemetryEvent.next(event); + } + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return []; } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi91Y2ktZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7O0FBQzNCLG1CQUFtQjtBQUluQixNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCO1FBSE8sbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUU3QixDQUFDO0lBRWpCLGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7K0dBWlUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG4vKiB0c2xpbnQ6ZW5hYmxlICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVY2lFdmVudHNTZXJ2aWNlIHtcblxuICBwdWJsaWMgdGVsZW1ldHJ5RXZlbnQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBhY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgZW1pdFRlbGVtZXRyeShldmVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdMaWIgRXZlbnQnLCBldmVudCk7XG4gICAgaWYgKCFfLmlzRW1wdHkoZXZlbnQpKSB7XG4gICAgICB0aGlzLnRlbGVtZXRyeUV2ZW50Lm5leHQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs new file mode 100644 index 00000000000..0fd100e0fbd --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs @@ -0,0 +1,34 @@ +import { TelemetryUtilsService } from './telemetry-utils.service'; +import { LibEntryComponent } from './components/lib-entry/lib-entry.component'; +import { ComponentsModule } from './components/components.module'; +import { UciRoutingModule } from './uci-routing/uci-routing.module'; +import { NgModule } from '@angular/core'; +import { UciEventsService } from './uci-events.service'; +import * as i0 from "@angular/core"; +export function provideCsModule() { + return window['CsModule']; +} +export class UciModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciModule, declarations: [LibEntryComponent], imports: [ComponentsModule, + UciRoutingModule], exports: [LibEntryComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }], imports: [ComponentsModule, + UciRoutingModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + LibEntryComponent + ], + imports: [ + ComponentsModule, + UciRoutingModule + ], + exports: [ + LibEntryComponent + ], + providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvdWNpLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQUV0RCxNQUFNLFVBQVUsZUFBZTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBZUQsTUFBTSxPQUFPLFNBQVM7K0dBQVQsU0FBUztnSEFBVCxTQUFTLGlCQVhkLGlCQUFpQixhQUdqQixnQkFBZ0I7WUFDaEIsZ0JBQWdCLGFBR2hCLGlCQUFpQjtnSEFJWixTQUFTLGFBRlAsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBQyxDQUFDLFlBTnBHLGdCQUFnQjtZQUNoQixnQkFBZ0I7OzRGQU9YLFNBQVM7a0JBYnJCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBQyxDQUFDO2lCQUMzRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGVsZW1ldHJ5VXRpbHNTZXJ2aWNlfSBmcm9tICcuL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7TGliRW50cnlDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbXBvbmVudHNNb2R1bGV9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZSc7XG5pbXBvcnQge1VjaVJvdXRpbmdNb2R1bGV9IGZyb20gJy4vdWNpLXJvdXRpbmcvdWNpLXJvdXRpbmcubW9kdWxlJztcblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VWNpRXZlbnRzU2VydmljZX0gZnJvbSAnLi91Y2ktZXZlbnRzLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNzTW9kdWxlKCkge1xuICAgIHJldHVybiB3aW5kb3dbJ0NzTW9kdWxlJ107XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIExpYkVudHJ5Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIFVjaVJvdXRpbmdNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTGliRW50cnlDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1VjaUV2ZW50c1NlcnZpY2UsIFRlbGVtZXRyeVV0aWxzU2VydmljZSwge3Byb3ZpZGU6ICdDc01vZHVsZScsIHVzZUZhY3Rvcnk6IHByb3ZpZGVDc01vZHVsZX1dXG59KVxuZXhwb3J0IGNsYXNzIFVjaU1vZHVsZSB7XG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs new file mode 100644 index 00000000000..15d88b22a70 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs @@ -0,0 +1,55 @@ +import { LibEntryComponent } from '../components/lib-entry/lib-entry.component'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ConversationListComponent } from '../components/conversation-list/conversation-list.component'; +import { ConversationAddComponent } from '../components/conversation-add/conversation-add.component'; +import { ConversationSuccessComponent } from '../components/conversation-success/conversation-success.component'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +const routes = [ + { + path: '', + component: LibEntryComponent, + children: [ + { + path: 'home', + pathMatch: 'full', + component: ConversationListComponent + }, + { + path: 'add', + pathMatch: 'full', + component: ConversationAddComponent, + }, + { + path: ':id/edit', + pathMatch: 'full', + component: ConversationAddComponent, + }, + { + path: 'success', + pathMatch: 'full', + component: ConversationSuccessComponent, + }, + ] + } +]; +export class UciRoutingModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [i1.RouterModule, CommonModule], exports: [RouterModule] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [RouterModule.forChild(routes), + CommonModule, RouterModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [], + imports: [ + RouterModule.forChild(routes), + CommonModule + ], + exports: [RouterModule] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi91Y2ktcm91dGluZy91Y2ktcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR25HLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDOzs7QUFHL0csTUFBTSxNQUFNLEdBQVc7SUFDbkI7UUFDSSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsUUFBUSxFQUFFO1lBQ047Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLFNBQVMsRUFBRSx5QkFBeUI7YUFDdkM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUUsTUFBTTtnQkFDakIsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsTUFBTTtnQkFDakIsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixTQUFTLEVBQUUsNEJBQTRCO2FBQzFDO1NBQ0o7S0FDSjtDQUNKLENBQUM7QUFVRixNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQiw2QkFKckIsWUFBWSxhQUVOLFlBQVk7Z0hBRWIsZ0JBQWdCLFlBTHJCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzdCLFlBQVksRUFFTixZQUFZOzs0RkFFYixnQkFBZ0I7a0JBUjVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaWJFbnRyeUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29udmVyc2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb252ZXJzYXRpb24tbGlzdC9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25BZGRDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLWFkZC9jb252ZXJzYXRpb24tYWRkLmNvbXBvbmVudCc7XG5pbXBvcnQge1VzZXJTZWdtZW50TGlzdENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy91c2VyLXNlZ21lbnQtbGlzdC91c2VyLXNlZ21lbnQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtVc2VyU2VnbWVudEFkZENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy91c2VyLXNlZ21lbnQtYWRkL3VzZXItc2VnbWVudC1hZGQuY29tcG9uZW50JztcbmltcG9ydCB7Q29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb252ZXJzYXRpb24tc3VjY2Vzcy9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQnO1xuXG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogTGliRW50cnlDb21wb25lbnQsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ2hvbWUnLFxuICAgICAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ29udmVyc2F0aW9uTGlzdENvbXBvbmVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnYWRkJyxcbiAgICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJzppZC9lZGl0JyxcbiAgICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBVY2lSb3V0aW5nTW9kdWxlIHtcbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs new file mode 100644 index 00000000000..bed810eb7eb --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs @@ -0,0 +1,8 @@ +/* + * Public API Surface of discussion-ui + */ +export * from './lib/uci-module'; +export * from './lib/uci-events.service'; +export * from './lib/models/uci-config.model'; +export * from './lib/components/lib-entry/lib-entry.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWUsK0JBQStCLENBQUM7QUFDL0MsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZGlzY3Vzc2lvbi11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3VjaS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWNpLWV2ZW50cy5zZXJ2aWNlJztcbmV4cG9ydCAqICBmcm9tICcuL2xpYi9tb2RlbHMvdWNpLWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xpYi1lbnRyeS9saWItZW50cnkuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs new file mode 100644 index 00000000000..0367f7488ca --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './public-api'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtYWdyYS14LXVjaS1jb25zb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL3NhbWFncmEteC11Y2ktY29uc29sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs new file mode 100644 index 00000000000..9e4e78d7d98 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs @@ -0,0 +1,2195 @@ +import * as i0 from '@angular/core'; +import { EventEmitter, Injectable, Component, Input, NgModule, Output, ViewChild } from '@angular/core'; +import * as _ from 'lodash'; +import { Subject, BehaviorSubject, throwError } from 'rxjs'; +import * as i1 from '@angular/router'; +import { RouterModule } from '@angular/router'; +import * as i1$1 from '@angular/common/http'; +import { HttpHeaders, HttpClientModule } from '@angular/common/http'; +import { map, catchError, debounceTime } from 'rxjs/operators'; +import * as i5 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import * as i3 from '@angular/forms'; +import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { TagInputModule } from 'ngx-chips'; +import * as i6 from '@project-sunbird/ng2-semantic-ui'; +import { SuiModule } from '@project-sunbird/ng2-semantic-ui'; +import moment from 'moment/moment'; +import { CommonFormElementsModule } from '@project-sunbird/common-form-elements-full'; + +/* tslint:enable */ +class UciEventsService { + constructor() { + this.telemetryEvent = new Subject(); + this.actionEvent = new EventEmitter(); + } + emitTelemetry(event) { + // console.log('Lib Event', event); + if (!_.isEmpty(event)) { + this.telemetryEvent.next(event); + } + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return []; } }); + +class TelemetryUtilsService { + constructor(discussionEvents, router) { + this.discussionEvents = discussionEvents; + this.router = router; + this._context = []; + this.currentObj = {}; + } + setContext(context) { + this._context = context; + this.currentObj = _.last(context); + } + uppendContext(data) { + const matchedC = _.find(this._context, { id: data.id }); + if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) { + this._context.push(data); + } + this.currentObj = _.last(this._context); + } + deleteContext(prevTopic) { + const topic = _.find(this._context, prevTopic); + if (topic) { + this._context = _.reject(this._context, topic); + } + } + getContext() { + return this._context; + } + logImpression(pageId) { + this.discussionEvents.emitTelemetry({}); + const impressionEvent = { + eid: 'IMPRESSION', + edata: { + type: 'view', + pageid: pageId, + uri: this.router.url + } + }; + if (this.currentObj) { + impressionEvent.context = { cdata: [{ + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type') + } + ] }; + } + this.discussionEvents.emitTelemetry(impressionEvent); + } + logInteract(event, pageId) { + const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') || + _.get(event, 'srcElement.attributes.id'); + const interactEvent = { + eid: 'INTERACT', + edata: { + id: _.get(target, 'value') || _.get(event, 'action'), + type: 'CLICK', + pageid: pageId + } + }; + if (this.currentObj) { + const object = { + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type'), + ver: '1' + }; + object['rollup'] = this._context.length > 1 ? this.getRollUp() : {}; + interactEvent.context = { + cdata: [{ + id: _.get(this.currentObj, 'id').toString(), + type: _.get(this.currentObj, 'type') + }], object + }; + } + this.discussionEvents.emitTelemetry(interactEvent); + } + getRollUp() { + const rollUp = {}; + const data = _.reject(this._context, this.currentObj); + if (this._context.length > 1) { + data.forEach((element, index) => { + // console.log('rollup', element); + rollUp['l' + (index + 1)] = element.toString(); + }); + } + if (_.get(this.currentObj, 'type') !== 'Post') { + return rollUp; + } + return {}; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, deps: [{ token: UciEventsService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: UciEventsService }, { type: i1.Router }]; } }); + +var UciData; +(function (UciData) { + let IPageName; + (function (IPageName) { + IPageName["HOME"] = "uci-admin"; + IPageName["LIB_ENTRY"] = "lib-entry"; + })(IPageName = UciData.IPageName || (UciData.IPageName = {})); +})(UciData || (UciData = {})); + +class GlobalService { + constructor() { + this.user = new BehaviorSubject(undefined); + this.user$ = this.user.asObservable(); + this.baseUrl = new BehaviorSubject(undefined); + this.baseUrl$ = this.baseUrl.asObservable(); + } + setUser(user) { + this.user.next(user); + } + getUser() { + return this.user.value; + } + setBaseUrl(baseUrl) { + this.baseUrl.next(baseUrl); + } + getBaseUrl() { + return this.baseUrl.value; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return []; } }); + +class BaseService { + constructor(http, globalService) { + this.http = http; + this.globalService = globalService; + } + getDefaultHeaders() { + const headers = {}; + const user = this.globalService.getUser(); + if (user && user.id) { + headers.ownerID = user.id; + } + if (user && user.rootOrgId) { + headers.ownerOrgID = user.rootOrgId; + } + return headers; + } + getRequest(url, params = {}, headers = {}) { + headers = { + ...headers, + ...this.getDefaultHeaders() + }; + return this.http.get(url, { params, headers }).pipe(map((res) => { + return res.result; + }), catchError(err => { + return this.handleError(err); + })); + } + postRequest(url, data = {}, headers = {}) { + headers = { + ...headers, + ...this.getDefaultHeaders() + }; + return this.http.post(url, data, { headers }).pipe(map((res) => { + return res.result; + }), catchError(err => { + return this.handleError(err); + })); + } + handleError(error) { + if (error instanceof ErrorEvent) { + return throwError(error['error']['message']); + } + return throwError(error.error); + } + toFormData(formValue) { + const formData = new FormData(); + console.error("[UCI Console]", JSON.stringify(formValue)); + for (const key of Object.keys(formValue)) { + const value = formValue[key]; + formData.append(key, value); + } + return formData; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); + +class UciService extends BaseService { + constructor(http, globalService) { + super(http, globalService); + this.http = http; + this.globalService = globalService; + this.FORM_BASE_URL = 'https://dev.sunbirded.org/'; + this.globalService.baseUrl$.subscribe(value => { + if (value) { + this.BASE_URL = value + '/admin/v1/'; + } + }); + } + fetchConversation(params) { + return this.getRequest(this.BASE_URL + 'bot/get', params, { asset: 'bot' }); + } + searchConversation(params) { + return this.getRequest(this.BASE_URL + 'bot/search', params, { asset: 'bot' }); + } + pauseConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, { asset: 'bot' }); + } + startConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, { asset: 'bot' }); + } + deleteConversation(botId) { + return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, { asset: 'bot' }); + } + getBotUserDetails(id) { + return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, { asset: 'bot' }); + } + getCheckStartingMessage(param) { + return this.getRequest(this.BASE_URL + `bot/getByParam`, param, { asset: 'bot' }); + } + botCreate(data) { + return this.postRequest(this.BASE_URL + 'bot/create', data, { asset: 'bot' }); + } + botUpdate(id, data) { + return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, { asset: 'bot' }); + } + // User Segment APIs + fetchUserSegment(params) { + return this.getRequest(this.BASE_URL + 'userSegment/get', params, { asset: 'userSegment' }); + } + searchUserSegment(params) { + return this.getRequest(this.BASE_URL + 'userSegment/search', params, { asset: 'userSegment' }); + } + createUserSegment(data) { + return this.postRequest(this.BASE_URL + 'userSegment/create', data, { asset: 'userSegment' }); + } + userSegmentQueryBuilder(data) { + return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, { asset: 'userSegment' }); + } + // Conversation APIs + createLogic(data) { + return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, { asset: 'conversationLogic' }); + } + updateLogic(id, data) { + return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, { asset: 'conversationLogic' }); + } + deleteLogic(id) { + return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, { asset: 'conversationLogic' }); + } + // Mis APIs + uploadFile(obj) { + let headers = new HttpHeaders(); + headers = headers.set('Content-Type', 'multipart/form-data'); + return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), { headers }); + } + readForm(data) { + return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); + +class ConfigService { + constructor(activatedRoute, UciService) { + this.activatedRoute = activatedRoute; + this.UciService = UciService; + } + ngOnInit() { + } + setConfig(activatedRoute) { + activatedRoute.data.subscribe((config) => { + this._config = config.data; + }); + } + setConfigFromParams(activatedRoute) { + activatedRoute.queryParams.subscribe((params) => { + const obj = { + userName: _.get(params, 'userName'), + categories: JSON.parse(_.get(params, 'categories')) + }; + this._config = obj; + }); + } + getConfig() { + return this._config; + } + getCategories() { + this.getParams = this.getConfig(); + return _.get(this.getParams, 'categories'); + } + hasContext() { + this.hasContextData = this.getCategories() ? + (this.getCategories().result ? this.getCategories().result.length : null) + : null; + return this.hasContextData; + } + getContext() { + this.getContextData = this.getCategories() ? + (this.getCategories().result ? this.getCategories().result : null) + : null; + return this.getContextData; + } + getRouterSlug() { + return this._config.routerSlug ? this._config.routerSlug : ''; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1.ActivatedRoute }, { token: UciService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: UciService }]; } }); + +var categories = [ + { + cid: 1, + name: "Announcements", + description: "Check here for announcements about NodeBB", + icon: "fa-bullhorn", + slug: "1/announcements", + topic_count: 73, + disabled: 0, + order: 1, + bgColor: "#e57373", + link: "", + "class": "col-lg-4 col-md-6 col-xs-12", + numRecentReplies: 1, + color: "#ffffff", + post_count: 884, + parentCid: 0, + descriptionParsed: "

Check here for announcements about NodeBB

\n", + minTags: 0, + maxTags: 5, + isSection: 0, + totalPostCount: 854, + totalTopicCount: 73, + tagWhitelist: [ + ], + "unread-class": "unread", + children: [ + ], + posts: [ + { + pid: 79553, + timestamp: 1597704130970, + content: "

A bug in our validation logic made it possible to change the password of any user on a running NodeBB forum by sending a specially crafted socket.io call to the server.

\n

We have resolved this in the latest version of NodeBB, and the fix has already been rolled out as a patch on all of our hosted customers.

\n

For more information on the vulnerability as well as instructions on how to resolve this issue, please have a look here: https://github.com/NodeBB/NodeBB/security/advisories/GHSA-hr66-c8pg-5mg7

\n

Click here to see the full blog post

\n", + timestampISO: "2020-08-17T22:42:10.970Z", + user: { + uid: 3, + username: "psychobunny", + userslug: "psychobunny", + picture: "https://i.imgur.com/ltvPqkU.gif", + displayname: "psychobunny", + "icon:text": "P", + "icon:bgColor": "#f44336" + }, + index: 1, + cid: 1, + parentCid: 0, + topic: { + slug: "14967/nodebb-v1-14-3-a-critical-security-update", + title: "NodeBB v1.14.3: A Critical Security Update" + } + } + ], + teaser: { + url: "/post/79553", + timestampISO: "2020-08-17T22:42:10.970Z", + pid: 79553, + topic: { + slug: "14967/nodebb-v1-14-3-a-critical-security-update", + title: "NodeBB v1.14.3: A Critical Security Update" + } + } + }, + { + cid: 2, + name: "General Discussion", + description: "A place to talk about whatever you want", + icon: "fa-comment", + slug: "2/general-discussion", + topic_count: 3188, + order: 2, + bgColor: "#ba68c8", + link: "", + "class": "col-lg-4 col-md-6 col-xs-12", + numRecentReplies: 1, + color: "#ffffff", + post_count: 20024, + descriptionParsed: "

A place to talk about whatever you want

\n", + minTags: 0, + maxTags: 5, + parentCid: 0, + disabled: 0, + isSection: 0, + totalPostCount: 20024, + totalTopicCount: 3188, + tagWhitelist: [ + ], + "unread-class": "", + children: [ + ], + posts: [ + { + pid: 80371, + timestamp: 1605714102926, + content: "

@gotwf pardon the late response, I've adopted your suggestion, thanks!

\n

@julian good to know! And apparently my spammers were all \"human-powered\"; ever since I made the changes suggested by @baris the blacklist hits and spam accounts have dropped to zero!

\n

Hopefully it stays that way so I can focus on content

\n

Cheers

\n", + timestampISO: "2020-11-18T15:41:42.926Z", + user: { + uid: 19985, + username: "Nefarius", + userslug: "nefarius", + picture: "https://i.imgur.com/v798aRw.png", + displayname: "Nefarius", + "icon:text": "N", + "icon:bgColor": "#673ab7" + }, + index: 6, + cid: 2, + parentCid: 0, + topic: { + slug: "15119/spam-registration-amount-and-handling-is-unbearable", + title: "Spam registration amount and handling is unbearable" + } + } + ], + teaser: { + url: "/post/80371", + timestampISO: "2020-11-18T15:41:42.926Z", + pid: 80371, + topic: { + slug: "15119/spam-registration-amount-and-handling-is-unbearable", + title: "Spam registration amount and handling is unbearable" + } + } + }, + { + link: "", + "class": "col-lg-4 col-md-6 col-xs-12", + icon: "fa-github", + description: "Stay tuned here to hear more about new releases and features of NodeBB!", + order: 3, + topic_count: 1158, + name: "NodeBB Development", + cid: 3, + post_count: 6760, + numRecentReplies: 1, + bgColor: "#4fc3f7", + slug: "3/nodebb-development", + color: "#ffffff", + disabled: 0, + descriptionParsed: "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", + isSection: 0, + minTags: 0, + maxTags: 5, + parentCid: 0, + totalPostCount: 17980, + totalTopicCount: 2992, + tagWhitelist: [ + ], + "unread-class": "unread", + children: [ + { + cid: 5, + name: "Feature Requests", + description: "You have a cool idea about NodeBB? Post it here.", + icon: "fa-lightbulb-o", + slug: "5/feature-requests", + topic_count: 692, + order: 1, + bgColor: "#ffb74d", + link: "", + "class": "col-lg-4 col-md-6 col-xs-12", + numRecentReplies: 1, + color: "#ffffff", + post_count: 4176, + parentCid: 3, + disabled: 0, + minTags: 0, + maxTags: 5, + isSection: 0, + totalPostCount: 4176, + totalTopicCount: 692, + descriptionParsed: "You have a cool idea about NodeBB? Post it here.", + tagWhitelist: [ + ], + "unread-class": "unread", + children: [ + ], + parent: { + link: "", + "class": "col-lg-4 col-md-6 col-xs-12", + icon: "fa-github", + description: "Stay tuned here to hear more about new releases and features of NodeBB!", + order: 3, + topic_count: 1158, + name: "NodeBB Development", + cid: 3, + post_count: 6760, + numRecentReplies: 1, + bgColor: "#4fc3f7", + slug: "3/nodebb-development", + color: "#ffffff", + disabled: 0, + descriptionParsed: "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", + isSection: 0, + minTags: 0, + maxTags: 5, + parentCid: 0, + totalPostCount: 6760, + totalTopicCount: 1158, + tagWhitelist: [ + ], + "unread-class": "unread" + }, + posts: [ + { + pid: 80380, + timestamp: 1605820679025, + content: "

@julian if this makes sense to you, do you think this can be a part of \"canned responses\" plugin?

\n", + timestampISO: "2020-11-19T21:17:59.025Z", + user: { + uid: 16848, + username: "crazycells", + userslug: "crazycells", + picture: "https://i.imgur.com/fnkHctr.png", + displayname: "crazycells", + "icon:text": "C", + "icon:bgColor": "#009688" + }, + index: 2, + cid: 5, + parentCid: 3, + topic: { + slug: "15137/canned-explanations-reasons-for-user-ban", + title: "canned explanations(reasons) for user ban" + } + } + ] + } + ] + } +]; +var topics = [ + { + cid: 13, + lastposttime: 1606632795076, + mainPid: 17647, + postcount: 1, + slug: "8917/hello-this-is-my-new-post", + tid: 8917, + timestamp: 1606632795069, + title: "Hello this is my new post", + uid: 104, + viewcount: 1, + deleted: 0, + locked: 0, + pinned: 0, + upvotes: 0, + downvotes: 0, + deleterUid: 0, + titleRaw: "Hello this is my new post", + timestampISO: "2020-11-29T06:53:15.069Z", + lastposttimeISO: "2020-11-29T06:53:15.076Z", + votes: 0, + teaserPid: null, + category: { + cid: 13, + name: "Administration", + slug: "13/administration", + icon: "fa-comments", + backgroundImage: null, + imageClass: "cover", + bgColor: "#DC9656", + color: "#fff", + disabled: 0 + }, + user: { + uid: 104, + username: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + fullname: "arunkumar pilli", + userslug: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + reputation: 0, + postcount: 1, + picture: null, + signature: null, + banned: 0, + status: "online", + "icon:text": "5", + "icon:bgColor": "#1b5e20", + banned_until_readable: "Not Banned" + }, + teaser: { + pid: 17647, + uid: 104, + timestamp: 1606632795076, + tid: 8917, + content: "adding new post in igot discussions\n", + timestampISO: "2020-11-29T06:53:15.076Z", + user: { + uid: 104, + username: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + userslug: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", + picture: null, + "icon:text": "5", + "icon:bgColor": "#1b5e20" + }, + index: 1 + }, + tags: [ + ], + isOwner: false, + ignored: false, + unread: true, + bookmark: 3, + unreplied: false, + icons: [ + ], + index: 0 + }, + { + cid: 9, + lastposttime: 1606297869195, + mainPid: 17635, + postcount: 5, + slug: "8912/why-is-bangalore-s-infrastructure-bad", + tid: 8912, + timestamp: 1606134890874, + title: "Why is Bangalore's infrastructure bad?", + uid: 113, + viewcount: 36, + downvotes: 0, + upvotes: 2, + teaserPid: 17646, + deleted: 0, + locked: 0, + pinned: 0, + deleterUid: 0, + titleRaw: "Why is Bangalore's infrastructure bad?", + timestampISO: "2020-11-23T12:34:50.874Z", + lastposttimeISO: "2020-11-25T09:51:09.195Z", + votes: 2, + category: { + cid: 9, + name: "Infrastructure", + slug: "9/infrastructure", + icon: "fa-comments", + backgroundImage: null, + imageClass: "cover", + bgColor: "#86C1B9", + color: "#333", + disabled: 0 + }, + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + fullname: "Manimegalai Mohan", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + reputation: 3, + postcount: 16, + picture: null, + signature: null, + banned: 0, + status: "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + banned_until_readable: "Not Banned" + }, + teaser: { + pid: 17635, + uid: 113, + timestamp: 1606134890882, + tid: 8912, + content: "Why is Bangalore's infrastructure bad?\n", + timestampISO: "2020-11-23T12:34:50.882Z", + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + picture: null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + index: 1 + }, + tags: [ + ], + isOwner: false, + ignored: false, + unread: true, + bookmark: 7, + unreplied: false, + icons: [ + ], + index: 1 + }, + { + cid: 13, + lastposttime: 1606201083049, + mainPid: 17645, + postcount: 1, + slug: "8916/origin-of-solar-system", + tid: 8916, + timestamp: 1606201083043, + title: "Origin of Solar system", + uid: 113, + viewcount: 10, + deleted: 0, + locked: 0, + pinned: 0, + upvotes: 0, + downvotes: 0, + deleterUid: 0, + titleRaw: "Origin of Solar system", + timestampISO: "2020-11-24T06:58:03.043Z", + lastposttimeISO: "2020-11-24T06:58:03.049Z", + votes: 0, + teaserPid: null, + category: { + cid: 13, + name: "Administration", + slug: "13/administration", + icon: "fa-comments", + backgroundImage: null, + imageClass: "cover", + bgColor: "#DC9656", + color: "#fff", + disabled: 0 + }, + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + fullname: "Manimegalai Mohan", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + reputation: 3, + postcount: 16, + picture: null, + signature: null, + banned: 0, + status: "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + banned_until_readable: "Not Banned" + }, + teaser: { + pid: 17645, + uid: 113, + timestamp: 1606201083049, + tid: 8916, + content: "Solar system\n", + timestampISO: "2020-11-24T06:58:03.049Z", + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + picture: null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + index: 1 + }, + tags: [ + ], + isOwner: false, + ignored: false, + unread: true, + bookmark: 3, + unreplied: false, + icons: [ + ], + index: 2 + }, + { + cid: 11, + lastposttime: 1606198830431, + mainPid: 17644, + postcount: 1, + slug: "8915/who-opened-up-the-indian-economy", + tid: 8915, + timestamp: 1606198830424, + title: "Who opened up the indian economy?", + uid: 113, + viewcount: 5, + deleted: 0, + locked: 0, + pinned: 0, + upvotes: 0, + downvotes: 0, + deleterUid: 0, + titleRaw: "Who opened up the indian economy?", + timestampISO: "2020-11-24T06:20:30.424Z", + lastposttimeISO: "2020-11-24T06:20:30.431Z", + votes: 0, + teaserPid: null, + category: { + cid: 11, + name: "Economy", + slug: "11/economy", + icon: "fa-comments", + backgroundImage: null, + imageClass: "cover", + bgColor: "#F7CA88", + color: "#333", + disabled: 0 + }, + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + fullname: "Manimegalai Mohan", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + reputation: 3, + postcount: 16, + picture: null, + signature: null, + banned: 0, + status: "offline", + "icon:text": "1", + "icon:bgColor": "#3f51b5", + banned_until_readable: "Not Banned" + }, + teaser: { + pid: 17644, + uid: 113, + timestamp: 1606198830431, + tid: 8915, + content: "Who opened up the indian economy?\n", + timestampISO: "2020-11-24T06:20:30.431Z", + user: { + uid: 113, + username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", + picture: null, + "icon:text": "1", + "icon:bgColor": "#3f51b5" + }, + index: 1 + }, + tags: [ + ], + isOwner: false, + ignored: false, + unread: true, + bookmark: 3, + unreplied: false, + icons: [ + ], + index: 3 + }, + { + cid: 11, + lastposttime: 1606135442960, + mainPid: 17637, + postcount: 4, + slug: "8914/how-covid-will-impact-indian-economy", + tid: 8914, + timestamp: 1606135371841, + title: "How covid will impact indian economy ?", + uid: 5, + viewcount: 10, + teaserPid: 17640, + deleted: 0, + locked: 0, + pinned: 0, + upvotes: 0, + downvotes: 0, + deleterUid: 0, + titleRaw: "How covid will impact indian economy ?", + timestampISO: "2020-11-23T12:42:51.841Z", + lastposttimeISO: "2020-11-23T12:44:02.960Z", + votes: 0, + category: { + cid: 11, + name: "Economy", + slug: "11/economy", + icon: "fa-comments", + backgroundImage: null, + imageClass: "cover", + bgColor: "#F7CA88", + color: "#333", + disabled: 0 + }, + user: { + uid: 5, + username: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + fullname: "Christopher F'des", + userslug: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + reputation: 8, + postcount: 13, + picture: null, + signature: null, + banned: 0, + status: "offline", + "icon:text": "9", + "icon:bgColor": "#ff5722", + banned_until_readable: "Not Banned" + }, + teaser: { + pid: 17637, + uid: 5, + timestamp: 1606135371849, + tid: 8914, + content: "How covid will impact indian economy ?\n", + timestampISO: "2020-11-23T12:42:51.849Z", + user: { + uid: 5, + username: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + userslug: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", + picture: null, + "icon:text": "9", + "icon:bgColor": "#ff5722" + }, + index: 1 + }, + tags: [ + ], + isOwner: false, + ignored: false, + unread: true, + bookmark: 6, + unreplied: false, + icons: [ + ], + index: 4 + } +]; +var ROUTES = { + UCI: "/uci" +}; +var MENUOPTIONS = [ + { + route: "uci", + label: "Conversations", + enable: true + } +]; +var constants = { + categories: categories, + topics: topics, + ROUTES: ROUTES, + MENUOPTIONS: MENUOPTIONS +}; + +/* tslint:enable */ +class SidePanelComponent { + constructor(router, uciService, activatedRoute, telemetryUtils, configService) { + this.router = router; + this.uciService = uciService; + this.activatedRoute = activatedRoute; + this.telemetryUtils = telemetryUtils; + this.configService = configService; + this.defaultPage = 'categories'; + this.menu = []; + this.showSideMenu = true; + } + ngOnInit() { + // TODO: loader or spinner + this.telemetryUtils.setContext([]); + this.hideSidePanel = document.body.classList.contains('widget'); + this.telemetryUtils.logImpression(UciData.IPageName.HOME); + this.data = this.configService.getConfig(); + const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : MENUOPTIONS; + for (let i = 0; i < menuArr.length; i++) { + if (menuArr[i].enable) { + this.menu.push(menuArr[i]); + } + } + } + isActive(selectedItem) { + if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) { + if (!this.selectedTab) { + this.selectedTab = selectedItem; + } + return true; + } + else if (selectedItem === 'categories' && !this.selectedTab) { + return true; + } + return false; + } + navigate(pageName, event) { + this.selectedTab = pageName; + this.telemetryUtils.setContext([]); + if (event) { + this.telemetryUtils.logInteract(event, UciData.IPageName.HOME); + } + this.router.navigate([`uci-admin`], { queryParamsHandling: 'merge' }); + this.closeNav(); + } + ngOnDestroy() { + if (this.paramsSubscription) { + this.paramsSubscription.unsubscribe(); + } + } + showMenuButton() { + this.showSideMenu = this.showSideMenu ? false : true; + } + closeNav() { + this.showSideMenu = this.showSideMenu ? false : true; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, deps: [{ token: i1.Router }, { token: UciService }, { token: i1.ActivatedRoute }, { token: TelemetryUtilsService }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SidePanelComponent, selector: "lib-side-panel", ngImport: i0, template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-side-panel', template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"] }] + }], ctorParameters: function () { return [{ type: i1.Router }, { type: UciService }, { type: i1.ActivatedRoute }, { type: TelemetryUtilsService }, { type: ConfigService }]; } }); + +class LibEntryComponent { + constructor(activatedRoute, uciService, configService, location, uciEventsService, telemetryUtils, globalService, router) { + this.activatedRoute = activatedRoute; + this.uciService = uciService; + this.configService = configService; + this.location = location; + this.uciEventsService = uciEventsService; + this.telemetryUtils = telemetryUtils; + this.globalService = globalService; + this.router = router; + } + ngOnInit() { + if (this.user) { + this.globalService.setUser(this.user); + } + if (this.baseUrl) { + this.globalService.setBaseUrl(this.baseUrl); + } + if (this.router.url === '/uci-admin') { + this.router.navigate(['uci-admin/home']); + } + } + goBack() { + this.location.back(); + } + close(event) { + const eventAction = { + action: 'DF_CLOSE' + }; + this.uciEventsService.emitTelemetry(eventAction); + this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, deps: [{ token: i1.ActivatedRoute }, { token: UciService }, { token: ConfigService }, { token: i5.Location }, { token: UciEventsService }, { token: TelemetryUtilsService }, { token: GlobalService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LibEntryComponent, selector: "lib-lib-entry", inputs: { user: "user", baseUrl: "baseUrl" }, ngImport: i0, template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"], dependencies: [{ kind: "component", type: SidePanelComponent, selector: "lib-side-panel" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-lib-entry', template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"] }] + }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: UciService }, { type: ConfigService }, { type: i5.Location }, { type: UciEventsService }, { type: TelemetryUtilsService }, { type: GlobalService }, { type: i1.Router }]; }, propDecorators: { user: [{ + type: Input + }], baseUrl: [{ + type: Input + }] } }); + +class PipesModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [], + imports: [ + CommonModule + ], + exports: [] + }] + }] }); + +class ConversationListComponent { + constructor(uciService, router, globalService) { + this.uciService = uciService; + this.router = router; + this.globalService = globalService; + this.chatBots = []; + this.pager = { + totalItems: 0, + currentPage: 1, + pageSize: 10, + totalPages: 0, + startPage: 0, + endPage: 0, + startIndex: 0, + endIndex: 0, + pages: [] + }; + this.pageNumber = 1; + this.column = ''; + this.sortDirection = ''; + this.reverse = false; + } + ngOnInit() { + this.user = this.globalService.getUser(); + if (!this.user) { + this.router.navigate(['uci-admin']); + return; + } + this.getAllChatBots(); + } + getAllChatBots() { + const param = { + page: this.pager.currentPage, + perPage: this.pager.pageSize + }; + if (this.search) { + param.name = this.search; + this.uciService.searchConversation(param).subscribe(data => this.parseConversations(data)); + } + else { + this.uciService.fetchConversation(param).subscribe(data => this.parseConversations(data)); + } + } + parseConversations(data) { + this.chatBots = []; + data.data.forEach(bot => { + const obj = { ...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft' }; + obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft'; + const segmentNames = []; + bot.userSegments.forEach(userSegment => { + segmentNames.push(userSegment.name); + obj.userCount += (userSegment.count || 0); + }); + obj.segmentText = segmentNames.join(', '); + this.chatBots.push(obj); + }); + this.pager.totalItems = data.total; + this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); + this.pager.pages = []; + let i = 1; + while (i <= Math.ceil(data.total / this.pager.pageSize)) { + this.pager.pages.push(i); + i++; + } + } + sortColumns(column) { + this.column = column; + this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc'; + this.reverse = !this.reverse; + } + navigateToPage(page) { + if (page < 1 || page > this.pager.totalPages) { + return; + } + this.pageNumber = page; + this.pager.currentPage = page; + this.getAllChatBots(); + } + getSearch() { + this.getAllChatBots(); + } + onAddNew() { + this.router.navigateByUrl('uci-admin/add'); + } + onEdit(conversation) { + this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`); + } + onStatusChange(conversation, index) { + if (conversation.status === 'Live') { + this.uciService.pauseConversation(conversation.id).subscribe(data => { + this.chatBots[index].status = 'Disabled'; + }); + } + else { + this.uciService.startConversation(conversation.id).subscribe(data => { + this.chatBots[index].status = 'Live'; + }); + } + } + onDelete(conversation, index) { + this.uciService.deleteConversation(conversation.id).subscribe(data => { + this.chatBots.splice(index, 1); + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, deps: [{ token: UciService }, { token: i1.Router }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationListComponent, selector: "lib-conversation-list", ngImport: i0, template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-list', template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"] }] + }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }, { type: GlobalService }]; } }); + +class UserSegmentListComponent { + constructor(uciService, route) { + this.uciService = uciService; + this.route = route; + this.cancel = new EventEmitter(); + this.add = new EventEmitter(); + this.selectedUserSegments = []; + this.userSegments = []; + this.selectedUserSegmentMap = {}; + this.pager = { + totalItems: 0, + currentPage: 1, + pageSize: 10, + totalPages: 0, + startPage: 0, + endPage: 0, + startIndex: 0, + endIndex: 0, + pages: [] + }; + this.pageNumber = 1; + this.column = ''; + this.reverse = false; + } + ngOnInit() { + this.selectedUserSegments.forEach(selectedUserSegment => { + this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment; + }); + this.getUserSegment(); + } + getUserSegment() { + const param = { + page: this.pager.currentPage, + perPage: this.pager.pageSize + }; + if (this.search) { + param.name = this.search; + this.uciService.searchUserSegment(param).subscribe(data => this.parseUserSegments(data)); + } + else { + this.uciService.fetchUserSegment(param).subscribe(data => this.parseUserSegments(data)); + } + } + parseUserSegments(data) { + this.userSegments = data.data; + this.pager.totalItems = data.total; + this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); + this.pager.pages = []; + let i = 1; + while (i <= Math.ceil(data.total / this.pager.pageSize)) { + this.pager.pages.push(i); + i++; + } + } + navigateToPage(page) { + if (page < 1 || page > this.pager.totalPages) { + return; + } + this.pageNumber = page; + this.pager.currentPage = page; + this.getUserSegment(); + } + getSearch() { + this.getUserSegment(); + } + onCancel() { + this.cancel.emit(false); + } + onCheck(event, userSegment) { + if (event.target.checked) { + this.selectedUserSegmentMap[userSegment.id] = userSegment; + } + else { + delete this.selectedUserSegmentMap[userSegment.id]; + } + } + onAdd() { + this.add.emit(Object.values(this.selectedUserSegmentMap)); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, deps: [{ token: UciService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: { selectedUserSegments: "selectedUserSegments" }, outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-user-segment-list', template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"] }] + }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }]; }, propDecorators: { cancel: [{ + type: Output + }], add: [{ + type: Output + }], selectedUserSegments: [{ + type: Input + }] } }); + +class UciGraphQlService extends BaseService { + constructor(http, globalService) { + super(http, globalService); + this.http = http; + this.globalService = globalService; + this.globalService.baseUrl$.subscribe(value => { + if (value) { + this.BASE_URL = value + '/v1/graphql'; + } + }); + } + getState() { + return this.baseRequest({ + query: `query getListOfStates{ + organisation(distinct_on:state){ + state}}` + }); + } + getDistrict(param) { + return this.baseRequest({ + query: `query getListOfDistrictInState($state:String){ + organisation(where:{state:{_eq:$state}}, distinct_on:district){ + state + district}}`, + variables: param + }); + } + getBlock(param) { + return this.baseRequest({ + query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){ + blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){ + block + district + state + } + }`, + variables: param + }); + } + getSchoolDetails(param) { + return this.baseRequest({ + query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){ + schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){ + school + school_code + block + district + state + } + }`, + variables: param + }); + } + getClusters(param) { + return this.baseRequest({ + query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){ + clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){ + cluster + } + }`, + variables: param + }); + } + getRole() { + return this.baseRequest({ + query: `query fetchListOfRoles{ + role{ + id + name + } + }` + }); + } + getBoards() { + return this.baseRequest({ + query: `query listOfBoards{ + board{ + id + name}}` + }); + } + baseRequest(body) { + return this.http.post(this.BASE_URL, body, {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } + static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, providedIn: 'root' }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, decorators: [{ + type: Injectable, + args: [{ + providedIn: 'root' + }] + }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); + +class UserSegmentAddComponent { + constructor(uciService, fb, uciGraphQlService) { + this.uciService = uciService; + this.fb = fb; + this.uciGraphQlService = uciGraphQlService; + this.cancel = new EventEmitter(); + this.add = new EventEmitter(); + this.userSegment = {}; + this.isLoaderShow = false; + this.districts = []; + this.blocks = []; + this.schools = []; + this.clusters = []; + this.roles = []; + this.boards = []; + this.grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]; + this.subjects = []; + this.state = 'Haryana'; + } + ngOnInit() { + this.getUciDistrict(); + this.getUciRole(); + this.getUciBoard(); + this.userSegmentForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + district: [''], + block: [''], + cluster: [''], + school: [''], + role: [''], + board: [''], + grade: [''], + subject: [''] + }); + this.userSegmentForm.get('district').valueChanges.subscribe(item => { + if (item) { + this.userSegmentForm.get('block').patchValue(''); + this.blocks = []; + this.userSegmentForm.get('cluster').patchValue(''); + this.userSegmentForm.get('school').patchValue(''); + this.schools = []; + this.clusters = []; + this.getUciBlock(); + } + }); + this.userSegmentForm.get('block').valueChanges.subscribe(item => { + if (item) { + this.userSegmentForm.get('cluster').patchValue(''); + this.userSegmentForm.get('school').patchValue(''); + this.schools = []; + this.clusters = []; + this.getUciCluster(); + this.getUciSchoolDetails(); + } + }); + } + onCancel() { + this.cancel.emit(false); + } + onAdd() { + if (this.userSegmentForm.invalid) { + return; + } + this.isLoaderShow = true; + const formValue = this.userSegmentForm.value; + const locationData = []; + const blockData = []; + const districtData = []; + for (const school of this.schools) { + if (formValue.school.indexOf(school.school) !== -1) { + locationData.push(school); + if (blockData.indexOf(school.block) === -1) { + blockData.push(school.block); + districtData.push(school.district); + } + } + if (locationData.length === formValue.school) { + break; + } + } + if (blockData.length < formValue.block.length) { + for (const block of this.blocks) { + if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) { + locationData.push(block); + blockData.push(block.block); + districtData.push(block.district); + } + if (blockData.length === formValue.block) { + break; + } + } + } + if (districtData.length < formValue.district.length) { + for (const district of this.districts) { + if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) { + locationData.push(district); + } + } + } + const param = { + data: { + userLocation: locationData, + roles: formValue.role, + userType: { + type: 'student' + }, + framework: { + board: formValue.board, + gradeLevel: formValue.grade + } + } + }; + this.uciService.userSegmentQueryBuilder(param).subscribe(response => { + if (response) { + const items = { + ...response, + name: formValue.name, + description: formValue.description + }; + this.uciService.createUserSegment({ data: items }).subscribe((data) => { + this.isLoaderShow = false; + this.afterAdd(data.inserted); + }, err => { + this.isLoaderShow = false; + }); + } + }, error => { + this.isLoaderShow = false; + }); + } + afterAdd(data) { + this.add.emit(data); + } + getUciState() { + this.uciGraphQlService.getState().subscribe(res => { + }); + } + getUciDistrict() { + const params = { + state: this.state + }; + this.uciGraphQlService.getDistrict(params).subscribe((res) => { + this.districts = []; + if (res && res.data && res.data.organisation && res.data.organisation.length) { + this.districts = res.data.organisation; + } + }); + } + getUciBlock() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district + }; + this.uciGraphQlService.getBlock(params).subscribe((res) => { + this.blocks = []; + if (res && res.data && res.data.blocks && res.data.blocks.length) { + this.blocks = res.data.blocks; + } + }); + } + getUciCluster() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district, block: formVal.block + }; + this.uciGraphQlService.getClusters(params).subscribe((res) => { + this.clusters = []; + if (res && res.data && res.data.clusters && res.data.clusters.length) { + if (res.data.clusters[0].cluster) { + this.clusters = res.data.clusters; + } + } + }); + } + getUciSchoolDetails() { + const formVal = this.userSegmentForm.value; + const params = { + state: this.state, district: formVal.district, block: formVal.block + }; + this.uciGraphQlService.getSchoolDetails(params).subscribe((res) => { + this.schools = []; + if (res && res.data && res.data.schools && res.data.schools.length) { + this.schools = res.data.schools; + } + }); + } + getUciRole() { + this.uciGraphQlService.getRole().subscribe((res) => { + if (res && res.data && res.data.role && res.data.role.length) { + this.roles = res.data.role; + } + }); + } + getUciBoard() { + this.uciGraphQlService.getBoards().subscribe((res) => { + if (res && res.data && res.data.board && res.data.board.length) { + this.boards = res.data.board; + } + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, deps: [{ token: UciService }, { token: i3.UntypedFormBuilder }, { token: UciGraphQlService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "component", type: i6.SuiSelectOption, selector: "sui-select-option", inputs: ["value"], outputs: ["onSelected"] }, { kind: "component", type: i6.SuiMultiSelect, selector: "sui-multi-select", inputs: ["hasLabels", "placeholder", "maxSelected", "zeroSelectionText", "defaultSelectionText"], outputs: ["selectedOptionsChange"] }, { kind: "directive", type: i6.SuiMultiSelectValueAccessor, selector: "sui-multi-select" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-user-segment-add', template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"] }] + }], ctorParameters: function () { return [{ type: UciService }, { type: i3.UntypedFormBuilder }, { type: UciGraphQlService }]; }, propDecorators: { cancel: [{ + type: Output + }], add: [{ + type: Output + }] } }); + +class TermsConditionsComponent { + constructor() { + } + ngOnInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TermsConditionsComponent, selector: "lib-terms-conditions", ngImport: i0, template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiTabset, selector: "sui-tabset" }, { kind: "directive", type: i6.SuiTabHeader, selector: "[suiTabHeader]", inputs: ["suiTabHeader", "isActive", "isDisabled"], outputs: ["isActiveChange", "activate", "deactivate"] }, { kind: "directive", type: i6.SuiTabContent, selector: "[suiTabContent]", inputs: ["suiTabContent"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-terms-conditions', template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"] }] + }], ctorParameters: function () { return []; } }); + +class ConversationAddComponent { + constructor(uciService, router, activatedRoute, fb, globalService) { + this.uciService = uciService; + this.router = router; + this.activatedRoute = activatedRoute; + this.fb = fb; + this.globalService = globalService; + this.currentViewState = 'ADD_CONVERSATION'; + this.stepIndex = 1; + this.selectedLogic = []; + this.userSegments = []; + this.column = ''; + this.sortDirection = ''; + this.reverse = false; + this.collectionListModal = false; + this.isLoaderShow = false; + this.isModalLoaderShow = false; + this.logicFormRequest = {}; + this.isCheckedTermCondition = false; + this.termsAndConditionModal = false; + this.verifyAllItemsModal = false; + this.startMinDate = new Date(); + this.Appropriateness = [ + { + text: 'No Hate speech, Abuse, Violence, Profanity', + checks: false + }, + { + text: 'No Sexual content, Nudity or Vulgarity', + checks: false + }, + { + text: 'No Discrimination or Defamation', + checks: false + }, + { + text: 'Is suitable for children', + checks: false + } + ]; + this.contentDetails = [ + { + text: 'Appropriate Title, Description', + checks: false + }, + { + text: 'Correct Board, Grade, Subject, Medium', + checks: false + }, + { + text: 'Appropriate tags such as Resource Type, Concepts', + checks: false + }, + { + text: 'Relevant keywords', + checks: false + } + ]; + this.usability = [ + { + text: 'Content plays correctly', + checks: false + }, + { + text: 'Can see the content clearly on Desktop and App', + checks: false + }, + { + text: 'Audio (if any) is clear and easy to understand', + checks: false + }, + { + text: 'No spelling mistakes in the text', + checks: false + }, + { + text: 'Language is simple to understand', + checks: false + } + ]; + this.odkFileAlreadyExist = false; + this.isStartingMessageExist = false; + const tempDate = moment().add(1, 'days').format('YYYY-MM-DD'); + this.endMinDate = new Date(tempDate); + } + ngOnInit() { + this.user = this.globalService.getUser(); + if (!this.user) { + this.router.navigate(['uci-admin']); + return; + } + this.conversationForm = this.fb.group({ + name: ['', Validators.required], + description: [''], + purpose: ['', Validators.required], + startingMessage: ['', Validators.required], + startDate: [null], + endDate: [null], + status: ['Draft'] + }); + this.logicForm = this.fb.group({ + id: [null], + name: ['', Validators.required], + description: [''], + formId: ['', Validators.required] + }); + // Edit case + this.conversationId = this.activatedRoute.snapshot.paramMap.get('id'); + if (this.conversationId) { + this.getUserSegmentDetail(); + } + // start date and end date value change + this.conversationForm.get('startDate').valueChanges.subscribe(val => { + this.conversationForm.get('endDate').patchValue(null); + const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD'); + this.endMinDate = new Date(tempDate); + }); + this.conversationForm.get('startingMessage').valueChanges + .pipe(debounceTime(1000)) + .subscribe(value => { + this.onStarringMessageChange(); + }); + } + userSegment() { + this.currentViewState = 'SELECT_SEGMENT'; + } + onUserSegmentCancel() { + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentAddClick() { + this.currentViewState = 'ADD_SEGMENT'; + } + onUserSegmentAdd(segments) { + this.userSegments = segments; + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentCreate(segment) { + this.userSegments.push(segment); + this.currentViewState = 'ADD_CONVERSATION'; + } + onUserSegmentDelete(index) { + this.userSegments.splice(index, 1); + } + nextStep() { + if (this.stepIndex === 1 && this.conversationForm.valid) { + this.stepIndex = 2; + } + } + backToStepOne() { + if (this.stepIndex === 2) { + this.stepIndex = 1; + } + } + onAddCancel() { + this.router.navigate(['uci-admin']); + } + onSubmit(isTriggerBot = false) { + const reqObj = { + ...this.conversationForm.value, + users: [], + logic: [] + }; + this.userSegments.forEach(userSegment => { + reqObj.users.push(userSegment.id); + }); + this.selectedLogic.forEach(logic => { + reqObj.logic.push(logic.id); + }); + this.isLoaderShow = true; + if (this.conversationId) { + this.uciService.botUpdate(this.conversationId, { data: reqObj }).subscribe(data => { + this.closeVerifyModal(); + this.isLoaderShow = false; + this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: this.conversationId } }); + }, error => { + this.isLoaderShow = false; + this.verifyAllItemsModal = true; + }); + } + else { + this.uciService.botCreate({ data: reqObj }).subscribe((data) => { + if (isTriggerBot) { + this.startConversation(data.data); + } + else { + this.closeVerifyModal(); + this.isLoaderShow = false; + this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: data.data.id } }); + } + }, error => { + this.isLoaderShow = false; + this.verifyAllItemsModal = true; + }); + } + } + startConversation(bot) { + this.uciService.startConversation(bot.id).subscribe(data => { + this.isLoaderShow = false; + this.closeVerifyModal(); + this.router.navigate(['uci-admin/success'], { + queryParams: { + text: this.conversationForm.value.startingMessage, + botId: bot.id + } + }); + }, error => { + this.verifyAllItemsModal = true; + this.isLoaderShow = false; + }); + } + closeVerifyModal() { + if (this.verifyAllModal) { + this.verifyAllModal.deny('denied'); + } + this.verifyAllItemsModal = false; + } + openModel() { + this.logicFormRequest = {}; + this.collectionListModal = true; + this.logicForm.reset(); + this.fileErrorStatus = null; + this.isStartingMessageExist = false; + } + openTermAndConditionModel() { + this.termsAndConditionModal = true; + } + openItemsVerifyModal(isSubmitBtn) { + this.verifyAllItemsModal = true; + this.isSubmit = isSubmitBtn; + } + onLogicAdd() { + const reqData = { + ...this.logicForm.value, + transformers: [ + { + id: 'bbf56981-b8c9-40e9-8067-468c2c753659', + meta: { + form: 'https://hosted.my.form.here.com', + formID: this.logicForm.value.formId + } + } + ], + adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324' + }; + this.isModalLoaderShow = true; + if (this.logicForm.get('id').value) { + this.uciService.updateLogic(this.logicForm.get('id').value, { data: reqData }).subscribe((data) => { + this.isModalLoaderShow = false; + const existingLogic = reqData; + delete existingLogic.id; + this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic); + }, error => { + this.isModalLoaderShow = false; + }); + } + else { + this.uciService.createLogic({ data: reqData }).subscribe((data) => { + this.isModalLoaderShow = false; + const existingLogic = reqData; + delete existingLogic.id; + this.selectedLogic.push({ + id: data.data.id, + ...existingLogic, + }); + }, error => { + this.isModalLoaderShow = false; + }); + } + } + getEditLogicData(item, index) { + if (item.id) { + this.selectedLogicIndex = index; + this.logicForm.patchValue({ + id: item.id, + name: item.name, + description: item.description, + formId: item.transformers[0].meta.formID + }); + } + } + onFileUpload(event) { + if (!event.target.files.length) { + return; + } + const file = event.target.files[0]; + const obj = { + form: file + }; + this.logicForm.patchValue({ formId: '' }); + this.isModalLoaderShow = true; + this.uciService.uploadFile(obj).subscribe((fileInfo) => { + if (fileInfo.result?.data) { + this.logicForm.patchValue({ formId: fileInfo.result?.data }); + } + this.isModalLoaderShow = false; + this.odkFileAlreadyExist = false; + }, error => { + this.isModalLoaderShow = false; + this.odkFileAlreadyExist = true; + this.fileErrorStatus = error.error.status; + }); + } + onDelete(logic, index) { + this.uciService.deleteLogic(logic.id).subscribe(file => { + this.selectedLogic.splice(index, 1); + }); + } + getUserSegmentDetail() { + this.uciService.getBotUserDetails(this.conversationId).subscribe((val) => { + if (val.data) { + this.conversationForm.patchValue({ + name: val.data.name, + description: val.data.description, + purpose: val.data.purpose, + startingMessage: val.data.startingMessage, + startDate: val.data.startDate ? val.data.startDate : '', + endDate: val.data.endDate ? val.data.endDate : '' + }); + if (val.data.userSegments) { + this.userSegments = val.data.userSegments; + } + if (val.data.logic) { + this.selectedLogic = val.data.logic; + } + } + }); + } + allCheck(isAllCheck = false) { + this.Appropriateness.forEach(val => { + val.checks = isAllCheck; + }); + this.contentDetails.forEach(val => { + val.checks = isAllCheck; + }); + this.usability.forEach(val => { + val.checks = isAllCheck; + }); + } + onStarringMessageChange() { + this.uciService.getCheckStartingMessage({ startingMessage: this.conversationForm.value.startingMessage }).subscribe(val => { + this.isStartingMessageExist = true; + }, error => { + this.isStartingMessageExist = false; + }); + } + manualDownload() { + window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank'); + } + sampleODKDownload() { + window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank'); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, deps: [{ token: UciService }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationAddComponent, selector: "lib-conversation-add", viewQueries: [{ propertyName: "verifyAllModal", first: true, predicate: ["verifyAllModal"], descendants: true }], ngImport: i0, template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "directive", type: i6.SuiDatepickerDirective, selector: "[suiDatepicker]", inputs: ["pickerMode", "pickerInitialDate", "pickerMaxDate", "pickerMinDate", "pickerFirstDayOfWeek", "pickerLocaleOverrides", "pickerPlacement", "pickerTransition", "pickerTransitionDuration"], outputs: ["pickerSelectedDateChange", "pickerValidatorChange"] }, { kind: "directive", type: i6.SuiDatepickerDirectiveValueAccessor, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerDirectiveValidator, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerInputDirective, selector: "input[suiDatepicker]", inputs: ["pickerUseNativeOnMobile"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: ["selectedUserSegments"], outputs: ["cancel", "add"] }, { kind: "component", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: ["cancel", "add"] }, { kind: "component", type: TermsConditionsComponent, selector: "lib-terms-conditions" }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-add', template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"] }] + }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: GlobalService }]; }, propDecorators: { verifyAllModal: [{ + type: ViewChild, + args: ['verifyAllModal'] + }] } }); + +class ConversationSuccessComponent { + constructor(router, activatedRoute) { + this.router = router; + this.activatedRoute = activatedRoute; + this.text = ''; + this.botId = ''; + } + ngOnInit() { + this.text = this.activatedRoute.snapshot.queryParams.text || ''; + this.botId = this.activatedRoute.snapshot.queryParams.botId || ''; + } + onCopy(id) { + const val = document.getElementById(id).innerText; + const selBox = document.createElement('textarea'); + selBox.style.position = 'fixed'; + selBox.style.left = '0'; + selBox.style.top = '0'; + selBox.style.opacity = '0'; + selBox.value = val; + document.body.appendChild(selBox); + selBox.focus(); + selBox.select(); + document.execCommand('copy'); + document.body.removeChild(selBox); + } + onClose() { + this.router.navigate(['/uci-admin']); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationSuccessComponent, selector: "lib-conversation-success", ngImport: i0, template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, decorators: [{ + type: Component, + args: [{ selector: 'lib-conversation-success', template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n" }] + }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } }); + +class ComponentsModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [SidePanelComponent, + ConversationListComponent, + ConversationAddComponent, + UserSegmentListComponent, + UserSegmentAddComponent, + TermsConditionsComponent, + ConversationSuccessComponent], imports: [CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule], exports: [SidePanelComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, providers: [ + UciService, + ConfigService, + UciGraphQlService + ], imports: [CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + SidePanelComponent, + ConversationListComponent, + ConversationAddComponent, + UserSegmentListComponent, + UserSegmentAddComponent, + TermsConditionsComponent, + ConversationSuccessComponent + ], + imports: [ + CommonModule, + HttpClientModule, + FormsModule, + ReactiveFormsModule, + TagInputModule, + PipesModule, + CommonFormElementsModule, + SuiModule, + ], + exports: [ + SidePanelComponent, + ], + providers: [ + UciService, + ConfigService, + UciGraphQlService + ] + }] + }] }); + +const routes = [ + { + path: '', + component: LibEntryComponent, + children: [ + { + path: 'home', + pathMatch: 'full', + component: ConversationListComponent + }, + { + path: 'add', + pathMatch: 'full', + component: ConversationAddComponent, + }, + { + path: ':id/edit', + pathMatch: 'full', + component: ConversationAddComponent, + }, + { + path: 'success', + pathMatch: 'full', + component: ConversationSuccessComponent, + }, + ] + } +]; +class UciRoutingModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [i1.RouterModule, CommonModule], exports: [RouterModule] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [RouterModule.forChild(routes), + CommonModule, RouterModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [], + imports: [ + RouterModule.forChild(routes), + CommonModule + ], + exports: [RouterModule] + }] + }] }); + +function provideCsModule() { + return window['CsModule']; +} +class UciModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciModule, declarations: [LibEntryComponent], imports: [ComponentsModule, + UciRoutingModule], exports: [LibEntryComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }], imports: [ComponentsModule, + UciRoutingModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + LibEntryComponent + ], + imports: [ + ComponentsModule, + UciRoutingModule + ], + exports: [ + LibEntryComponent + ], + providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }] + }] + }] }); + +/* + * Public API Surface of discussion-ui + */ + +/** + * Generated bundle index. Do not edit. + */ + +export { LibEntryComponent, UciEventsService, UciModule, provideCsModule }; +//# sourceMappingURL=samagra-x-uci-console.mjs.map diff --git a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map new file mode 100644 index 00000000000..bcefbeacbc4 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"samagra-x-uci-console.mjs","sources":["../../../projects/uci-console/src/lib/uci-events.service.ts","../../../projects/uci-console/src/lib/telemetry-utils.service.ts","../../../projects/uci-console/src/lib/models/uci.model.ts","../../../projects/uci-console/src/lib/services/global.service.ts","../../../projects/uci-console/src/lib/services/base.service.ts","../../../projects/uci-console/src/lib/services/uci.service.ts","../../../projects/uci-console/src/lib/services/config.service.ts","../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.ts","../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.html","../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.ts","../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.html","../../../projects/uci-console/src/lib/pipes/pipes.module.ts","../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.ts","../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.html","../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.ts","../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.html","../../../projects/uci-console/src/lib/services/uci-graph-ql.service.ts","../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.ts","../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.html","../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.ts","../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.html","../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.ts","../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.html","../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.ts","../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.html","../../../projects/uci-console/src/lib/components/components.module.ts","../../../projects/uci-console/src/lib/uci-routing/uci-routing.module.ts","../../../projects/uci-console/src/lib/uci-module.ts","../../../projects/uci-console/src/public-api.ts","../../../projects/uci-console/src/samagra-x-uci-console.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\n@Injectable({\n providedIn: 'root'\n})\nexport class UciEventsService {\n\n public telemetryEvent = new Subject();\n public actionEvent = new EventEmitter();\n\n constructor() { }\n\n emitTelemetry(event) {\n // console.log('Lib Event', event);\n if (!_.isEmpty(event)) {\n this.telemetryEvent.next(event);\n }\n }\n}\n","\nimport { UciEventsService } from './uci-events.service';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\ninterface ITelemetryObj {\n eid: string,\n edata: {},\n context?: {}\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TelemetryUtilsService {\n\n _context = []\n currentObj = {};\n\n constructor(\n private discussionEvents: UciEventsService,\n private router: Router\n ) { }\n\n setContext(context) {\n this._context = context;\n this.currentObj = _.last(context);\n }\n\n uppendContext(data) {\n const matchedC = _.find(this._context, { id: data.id });\n if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) {\n this._context.push(data);\n }\n this.currentObj = _.last(this._context);\n }\n\n deleteContext(prevTopic) {\n const topic = _.find(this._context, prevTopic);\n if (topic) {\n this._context = _.reject(this._context, topic);\n }\n }\n\n getContext() {\n return this._context;\n }\n\n logImpression(pageId) {\n this.discussionEvents.emitTelemetry({});\n const impressionEvent: ITelemetryObj = {\n eid: 'IMPRESSION',\n edata: {\n type: 'view',\n pageid: pageId,\n uri: this.router.url\n }\n }\n if (this.currentObj) {\n impressionEvent.context = { cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type') }\n ]};\n }\n this.discussionEvents.emitTelemetry(impressionEvent);\n }\n\n logInteract(event, pageId) {\n const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') ||\n _.get(event, 'srcElement.attributes.id');\n const interactEvent: ITelemetryObj = {\n eid: 'INTERACT',\n edata: {\n id: _.get(target, 'value') || _.get(event, 'action'),\n type: 'CLICK',\n pageid: pageId\n }\n };\n\n if (this.currentObj) {\n const object = {\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type'),\n ver: '1'\n };\n object['rollup'] = this._context.length > 1 ? this.getRollUp() : {};\n interactEvent.context = {\n cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type')\n }], object\n };\n }\n\n this.discussionEvents.emitTelemetry(interactEvent);\n }\n\n getRollUp() {\n\n const rollUp = {};\n const data = _.reject(this._context, this.currentObj);\n\n if (this._context.length > 1) {\n data.forEach((element, index) => {\n // console.log('rollup', element);\n rollUp['l' + (index + 1)] = element.toString();\n });\n }\n\n if (_.get(this.currentObj, 'type') !== 'Post') {\n return rollUp;\n }\n\n return {};\n\n }\n\n}\n","export namespace UciData {\n\n export interface IUser {\n uid: number\n username: string\n fullname?: string\n userslug: string\n reputation: number\n postcount: number\n topiccount?: number\n picture?: string | null\n signature?: string | null\n banned: number\n 'banned:expire'?: number\n status: string\n lastonline?: number | null | undefined\n groupTitle?: string\n groupTitleArray?: string[]\n 'icon:text'?: string\n 'icon:bgColor'?: string\n lastonlineISO?: string\n banned_until?: number | boolean\n banned_until_readable?: string\n selectedGroups?: any[]\n custom_profile_info?: any[]\n }\n \n export interface IProfile {\n uid: number\n username: string\n userslug: string\n email: string\n 'email:confirmed': number\n joindate: number\n lastonline: number\n picture: string\n fullname: string\n location: string\n birthday: string\n website: string\n aboutme: string\n signature: string\n uploadedpicture: string\n profileviews: number\n reputation: number\n postcount: number\n topiccount: number\n lastposttime: number\n banned: number\n 'banned:expire': number\n status: string\n flags: number\n followerCount: number\n followingCount: number\n 'cover:url': string\n 'cover:position': string\n groupTitle: string\n groupTitleArray: []\n joindateISO: string\n lastonlineISO: string\n isBlocked: true\n blocksCount: number\n canEdit: true\n canBan: true\n title: string\n }\n\n export enum IPageName {\n HOME = 'uci-admin',\n LIB_ENTRY = 'lib-entry'\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n private user: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly user$ = this.user.asObservable();\n private baseUrl: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly baseUrl$ = this.baseUrl.asObservable();\n\n constructor() {\n }\n\n setUser(user) {\n this.user.next(user);\n }\n\n getUser() {\n return this.user.value;\n }\n\n setBaseUrl(baseUrl) {\n this.baseUrl.next(baseUrl);\n }\n\n getBaseUrl() {\n return this.baseUrl.value;\n }\n}\n","import {HttpClient, HttpErrorResponse} from '@angular/common/http';\nimport {catchError, map} from 'rxjs/operators';\n\nimport {GlobalService} from './global.service';\nimport {Injectable} from '@angular/core';\nimport {throwError} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseService {\n constructor(public http: HttpClient, public globalService: GlobalService) {\n }\n\n private getDefaultHeaders() {\n const headers: any = {};\n const user = this.globalService.getUser();\n if (user && user.id) {\n headers.ownerID = user.id;\n }\n if (user && user.rootOrgId) {\n headers.ownerOrgID = user.rootOrgId;\n }\n\n return headers;\n }\n\n public getRequest(url, params: any = {}, headers: any = {}) {\n headers = {\n ...headers,\n ...this.getDefaultHeaders()\n };\n\n return this.http.get(url, {params, headers}).pipe(\n map((res: any) => {\n return res.result;\n }),\n catchError(err => {\n return this.handleError(err);\n })\n );\n }\n\n public postRequest(url, data = {}, headers: any = {}) {\n headers = {\n ...headers,\n ...this.getDefaultHeaders()\n };\n\n return this.http.post(url, data, {headers}).pipe(\n map((res: any) => {\n return res.result;\n }),\n catchError(err => {\n return this.handleError(err);\n })\n );\n }\n\n\n public handleError(error: HttpErrorResponse) {\n if (error instanceof ErrorEvent) {\n return throwError(error['error']['message']);\n }\n\n return throwError(error.error);\n }\n\n public toFormData(formValue: T) {\n const formData = new FormData();\n console.error(\"[UCI Console]\", JSON.stringify(formValue))\n\n for (const key of Object.keys(formValue)) {\n const value = formValue[key];\n formData.append(key, value);\n }\n\n return formData;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {BaseService} from './base.service';\nimport {Observable} from 'rxjs';\nimport {GlobalService} from './global.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UciService extends BaseService {\n BASE_URL;\n FORM_BASE_URL = 'https://dev.sunbirded.org/';\n\n constructor(public http: HttpClient, public globalService: GlobalService) {\n super(http, globalService);\n this.globalService.baseUrl$.subscribe(value => {\n if (value) {\n this.BASE_URL = value + '/admin/v1/';\n }\n });\n }\n\n fetchConversation(params): Observable {\n return this.getRequest(this.BASE_URL + 'bot/get', params, {asset: 'bot'});\n }\n\n searchConversation(params): Observable {\n return this.getRequest(this.BASE_URL + 'bot/search', params, {asset: 'bot'});\n }\n\n pauseConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, {asset: 'bot'});\n }\n\n startConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, {asset: 'bot'});\n }\n\n deleteConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, {asset: 'bot'});\n }\n\n getBotUserDetails(id) {\n return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, {asset: 'bot'});\n }\n\n getCheckStartingMessage(param) {\n return this.getRequest(this.BASE_URL + `bot/getByParam`, param, {asset: 'bot'});\n }\n\n botCreate(data) {\n return this.postRequest(this.BASE_URL + 'bot/create', data, {asset: 'bot'});\n }\n\n botUpdate(id, data) {\n return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, {asset: 'bot'});\n }\n\n // User Segment APIs\n fetchUserSegment(params): Observable {\n return this.getRequest(this.BASE_URL + 'userSegment/get', params, {asset: 'userSegment'});\n }\n\n searchUserSegment(params): Observable {\n return this.getRequest(this.BASE_URL + 'userSegment/search', params, {asset: 'userSegment'});\n }\n\n createUserSegment(data) {\n return this.postRequest(this.BASE_URL + 'userSegment/create', data, {asset: 'userSegment'});\n }\n\n userSegmentQueryBuilder(data) {\n return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, {asset: 'userSegment'});\n }\n\n // Conversation APIs\n createLogic(data) {\n return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, {asset: 'conversationLogic'});\n }\n\n updateLogic(id, data) {\n return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, {asset: 'conversationLogic'});\n }\n\n deleteLogic(id) {\n return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, {asset: 'conversationLogic'});\n }\n\n // Mis APIs\n uploadFile(obj): Observable {\n let headers = new HttpHeaders();\n headers = headers.set('Content-Type', 'multipart/form-data');\n return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), {headers});\n }\n\n readForm(data) {\n return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data);\n }\n}\n","import { UciService } from './uci.service';\nimport { Injectable, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport * as _ from 'lodash'\nimport { IdiscussionConfig } from '../models/uci-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService implements OnInit {\n\n paramsSubscription: Subscription;\n private _config: IdiscussionConfig;\n public checkContext: boolean;\n public queryParams;\n getContextData: any;\n hasContextData: any;\n getParams: IdiscussionConfig;\n\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private UciService: UciService,\n ) { }\n\n ngOnInit() {\n\n }\n\n setConfig(activatedRoute) {\n activatedRoute.data.subscribe((config) => {\n this._config = config.data;\n });\n }\n\n setConfigFromParams(activatedRoute) {\n activatedRoute.queryParams.subscribe((params) => {\n const obj: IdiscussionConfig = {\n userName : _.get(params, 'userName'),\n categories : JSON.parse(_.get(params, 'categories'))\n };\n this._config = obj;\n });\n }\n\n public getConfig() {\n return this._config;\n }\n\n public getCategories() {\n this.getParams = this.getConfig()\n return _.get(this.getParams, 'categories')\n }\n\n public hasContext() {\n this.hasContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result.length : null)\n : null\n return this.hasContextData\n }\n\n public getContext() {\n this.getContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result : null)\n : null\n return this.getContextData\n }\n\n public getRouterSlug() {\n return this._config.routerSlug ? this._config.routerSlug : '';\n }\n}\n","import {UciData} from '../../models/uci.model';\nimport {TelemetryUtilsService} from '../../telemetry-utils.service';\nimport {UciService} from '../../services/uci.service';\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Subscription} from 'rxjs';\nimport * as CONSTANTS from '../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash';\nimport {ConfigService} from '../../services/config.service';\nimport {IdiscussionConfig, IMenuOptions} from '../../models/uci-config.model';\n\n/* tslint:enable */\n\n@Component({\n selector: 'lib-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.scss']\n})\nexport class SidePanelComponent implements OnInit, OnDestroy {\n\n paramsSubscription: Subscription;\n\n userName: string;\n\n defaultPage = 'categories';\n\n data: IdiscussionConfig;\n hideSidePanel: boolean;\n menu: Array = [];\n selectedTab: string;\n showSideMenu: Boolean = true;\n\n constructor(\n public router: Router,\n public uciService: UciService,\n public activatedRoute: ActivatedRoute,\n private telemetryUtils: TelemetryUtilsService,\n private configService: ConfigService\n ) {\n }\n\n ngOnInit() {\n // TODO: loader or spinner\n this.telemetryUtils.setContext([]);\n this.hideSidePanel = document.body.classList.contains('widget');\n this.telemetryUtils.logImpression(UciData.IPageName.HOME);\n this.data = this.configService.getConfig();\n const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : CONSTANTS.MENUOPTIONS;\n for (let i = 0; i < menuArr.length; i++) {\n if (menuArr[i].enable) {\n this.menu.push(menuArr[i]);\n }\n }\n\n }\n\n isActive(selectedItem) {\n if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) {\n if (!this.selectedTab) {\n this.selectedTab = selectedItem;\n }\n return true;\n } else if (selectedItem === 'categories' && !this.selectedTab) {\n return true;\n }\n return false;\n }\n\n navigate(pageName: string, event?) {\n this.selectedTab = pageName;\n this.telemetryUtils.setContext([]);\n if (event) {\n this.telemetryUtils.logInteract(event, UciData.IPageName.HOME);\n }\n this.router.navigate([`uci-admin`], {queryParamsHandling: 'merge'});\n this.closeNav();\n }\n\n ngOnDestroy() {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n\n showMenuButton() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n closeNav() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n}\n","\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {Component, Input, OnInit} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {UciEventsService} from '../../uci-events.service';\nimport {IdiscussionConfig} from '../../models/uci-config.model';\nimport {ConfigService} from '../../services/config.service';\nimport {UciService} from '../../services/uci.service';\nimport {TelemetryUtilsService} from '../../telemetry-utils.service';\nimport {UciData} from '../../models/uci.model';\nimport {GlobalService} from '../../services/global.service';\n\n@Component({\n selector: 'lib-lib-entry',\n templateUrl: './lib-entry.component.html',\n styleUrls: ['./lib-entry.component.scss']\n})\nexport class LibEntryComponent implements OnInit {\n @Input() user;\n @Input() baseUrl;\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private uciService: UciService,\n private configService: ConfigService,\n private location: Location,\n private uciEventsService: UciEventsService,\n private telemetryUtils: TelemetryUtilsService,\n private globalService: GlobalService,\n private router: Router\n ) {\n }\n\n ngOnInit(): void {\n if (this.user) {\n this.globalService.setUser(this.user);\n }\n if (this.baseUrl) {\n this.globalService.setBaseUrl(this.baseUrl);\n }\n if (this.router.url === '/uci-admin') {\n this.router.navigate(['uci-admin/home']);\n }\n }\n\n goBack(): void {\n this.location.back();\n }\n\n close(event): void {\n const eventAction = {\n action: 'DF_CLOSE'\n };\n this.uciEventsService.emitTelemetry(eventAction);\n this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY);\n }\n}\n","
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ],\n exports: []\n})\nexport class PipesModule { }\n","import {Component, OnInit} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {Router} from '@angular/router';\nimport {GlobalService} from '../../services/global.service';\n\n@Component({\n selector: 'lib-conversation-list',\n templateUrl: './conversation-list.component.html',\n styleUrls: ['./conversation-list.component.css']\n})\nexport class ConversationListComponent implements OnInit {\n chatBots = [];\n pager: any = {\n totalItems: 0,\n currentPage: 1,\n pageSize: 10,\n totalPages: 0,\n startPage: 0,\n endPage: 0,\n startIndex: 0,\n endIndex: 0,\n pages: []\n };\n pageNumber = 1;\n column = '';\n sortDirection = '';\n reverse = false;\n queryParams: any;\n search;\n user;\n constructor(\n private uciService: UciService,\n private router: Router,\n private globalService: GlobalService,\n ) {\n }\n\n ngOnInit() {\n this.user = this.globalService.getUser();\n if (!this.user) {\n this.router.navigate(['uci-admin']);\n return;\n }\n this.getAllChatBots();\n }\n\n getAllChatBots() {\n const param: any = {\n page: this.pager.currentPage,\n perPage: this.pager.pageSize\n };\n\n if (this.search) {\n param.name = this.search;\n this.uciService.searchConversation(param).subscribe(\n data => this.parseConversations(data)\n );\n } else {\n this.uciService.fetchConversation(param).subscribe(\n data => this.parseConversations(data)\n );\n }\n\n }\n\n parseConversations(data) {\n this.chatBots = [];\n data.data.forEach(bot => {\n const obj = {...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft'};\n obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft';\n const segmentNames = [];\n bot.userSegments.forEach(userSegment => {\n segmentNames.push(userSegment.name);\n obj.userCount += (userSegment.count || 0);\n });\n obj.segmentText = segmentNames.join(', ');\n\n this.chatBots.push(obj);\n });\n this.pager.totalItems = data.total;\n this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize);\n this.pager.pages = [];\n let i = 1;\n while (i <= Math.ceil(data.total / this.pager.pageSize)) {\n this.pager.pages.push(i);\n i++;\n }\n }\n\n sortColumns(column) {\n this.column = column;\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.reverse = !this.reverse;\n }\n\n navigateToPage(page: number): undefined | void {\n if (page < 1 || page > this.pager.totalPages) {\n return;\n }\n this.pageNumber = page;\n this.pager.currentPage = page;\n this.getAllChatBots();\n }\n\n getSearch() {\n this.getAllChatBots();\n }\n\n onAddNew() {\n this.router.navigateByUrl('uci-admin/add');\n }\n\n onEdit(conversation) {\n this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`);\n }\n\n onStatusChange(conversation, index) {\n if (conversation.status === 'Live') {\n this.uciService.pauseConversation(conversation.id).subscribe(\n data => {\n this.chatBots[index].status = 'Disabled';\n }\n );\n } else {\n this.uciService.startConversation(conversation.id).subscribe(\n data => {\n this.chatBots[index].status = 'Live';\n }\n );\n }\n }\n\n onDelete(conversation, index) {\n this.uciService.deleteConversation(conversation.id).subscribe(\n data => {\n this.chatBots.splice(index, 1);\n }\n );\n }\n\n\n}\n","
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'lib-user-segment-list',\n templateUrl: './user-segment-list.component.html',\n styleUrls: ['./user-segment-list.component.css']\n})\nexport class UserSegmentListComponent implements OnInit {\n @Output() cancel = new EventEmitter();\n @Output() add = new EventEmitter();\n @Input() selectedUserSegments = [];\n\n userSegments = [];\n selectedUserSegmentMap = {};\n pager: any = {\n totalItems: 0,\n currentPage: 1,\n pageSize: 10,\n totalPages: 0,\n startPage: 0,\n endPage: 0,\n startIndex: 0,\n endIndex: 0,\n pages: []\n };\n pageNumber = 1;\n column = '';\n reverse = false;\n queryParams: any;\n search;\n\n constructor(\n private uciService: UciService,\n private route: Router\n ) {\n }\n\n ngOnInit() {\n this.selectedUserSegments.forEach(selectedUserSegment => {\n this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment;\n });\n\n this.getUserSegment();\n }\n\n getUserSegment() {\n const param: any = {\n page: this.pager.currentPage,\n perPage: this.pager.pageSize\n };\n\n if (this.search) {\n param.name = this.search;\n this.uciService.searchUserSegment(param).subscribe(\n data => this.parseUserSegments(data)\n );\n } else {\n this.uciService.fetchUserSegment(param).subscribe(\n data => this.parseUserSegments(data)\n );\n }\n }\n\n parseUserSegments(data) {\n this.userSegments = data.data;\n this.pager.totalItems = data.total;\n this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize);\n this.pager.pages = [];\n let i = 1;\n while (i <= Math.ceil(data.total / this.pager.pageSize)) {\n this.pager.pages.push(i);\n i++;\n }\n }\n\n navigateToPage(page: number): undefined | void {\n if (page < 1 || page > this.pager.totalPages) {\n return;\n }\n this.pageNumber = page;\n this.pager.currentPage = page;\n this.getUserSegment();\n }\n\n getSearch() {\n this.getUserSegment();\n }\n\n onCancel() {\n this.cancel.emit(false);\n }\n\n onCheck(event, userSegment) {\n if (event.target.checked) {\n this.selectedUserSegmentMap[userSegment.id] = userSegment;\n } else {\n delete this.selectedUserSegmentMap[userSegment.id];\n }\n }\n\n onAdd() {\n this.add.emit(Object.values(this.selectedUserSegmentMap));\n }\n}\n","
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {BaseService} from './base.service';\nimport {GlobalService} from './global.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UciGraphQlService extends BaseService {\n BASE_URL;\n\n constructor(public http: HttpClient, public globalService: GlobalService) {\n super(http, globalService);\n this.globalService.baseUrl$.subscribe(value => {\n if (value) {\n this.BASE_URL = value + '/v1/graphql';\n }\n });\n }\n\n getState() {\n return this.baseRequest({\n query: `query getListOfStates{\n organisation(distinct_on:state){\n state}}`\n });\n }\n\n getDistrict(param) {\n return this.baseRequest({\n query: `query getListOfDistrictInState($state:String){\n organisation(where:{state:{_eq:$state}}, distinct_on:district){\n state\n district}}`,\n variables: param\n });\n }\n\n getBlock(param) {\n return this.baseRequest({\n query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){\n blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){\n block\n district\n state\n }\n }`,\n variables: param\n });\n }\n\n getSchoolDetails(param) {\n return this.baseRequest({\n query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){\n schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){\n school\n school_code\n block\n district\n state\n }\n }`,\n variables: param\n });\n }\n\n getClusters(param) {\n return this.baseRequest({\n query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){\n clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){\n cluster\n }\n }`,\n variables: param\n });\n }\n\n getRole() {\n return this.baseRequest({\n query: `query fetchListOfRoles{\n role{\n id\n name\n }\n }`\n });\n }\n\n getBoards() {\n return this.baseRequest({\n query: `query listOfBoards{\n board{\n id\n name}}`\n });\n }\n\n private baseRequest(body) {\n return this.http.post(this.BASE_URL, body, {});\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {UciGraphQlService} from '../../services/uci-graph-ql.service';\nimport {UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\n\n@Component({\n selector: 'lib-user-segment-add',\n templateUrl: './user-segment-add.component.html',\n styleUrls: ['./user-segment-add.component.css']\n})\nexport class UserSegmentAddComponent implements OnInit {\n @Output() cancel = new EventEmitter();\n @Output() add = new EventEmitter();\n formFieldProperties: Array;\n userSegment: any = {};\n isLoaderShow = false;\n districts = [];\n blocks = [];\n schools = [];\n clusters = [];\n roles = [];\n boards = [];\n grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12];\n subjects = [];\n userSegmentForm: UntypedFormGroup;\n state = 'Haryana';\n\n constructor(private uciService: UciService,\n private fb: UntypedFormBuilder,\n private uciGraphQlService: UciGraphQlService) {\n }\n\n ngOnInit() {\n this.getUciDistrict();\n this.getUciRole();\n this.getUciBoard();\n this.userSegmentForm = this.fb.group({\n name: ['', Validators.required],\n description: [''],\n district: [''],\n block: [''],\n cluster: [''],\n school: [''],\n role: [''],\n board: [''],\n grade: [''],\n subject: ['']\n });\n\n this.userSegmentForm.get('district').valueChanges.subscribe(item => {\n if (item) {\n this.userSegmentForm.get('block').patchValue('');\n this.blocks = [];\n this.userSegmentForm.get('cluster').patchValue('');\n this.userSegmentForm.get('school').patchValue('');\n this.schools = [];\n this.clusters = [];\n this.getUciBlock();\n }\n });\n this.userSegmentForm.get('block').valueChanges.subscribe(item => {\n if (item) {\n this.userSegmentForm.get('cluster').patchValue('');\n this.userSegmentForm.get('school').patchValue('');\n this.schools = [];\n this.clusters = [];\n this.getUciCluster();\n this.getUciSchoolDetails();\n }\n });\n }\n\n onCancel() {\n this.cancel.emit(false);\n }\n\n onAdd() {\n if (this.userSegmentForm.invalid) {\n return;\n }\n this.isLoaderShow = true;\n const formValue = this.userSegmentForm.value;\n const locationData = [];\n const blockData = [];\n const districtData = [];\n for (const school of this.schools) {\n if (formValue.school.indexOf(school.school) !== -1) {\n locationData.push(school);\n if (blockData.indexOf(school.block) === -1) {\n blockData.push(school.block);\n districtData.push(school.district);\n }\n }\n if (locationData.length === formValue.school) {\n break;\n }\n }\n if (blockData.length < formValue.block.length) {\n for (const block of this.blocks) {\n if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) {\n locationData.push(block);\n blockData.push(block.block);\n districtData.push(block.district);\n }\n if (blockData.length === formValue.block) {\n break;\n }\n }\n }\n if (districtData.length < formValue.district.length) {\n for (const district of this.districts) {\n if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) {\n locationData.push(district);\n }\n }\n }\n const param = {\n data: {\n userLocation: locationData,\n roles: formValue.role,\n userType: {\n type: 'student'\n },\n framework: {\n board: formValue.board,\n gradeLevel: formValue.grade\n }\n }\n };\n\n this.uciService.userSegmentQueryBuilder(param).subscribe(response => {\n if (response) {\n const items = {\n ...response,\n name: formValue.name,\n description: formValue.description\n };\n this.uciService.createUserSegment({data: items}).subscribe(\n (data: any) => {\n this.isLoaderShow = false;\n this.afterAdd(data.inserted);\n }, err => {\n this.isLoaderShow = false;\n }\n );\n }\n }, error => {\n this.isLoaderShow = false;\n });\n }\n\n afterAdd(data) {\n this.add.emit(data);\n }\n\n getUciState() {\n this.uciGraphQlService.getState().subscribe(res => {\n });\n }\n\n getUciDistrict() {\n const params = {\n state: this.state\n };\n this.uciGraphQlService.getDistrict(params).subscribe((res: any) => {\n this.districts = [];\n if (res && res.data && res.data.organisation && res.data.organisation.length) {\n this.districts = res.data.organisation;\n }\n });\n }\n\n getUciBlock() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district\n };\n this.uciGraphQlService.getBlock(params).subscribe((res: any) => {\n this.blocks = [];\n if (res && res.data && res.data.blocks && res.data.blocks.length) {\n this.blocks = res.data.blocks;\n }\n });\n }\n\n getUciCluster() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district, block: formVal.block\n };\n this.uciGraphQlService.getClusters(params).subscribe((res: any) => {\n this.clusters = [];\n if (res && res.data && res.data.clusters && res.data.clusters.length) {\n if (res.data.clusters[0].cluster) {\n this.clusters = res.data.clusters;\n }\n }\n });\n }\n\n getUciSchoolDetails() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district, block: formVal.block\n };\n this.uciGraphQlService.getSchoolDetails(params).subscribe((res: any) => {\n this.schools = [];\n if (res && res.data && res.data.schools && res.data.schools.length) {\n this.schools = res.data.schools;\n }\n });\n }\n\n getUciRole() {\n this.uciGraphQlService.getRole().subscribe((res: any) => {\n if (res && res.data && res.data.role && res.data.role.length) {\n this.roles = res.data.role;\n }\n });\n }\n\n getUciBoard() {\n this.uciGraphQlService.getBoards().subscribe((res: any) => {\n if (res && res.data && res.data.board && res.data.board.length) {\n this.boards = res.data.board;\n }\n });\n }\n}\n","
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {UciGraphQlService} from '../../services/uci-graph-ql.service';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\n\n@Component({\n selector: 'lib-terms-conditions',\n templateUrl: './terms-conditions.component.html',\n styleUrls: ['./terms-conditions.component.css']\n})\nexport class TermsConditionsComponent implements OnInit {\n constructor() {\n }\n\n\n ngOnInit() {\n }\n\n}\n","
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you’re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators’ compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users’ compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA’s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA’s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n ‘year of birth’ of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it’s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn’t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn’t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn’t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\n\nimport {GlobalService} from '../../services/global.service';\nimport {UciService} from '../../services/uci.service';\nimport moment from 'moment/moment';\nimport {debounceTime} from 'rxjs/operators';\n\n@Component({\n selector: 'lib-conversation-add',\n templateUrl: './conversation-add.component.html',\n styleUrls: ['./conversation-add.component.css']\n})\nexport class ConversationAddComponent implements OnInit {\n @ViewChild('verifyAllModal') verifyAllModal;\n currentViewState = 'ADD_CONVERSATION';\n stepIndex = 1;\n selectedLogic = [];\n userSegments = [];\n column = '';\n sortDirection = '';\n reverse = false;\n collectionListModal = false;\n isLoaderShow = false;\n isModalLoaderShow = false;\n logicFormRequest = {};\n isCheckedTermCondition = false;\n conversationForm: UntypedFormGroup;\n logicForm: UntypedFormGroup;\n termsAndConditionModal = false;\n verifyAllItemsModal = false;\n conversationId;\n selectedLogicIndex;\n startMinDate = new Date();\n endMinDate;\n Appropriateness = [\n {\n text: 'No Hate speech, Abuse, Violence, Profanity',\n checks: false\n },\n {\n text: 'No Sexual content, Nudity or Vulgarity',\n checks: false\n },\n {\n text: 'No Discrimination or Defamation',\n checks: false\n },\n {\n text: 'Is suitable for children',\n checks: false\n }\n ];\n contentDetails = [\n {\n text: 'Appropriate Title, Description',\n checks: false\n },\n {\n text: 'Correct Board, Grade, Subject, Medium',\n checks: false\n },\n {\n text: 'Appropriate tags such as Resource Type, Concepts',\n checks: false\n },\n {\n text: 'Relevant keywords',\n checks: false\n }\n ];\n usability = [\n {\n text: 'Content plays correctly',\n checks: false\n },\n {\n text: 'Can see the content clearly on Desktop and App',\n checks: false\n },\n {\n text: 'Audio (if any) is clear and easy to understand',\n checks: false\n },\n {\n text: 'No spelling mistakes in the text',\n checks: false\n },\n {\n text: 'Language is simple to understand',\n checks: false\n }\n ];\n isSubmit: boolean;\n odkFileAlreadyExist: boolean = false;\n isStartingMessageExist = false;\n fileErrorStatus;\n user;\n\n constructor(\n private uciService: UciService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private fb: UntypedFormBuilder,\n private globalService: GlobalService\n ) {\n const tempDate = moment().add(1, 'days').format('YYYY-MM-DD');\n this.endMinDate = new Date(tempDate);\n }\n\n ngOnInit() {\n this.user = this.globalService.getUser();\n if (!this.user) {\n this.router.navigate(['uci-admin']);\n return;\n }\n this.conversationForm = this.fb.group({\n name: ['', Validators.required],\n description: [''],\n purpose: ['', Validators.required],\n startingMessage: ['', Validators.required],\n startDate: [null],\n endDate: [null],\n status: ['Draft']\n });\n\n this.logicForm = this.fb.group({\n id: [null],\n name: ['', Validators.required],\n description: [''],\n formId: ['', Validators.required]\n });\n\n // Edit case\n this.conversationId = this.activatedRoute.snapshot.paramMap.get('id');\n if (this.conversationId) {\n this.getUserSegmentDetail();\n }\n\n // start date and end date value change\n this.conversationForm.get('startDate').valueChanges.subscribe(val => {\n this.conversationForm.get('endDate').patchValue(null);\n const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD');\n this.endMinDate = new Date(tempDate);\n });\n\n this.conversationForm.get('startingMessage').valueChanges\n .pipe(debounceTime(1000))\n .subscribe(\n value => {\n this.onStarringMessageChange();\n }\n );\n }\n\n userSegment() {\n this.currentViewState = 'SELECT_SEGMENT';\n }\n\n onUserSegmentCancel() {\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentAddClick() {\n this.currentViewState = 'ADD_SEGMENT';\n }\n\n onUserSegmentAdd(segments) {\n this.userSegments = segments;\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentCreate(segment) {\n this.userSegments.push(segment);\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentDelete(index) {\n this.userSegments.splice(index, 1);\n }\n\n nextStep() {\n if (this.stepIndex === 1 && this.conversationForm.valid) {\n this.stepIndex = 2;\n }\n }\n\n backToStepOne() {\n if (this.stepIndex === 2) {\n this.stepIndex = 1;\n }\n }\n\n onAddCancel() {\n this.router.navigate(['uci-admin']);\n }\n\n onSubmit(isTriggerBot = false) {\n const reqObj = {\n ...this.conversationForm.value,\n users: [],\n logic: []\n };\n this.userSegments.forEach(userSegment => {\n reqObj.users.push(userSegment.id);\n });\n this.selectedLogic.forEach(logic => {\n reqObj.logic.push(logic.id);\n });\n\n this.isLoaderShow = true;\n\n if (this.conversationId) {\n this.uciService.botUpdate(this.conversationId, {data: reqObj}).subscribe(\n data => {\n this.closeVerifyModal();\n this.isLoaderShow = false;\n this.router.navigate(['uci-admin/success'], {queryParams: {text: reqObj.startingMessage, botId: this.conversationId}});\n }, error => {\n this.isLoaderShow = false;\n this.verifyAllItemsModal = true;\n }\n );\n } else {\n this.uciService.botCreate({data: reqObj}).subscribe(\n (data: any) => {\n if (isTriggerBot) {\n this.startConversation(data.data);\n } else {\n this.closeVerifyModal();\n this.isLoaderShow = false;\n this.router.navigate(['uci-admin/success'], {queryParams: {text: reqObj.startingMessage, botId: data.data.id}});\n }\n\n }, error => {\n this.isLoaderShow = false;\n this.verifyAllItemsModal = true;\n }\n );\n }\n }\n\n startConversation(bot) {\n this.uciService.startConversation(bot.id).subscribe(\n data => {\n this.isLoaderShow = false;\n this.closeVerifyModal();\n this.router.navigate(['uci-admin/success'], {\n queryParams: {\n text: this.conversationForm.value.startingMessage,\n botId: bot.id\n }\n });\n }, error => {\n this.verifyAllItemsModal = true;\n this.isLoaderShow = false;\n }\n );\n }\n\n closeVerifyModal() {\n if (this.verifyAllModal) {\n this.verifyAllModal.deny('denied');\n }\n this.verifyAllItemsModal = false;\n }\n\n openModel() {\n this.logicFormRequest = {};\n this.collectionListModal = true;\n this.logicForm.reset();\n this.fileErrorStatus = null;\n this.isStartingMessageExist = false;\n }\n\n openTermAndConditionModel() {\n this.termsAndConditionModal = true;\n }\n\n openItemsVerifyModal(isSubmitBtn: boolean) {\n this.verifyAllItemsModal = true;\n this.isSubmit = isSubmitBtn;\n }\n\n onLogicAdd() {\n const reqData = {\n ...this.logicForm.value,\n transformers: [\n {\n id: 'bbf56981-b8c9-40e9-8067-468c2c753659',\n meta: {\n form: 'https://hosted.my.form.here.com',\n formID: this.logicForm.value.formId\n }\n }\n ],\n adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324'\n };\n\n this.isModalLoaderShow = true;\n if (this.logicForm.get('id').value) {\n this.uciService.updateLogic(this.logicForm.get('id').value, {data: reqData}).subscribe(\n (data: any) => {\n this.isModalLoaderShow = false;\n const existingLogic = reqData;\n delete existingLogic.id;\n this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic);\n }, error => {\n this.isModalLoaderShow = false;\n }\n );\n } else {\n this.uciService.createLogic({data: reqData}).subscribe(\n (data: any) => {\n this.isModalLoaderShow = false;\n const existingLogic = reqData;\n delete existingLogic.id;\n this.selectedLogic.push({\n id: data.data.id,\n ...existingLogic,\n });\n }, error => {\n this.isModalLoaderShow = false;\n }\n );\n }\n\n }\n\n getEditLogicData(item, index) {\n if (item.id) {\n this.selectedLogicIndex = index;\n this.logicForm.patchValue(\n {\n id: item.id,\n name: item.name,\n description: item.description,\n formId: item.transformers[0].meta.formID\n }\n );\n }\n }\n\n onFileUpload(event) {\n if (!event.target.files.length) {\n return;\n }\n const file = event.target.files[0];\n const obj = {\n form: file\n };\n this.logicForm.patchValue({formId: ''});\n this.isModalLoaderShow = true;\n this.uciService.uploadFile(obj).subscribe((fileInfo: any) => {\n if (fileInfo.result?.data) {\n this.logicForm.patchValue({formId: fileInfo.result?.data});\n }\n this.isModalLoaderShow = false;\n this.odkFileAlreadyExist = false;\n }, error => {\n this.isModalLoaderShow = false;\n this.odkFileAlreadyExist = true;\n this.fileErrorStatus = error.error.status;\n }\n );\n }\n\n onDelete(logic, index) {\n this.uciService.deleteLogic(logic.id).subscribe(\n file => {\n this.selectedLogic.splice(index, 1);\n }\n );\n }\n\n getUserSegmentDetail() {\n this.uciService.getBotUserDetails(this.conversationId).subscribe((val: any) => {\n if (val.data) {\n this.conversationForm.patchValue({\n name: val.data.name,\n description: val.data.description,\n purpose: val.data.purpose,\n startingMessage: val.data.startingMessage,\n startDate: val.data.startDate ? val.data.startDate : '',\n endDate: val.data.endDate ? val.data.endDate : ''\n });\n if (val.data.userSegments) {\n this.userSegments = val.data.userSegments;\n }\n if (val.data.logic) {\n this.selectedLogic = val.data.logic;\n }\n }\n });\n }\n\n allCheck(isAllCheck: boolean = false) {\n this.Appropriateness.forEach(val => {\n val.checks = isAllCheck;\n });\n this.contentDetails.forEach(val => {\n val.checks = isAllCheck;\n });\n this.usability.forEach(val => {\n val.checks = isAllCheck;\n });\n }\n\n onStarringMessageChange() {\n this.uciService.getCheckStartingMessage({startingMessage: this.conversationForm.value.startingMessage}).subscribe(val => {\n this.isStartingMessageExist = true;\n }, error => {\n this.isStartingMessageExist = false;\n });\n\n }\n\n manualDownload() {\n window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank');\n }\n\n sampleODKDownload() {\n window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank');\n }\n}\n","\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\n\n@Component({\n selector: 'lib-conversation-success',\n templateUrl: './conversation-success.component.html',\n styleUrls: ['./conversation-success.component.css']\n})\nexport class ConversationSuccessComponent implements OnInit {\n text = '';\n botId = '';\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute) {\n }\n\n ngOnInit(): void {\n this.text = this.activatedRoute.snapshot.queryParams.text || '';\n this.botId = this.activatedRoute.snapshot.queryParams.botId || '';\n }\n\n onCopy(id) {\n const val = document.getElementById(id).innerText;\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = val;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n\n onClose() {\n this.router.navigate(['/uci-admin']);\n }\n\n}\n","
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n","import {PipesModule} from '../pipes/pipes.module';\nimport {UciService} from '../services/uci.service';\nimport {ConfigService} from '../services/config.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TagInputModule} from 'ngx-chips';\nimport {ConversationListComponent} from './conversation-list/conversation-list.component';\nimport {ConversationAddComponent} from './conversation-add/conversation-add.component';\nimport {UserSegmentListComponent} from './user-segment-list/user-segment-list.component';\nimport {CommonFormElementsModule} from '@project-sunbird/common-form-elements-full';\nimport {UserSegmentAddComponent} from './user-segment-add/user-segment-add.component';\nimport {SuiModule} from '@project-sunbird/ng2-semantic-ui';\nimport {ConversationSuccessComponent} from './conversation-success/conversation-success.component';\nimport {UciGraphQlService} from '../services/uci-graph-ql.service';\nimport {TermsConditionsComponent} from './terms-conditions/terms-conditions.component';\n\n@NgModule({\n declarations: [\n SidePanelComponent,\n ConversationListComponent,\n ConversationAddComponent,\n UserSegmentListComponent,\n UserSegmentAddComponent,\n TermsConditionsComponent,\n ConversationSuccessComponent\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n TagInputModule,\n PipesModule,\n CommonFormElementsModule,\n SuiModule,\n ],\n exports: [\n SidePanelComponent,\n ],\n providers: [\n UciService,\n ConfigService,\n UciGraphQlService\n ]\n})\nexport class ComponentsModule {\n}\n","import {LibEntryComponent} from '../components/lib-entry/lib-entry.component';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ConversationListComponent} from '../components/conversation-list/conversation-list.component';\nimport {ConversationAddComponent} from '../components/conversation-add/conversation-add.component';\nimport {UserSegmentListComponent} from '../components/user-segment-list/user-segment-list.component';\nimport {UserSegmentAddComponent} from '../components/user-segment-add/user-segment-add.component';\nimport {ConversationSuccessComponent} from '../components/conversation-success/conversation-success.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: LibEntryComponent,\n children: [\n {\n path: 'home',\n pathMatch: 'full',\n component: ConversationListComponent\n },\n {\n path: 'add',\n pathMatch: 'full',\n component: ConversationAddComponent,\n },\n {\n path: ':id/edit',\n pathMatch: 'full',\n component: ConversationAddComponent,\n },\n {\n path: 'success',\n pathMatch: 'full',\n component: ConversationSuccessComponent,\n },\n ]\n }\n];\n\n@NgModule({\n declarations: [],\n imports: [\n RouterModule.forChild(routes),\n CommonModule\n ],\n exports: [RouterModule]\n})\nexport class UciRoutingModule {\n}\n","import {TelemetryUtilsService} from './telemetry-utils.service';\nimport {LibEntryComponent} from './components/lib-entry/lib-entry.component';\nimport {ComponentsModule} from './components/components.module';\nimport {UciRoutingModule} from './uci-routing/uci-routing.module';\n\nimport {NgModule} from '@angular/core';\n\nimport {UciEventsService} from './uci-events.service';\n\nexport function provideCsModule() {\n return window['CsModule'];\n}\n\n@NgModule({\n declarations: [\n LibEntryComponent\n ],\n imports: [\n ComponentsModule,\n UciRoutingModule\n ],\n exports: [\n LibEntryComponent\n ],\n providers: [UciEventsService, TelemetryUtilsService, {provide: 'CsModule', useFactory: provideCsModule}]\n})\nexport class UciModule {\n}\n","/*\n * Public API Surface of discussion-ui\n */\n\nexport * from './lib/uci-module';\nexport * from './lib/uci-events.service';\nexport * from './lib/models/uci-config.model';\nexport * from './lib/components/lib-entry/lib-entry.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UciEventsService","i2","i1","i2.GlobalService","i2.UciService","CONSTANTS.MENUOPTIONS","i3.TelemetryUtilsService","i4.ConfigService","i3.ConfigService","i4","i5.UciEventsService","i6.TelemetryUtilsService","i7.GlobalService","i8.SidePanelComponent","i1.UciService","i3.GlobalService","i5","i3","i3.UciGraphQlService","i4.GlobalService","i7.UserSegmentListComponent","i8.UserSegmentAddComponent","i9.TermsConditionsComponent"],"mappings":"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"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/index.d.ts b/src/app/client/src/assets/libs/uci-console/index.d.ts new file mode 100644 index 00000000000..f34fca7db63 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/index.d.ts @@ -0,0 +1,6 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './public-api'; +//# sourceMappingURL=samagra-x-uci-console.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts new file mode 100644 index 00000000000..97dae0af5af --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts @@ -0,0 +1,21 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./side-panel/side-panel.component"; +import * as i2 from "./conversation-list/conversation-list.component"; +import * as i3 from "./conversation-add/conversation-add.component"; +import * as i4 from "./user-segment-list/user-segment-list.component"; +import * as i5 from "./user-segment-add/user-segment-add.component"; +import * as i6 from "./terms-conditions/terms-conditions.component"; +import * as i7 from "./conversation-success/conversation-success.component"; +import * as i8 from "@angular/common"; +import * as i9 from "@angular/common/http"; +import * as i10 from "@angular/forms"; +import * as i11 from "ngx-chips"; +import * as i12 from "../pipes/pipes.module"; +import * as i13 from "@project-sunbird/common-form-elements-full"; +import * as i14 from "@project-sunbird/ng2-semantic-ui"; +export declare class ComponentsModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +//# sourceMappingURL=components.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map new file mode 100644 index 00000000000..dad1e5bec78 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"components.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/components/components.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBA,qBA6Ba,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAC5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts new file mode 100644 index 00000000000..efea7f8b3f0 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts @@ -0,0 +1,80 @@ +import { ActivatedRoute, Router } from '@angular/router'; +import { OnInit } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { GlobalService } from '../../services/global.service'; +import { UciService } from '../../services/uci.service'; +import * as i0 from "@angular/core"; +export declare class ConversationAddComponent implements OnInit { + private uciService; + private router; + private activatedRoute; + private fb; + private globalService; + verifyAllModal: any; + currentViewState: string; + stepIndex: number; + selectedLogic: any[]; + userSegments: any[]; + column: string; + sortDirection: string; + reverse: boolean; + collectionListModal: boolean; + isLoaderShow: boolean; + isModalLoaderShow: boolean; + logicFormRequest: {}; + isCheckedTermCondition: boolean; + conversationForm: UntypedFormGroup; + logicForm: UntypedFormGroup; + termsAndConditionModal: boolean; + verifyAllItemsModal: boolean; + conversationId: any; + selectedLogicIndex: any; + startMinDate: Date; + endMinDate: any; + Appropriateness: { + text: string; + checks: boolean; + }[]; + contentDetails: { + text: string; + checks: boolean; + }[]; + usability: { + text: string; + checks: boolean; + }[]; + isSubmit: boolean; + odkFileAlreadyExist: boolean; + isStartingMessageExist: boolean; + fileErrorStatus: any; + user: any; + constructor(uciService: UciService, router: Router, activatedRoute: ActivatedRoute, fb: UntypedFormBuilder, globalService: GlobalService); + ngOnInit(): void; + userSegment(): void; + onUserSegmentCancel(): void; + onUserSegmentAddClick(): void; + onUserSegmentAdd(segments: any): void; + onUserSegmentCreate(segment: any): void; + onUserSegmentDelete(index: any): void; + nextStep(): void; + backToStepOne(): void; + onAddCancel(): void; + onSubmit(isTriggerBot?: boolean): void; + startConversation(bot: any): void; + closeVerifyModal(): void; + openModel(): void; + openTermAndConditionModel(): void; + openItemsVerifyModal(isSubmitBtn: boolean): void; + onLogicAdd(): void; + getEditLogicData(item: any, index: any): void; + onFileUpload(event: any): void; + onDelete(logic: any, index: any): void; + getUserSegmentDetail(): void; + allCheck(isAllCheck?: boolean): void; + onStarringMessageChange(): void; + manualDownload(): void; + sampleODKDownload(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=conversation-add.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map new file mode 100644 index 00000000000..0022f8934a4 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"conversation-add.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAY,MAAM,EAAY,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;;AAItD,qBAKa,wBAAyB,YAAW,MAAM;IAuF/C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,aAAa;IA1FI,cAAc,MAAC;IAC5C,gBAAgB,SAAsB;IACtC,SAAS,SAAK;IACd,aAAa,QAAM;IACnB,YAAY,QAAM;IAClB,MAAM,SAAM;IACZ,aAAa,SAAM;IACnB,OAAO,UAAS;IAChB,mBAAmB,UAAS;IAC5B,YAAY,UAAS;IACrB,iBAAiB,UAAS;IAC1B,gBAAgB,KAAM;IACtB,sBAAsB,UAAS;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,sBAAsB,UAAS;IAC/B,mBAAmB,UAAS;IAC5B,cAAc,MAAC;IACf,kBAAkB,MAAC;IACnB,YAAY,OAAc;IAC1B,UAAU,MAAC;IACX,eAAe;;;QAiBb;IACF,cAAc;;;QAiBZ;IACF,SAAS;;;QAqBP;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAS;IACrC,sBAAsB,UAAS;IAC/B,eAAe,MAAC;IAChB,IAAI,MAAC;gBAGO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,EAAE,EAAE,kBAAkB,EACtB,aAAa,EAAE,aAAa;IAMxC,QAAQ;IA6CR,WAAW;IAIX,mBAAmB;IAInB,qBAAqB;IAIrB,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,mBAAmB,CAAC,OAAO,KAAA;IAK3B,mBAAmB,CAAC,KAAK,KAAA;IAIzB,QAAQ;IAMR,aAAa;IAMb,WAAW;IAIX,QAAQ,CAAC,YAAY,UAAQ;IA6C7B,iBAAiB,CAAC,GAAG,KAAA;IAkBrB,gBAAgB;IAOhB,SAAS;IAQT,yBAAyB;IAIzB,oBAAoB,CAAC,WAAW,EAAE,OAAO;IAKzC,UAAU;IA6CV,gBAAgB,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAc5B,YAAY,CAAC,KAAK,KAAA;IAwBlB,QAAQ,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAQrB,oBAAoB;IAqBpB,QAAQ,CAAC,UAAU,GAAE,OAAe;IAYpC,uBAAuB;IASvB,cAAc;IAId,iBAAiB;yCAxZR,wBAAwB;2CAAxB,wBAAwB;CA2ZpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts new file mode 100644 index 00000000000..672a9159fe3 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts @@ -0,0 +1,33 @@ +import { OnInit } from '@angular/core'; +import { UciService } from '../../services/uci.service'; +import { Router } from '@angular/router'; +import { GlobalService } from '../../services/global.service'; +import * as i0 from "@angular/core"; +export declare class ConversationListComponent implements OnInit { + private uciService; + private router; + private globalService; + chatBots: any[]; + pager: any; + pageNumber: number; + column: string; + sortDirection: string; + reverse: boolean; + queryParams: any; + search: any; + user: any; + constructor(uciService: UciService, router: Router, globalService: GlobalService); + ngOnInit(): void; + getAllChatBots(): void; + parseConversations(data: any): void; + sortColumns(column: any): void; + navigateToPage(page: number): undefined | void; + getSearch(): void; + onAddNew(): void; + onEdit(conversation: any): void; + onStatusChange(conversation: any, index: any): void; + onDelete(conversation: any, index: any): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=conversation-list.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map new file mode 100644 index 00000000000..6b7f3a31493 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"conversation-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;;AAE5D,qBAKa,yBAA0B,YAAW,MAAM;IAqBhD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IAtBzB,QAAQ,QAAM;IACd,KAAK,EAAE,GAAG,CAUR;IACF,UAAU,SAAK;IACf,MAAM,SAAM;IACZ,aAAa,SAAM;IACnB,OAAO,UAAS;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,MAAC;IACP,IAAI,MAAC;gBAEO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAIxC,QAAQ;IASR,cAAc;IAmBd,kBAAkB,CAAC,IAAI,KAAA;IAwBvB,WAAW,CAAC,MAAM,KAAA;IAMlB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS9C,SAAS;IAIT,QAAQ;IAIR,MAAM,CAAC,YAAY,KAAA;IAInB,cAAc,CAAC,YAAY,KAAA,EAAE,KAAK,KAAA;IAgBlC,QAAQ,CAAC,YAAY,KAAA,EAAE,KAAK,KAAA;yCA1HnB,yBAAyB;2CAAzB,yBAAyB;CAmIrC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts new file mode 100644 index 00000000000..c6e1647cd8d --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts @@ -0,0 +1,16 @@ +import { OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import * as i0 from "@angular/core"; +export declare class ConversationSuccessComponent implements OnInit { + private router; + private activatedRoute; + text: string; + botId: string; + constructor(router: Router, activatedRoute: ActivatedRoute); + ngOnInit(): void; + onCopy(id: any): void; + onClose(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=conversation-success.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map new file mode 100644 index 00000000000..ff24f980b99 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"conversation-success.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AAEvD,qBAKa,4BAA6B,YAAW,MAAM;IAI3C,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,cAAc;IAH1D,IAAI,SAAM;IACV,KAAK,SAAM;gBAES,MAAM,EAAE,MAAM,EAAU,cAAc,EAAE,cAAc;IAG1E,QAAQ,IAAI,IAAI;IAKhB,MAAM,CAAC,EAAE,KAAA;IAeT,OAAO;yCA3BE,4BAA4B;2CAA5B,4BAA4B;CA+BxC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts new file mode 100644 index 00000000000..a243671bc46 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts @@ -0,0 +1,28 @@ +import { ActivatedRoute, Router } from '@angular/router'; +import { OnInit } from '@angular/core'; +import { Location } from '@angular/common'; +import { UciEventsService } from '../../uci-events.service'; +import { ConfigService } from '../../services/config.service'; +import { UciService } from '../../services/uci.service'; +import { TelemetryUtilsService } from '../../telemetry-utils.service'; +import { GlobalService } from '../../services/global.service'; +import * as i0 from "@angular/core"; +export declare class LibEntryComponent implements OnInit { + activatedRoute: ActivatedRoute; + private uciService; + private configService; + private location; + private uciEventsService; + private telemetryUtils; + private globalService; + private router; + user: any; + baseUrl: any; + constructor(activatedRoute: ActivatedRoute, uciService: UciService, configService: ConfigService, location: Location, uciEventsService: UciEventsService, telemetryUtils: TelemetryUtilsService, globalService: GlobalService, router: Router); + ngOnInit(): void; + goBack(): void; + close(event: any): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=lib-entry.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map new file mode 100644 index 00000000000..89bba41662e --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"lib-entry.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmB,MAAM,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;;AAE5D,qBAKa,iBAAkB,YAAW,MAAM;IAKjC,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAXT,IAAI,MAAC;IACL,OAAO,MAAC;gBAGN,cAAc,EAAE,cAAc,EAC7B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAI1B,QAAQ,IAAI,IAAI;IAYhB,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,KAAA,GAAG,IAAI;yCAhCT,iBAAiB;2CAAjB,iBAAiB;CAuC7B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts new file mode 100644 index 00000000000..2ac748eaa75 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts @@ -0,0 +1,33 @@ +import { TelemetryUtilsService } from '../../telemetry-utils.service'; +import { UciService } from '../../services/uci.service'; +import { OnDestroy, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Subscription } from 'rxjs'; +import { ConfigService } from '../../services/config.service'; +import { IdiscussionConfig, IMenuOptions } from '../../models/uci-config.model'; +import * as i0 from "@angular/core"; +export declare class SidePanelComponent implements OnInit, OnDestroy { + router: Router; + uciService: UciService; + activatedRoute: ActivatedRoute; + private telemetryUtils; + private configService; + paramsSubscription: Subscription; + userName: string; + defaultPage: string; + data: IdiscussionConfig; + hideSidePanel: boolean; + menu: Array; + selectedTab: string; + showSideMenu: Boolean; + constructor(router: Router, uciService: UciService, activatedRoute: ActivatedRoute, telemetryUtils: TelemetryUtilsService, configService: ConfigService); + ngOnInit(): void; + isActive(selectedItem: any): boolean; + navigate(pageName: string, event?: any): void; + ngOnDestroy(): void; + showMenuButton(): void; + closeNav(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=side-panel.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map new file mode 100644 index 00000000000..4abf0edb53b --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"side-panel.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAY,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAIlC,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAC,MAAM,+BAA+B,CAAC;;AAI9E,qBAKa,kBAAmB,YAAW,MAAM,EAAE,SAAS;IAe7C,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,UAAU;IACtB,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IAjBzB,kBAAkB,EAAE,YAAY,CAAC;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,SAAgB;IAE3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAM;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAQ;gBAGlB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC7B,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,aAAa;IAIxC,QAAQ;IAeR,QAAQ,CAAC,YAAY,KAAA;IAYrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,KAAA;IAUjC,WAAW;IAMX,cAAc;IAId,QAAQ;yCAtEC,kBAAkB;2CAAlB,kBAAkB;CA0E9B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts new file mode 100644 index 00000000000..e042c7c4b67 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts @@ -0,0 +1,9 @@ +import { OnInit } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class TermsConditionsComponent implements OnInit { + constructor(); + ngOnInit(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=terms-conditions.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map new file mode 100644 index 00000000000..6793c48ec9a --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"terms-conditions.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,EAAS,MAAM,eAAe,CAAC;;AAKtE,qBAKa,wBAAyB,YAAW,MAAM;;IAKnD,QAAQ;yCALC,wBAAwB;2CAAxB,wBAAwB;CAQpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts new file mode 100644 index 00000000000..15d8a194e80 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts @@ -0,0 +1,40 @@ +import { EventEmitter, OnInit } from '@angular/core'; +import { UciService } from '../../services/uci.service'; +import { UciGraphQlService } from '../../services/uci-graph-ql.service'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import * as i0 from "@angular/core"; +export declare class UserSegmentAddComponent implements OnInit { + private uciService; + private fb; + private uciGraphQlService; + cancel: EventEmitter; + add: EventEmitter; + formFieldProperties: Array; + userSegment: any; + isLoaderShow: boolean; + districts: any[]; + blocks: any[]; + schools: any[]; + clusters: any[]; + roles: any[]; + boards: any[]; + grade: number[]; + subjects: any[]; + userSegmentForm: UntypedFormGroup; + state: string; + constructor(uciService: UciService, fb: UntypedFormBuilder, uciGraphQlService: UciGraphQlService); + ngOnInit(): void; + onCancel(): void; + onAdd(): void; + afterAdd(data: any): void; + getUciState(): void; + getUciDistrict(): void; + getUciBlock(): void; + getUciCluster(): void; + getUciSchoolDetails(): void; + getUciRole(): void; + getUciBoard(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=user-segment-add.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map new file mode 100644 index 00000000000..f92548e821a --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"user-segment-add.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;;AAEhF,qBAKa,uBAAwB,YAAW,MAAM;IAiBtC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IAlB3B,MAAM,wBAA+B;IACrC,GAAG,oBAA2B;IACxC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,WAAW,EAAE,GAAG,CAAM;IACtB,YAAY,UAAS;IACrB,SAAS,QAAM;IACf,MAAM,QAAM;IACZ,OAAO,QAAM;IACb,QAAQ,QAAM;IACd,KAAK,QAAM;IACX,MAAM,QAAM;IACZ,KAAK,WAAuC;IAC5C,QAAQ,QAAM;IACd,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,SAAa;gBAEE,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,iBAAiB,EAAE,iBAAiB;IAGxD,QAAQ;IAwCR,QAAQ;IAIR,KAAK;IA2EL,QAAQ,CAAC,IAAI,KAAA;IAIb,WAAW;IAKX,cAAc;IAYd,WAAW;IAaX,aAAa;IAeb,mBAAmB;IAanB,UAAU;IAQV,WAAW;yCAnNF,uBAAuB;2CAAvB,uBAAuB;CA0NnC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts new file mode 100644 index 00000000000..a76a152fc7b --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts @@ -0,0 +1,31 @@ +import { EventEmitter, OnInit } from '@angular/core'; +import { UciService } from '../../services/uci.service'; +import { Router } from '@angular/router'; +import * as i0 from "@angular/core"; +export declare class UserSegmentListComponent implements OnInit { + private uciService; + private route; + cancel: EventEmitter; + add: EventEmitter; + selectedUserSegments: any[]; + userSegments: any[]; + selectedUserSegmentMap: {}; + pager: any; + pageNumber: number; + column: string; + reverse: boolean; + queryParams: any; + search: any; + constructor(uciService: UciService, route: Router); + ngOnInit(): void; + getUserSegment(): void; + parseUserSegments(data: any): void; + navigateToPage(page: number): undefined | void; + getSearch(): void; + onCancel(): void; + onCheck(event: any, userSegment: any): void; + onAdd(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +//# sourceMappingURL=user-segment-list.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map new file mode 100644 index 00000000000..65a39f3c023 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"user-segment-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAS,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AAEvC,qBAKa,wBAAyB,YAAW,MAAM;IAyB/C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,KAAK;IAzBP,MAAM,wBAA+B;IACrC,GAAG,oBAA2B;IAC/B,oBAAoB,QAAM;IAEnC,YAAY,QAAM;IAClB,sBAAsB,KAAM;IAC5B,KAAK,EAAE,GAAG,CAUR;IACF,UAAU,SAAK;IACf,MAAM,SAAM;IACZ,OAAO,UAAS;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,MAAC;gBAGK,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM;IAIzB,QAAQ;IAQR,cAAc;IAkBd,iBAAiB,CAAC,IAAI,KAAA;IAYtB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS9C,SAAS;IAIT,QAAQ;IAIR,OAAO,CAAC,KAAK,KAAA,EAAE,WAAW,KAAA;IAQ1B,KAAK;yCA7FI,wBAAwB;2CAAxB,wBAAwB;CAgGpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts new file mode 100644 index 00000000000..27fb667f4ef --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts @@ -0,0 +1,16 @@ +export interface IdiscussionConfig { + menuOptions?: Array; + userName: string; + context?: Object; + categories: Icategory; + path?: string; + routerSlug?: string; +} +export interface IMenuOptions { + route: string; + enable: boolean; +} +export interface Icategory { + result: Array; +} +//# sourceMappingURL=uci-config.model.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map new file mode 100644 index 00000000000..611f093f2e5 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci-config.model.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/models/uci-config.model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,SAAS,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACxB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts new file mode 100644 index 00000000000..cd442466251 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts @@ -0,0 +1,70 @@ +export declare namespace UciData { + interface IUser { + uid: number; + username: string; + fullname?: string; + userslug: string; + reputation: number; + postcount: number; + topiccount?: number; + picture?: string | null; + signature?: string | null; + banned: number; + 'banned:expire'?: number; + status: string; + lastonline?: number | null | undefined; + groupTitle?: string; + groupTitleArray?: string[]; + 'icon:text'?: string; + 'icon:bgColor'?: string; + lastonlineISO?: string; + banned_until?: number | boolean; + banned_until_readable?: string; + selectedGroups?: any[]; + custom_profile_info?: any[]; + } + interface IProfile { + uid: number; + username: string; + userslug: string; + email: string; + 'email:confirmed': number; + joindate: number; + lastonline: number; + picture: string; + fullname: string; + location: string; + birthday: string; + website: string; + aboutme: string; + signature: string; + uploadedpicture: string; + profileviews: number; + reputation: number; + postcount: number; + topiccount: number; + lastposttime: number; + banned: number; + 'banned:expire': number; + status: string; + flags: number; + followerCount: number; + followingCount: number; + 'cover:url': string; + 'cover:position': string; + groupTitle: string; + groupTitleArray: []; + joindateISO: string; + lastonlineISO: string; + isBlocked: true; + blocksCount: number; + canEdit: true; + canBan: true; + title: string; + } + enum IPageName { + HOME = "uci-admin", + LIB_ENTRY = "lib-entry" + } +} +//# sourceMappingURL=uci.model.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map new file mode 100644 index 00000000000..8bb3f92a79d --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci.model.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/models/uci.model.ts"],"names":[],"mappings":"AAAA,yBAAiB,OAAO,CAAC;IAEvB,UAAiB,KAAK;QACpB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;QACtC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;QAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAA;QACtB,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAA;KAC5B;IAED,UAAiB,QAAQ;QACvB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,iBAAiB,EAAE,MAAM,CAAA;QACzB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,MAAM,CAAA;QACvB,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,EAAE,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,IAAI,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,OAAO,EAAE,IAAI,CAAA;QACb,MAAM,EAAE,IAAI,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd;IAED,KAAY,SAAS;QACnB,IAAI,cAAc;QAClB,SAAS,cAAc;KACxB;CACF"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts new file mode 100644 index 00000000000..26ee571ae41 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts @@ -0,0 +1,8 @@ +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export declare class PipesModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +//# sourceMappingURL=pipes.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map new file mode 100644 index 00000000000..f3cc1da3b37 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pipes.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/pipes/pipes.module.ts"],"names":[],"mappings":";;AAKA,qBAOa,WAAW;yCAAX,WAAW;0CAAX,WAAW;0CAAX,WAAW;CAAI"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts new file mode 100644 index 00000000000..52fc1275483 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts @@ -0,0 +1,16 @@ +import { HttpClient, HttpErrorResponse } from '@angular/common/http'; +import { GlobalService } from './global.service'; +import * as i0 from "@angular/core"; +export declare class BaseService { + http: HttpClient; + globalService: GlobalService; + constructor(http: HttpClient, globalService: GlobalService); + private getDefaultHeaders; + getRequest(url: any, params?: any, headers?: any): import("rxjs").Observable; + postRequest(url: any, data?: {}, headers?: any): import("rxjs").Observable; + handleError(error: HttpErrorResponse): import("rxjs").Observable; + toFormData(formValue: T): FormData; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=base.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map new file mode 100644 index 00000000000..78d26a1fbdc --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAI/C,qBAGa,WAAW;IACD,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;gBAArD,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IAGxE,OAAO,CAAC,iBAAiB;IAalB,UAAU,CAAC,GAAG,KAAA,EAAE,MAAM,GAAE,GAAQ,EAAE,OAAO,GAAE,GAAQ;IAgBnD,WAAW,CAAC,GAAG,KAAA,EAAE,IAAI,KAAK,EAAE,OAAO,GAAE,GAAQ;IAiB7C,WAAW,CAAC,KAAK,EAAE,iBAAiB;IAQpC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;yCA1DxB,WAAW;6CAAX,WAAW;CAqEvB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts new file mode 100644 index 00000000000..4bc343cc6a4 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts @@ -0,0 +1,29 @@ +import { UciService } from './uci.service'; +import { OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { Subscription } from 'rxjs'; +import { IdiscussionConfig } from '../models/uci-config.model'; +import * as i0 from "@angular/core"; +export declare class ConfigService implements OnInit { + activatedRoute: ActivatedRoute; + private UciService; + paramsSubscription: Subscription; + private _config; + checkContext: boolean; + queryParams: any; + getContextData: any; + hasContextData: any; + getParams: IdiscussionConfig; + constructor(activatedRoute: ActivatedRoute, UciService: UciService); + ngOnInit(): void; + setConfig(activatedRoute: any): void; + setConfigFromParams(activatedRoute: any): void; + getConfig(): IdiscussionConfig; + getCategories(): any; + hasContext(): any; + getContext(): any; + getRouterSlug(): string; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=config.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map new file mode 100644 index 00000000000..4bbd8cf4e71 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/config.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;AAE/D,qBAGa,aAAc,YAAW,MAAM;IAYjC,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,UAAU;IAXpB,kBAAkB,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,OAAO,CAAoB;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,MAAC;IACnB,cAAc,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;gBAIpB,cAAc,EAAE,cAAc,EAC7B,UAAU,EAAE,UAAU;IAGhC,QAAQ;IAIR,SAAS,CAAC,cAAc,KAAA;IAMxB,mBAAmB,CAAC,cAAc,KAAA;IAU3B,SAAS;IAIT,aAAa;IAKb,UAAU;IAOV,UAAU;IAOV,aAAa;yCA3DT,aAAa;6CAAb,aAAa;CA8DzB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts new file mode 100644 index 00000000000..6eb9eb26bc9 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts @@ -0,0 +1,15 @@ +import * as i0 from "@angular/core"; +export declare class GlobalService { + private user; + readonly user$: import("rxjs").Observable; + private baseUrl; + readonly baseUrl$: import("rxjs").Observable; + constructor(); + setUser(user: any): void; + getUser(): any; + setBaseUrl(baseUrl: any): void; + getBaseUrl(): any; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=global.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map new file mode 100644 index 00000000000..ffac3287edf --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"global.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/global.service.ts"],"names":[],"mappings":";AAGA,qBAGa,aAAa;IACtB,OAAO,CAAC,IAAI,CAAwD;IACpE,SAAgB,KAAK,iCAA4B;IACjD,OAAO,CAAC,OAAO,CAAwD;IACvE,SAAgB,QAAQ,iCAA+B;;IAKvD,OAAO,CAAC,IAAI,KAAA;IAIZ,OAAO;IAIP,UAAU,CAAC,OAAO,KAAA;IAIlB,UAAU;yCArBD,aAAa;6CAAb,aAAa;CAwBzB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts new file mode 100644 index 00000000000..c1523e1e801 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts @@ -0,0 +1,21 @@ +import { HttpClient } from '@angular/common/http'; +import { BaseService } from './base.service'; +import { GlobalService } from './global.service'; +import * as i0 from "@angular/core"; +export declare class UciGraphQlService extends BaseService { + http: HttpClient; + globalService: GlobalService; + BASE_URL: any; + constructor(http: HttpClient, globalService: GlobalService); + getState(): import("rxjs").Observable; + getDistrict(param: any): import("rxjs").Observable; + getBlock(param: any): import("rxjs").Observable; + getSchoolDetails(param: any): import("rxjs").Observable; + getClusters(param: any): import("rxjs").Observable; + getRole(): import("rxjs").Observable; + getBoards(): import("rxjs").Observable; + private baseRequest; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=uci-graph-ql.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map new file mode 100644 index 00000000000..62090cc0a61 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci-graph-ql.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/uci-graph-ql.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAG/C,qBAGa,iBAAkB,SAAQ,WAAW;IAG3B,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;IAFxE,QAAQ,MAAC;gBAEU,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IASxE,QAAQ;IAQR,WAAW,CAAC,KAAK,KAAA;IAUjB,QAAQ,CAAC,KAAK,KAAA;IAad,gBAAgB,CAAC,KAAK,KAAA;IAetB,WAAW,CAAC,KAAK,KAAA;IAWjB,OAAO;IAWP,SAAS;IAST,OAAO,CAAC,WAAW;yCAzFV,iBAAiB;6CAAjB,iBAAiB;CA4F7B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts new file mode 100644 index 00000000000..565bd6b3b9e --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts @@ -0,0 +1,33 @@ +import { HttpClient } from '@angular/common/http'; +import { BaseService } from './base.service'; +import { Observable } from 'rxjs'; +import { GlobalService } from './global.service'; +import * as i0 from "@angular/core"; +export declare class UciService extends BaseService { + http: HttpClient; + globalService: GlobalService; + BASE_URL: any; + FORM_BASE_URL: string; + constructor(http: HttpClient, globalService: GlobalService); + fetchConversation(params: any): Observable; + searchConversation(params: any): Observable; + pauseConversation(botId: any): Observable; + startConversation(botId: any): Observable; + deleteConversation(botId: any): Observable; + getBotUserDetails(id: any): Observable; + getCheckStartingMessage(param: any): Observable; + botCreate(data: any): Observable; + botUpdate(id: any, data: any): Observable; + fetchUserSegment(params: any): Observable; + searchUserSegment(params: any): Observable; + createUserSegment(data: any): Observable; + userSegmentQueryBuilder(data: any): Observable; + createLogic(data: any): Observable; + updateLogic(id: any, data: any): Observable; + deleteLogic(id: any): Observable; + uploadFile(obj: any): Observable; + readForm(data: any): Observable; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=uci.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map new file mode 100644 index 00000000000..b960845b7f6 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/uci.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAE/C,qBAGa,UAAW,SAAQ,WAAW;IAIpB,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;IAHxE,QAAQ,MAAC;IACT,aAAa,SAAgC;gBAE1B,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IASxE,iBAAiB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,kBAAkB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI3C,iBAAiB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,iBAAiB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,kBAAkB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,iBAAiB,CAAC,EAAE,KAAA;IAIpB,uBAAuB,CAAC,KAAK,KAAA;IAI7B,SAAS,CAAC,IAAI,KAAA;IAId,SAAS,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA;IAKlB,gBAAgB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,iBAAiB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,iBAAiB,CAAC,IAAI,KAAA;IAItB,uBAAuB,CAAC,IAAI,KAAA;IAK5B,WAAW,CAAC,IAAI,KAAA;IAIhB,WAAW,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA;IAIpB,WAAW,CAAC,EAAE,KAAA;IAKd,UAAU,CAAC,GAAG,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAMhC,QAAQ,CAAC,IAAI,KAAA;yCAtFJ,UAAU;6CAAV,UAAU;CAyFtB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts new file mode 100644 index 00000000000..93e42294aa1 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts @@ -0,0 +1,20 @@ +import { UciEventsService } from './uci-events.service'; +import { Router } from '@angular/router'; +import * as i0 from "@angular/core"; +export declare class TelemetryUtilsService { + private discussionEvents; + private router; + _context: any[]; + currentObj: {}; + constructor(discussionEvents: UciEventsService, router: Router); + setContext(context: any): void; + uppendContext(data: any): void; + deleteContext(prevTopic: any): void; + getContext(): any[]; + logImpression(pageId: any): void; + logInteract(event: any, pageId: any): void; + getRollUp(): {}; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=telemetry-utils.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map new file mode 100644 index 00000000000..aba34c6ec41 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"telemetry-utils.service.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/telemetry-utils.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;;AAUzC,qBAGa,qBAAqB;IAM9B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IALhB,QAAQ,QAAK;IACb,UAAU,KAAM;gBAGN,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM;IAGxB,UAAU,CAAC,OAAO,KAAA;IAKlB,aAAa,CAAC,IAAI,KAAA;IAQlB,aAAa,CAAC,SAAS,KAAA;IAOvB,UAAU;IAIV,aAAa,CAAC,MAAM,KAAA;IAmBpB,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IA8BzB,SAAS;yCAnFE,qBAAqB;6CAArB,qBAAqB;CAuGjC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts new file mode 100644 index 00000000000..c4ed97cd165 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts @@ -0,0 +1,12 @@ +import { EventEmitter } from '@angular/core'; +import { Subject } from 'rxjs'; +import * as i0 from "@angular/core"; +export declare class UciEventsService { + telemetryEvent: Subject; + actionEvent: EventEmitter; + constructor(); + emitTelemetry(event: any): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵprov: i0.ɵɵInjectableDeclaration; +} +//# sourceMappingURL=uci-events.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map new file mode 100644 index 00000000000..f56fe298d1f --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci-events.service.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/uci-events.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;;AAI/B,qBAGa,gBAAgB;IAEpB,cAAc,eAAsB;IACpC,WAAW,oBAA2B;;IAI7C,aAAa,CAAC,KAAK,KAAA;yCAPR,gBAAgB;6CAAhB,gBAAgB;CAa5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts new file mode 100644 index 00000000000..4dc4de30fb4 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts @@ -0,0 +1,11 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./components/lib-entry/lib-entry.component"; +import * as i2 from "./components/components.module"; +import * as i3 from "./uci-routing/uci-routing.module"; +export declare function provideCsModule(): any; +export declare class UciModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +//# sourceMappingURL=uci-module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map new file mode 100644 index 00000000000..a9278f08ed1 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci-module.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/uci-module.ts"],"names":[],"mappings":";;;;AASA,wBAAgB,eAAe,QAE9B;AAED,qBAaa,SAAS;yCAAT,SAAS;0CAAT,SAAS;0CAAT,SAAS;CACrB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts new file mode 100644 index 00000000000..e2e5419c41f --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "@angular/router"; +import * as i2 from "@angular/common"; +export declare class UciRoutingModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +//# sourceMappingURL=uci-routing.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map new file mode 100644 index 00000000000..57fca10406e --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"uci-routing.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/uci-routing/uci-routing.module.ts"],"names":[],"mappings":";;;AAwCA,qBAQa,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAC5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/package.json b/src/app/client/src/assets/libs/uci-console/package.json new file mode 100644 index 00000000000..70b2c324222 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/package.json @@ -0,0 +1,44 @@ +{ + "name": "@samagra-x/uci-console", + "version": "8.0.0", + "repository": { + "type": "git", + "url": "git+https://github.com/samagra-development/uci-console.git" + }, + "keywords": [ + "angular", + "components", + "sunbird" + ], + "bugs": { + "url": "https://github.com/samagra-development/uci-console/issues" + }, + "homepage": "https://github.com/samagra-development/uci-console.git#readme", + "peerDependencies": { + "@angular/common": ">=16.2.12", + "@angular/core": ">=16.2.12", + "@project-sunbird/client-services": ">=5.1.2", + "lodash-es": ">=4.17.20", + "ngx-chips": ">=2.2.0" + }, + "description": "This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.", + "author": "Bharat Kashyap", + "dependencies": { + "tslib": "^2.0.0" + }, + "license": "ISC", + "module": "fesm2022/samagra-x-uci-console.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/samagra-x-uci-console.mjs", + "esm": "./esm2022/samagra-x-uci-console.mjs", + "default": "./fesm2022/samagra-x-uci-console.mjs" + } + }, + "sideEffects": false +} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/public-api.d.ts b/src/app/client/src/assets/libs/uci-console/public-api.d.ts new file mode 100644 index 00000000000..50a3eb9e5b9 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/public-api.d.ts @@ -0,0 +1,5 @@ +export * from './lib/uci-module'; +export * from './lib/uci-events.service'; +export * from './lib/models/uci-config.model'; +export * from './lib/components/lib-entry/lib-entry.component'; +//# sourceMappingURL=public-api.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map b/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map new file mode 100644 index 00000000000..b45a2149af5 --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/uci-console/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAe,+BAA+B,CAAC;AAC/C,cAAc,gDAAgD,CAAC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map b/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map new file mode 100644 index 00000000000..33cf1632d7c --- /dev/null +++ b/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"samagra-x-uci-console.d.ts","sourceRoot":"","sources":["../../projects/uci-console/src/samagra-x-uci-console.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"} \ No newline at end of file diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index e6743482caa..eb4ca8d31cb 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -3245,13 +3245,13 @@ dependencies: tslib "2.0.0" -"@project-sunbird/ng2-semantic-ui@8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@project-sunbird/ng2-semantic-ui/-/ng2-semantic-ui-8.0.2.tgz#9e9d8344395bc5f873a40c53fc2001e8b8df93eb" - integrity sha512-o2aOHUDVvjN9jGI4xE8IBy9ZUaEy43yp3NnXtf3/GJm7DRI+533yKaygs3yafZkh5f2xP1hcnHfvidhhIqgBHQ== +"@project-sunbird/ng2-semantic-ui@^8.0.3": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@project-sunbird/ng2-semantic-ui/-/ng2-semantic-ui-8.0.3.tgz#2877869951e92d334955576d38cf9180a4c19e87" + integrity sha512-llany4yxiqUMQnmhGVAY+XAnt1uKBBSoeYjJvGvFFkZN0jlSX2beiUUyCROesPX/sgh5rEmRs76ppTxCGCszyA== dependencies: bowser "2.11.0" - date-fns "3.6.0" + date-fns "2.0.0-alpha.1" element-closest "3.0.2" is-ua-webview "1.1.2" popper.js "^1.16.1" @@ -3421,10 +3421,8 @@ dependencies: tslib "^2.0.0" -"@samagra-x/uci-console@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@samagra-x/uci-console/-/uci-console-6.0.3.tgz#5b18ff5945428061bfc84aadf42fb00045d021e1" - integrity sha512-ex52/0zRXeSA0ay5p+LuLEais+cXVb+DkunALCV7gfD+NYE9F7qq0xB9Vj86yKcQV4blwhW9KZh8DwdxY/K03Q== +"@samagra-x/uci-console@file:../../../../uci-console/dist/uci-console": + version "8.0.0" dependencies: tslib "^2.0.0" @@ -3657,9 +3655,9 @@ "@types/estree" "*" "@types/eslint@*": - version "8.56.7" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.7.tgz#c33b5b5a9cfb66881beb7b5be6c34aa3e81d3366" - integrity sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA== + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -3808,9 +3806,9 @@ "@types/node" "*" "@types/node@*": - version "20.12.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.5.tgz#74c4f31ab17955d0b5808cdc8fd2839526ad00b3" - integrity sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw== + version "20.12.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384" + integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== dependencies: undici-types "~5.26.4" @@ -3830,9 +3828,9 @@ integrity sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug== "@types/qs@*": - version "6.9.14" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.14.tgz#169e142bfe493895287bee382af6039795e9b75b" - integrity sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA== + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== "@types/raf@^3.4.0": version "3.4.3" @@ -5111,9 +5109,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001587: - version "1.0.30001607" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001607.tgz#b91e8e033f6bca4e13d3d45388d87fa88931d9a5" - integrity sha512-WcvhVRjXLKFB/kmOFVwELtMxyhq3iM/MvmXcyCe2PNf166c39mptscOc/45TTS96n2gpNV2z7+NakArTWZCQ3w== + version "1.0.30001611" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz#4dbe78935b65851c2d2df1868af39f709a93a96e" + integrity sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q== canonicalize@^1.0.1: version "1.0.8" @@ -5580,9 +5578,9 @@ copy-webpack-plugin@11.0.0: serialize-javascript "^6.0.0" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.36.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.1.tgz#1818695d72c99c25d621dca94e6883e190cea3c8" - integrity sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA== + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.0.tgz#d9570e544163779bb4dff1031c7972f44918dc73" + integrity sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA== dependencies: browserslist "^4.23.0" @@ -5592,9 +5590,9 @@ core-js@2.4.1: integrity sha512-W4Zkayb9VI4zr+s7ReDSgTTaV9KWB4L997i8/mkOV2kY1c7QGNj91k8X0zcr8Tl24oYF6kiBomCDSYO4BvQQdQ== core-js@^3.18.3, core-js@^3.6.0, core-js@^3.8.3: - version "3.36.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.1.tgz#c97a7160ebd00b2de19e62f4bbd3406ab720e578" - integrity sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA== + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" + integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== core-util-is@1.0.2: version "1.0.2" @@ -5843,10 +5841,10 @@ datatables.net@2.0.3: dependencies: jquery ">=1.7" -date-fns@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" - integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== +date-fns@2.0.0-alpha.1: + version "2.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-alpha.1.tgz#f45e477cf3414269d97fb1aae899035f3b308474" + integrity sha512-4gYdF1rDgv9X/0ko69pt+FgpQtDU5rgqZVmckIOhDicfCSTndwHMhUhLJw+pa4DlPdzIkEBtHg6L6VlQ6ueD1g== dayjs@1.11.9: version "1.11.9" @@ -5948,9 +5946,9 @@ decompress@^4.0.0: strip-dirs "^2.0.0" dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== deepmerge@^4.2.2: version "4.3.1" @@ -6129,9 +6127,9 @@ domhandler@^5.0.2, domhandler@^5.0.3: domelementtype "^2.3.0" dompurify@^2.2.0: - version "2.4.9" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.9.tgz#9ccdd9e1780653156b09de873f5372bc1eaf2c40" - integrity sha512-iHtnxYMotKgOTvxIqq677JsKHvCOkAFqj9x8Mek2zdeHW1XjuFKwjpmZeMaXQRQ8AbJZDbcRz/+r1QhwvFtmQg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.5.0.tgz#13b1115d79b9340e6db80b4624653f665885b15f" + integrity sha512-5RXhAXSCrKTqt9pSbobT9PVRX+oPpENplTZqCiK1l0ya+ZOzwo9kqsGLbYRsAhzIiLCwKEy99XKSSrqnRTLVcw== domutils@^3.0.1: version "3.1.0" @@ -6174,9 +6172,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.668: - version "1.4.729" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.729.tgz#8477d21e2a50993781950885b2731d92ad532c00" - integrity sha512-bx7+5Saea/qu14kmPTDHQxkp2UnziG3iajUQu3BxFvCOnpAJdDbMV4rSl+EqFDkkpNNVUFlR1kDfpL59xfy1HA== + version "1.4.744" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.744.tgz#d19cdfdbd81bd800b71773702bcbaa129a3b2e8f" + integrity sha512-nAGcF0yeKKfrP13LMFr5U1eghfFSvFLg302VUFzWlcjPOnUYd52yU5x6PBYrujhNbc4jYmZFrGZFK+xasaEzVA== element-closest@3.0.2: version "3.0.2" @@ -7244,9 +7242,9 @@ glob-parent@^6.0.1, glob-parent@^6.0.2: is-glob "^4.0.3" glob-stream@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.1.tgz#d01fcf6ac393d0956de530593c4cbc0b91af7e91" - integrity sha512-gkw+JQajGXmzky/Lil3/tQ+p96YKkqJwxiakKgfDGpNBNFHxklnK2nPmYukEW6n8/HmcAfeSvT6xCdRafidwZQ== + version "8.0.2" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.2.tgz#09e5818e41c16dd85274d72c7a7158d307426313" + integrity sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw== dependencies: "@gulpjs/to-absolute-glob" "^4.0.0" anymatch "^3.1.3" @@ -7255,7 +7253,6 @@ glob-stream@^8.0.0: is-glob "^4.0.3" is-negated-glob "^1.0.0" normalize-path "^3.0.0" - now-and-later "^3.0.0" streamx "^2.12.5" glob-to-regexp@^0.4.1: @@ -10777,9 +10774,9 @@ qs@6.9.7: integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== qs@^6.9.4: - version "6.12.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77" - integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== dependencies: side-channel "^1.0.6" @@ -11608,9 +11605,9 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" - integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" @@ -11840,7 +11837,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11900,7 +11906,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11914,6 +11920,13 @@ strip-ansi@^3.0.0: dependencies: ansi-regex "^2.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -13177,7 +13190,7 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -13195,6 +13208,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 2932a30481fffbb25895b1d64f90be9e379ee7dd Mon Sep 17 00:00:00 2001 From: Abhishek Nagesh Date: Fri, 19 Apr 2024 12:34:20 +0530 Subject: [PATCH 014/123] Issue #ED-4009 fix: Added UCI console package in portal codebase --- src/app/client/package.json | 2 +- src/app/client/yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/client/package.json b/src/app/client/package.json index e2bc41cbe25..2b6c323eb7b 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -85,7 +85,7 @@ "@project-sunbird/sunbird-video-player-web-component": "1.1.1", "@project-sunbird/telemetry-sdk": "1.3.0", "@project-sunbird/web-extensions": "8.0.1", - "@samagra-x/uci-console": "/Users/abhishek/projects/ekstep/uci-console/dist/uci-console", + "@samagra-x/uci-console": "file:src/assets/libs/uci-console", "@shikshalokam/sl-questionnaire": "7.0.0", "@shikshalokam/sl-reports-library": "3.0.1", "@swimlane/ngx-datatable": "20.1.0", diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index eb4ca8d31cb..c8b02dab545 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -3421,7 +3421,7 @@ dependencies: tslib "^2.0.0" -"@samagra-x/uci-console@file:../../../../uci-console/dist/uci-console": +"@samagra-x/uci-console@file:src/assets/libs/uci-console": version "8.0.0" dependencies: tslib "^2.0.0" From 63b4b331b127e2261c3427c694092bab8afd09ff Mon Sep 17 00:00:00 2001 From: Abhishek Nagesh Date: Fri, 19 Apr 2024 13:30:33 +0530 Subject: [PATCH 015/123] Issue #ED-4009 fix: Added UCI console private package in portal --- src/app/client/package.json | 2 +- .../app/modules/uci-admin/uci-admin.module.ts | 2 +- .../src/assets/libs/uci-console/README.md | 22 - .../esm2022/lib/common/constants.json | 597 ----- .../lib/components/components.module.mjs | 81 - .../conversation-add.component.mjs | 376 --- .../conversation-list.component.mjs | 120 - .../conversation-success.component.mjs | 40 - .../lib-entry/lib-entry.component.mjs | 55 - .../side-panel/side-panel.component.mjs | 76 - .../terms-conditions.component.mjs | 16 - .../user-segment-add.component.mjs | 221 -- .../user-segment-list.component.mjs | 100 - .../esm2022/lib/models/uci-config.model.mjs | 2 - .../esm2022/lib/models/uci.model.mjs | 9 - .../esm2022/lib/pipes/pipes.module.mjs | 19 - .../esm2022/lib/services/base.service.mjs | 69 - .../esm2022/lib/services/config.service.mjs | 58 - .../esm2022/lib/services/global.service.mjs | 32 - .../lib/services/uci-graph-ql.service.mjs | 99 - .../esm2022/lib/services/uci.service.mjs | 87 - .../esm2022/lib/telemetry-utils.service.mjs | 103 - .../esm2022/lib/uci-events.service.mjs | 27 - .../uci-console/esm2022/lib/uci-module.mjs | 34 - .../lib/uci-routing/uci-routing.module.mjs | 55 - .../libs/uci-console/esm2022/public-api.mjs | 8 - .../esm2022/samagra-x-uci-console.mjs | 5 - .../fesm2022/samagra-x-uci-console.mjs | 2195 ----------------- .../fesm2022/samagra-x-uci-console.mjs.map | 1 - .../src/assets/libs/uci-console/index.d.ts | 6 - .../lib/components/components.module.d.ts | 21 - .../lib/components/components.module.d.ts.map | 1 - .../conversation-add.component.d.ts | 80 - .../conversation-add.component.d.ts.map | 1 - .../conversation-list.component.d.ts | 33 - .../conversation-list.component.d.ts.map | 1 - .../conversation-success.component.d.ts | 16 - .../conversation-success.component.d.ts.map | 1 - .../lib-entry/lib-entry.component.d.ts | 28 - .../lib-entry/lib-entry.component.d.ts.map | 1 - .../side-panel/side-panel.component.d.ts | 33 - .../side-panel/side-panel.component.d.ts.map | 1 - .../terms-conditions.component.d.ts | 9 - .../terms-conditions.component.d.ts.map | 1 - .../user-segment-add.component.d.ts | 40 - .../user-segment-add.component.d.ts.map | 1 - .../user-segment-list.component.d.ts | 31 - .../user-segment-list.component.d.ts.map | 1 - .../lib/models/uci-config.model.d.ts | 16 - .../lib/models/uci-config.model.d.ts.map | 1 - .../uci-console/lib/models/uci.model.d.ts | 70 - .../uci-console/lib/models/uci.model.d.ts.map | 1 - .../uci-console/lib/pipes/pipes.module.d.ts | 8 - .../lib/pipes/pipes.module.d.ts.map | 1 - .../lib/services/base.service.d.ts | 16 - .../lib/services/base.service.d.ts.map | 1 - .../lib/services/config.service.d.ts | 29 - .../lib/services/config.service.d.ts.map | 1 - .../lib/services/global.service.d.ts | 15 - .../lib/services/global.service.d.ts.map | 1 - .../lib/services/uci-graph-ql.service.d.ts | 21 - .../services/uci-graph-ql.service.d.ts.map | 1 - .../uci-console/lib/services/uci.service.d.ts | 33 - .../lib/services/uci.service.d.ts.map | 1 - .../lib/telemetry-utils.service.d.ts | 20 - .../lib/telemetry-utils.service.d.ts.map | 1 - .../uci-console/lib/uci-events.service.d.ts | 12 - .../lib/uci-events.service.d.ts.map | 1 - .../libs/uci-console/lib/uci-module.d.ts | 11 - .../libs/uci-console/lib/uci-module.d.ts.map | 1 - .../lib/uci-routing/uci-routing.module.d.ts | 9 - .../uci-routing/uci-routing.module.d.ts.map | 1 - .../src/assets/libs/uci-console/package.json | 44 - .../assets/libs/uci-console/public-api.d.ts | 5 - .../libs/uci-console/public-api.d.ts.map | 1 - .../samagra-x-uci-console.d.ts.map | 1 - src/app/client/yarn.lock | 12 +- 77 files changed, 9 insertions(+), 5143 deletions(-) delete mode 100644 src/app/client/src/assets/libs/uci-console/README.md delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs delete mode 100644 src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map delete mode 100644 src/app/client/src/assets/libs/uci-console/index.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/package.json delete mode 100644 src/app/client/src/assets/libs/uci-console/public-api.d.ts delete mode 100644 src/app/client/src/assets/libs/uci-console/public-api.d.ts.map delete mode 100644 src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map diff --git a/src/app/client/package.json b/src/app/client/package.json index 2b6c323eb7b..ef3d252b5f1 100644 --- a/src/app/client/package.json +++ b/src/app/client/package.json @@ -85,7 +85,7 @@ "@project-sunbird/sunbird-video-player-web-component": "1.1.1", "@project-sunbird/telemetry-sdk": "1.3.0", "@project-sunbird/web-extensions": "8.0.1", - "@samagra-x/uci-console": "file:src/assets/libs/uci-console", + "uci-console-v16":"8.0.0", "@shikshalokam/sl-questionnaire": "7.0.0", "@shikshalokam/sl-reports-library": "3.0.1", "@swimlane/ngx-datatable": "20.1.0", diff --git a/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts b/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts index 3578869577e..1193164b676 100644 --- a/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts +++ b/src/app/client/src/app/modules/uci-admin/uci-admin.module.ts @@ -1,7 +1,7 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core'; import { UciComponent } from './components/uci/uci.component'; import { UciAdminRoutingModule } from './uci-admin-routing.module'; -import {UciModule} from '@samagra-x/uci-console'; +import {UciModule} from 'uci-console-v16'; @NgModule({ diff --git a/src/app/client/src/assets/libs/uci-console/README.md b/src/app/client/src/assets/libs/uci-console/README.md deleted file mode 100644 index 1317bbc41df..00000000000 --- a/src/app/client/src/assets/libs/uci-console/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# UCI-Console - -## Code scaffolding - -Run `ng generate component component-name --project uci-console` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project uci-console`. -> Note: Don't forget to add `--project uci-console` or else it will be added to the default project in your `angular.json` file. - -## Build - -Run `ng build uci-console` to build the project. The build artifacts will be stored in the `dist/` directory. - -## Publishing - -After building your library with `ng build uci-console`, go to the dist folder `cd dist/uci-console` and run `npm publish`. - -## Running unit tests - -Run `ng test uci-console` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json b/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json deleted file mode 100644 index 0601eb942d0..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/common/constants.json +++ /dev/null @@ -1,597 +0,0 @@ -{ - "categories": [{ - "cid": 1, - "name": "Announcements", - "description": "Check here for announcements about NodeBB", - "icon": "fa-bullhorn", - "slug": "1/announcements", - "topic_count": 73, - "disabled": 0, - "order": 1, - "bgColor": "#e57373", - "link": "", - "class": "col-lg-4 col-md-6 col-xs-12", - "numRecentReplies": 1, - "color": "#ffffff", - "post_count": 884, - "parentCid": 0, - "descriptionParsed": "

Check here for announcements about NodeBB

\n", - "minTags": 0, - "maxTags": 5, - "isSection": 0, - "totalPostCount": 854, - "totalTopicCount": 73, - "tagWhitelist": [], - "unread-class": "unread", - "children": [], - "posts": [{ - "pid": 79553, - "timestamp": 1597704130970, - "content": "

A bug in our validation logic made it possible to change the password of any user on a running NodeBB forum by sending a specially crafted socket.io call to the server.

\n

We have resolved this in the latest version of NodeBB, and the fix has already been rolled out as a patch on all of our hosted customers.

\n

For more information on the vulnerability as well as instructions on how to resolve this issue, please have a look here: https://github.com/NodeBB/NodeBB/security/advisories/GHSA-hr66-c8pg-5mg7

\n

Click here to see the full blog post

\n", - "timestampISO": "2020-08-17T22:42:10.970Z", - "user": { - "uid": 3, - "username": "psychobunny", - "userslug": "psychobunny", - "picture": "https://i.imgur.com/ltvPqkU.gif", - "displayname": "psychobunny", - "icon:text": "P", - "icon:bgColor": "#f44336" - }, - "index": 1, - "cid": 1, - "parentCid": 0, - "topic": { - "slug": "14967/nodebb-v1-14-3-a-critical-security-update", - "title": "NodeBB v1.14.3: A Critical Security Update" - } - }], - "teaser": { - "url": "/post/79553", - "timestampISO": "2020-08-17T22:42:10.970Z", - "pid": 79553, - "topic": { - "slug": "14967/nodebb-v1-14-3-a-critical-security-update", - "title": "NodeBB v1.14.3: A Critical Security Update" - } - } - }, - { - "cid": 2, - "name": "General Discussion", - "description": "A place to talk about whatever you want", - "icon": "fa-comment", - "slug": "2/general-discussion", - "topic_count": 3188, - "order": 2, - "bgColor": "#ba68c8", - "link": "", - "class": "col-lg-4 col-md-6 col-xs-12", - "numRecentReplies": 1, - "color": "#ffffff", - "post_count": 20024, - "descriptionParsed": "

A place to talk about whatever you want

\n", - "minTags": 0, - "maxTags": 5, - "parentCid": 0, - "disabled": 0, - "isSection": 0, - "totalPostCount": 20024, - "totalTopicCount": 3188, - "tagWhitelist": [], - "unread-class": "", - "children": [], - "posts": [{ - "pid": 80371, - "timestamp": 1605714102926, - "content": "

@gotwf pardon the late response, I've adopted your suggestion, thanks!

\n

@julian good to know! And apparently my spammers were all \"human-powered\"; ever since I made the changes suggested by @baris the blacklist hits and spam accounts have dropped to zero!

\n

Hopefully it stays that way so I can focus on content

\n

Cheers

\n", - "timestampISO": "2020-11-18T15:41:42.926Z", - "user": { - "uid": 19985, - "username": "Nefarius", - "userslug": "nefarius", - "picture": "https://i.imgur.com/v798aRw.png", - "displayname": "Nefarius", - "icon:text": "N", - "icon:bgColor": "#673ab7" - }, - "index": 6, - "cid": 2, - "parentCid": 0, - "topic": { - "slug": "15119/spam-registration-amount-and-handling-is-unbearable", - "title": "Spam registration amount and handling is unbearable" - } - }], - "teaser": { - "url": "/post/80371", - "timestampISO": "2020-11-18T15:41:42.926Z", - "pid": 80371, - "topic": { - "slug": "15119/spam-registration-amount-and-handling-is-unbearable", - "title": "Spam registration amount and handling is unbearable" - } - } - }, - { - "link": "", - "class": "col-lg-4 col-md-6 col-xs-12", - "icon": "fa-github", - "description": "Stay tuned here to hear more about new releases and features of NodeBB!", - "order": 3, - "topic_count": 1158, - "name": "NodeBB Development", - "cid": 3, - "post_count": 6760, - "numRecentReplies": 1, - "bgColor": "#4fc3f7", - "slug": "3/nodebb-development", - "color": "#ffffff", - "disabled": 0, - "descriptionParsed": "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", - "isSection": 0, - "minTags": 0, - "maxTags": 5, - "parentCid": 0, - "totalPostCount": 17980, - "totalTopicCount": 2992, - "tagWhitelist": [], - "unread-class": "unread", - "children": [{ - "cid": 5, - "name": "Feature Requests", - "description": "You have a cool idea about NodeBB? Post it here.", - "icon": "fa-lightbulb-o", - "slug": "5/feature-requests", - "topic_count": 692, - "order": 1, - "bgColor": "#ffb74d", - "link": "", - "class": "col-lg-4 col-md-6 col-xs-12", - "numRecentReplies": 1, - "color": "#ffffff", - "post_count": 4176, - "parentCid": 3, - "disabled": 0, - "minTags": 0, - "maxTags": 5, - "isSection": 0, - "totalPostCount": 4176, - "totalTopicCount": 692, - "descriptionParsed": "You have a cool idea about NodeBB? Post it here.", - "tagWhitelist": [], - "unread-class": "unread", - "children": [], - "parent": { - "link": "", - "class": "col-lg-4 col-md-6 col-xs-12", - "icon": "fa-github", - "description": "Stay tuned here to hear more about new releases and features of NodeBB!", - "order": 3, - "topic_count": 1158, - "name": "NodeBB Development", - "cid": 3, - "post_count": 6760, - "numRecentReplies": 1, - "bgColor": "#4fc3f7", - "slug": "3/nodebb-development", - "color": "#ffffff", - "disabled": 0, - "descriptionParsed": "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", - "isSection": 0, - "minTags": 0, - "maxTags": 5, - "parentCid": 0, - "totalPostCount": 6760, - "totalTopicCount": 1158, - "tagWhitelist": [], - "unread-class": "unread" - }, - "posts": [{ - "pid": 80380, - "timestamp": 1605820679025, - "content": "

@julian if this makes sense to you, do you think this can be a part of \"canned responses\" plugin?

\n", - "timestampISO": "2020-11-19T21:17:59.025Z", - "user": { - "uid": 16848, - "username": "crazycells", - "userslug": "crazycells", - "picture": "https://i.imgur.com/fnkHctr.png", - "displayname": "crazycells", - "icon:text": "C", - "icon:bgColor": "#009688" - }, - "index": 2, - "cid": 5, - "parentCid": 3, - "topic": { - "slug": "15137/canned-explanations-reasons-for-user-ban", - "title": "canned explanations(reasons) for user ban" - } - }] - }] - } - ], - "topics": [ - { - "cid": 13, - "lastposttime": 1606632795076, - "mainPid": 17647, - "postcount": 1, - "slug": "8917/hello-this-is-my-new-post", - "tid": 8917, - "timestamp": 1606632795069, - "title": "Hello this is my new post", - "uid": 104, - "viewcount": 1, - "deleted": 0, - "locked": 0, - "pinned": 0, - "upvotes": 0, - "downvotes": 0, - "deleterUid": 0, - "titleRaw": "Hello this is my new post", - "timestampISO": "2020-11-29T06:53:15.069Z", - "lastposttimeISO": "2020-11-29T06:53:15.076Z", - "votes": 0, - "teaserPid": null, - "category": { - "cid": 13, - "name": "Administration", - "slug": "13/administration", - "icon": "fa-comments", - "backgroundImage": null, - "imageClass": "cover", - "bgColor": "#DC9656", - "color": "#fff", - "disabled": 0 - }, - "user": { - "uid": 104, - "username": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - "fullname": "arunkumar pilli", - "userslug": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - "reputation": 0, - "postcount": 1, - "picture": null, - "signature": null, - "banned": 0, - "status": "online", - "icon:text": "5", - "icon:bgColor": "#1b5e20", - "banned_until_readable": "Not Banned" - }, - "teaser": { - "pid": 17647, - "uid": 104, - "timestamp": 1606632795076, - "tid": 8917, - "content": "adding new post in igot discussions\n", - "timestampISO": "2020-11-29T06:53:15.076Z", - "user": { - "uid": 104, - "username": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - "userslug": "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - "picture": null, - "icon:text": "5", - "icon:bgColor": "#1b5e20" - }, - "index": 1 - }, - "tags": [], - "isOwner": false, - "ignored": false, - "unread": true, - "bookmark": 3, - "unreplied": false, - "icons": [], - "index": 0 - }, - { - "cid": 9, - "lastposttime": 1606297869195, - "mainPid": 17635, - "postcount": 5, - "slug": "8912/why-is-bangalore-s-infrastructure-bad", - "tid": 8912, - "timestamp": 1606134890874, - "title": "Why is Bangalore's infrastructure bad?", - "uid": 113, - "viewcount": 36, - "downvotes": 0, - "upvotes": 2, - "teaserPid": 17646, - "deleted": 0, - "locked": 0, - "pinned": 0, - "deleterUid": 0, - "titleRaw": "Why is Bangalore's infrastructure bad?", - "timestampISO": "2020-11-23T12:34:50.874Z", - "lastposttimeISO": "2020-11-25T09:51:09.195Z", - "votes": 2, - "category": { - "cid": 9, - "name": "Infrastructure", - "slug": "9/infrastructure", - "icon": "fa-comments", - "backgroundImage": null, - "imageClass": "cover", - "bgColor": "#86C1B9", - "color": "#333", - "disabled": 0 - }, - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "fullname": "Manimegalai Mohan", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "reputation": 3, - "postcount": 16, - "picture": null, - "signature": null, - "banned": 0, - "status": "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - "banned_until_readable": "Not Banned" - }, - "teaser": { - "pid": 17635, - "uid": 113, - "timestamp": 1606134890882, - "tid": 8912, - "content": "Why is Bangalore's infrastructure bad?\n", - "timestampISO": "2020-11-23T12:34:50.882Z", - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "picture": null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - "index": 1 - }, - "tags": [], - "isOwner": false, - "ignored": false, - "unread": true, - "bookmark": 7, - "unreplied": false, - "icons": [], - "index": 1 - }, - { - "cid": 13, - "lastposttime": 1606201083049, - "mainPid": 17645, - "postcount": 1, - "slug": "8916/origin-of-solar-system", - "tid": 8916, - "timestamp": 1606201083043, - "title": "Origin of Solar system", - "uid": 113, - "viewcount": 10, - "deleted": 0, - "locked": 0, - "pinned": 0, - "upvotes": 0, - "downvotes": 0, - "deleterUid": 0, - "titleRaw": "Origin of Solar system", - "timestampISO": "2020-11-24T06:58:03.043Z", - "lastposttimeISO": "2020-11-24T06:58:03.049Z", - "votes": 0, - "teaserPid": null, - "category": { - "cid": 13, - "name": "Administration", - "slug": "13/administration", - "icon": "fa-comments", - "backgroundImage": null, - "imageClass": "cover", - "bgColor": "#DC9656", - "color": "#fff", - "disabled": 0 - }, - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "fullname": "Manimegalai Mohan", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "reputation": 3, - "postcount": 16, - "picture": null, - "signature": null, - "banned": 0, - "status": "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - "banned_until_readable": "Not Banned" - }, - "teaser": { - "pid": 17645, - "uid": 113, - "timestamp": 1606201083049, - "tid": 8916, - "content": "Solar system\n", - "timestampISO": "2020-11-24T06:58:03.049Z", - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "picture": null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - "index": 1 - }, - "tags": [], - "isOwner": false, - "ignored": false, - "unread": true, - "bookmark": 3, - "unreplied": false, - "icons": [], - "index": 2 - }, - { - "cid": 11, - "lastposttime": 1606198830431, - "mainPid": 17644, - "postcount": 1, - "slug": "8915/who-opened-up-the-indian-economy", - "tid": 8915, - "timestamp": 1606198830424, - "title": "Who opened up the indian economy?", - "uid": 113, - "viewcount": 5, - "deleted": 0, - "locked": 0, - "pinned": 0, - "upvotes": 0, - "downvotes": 0, - "deleterUid": 0, - "titleRaw": "Who opened up the indian economy?", - "timestampISO": "2020-11-24T06:20:30.424Z", - "lastposttimeISO": "2020-11-24T06:20:30.431Z", - "votes": 0, - "teaserPid": null, - "category": { - "cid": 11, - "name": "Economy", - "slug": "11/economy", - "icon": "fa-comments", - "backgroundImage": null, - "imageClass": "cover", - "bgColor": "#F7CA88", - "color": "#333", - "disabled": 0 - }, - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "fullname": "Manimegalai Mohan", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "reputation": 3, - "postcount": 16, - "picture": null, - "signature": null, - "banned": 0, - "status": "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - "banned_until_readable": "Not Banned" - }, - "teaser": { - "pid": 17644, - "uid": 113, - "timestamp": 1606198830431, - "tid": 8915, - "content": "Who opened up the indian economy?\n", - "timestampISO": "2020-11-24T06:20:30.431Z", - "user": { - "uid": 113, - "username": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "userslug": "1c2d792e-392b-4d98-b18e-af5ea69340b2", - "picture": null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - "index": 1 - }, - "tags": [], - "isOwner": false, - "ignored": false, - "unread": true, - "bookmark": 3, - "unreplied": false, - "icons": [], - "index": 3 - }, - { - "cid": 11, - "lastposttime": 1606135442960, - "mainPid": 17637, - "postcount": 4, - "slug": "8914/how-covid-will-impact-indian-economy", - "tid": 8914, - "timestamp": 1606135371841, - "title": "How covid will impact indian economy ?", - "uid": 5, - "viewcount": 10, - "teaserPid": 17640, - "deleted": 0, - "locked": 0, - "pinned": 0, - "upvotes": 0, - "downvotes": 0, - "deleterUid": 0, - "titleRaw": "How covid will impact indian economy ?", - "timestampISO": "2020-11-23T12:42:51.841Z", - "lastposttimeISO": "2020-11-23T12:44:02.960Z", - "votes": 0, - "category": { - "cid": 11, - "name": "Economy", - "slug": "11/economy", - "icon": "fa-comments", - "backgroundImage": null, - "imageClass": "cover", - "bgColor": "#F7CA88", - "color": "#333", - "disabled": 0 - }, - "user": { - "uid": 5, - "username": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - "fullname": "Christopher F'des", - "userslug": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - "reputation": 8, - "postcount": 13, - "picture": null, - "signature": null, - "banned": 0, - "status": "offline", - "icon:text": "9", - "icon:bgColor": "#ff5722", - "banned_until_readable": "Not Banned" - }, - "teaser": { - "pid": 17637, - "uid": 5, - "timestamp": 1606135371849, - "tid": 8914, - "content": "How covid will impact indian economy ?\n", - "timestampISO": "2020-11-23T12:42:51.849Z", - "user": { - "uid": 5, - "username": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - "userslug": "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - "picture": null, - "icon:text": "9", - "icon:bgColor": "#ff5722" - }, - "index": 1 - }, - "tags": [], - "isOwner": false, - "ignored": false, - "unread": true, - "bookmark": 6, - "unreplied": false, - "icons": [], - "index": 4 - } - ], - "ROUTES": { - "UCI": "/uci" - }, - "MENUOPTIONS": [ - { - "route": "uci", - "label": "Conversations", - "enable": true - } - ] -} diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs deleted file mode 100644 index bdfa2376588..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/components.module.mjs +++ /dev/null @@ -1,81 +0,0 @@ -import { PipesModule } from '../pipes/pipes.module'; -import { UciService } from '../services/uci.service'; -import { ConfigService } from '../services/config.service'; -import { HttpClientModule } from '@angular/common/http'; -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { SidePanelComponent } from './side-panel/side-panel.component'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { TagInputModule } from 'ngx-chips'; -import { ConversationListComponent } from './conversation-list/conversation-list.component'; -import { ConversationAddComponent } from './conversation-add/conversation-add.component'; -import { UserSegmentListComponent } from './user-segment-list/user-segment-list.component'; -import { CommonFormElementsModule } from '@project-sunbird/common-form-elements-full'; -import { UserSegmentAddComponent } from './user-segment-add/user-segment-add.component'; -import { SuiModule } from '@project-sunbird/ng2-semantic-ui'; -import { ConversationSuccessComponent } from './conversation-success/conversation-success.component'; -import { UciGraphQlService } from '../services/uci-graph-ql.service'; -import { TermsConditionsComponent } from './terms-conditions/terms-conditions.component'; -import * as i0 from "@angular/core"; -export class ComponentsModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [SidePanelComponent, - ConversationListComponent, - ConversationAddComponent, - UserSegmentListComponent, - UserSegmentAddComponent, - TermsConditionsComponent, - ConversationSuccessComponent], imports: [CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule], exports: [SidePanelComponent] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, providers: [ - UciService, - ConfigService, - UciGraphQlService - ], imports: [CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [ - SidePanelComponent, - ConversationListComponent, - ConversationAddComponent, - UserSegmentListComponent, - UserSegmentAddComponent, - TermsConditionsComponent, - ConversationSuccessComponent - ], - imports: [ - CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule, - ], - exports: [ - SidePanelComponent, - ], - providers: [ - UciService, - ConfigService, - UciGraphQlService - ] - }] - }] }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDOztBQStCdkYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBM0JyQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4Qiw0QkFBNEIsYUFHNUIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLFNBQVMsYUFHVCxrQkFBa0I7Z0hBUWIsZ0JBQWdCLGFBTmQ7WUFDUCxVQUFVO1lBQ1YsYUFBYTtZQUNiLGlCQUFpQjtTQUNwQixZQWhCRyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYztZQUNkLFdBQVc7WUFDWCx3QkFBd0I7WUFDeEIsU0FBUzs7NEZBV0osZ0JBQWdCO2tCQTdCNUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3dCQUNsQix5QkFBeUI7d0JBQ3pCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixTQUFTO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZXNNb2R1bGV9IGZyb20gJy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge1VjaVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3VjaS5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtIdHRwQ2xpZW50TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4vc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RhZ0lucHV0TW9kdWxlfSBmcm9tICduZ3gtY2hpcHMnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25MaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbnZlcnNhdGlvbi1saXN0L2NvbnZlcnNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnZlcnNhdGlvbkFkZENvbXBvbmVudH0gZnJvbSAnLi9jb252ZXJzYXRpb24tYWRkL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50JztcbmltcG9ydCB7VXNlclNlZ21lbnRMaXN0Q29tcG9uZW50fSBmcm9tICcuL3VzZXItc2VnbWVudC1saXN0L3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbkZvcm1FbGVtZW50c01vZHVsZX0gZnJvbSAnQHByb2plY3Qtc3VuYmlyZC9jb21tb24tZm9ybS1lbGVtZW50cy1mdWxsJztcbmltcG9ydCB7VXNlclNlZ21lbnRBZGRDb21wb25lbnR9IGZyb20gJy4vdXNlci1zZWdtZW50LWFkZC91c2VyLXNlZ21lbnQtYWRkLmNvbXBvbmVudCc7XG5pbXBvcnQge1N1aU1vZHVsZX0gZnJvbSAnQHByb2plY3Qtc3VuYmlyZC9uZzItc2VtYW50aWMtdWknO1xuaW1wb3J0IHtDb252ZXJzYXRpb25TdWNjZXNzQ29tcG9uZW50fSBmcm9tICcuL2NvbnZlcnNhdGlvbi1zdWNjZXNzL2NvbnZlcnNhdGlvbi1zdWNjZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQge1VjaUdyYXBoUWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy91Y2ktZ3JhcGgtcWwuc2VydmljZSc7XG5pbXBvcnQge1Rlcm1zQ29uZGl0aW9uc0NvbXBvbmVudH0gZnJvbSAnLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2lkZVBhbmVsQ29tcG9uZW50LFxuICAgICAgICBDb252ZXJzYXRpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICBDb252ZXJzYXRpb25BZGRDb21wb25lbnQsXG4gICAgICAgIFVzZXJTZWdtZW50TGlzdENvbXBvbmVudCxcbiAgICAgICAgVXNlclNlZ21lbnRBZGRDb21wb25lbnQsXG4gICAgICAgIFRlcm1zQ29uZGl0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgQ29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUYWdJbnB1dE1vZHVsZSxcbiAgICAgICAgUGlwZXNNb2R1bGUsXG4gICAgICAgIENvbW1vbkZvcm1FbGVtZW50c01vZHVsZSxcbiAgICAgICAgU3VpTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTaWRlUGFuZWxDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVWNpU2VydmljZSxcbiAgICAgICAgQ29uZmlnU2VydmljZSxcbiAgICAgICAgVWNpR3JhcGhRbFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUge1xufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs deleted file mode 100644 index 5da3f659d66..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-add/conversation-add.component.mjs +++ /dev/null @@ -1,376 +0,0 @@ -import { Component, ViewChild } from '@angular/core'; -import { Validators } from '@angular/forms'; -import moment from 'moment/moment'; -import { debounceTime } from 'rxjs/operators'; -import * as i0 from "@angular/core"; -import * as i1 from "../../services/uci.service"; -import * as i2 from "@angular/router"; -import * as i3 from "@angular/forms"; -import * as i4 from "../../services/global.service"; -import * as i5 from "@angular/common"; -import * as i6 from "@project-sunbird/ng2-semantic-ui"; -import * as i7 from "../user-segment-list/user-segment-list.component"; -import * as i8 from "../user-segment-add/user-segment-add.component"; -import * as i9 from "../terms-conditions/terms-conditions.component"; -export class ConversationAddComponent { - constructor(uciService, router, activatedRoute, fb, globalService) { - this.uciService = uciService; - this.router = router; - this.activatedRoute = activatedRoute; - this.fb = fb; - this.globalService = globalService; - this.currentViewState = 'ADD_CONVERSATION'; - this.stepIndex = 1; - this.selectedLogic = []; - this.userSegments = []; - this.column = ''; - this.sortDirection = ''; - this.reverse = false; - this.collectionListModal = false; - this.isLoaderShow = false; - this.isModalLoaderShow = false; - this.logicFormRequest = {}; - this.isCheckedTermCondition = false; - this.termsAndConditionModal = false; - this.verifyAllItemsModal = false; - this.startMinDate = new Date(); - this.Appropriateness = [ - { - text: 'No Hate speech, Abuse, Violence, Profanity', - checks: false - }, - { - text: 'No Sexual content, Nudity or Vulgarity', - checks: false - }, - { - text: 'No Discrimination or Defamation', - checks: false - }, - { - text: 'Is suitable for children', - checks: false - } - ]; - this.contentDetails = [ - { - text: 'Appropriate Title, Description', - checks: false - }, - { - text: 'Correct Board, Grade, Subject, Medium', - checks: false - }, - { - text: 'Appropriate tags such as Resource Type, Concepts', - checks: false - }, - { - text: 'Relevant keywords', - checks: false - } - ]; - this.usability = [ - { - text: 'Content plays correctly', - checks: false - }, - { - text: 'Can see the content clearly on Desktop and App', - checks: false - }, - { - text: 'Audio (if any) is clear and easy to understand', - checks: false - }, - { - text: 'No spelling mistakes in the text', - checks: false - }, - { - text: 'Language is simple to understand', - checks: false - } - ]; - this.odkFileAlreadyExist = false; - this.isStartingMessageExist = false; - const tempDate = moment().add(1, 'days').format('YYYY-MM-DD'); - this.endMinDate = new Date(tempDate); - } - ngOnInit() { - this.user = this.globalService.getUser(); - if (!this.user) { - this.router.navigate(['uci-admin']); - return; - } - this.conversationForm = this.fb.group({ - name: ['', Validators.required], - description: [''], - purpose: ['', Validators.required], - startingMessage: ['', Validators.required], - startDate: [null], - endDate: [null], - status: ['Draft'] - }); - this.logicForm = this.fb.group({ - id: [null], - name: ['', Validators.required], - description: [''], - formId: ['', Validators.required] - }); - // Edit case - this.conversationId = this.activatedRoute.snapshot.paramMap.get('id'); - if (this.conversationId) { - this.getUserSegmentDetail(); - } - // start date and end date value change - this.conversationForm.get('startDate').valueChanges.subscribe(val => { - this.conversationForm.get('endDate').patchValue(null); - const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD'); - this.endMinDate = new Date(tempDate); - }); - this.conversationForm.get('startingMessage').valueChanges - .pipe(debounceTime(1000)) - .subscribe(value => { - this.onStarringMessageChange(); - }); - } - userSegment() { - this.currentViewState = 'SELECT_SEGMENT'; - } - onUserSegmentCancel() { - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentAddClick() { - this.currentViewState = 'ADD_SEGMENT'; - } - onUserSegmentAdd(segments) { - this.userSegments = segments; - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentCreate(segment) { - this.userSegments.push(segment); - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentDelete(index) { - this.userSegments.splice(index, 1); - } - nextStep() { - if (this.stepIndex === 1 && this.conversationForm.valid) { - this.stepIndex = 2; - } - } - backToStepOne() { - if (this.stepIndex === 2) { - this.stepIndex = 1; - } - } - onAddCancel() { - this.router.navigate(['uci-admin']); - } - onSubmit(isTriggerBot = false) { - const reqObj = { - ...this.conversationForm.value, - users: [], - logic: [] - }; - this.userSegments.forEach(userSegment => { - reqObj.users.push(userSegment.id); - }); - this.selectedLogic.forEach(logic => { - reqObj.logic.push(logic.id); - }); - this.isLoaderShow = true; - if (this.conversationId) { - this.uciService.botUpdate(this.conversationId, { data: reqObj }).subscribe(data => { - this.closeVerifyModal(); - this.isLoaderShow = false; - this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: this.conversationId } }); - }, error => { - this.isLoaderShow = false; - this.verifyAllItemsModal = true; - }); - } - else { - this.uciService.botCreate({ data: reqObj }).subscribe((data) => { - if (isTriggerBot) { - this.startConversation(data.data); - } - else { - this.closeVerifyModal(); - this.isLoaderShow = false; - this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: data.data.id } }); - } - }, error => { - this.isLoaderShow = false; - this.verifyAllItemsModal = true; - }); - } - } - startConversation(bot) { - this.uciService.startConversation(bot.id).subscribe(data => { - this.isLoaderShow = false; - this.closeVerifyModal(); - this.router.navigate(['uci-admin/success'], { - queryParams: { - text: this.conversationForm.value.startingMessage, - botId: bot.id - } - }); - }, error => { - this.verifyAllItemsModal = true; - this.isLoaderShow = false; - }); - } - closeVerifyModal() { - if (this.verifyAllModal) { - this.verifyAllModal.deny('denied'); - } - this.verifyAllItemsModal = false; - } - openModel() { - this.logicFormRequest = {}; - this.collectionListModal = true; - this.logicForm.reset(); - this.fileErrorStatus = null; - this.isStartingMessageExist = false; - } - openTermAndConditionModel() { - this.termsAndConditionModal = true; - } - openItemsVerifyModal(isSubmitBtn) { - this.verifyAllItemsModal = true; - this.isSubmit = isSubmitBtn; - } - onLogicAdd() { - const reqData = { - ...this.logicForm.value, - transformers: [ - { - id: 'bbf56981-b8c9-40e9-8067-468c2c753659', - meta: { - form: 'https://hosted.my.form.here.com', - formID: this.logicForm.value.formId - } - } - ], - adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324' - }; - this.isModalLoaderShow = true; - if (this.logicForm.get('id').value) { - this.uciService.updateLogic(this.logicForm.get('id').value, { data: reqData }).subscribe((data) => { - this.isModalLoaderShow = false; - const existingLogic = reqData; - delete existingLogic.id; - this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic); - }, error => { - this.isModalLoaderShow = false; - }); - } - else { - this.uciService.createLogic({ data: reqData }).subscribe((data) => { - this.isModalLoaderShow = false; - const existingLogic = reqData; - delete existingLogic.id; - this.selectedLogic.push({ - id: data.data.id, - ...existingLogic, - }); - }, error => { - this.isModalLoaderShow = false; - }); - } - } - getEditLogicData(item, index) { - if (item.id) { - this.selectedLogicIndex = index; - this.logicForm.patchValue({ - id: item.id, - name: item.name, - description: item.description, - formId: item.transformers[0].meta.formID - }); - } - } - onFileUpload(event) { - if (!event.target.files.length) { - return; - } - const file = event.target.files[0]; - const obj = { - form: file - }; - this.logicForm.patchValue({ formId: '' }); - this.isModalLoaderShow = true; - this.uciService.uploadFile(obj).subscribe((fileInfo) => { - if (fileInfo.result?.data) { - this.logicForm.patchValue({ formId: fileInfo.result?.data }); - } - this.isModalLoaderShow = false; - this.odkFileAlreadyExist = false; - }, error => { - this.isModalLoaderShow = false; - this.odkFileAlreadyExist = true; - this.fileErrorStatus = error.error.status; - }); - } - onDelete(logic, index) { - this.uciService.deleteLogic(logic.id).subscribe(file => { - this.selectedLogic.splice(index, 1); - }); - } - getUserSegmentDetail() { - this.uciService.getBotUserDetails(this.conversationId).subscribe((val) => { - if (val.data) { - this.conversationForm.patchValue({ - name: val.data.name, - description: val.data.description, - purpose: val.data.purpose, - startingMessage: val.data.startingMessage, - startDate: val.data.startDate ? val.data.startDate : '', - endDate: val.data.endDate ? val.data.endDate : '' - }); - if (val.data.userSegments) { - this.userSegments = val.data.userSegments; - } - if (val.data.logic) { - this.selectedLogic = val.data.logic; - } - } - }); - } - allCheck(isAllCheck = false) { - this.Appropriateness.forEach(val => { - val.checks = isAllCheck; - }); - this.contentDetails.forEach(val => { - val.checks = isAllCheck; - }); - this.usability.forEach(val => { - val.checks = isAllCheck; - }); - } - onStarringMessageChange() { - this.uciService.getCheckStartingMessage({ startingMessage: this.conversationForm.value.startingMessage }).subscribe(val => { - this.isStartingMessageExist = true; - }, error => { - this.isStartingMessageExist = false; - }); - } - manualDownload() { - window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank'); - } - sampleODKDownload() { - window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank'); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, deps: [{ token: i1.UciService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationAddComponent, selector: "lib-conversation-add", viewQueries: [{ propertyName: "verifyAllModal", first: true, predicate: ["verifyAllModal"], descendants: true }], ngImport: i0, template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "directive", type: i6.SuiDatepickerDirective, selector: "[suiDatepicker]", inputs: ["pickerMode", "pickerInitialDate", "pickerMaxDate", "pickerMinDate", "pickerFirstDayOfWeek", "pickerLocaleOverrides", "pickerPlacement", "pickerTransition", "pickerTransitionDuration"], outputs: ["pickerSelectedDateChange", "pickerValidatorChange"] }, { kind: "directive", type: i6.SuiDatepickerDirectiveValueAccessor, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerDirectiveValidator, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerInputDirective, selector: "input[suiDatepicker]", inputs: ["pickerUseNativeOnMobile"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: i7.UserSegmentListComponent, selector: "lib-user-segment-list", inputs: ["selectedUserSegments"], outputs: ["cancel", "add"] }, { kind: "component", type: i8.UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: ["cancel", "add"] }, { kind: "component", type: i9.TermsConditionsComponent, selector: "lib-terms-conditions" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-add', template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"] }] - }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.GlobalService }]; }, propDecorators: { verifyAllModal: [{ - type: ViewChild, - args: ['verifyAllModal'] - }] } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLWFkZC9jb252ZXJzYXRpb24tYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tYWRkL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUF1QyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRixPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQU81QyxNQUFNLE9BQU8sd0JBQXdCO0lBc0ZqQyxZQUNZLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixFQUFzQixFQUN0QixhQUE0QjtRQUo1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF6RnhDLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUss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QUF1QjtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEgsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEdBQUcsMkNBQTJDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRixDQUFDOytHQTFaUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw4S0NkckMsd3VxQkF3WkE7OzRGRDFZYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksc0JBQXNCO2dOQUtILGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLWFkZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbnZlcnNhdGlvbi1hZGQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgndmVyaWZ5QWxsTW9kYWwnKSB2ZXJpZnlBbGxNb2RhbDtcbiAgICBjdXJyZW50Vmlld1N0YXRlID0gJ0FERF9DT05WRVJTQVRJT04nO1xuICAgIHN0ZXBJbmRleCA9IDE7XG4gICAgc2VsZWN0ZWRMb2dpYyA9IFtdO1xuICAgIHVzZXJTZWdtZW50cyA9IFtdO1xuICAgIGNvbHVtbiA9ICcnO1xuICAgIHNvcnREaXJlY3Rpb24gPSAnJztcbiAgICByZXZlcnNlID0gZmFsc2U7XG4gICAgY29sbGVjdGlvbkxpc3RNb2RhbCA9IGZhbHNlO1xuICAgIGlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgIGlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgbG9naWNGb3JtUmVxdWVzdCA9IHt9O1xuICAgIGlzQ2hlY2tlZFRlcm1Db25kaXRpb24gPSBmYWxzZTtcbiAgICBjb252ZXJzYXRpb25Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIGxvZ2ljRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0ZXJtc0FuZENvbmRpdGlvbk1vZGFsID0gZmFsc2U7XG4gICAgdmVyaWZ5QWxsSXRlbXNNb2RhbCA9IGZhbHNlO1xuICAgIGNvbnZlcnNhdGlvbklkO1xuICAgIHNlbGVjdGVkTG9naWNJbmRleDtcbiAgICBzdGFydE1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGVuZE1pbkRhdGU7XG4gICAgQXBwcm9wcmlhdGVuZXNzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTm8gSGF0ZSBzcGVlY2gsIEFidXNlLCBWaW9sZW5jZSwgUHJvZmFuaXR5JyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ05vIFNleHVhbCBjb250ZW50LCBOdWRpdHkgb3IgVnVsZ2FyaXR5JyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ05vIERpc2NyaW1pbmF0aW9uIG9yIERlZmFtYXRpb24nLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnSXMgc3VpdGFibGUgZm9yIGNoaWxkcmVuJyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfVxuICAgIF07XG4gICAgY29udGVudERldGFpbHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdBcHByb3ByaWF0ZSBUaXRsZSwgRGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnQ29ycmVjdCBCb2FyZCwgR3JhZGUsIFN1YmplY3QsIE1lZGl1bScsXG4gICAgICAgICAgICBjaGVja3M6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdBcHByb3ByaWF0ZSB0YWdzIHN1Y2ggYXMgUmVzb3VyY2UgVHlwZSwgQ29uY2VwdHMnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnUmVsZXZhbnQga2V5d29yZHMnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9XG4gICAgXTtcbiAgICB1c2FiaWxpdHkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdDb250ZW50IHBsYXlzIGNvcnJlY3RseScsXG4gICAgICAgICAgICBjaGVja3M6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdDYW4gc2VlIHRoZSBjb250ZW50IGNsZWFybHkgb24gRGVza3RvcCBhbmQgQXBwJyxcbiAgICAgICAgICAgIGNoZWNrczogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ0F1ZGlvIChpZiBhbnkpIGlzIGNsZWFyIGFuZCBlYXN5IHRvIHVuZGVyc3RhbmQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTm8gc3BlbGxpbmcgbWlzdGFrZXMgaW4gdGhlIHRleHQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnTGFuZ3VhZ2UgaXMgc2ltcGxlIHRvIHVuZGVyc3RhbmQnLFxuICAgICAgICAgICAgY2hlY2tzOiBmYWxzZVxuICAgICAgICB9XG4gICAgXTtcbiAgICBpc1N1Ym1pdDogYm9vbGVhbjtcbiAgICBvZGtGaWxlQWxyZWFkeUV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNTdGFydGluZ01lc3NhZ2VFeGlzdCA9IGZhbHNlO1xuICAgIGZpbGVFcnJvclN0YXR1cztcbiAgICB1c2VyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHRlbXBEYXRlID0gbW9tZW50KCkuYWRkKDEsICdkYXlzJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgICAgIHRoaXMuZW5kTWluRGF0ZSA9IG5ldyBEYXRlKHRlbXBEYXRlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51c2VyID0gdGhpcy5nbG9iYWxTZXJ2aWNlLmdldFVzZXIoKTtcbiAgICAgICAgaWYgKCF0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluJ10pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgcHVycG9zZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHN0YXJ0aW5nTWVzc2FnZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogW251bGxdLFxuICAgICAgICAgICAgZW5kRGF0ZTogW251bGxdLFxuICAgICAgICAgICAgc3RhdHVzOiBbJ0RyYWZ0J11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2dpY0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGlkOiBbbnVsbF0sXG4gICAgICAgICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFsnJ10sXG4gICAgICAgICAgICBmb3JtSWQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRWRpdCBjYXNlXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKTtcbiAgICAgICAgaWYgKHRoaXMuY29udmVyc2F0aW9uSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VXNlclNlZ21lbnREZXRhaWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHN0YXJ0IGRhdGUgYW5kIGVuZCBkYXRlIHZhbHVlIGNoYW5nZVxuICAgICAgICB0aGlzLmNvbnZlcnNhdGlvbkZvcm0uZ2V0KCdzdGFydERhdGUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnNhdGlvbkZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRlID0gbW9tZW50KHZhbCkuYWRkKDEsICdkYXlzJykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgICAgICAgICB0aGlzLmVuZE1pbkRhdGUgPSBuZXcgRGF0ZSh0ZW1wRGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybS5nZXQoJ3N0YXJ0aW5nTWVzc2FnZScpLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TdGFycmluZ01lc3NhZ2VDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHVzZXJTZWdtZW50KCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUgPSAnU0VMRUNUX1NFR01FTlQnO1xuICAgIH1cblxuICAgIG9uVXNlclNlZ21lbnRDYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfQ09OVkVSU0FUSU9OJztcbiAgICB9XG5cbiAgICBvblVzZXJTZWdtZW50QWRkQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfU0VHTUVOVCc7XG4gICAgfVxuXG4gICAgb25Vc2VyU2VnbWVudEFkZChzZWdtZW50cykge1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cyA9IHNlZ21lbnRzO1xuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUgPSAnQUREX0NPTlZFUlNBVElPTic7XG4gICAgfVxuXG4gICAgb25Vc2VyU2VnbWVudENyZWF0ZShzZWdtZW50KSB7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRzLnB1c2goc2VnbWVudCk7XG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZSA9ICdBRERfQ09OVkVSU0FUSU9OJztcbiAgICB9XG5cbiAgICBvblVzZXJTZWdtZW50RGVsZXRlKGluZGV4KSB7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgbmV4dFN0ZXAoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBJbmRleCA9PT0gMSAmJiB0aGlzLmNvbnZlcnNhdGlvbkZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcEluZGV4ID0gMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tUb1N0ZXBPbmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBJbmRleCA9PT0gMikge1xuICAgICAgICAgICAgdGhpcy5zdGVwSW5kZXggPSAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BZGRDYW5jZWwoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluJ10pO1xuICAgIH1cblxuICAgIG9uU3VibWl0KGlzVHJpZ2dlckJvdCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHJlcU9iaiA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuY29udmVyc2F0aW9uRm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHVzZXJzOiBbXSxcbiAgICAgICAgICAgIGxvZ2ljOiBbXVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cy5mb3JFYWNoKHVzZXJTZWdtZW50ID0+IHtcbiAgICAgICAgICAgIHJlcU9iai51c2Vycy5wdXNoKHVzZXJTZWdtZW50LmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpYy5mb3JFYWNoKGxvZ2ljID0+IHtcbiAgICAgICAgICAgIHJlcU9iai5sb2dpYy5wdXNoKGxvZ2ljLmlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnZlcnNhdGlvbklkKSB7XG4gICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuYm90VXBkYXRlKHRoaXMuY29udmVyc2F0aW9uSWQsIHtkYXRhOiByZXFPYmp9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWZXJpZnlNb2RhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3VjaS1hZG1pbi9zdWNjZXNzJ10sIHtxdWVyeVBhcmFtczoge3RleHQ6IHJlcU9iai5zdGFydGluZ01lc3NhZ2UsIGJvdElkOiB0aGlzLmNvbnZlcnNhdGlvbklkfX0pO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbGxJdGVtc01vZGFsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmJvdENyZWF0ZSh7ZGF0YTogcmVxT2JqfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVHJpZ2dlckJvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydENvbnZlcnNhdGlvbihkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVZlcmlmeU1vZGFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd1Y2ktYWRtaW4vc3VjY2VzcyddLCB7cXVlcnlQYXJhbXM6IHt0ZXh0OiByZXFPYmouc3RhcnRpbmdNZXNzYWdlLCBib3RJZDogZGF0YS5kYXRhLmlkfX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXJ0Q29udmVyc2F0aW9uKGJvdCkge1xuICAgICAgICB0aGlzLnVjaVNlcnZpY2Uuc3RhcnRDb252ZXJzYXRpb24oYm90LmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VWZXJpZnlNb2RhbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluL3N1Y2Nlc3MnXSwge1xuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdGhpcy5jb252ZXJzYXRpb25Gb3JtLnZhbHVlLnN0YXJ0aW5nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdElkOiBib3QuaWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbG9zZVZlcmlmeU1vZGFsKCkge1xuICAgICAgICBpZiAodGhpcy52ZXJpZnlBbGxNb2RhbCkge1xuICAgICAgICAgICAgdGhpcy52ZXJpZnlBbGxNb2RhbC5kZW55KCdkZW5pZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZlcmlmeUFsbEl0ZW1zTW9kYWwgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvcGVuTW9kZWwoKSB7XG4gICAgICAgIHRoaXMubG9naWNGb3JtUmVxdWVzdCA9IHt9O1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0TW9kYWwgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvZ2ljRm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmZpbGVFcnJvclN0YXR1cyA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNTdGFydGluZ01lc3NhZ2VFeGlzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9wZW5UZXJtQW5kQ29uZGl0aW9uTW9kZWwoKSB7XG4gICAgICAgIHRoaXMudGVybXNBbmRDb25kaXRpb25Nb2RhbCA9IHRydWU7XG4gICAgfVxuXG4gICAgb3Blbkl0ZW1zVmVyaWZ5TW9kYWwoaXNTdWJtaXRCdG46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy52ZXJpZnlBbGxJdGVtc01vZGFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1N1Ym1pdCA9IGlzU3VibWl0QnRuO1xuICAgIH1cblxuICAgIG9uTG9naWNBZGQoKSB7XG4gICAgICAgIGNvbnN0IHJlcURhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmxvZ2ljRm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybWVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdiYmY1Njk4MS1iOGM5LTQwZTktODA2Ny00NjhjMmM3NTM2NTknLFxuICAgICAgICAgICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtOiAnaHR0cHM6Ly9ob3N0ZWQubXkuZm9ybS5oZXJlLmNvbScsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtSUQ6IHRoaXMubG9naWNGb3JtLnZhbHVlLmZvcm1JZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFkYXB0ZXI6ICc0NGE5ZGY3Mi0zZDdhLTRlY2UtOTRjNS05OGNmMjYzMDczMjQnXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmxvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS51cGRhdGVMb2dpYyh0aGlzLmxvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUsIHtkYXRhOiByZXFEYXRhfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ0xvZ2ljID0gcmVxRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGV4aXN0aW5nTG9naWMuaWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpY1t0aGlzLnNlbGVjdGVkTG9naWNJbmRleF0gPSBPYmplY3QuYXNzaWduKHRoaXMuc2VsZWN0ZWRMb2dpY1t0aGlzLnNlbGVjdGVkTG9naWNJbmRleF0sIGV4aXN0aW5nTG9naWMpO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuY3JlYXRlTG9naWMoe2RhdGE6IHJlcURhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTG9naWMgPSByZXFEYXRhO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgZXhpc3RpbmdMb2dpYy5pZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExvZ2ljLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGRhdGEuZGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmV4aXN0aW5nTG9naWMsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGdldEVkaXRMb2dpY0RhdGEoaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGl0ZW0uaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2dpY0luZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB0aGlzLmxvZ2ljRm9ybS5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JZDogaXRlbS50cmFuc2Zvcm1lcnNbMF0ubWV0YS5mb3JtSURcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25GaWxlVXBsb2FkKGV2ZW50KSB7XG4gICAgICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgICAgIGZvcm06IGZpbGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2dpY0Zvcm0ucGF0Y2hWYWx1ZSh7Zm9ybUlkOiAnJ30pO1xuICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLnVwbG9hZEZpbGUob2JqKS5zdWJzY3JpYmUoKGZpbGVJbmZvOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZUluZm8ucmVzdWx0Py5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naWNGb3JtLnBhdGNoVmFsdWUoe2Zvcm1JZDogZmlsZUluZm8ucmVzdWx0Py5kYXRhfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2RhbExvYWRlclNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLm9ka0ZpbGVBbHJlYWR5RXhpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5vZGtGaWxlQWxyZWFkeUV4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVFcnJvclN0YXR1cyA9IGVycm9yLmVycm9yLnN0YXR1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShsb2dpYywgaW5kZXgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmRlbGV0ZUxvZ2ljKGxvZ2ljLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICBmaWxlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTG9naWMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRVc2VyU2VnbWVudERldGFpbCgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmdldEJvdFVzZXJEZXRhaWxzKHRoaXMuY29udmVyc2F0aW9uSWQpLnN1YnNjcmliZSgodmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwuZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udmVyc2F0aW9uRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsLmRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHZhbC5kYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwdXJwb3NlOiB2YWwuZGF0YS5wdXJwb3NlLFxuICAgICAgICAgICAgICAgICAgICBzdGFydGluZ01lc3NhZ2U6IHZhbC5kYXRhLnN0YXJ0aW5nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiB2YWwuZGF0YS5zdGFydERhdGUgPyB2YWwuZGF0YS5zdGFydERhdGUgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZW5kRGF0ZTogdmFsLmRhdGEuZW5kRGF0ZSA/IHZhbC5kYXRhLmVuZERhdGUgOiAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh2YWwuZGF0YS51c2VyU2VnbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyU2VnbWVudHMgPSB2YWwuZGF0YS51c2VyU2VnbWVudHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWwuZGF0YS5sb2dpYykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTG9naWMgPSB2YWwuZGF0YS5sb2dpYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFsbENoZWNrKGlzQWxsQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLkFwcHJvcHJpYXRlbmVzcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICB2YWwuY2hlY2tzID0gaXNBbGxDaGVjaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGVudERldGFpbHMuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICAgICAgdmFsLmNoZWNrcyA9IGlzQWxsQ2hlY2s7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVzYWJpbGl0eS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICB2YWwuY2hlY2tzID0gaXNBbGxDaGVjaztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdGFycmluZ01lc3NhZ2VDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudWNpU2VydmljZS5nZXRDaGVja1N0YXJ0aW5nTWVzc2FnZSh7c3RhcnRpbmdNZXNzYWdlOiB0aGlzLmNvbnZlcnNhdGlvbkZvcm0udmFsdWUuc3RhcnRpbmdNZXNzYWdlfSkuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU3RhcnRpbmdNZXNzYWdlRXhpc3QgPSB0cnVlO1xuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU3RhcnRpbmdNZXNzYWdlRXhpc3QgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBtYW51YWxEb3dubG9hZCgpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5nbG9iYWxTZXJ2aWNlLmdldEJhc2VVcmwoKSArICcvVUNJJTIwXyUyME9ESyUyMEluc3RydWN0aW9uJTIwTWFudWFsLnBkZicsICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBzYW1wbGVPREtEb3dubG9hZCgpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5nbG9iYWxTZXJ2aWNlLmdldEJhc2VVcmwoKSArICcvU2FtcGxlX09ESy54bHN4JywgJ19ibGFuaycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImN1cnJlbnRWaWV3U3RhdGVcIj5cblxuICAgIDxsaWItdXNlci1zZWdtZW50LWFkZCAqbmdTd2l0Y2hDYXNlPVwiJ0FERF9TRUdNRU5UJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWwpPVwib25Vc2VyU2VnbWVudENhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZCk9XCJvblVzZXJTZWdtZW50Q3JlYXRlKCRldmVudClcIj5cbiAgICA8L2xpYi11c2VyLXNlZ21lbnQtYWRkPlxuXG4gICAgPGxpYi11c2VyLXNlZ21lbnQtbGlzdCAqbmdTd2l0Y2hDYXNlPVwiJ1NFTEVDVF9TRUdNRU5UJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsKT1cIm9uVXNlclNlZ21lbnRDYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkKT1cIm9uVXNlclNlZ21lbnRBZGQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRVc2VyU2VnbWVudHNdPVwidXNlclNlZ21lbnRzXCI+XG4gICAgPC9saWItdXNlci1zZWdtZW50LWxpc3Q+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInQUREX0NPTlZFUlNBVElPTidcIiBjbGFzcz1cInVjaS1hZGQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l4IHdpZGUgY29sdW1uIHByLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZvbnQtMC03NVwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGJhc2VsaW5lO1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjaXJjdWxhciB1aSBpY29uIGJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMC43NXJlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrVG9TdGVwT25lKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2JsdWUtYmctd2hpdGUtdGV4dCc6IHN0ZXBJbmRleCA9PT0gMSwgJ2dyZWVuLWJnLXdoaXRlLXRleHQnOiBzdGVwSW5kZXggPT09IDJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNSBwdC0xMFwiPkNvbnZlcnNhdGlvbiBzZXR1cDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZSBtdC0yMCBtbC0yMCBtci0yMFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjaXJjdWxhciB1aSBpY29uIGJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMC43NXJlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYmx1ZS1iZy13aGl0ZS10ZXh0Jzogc3RlcEluZGV4ID09PSAyfVwiPjJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTUgcHQtMTAgZm9udC13ZWlnaHQtYm9sZFwiPkNvbnZlcnNhdGlvbiBmbG93PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaXggd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RlcEluZGV4ID09PSAxOyBlbHNlIHN0cDJfYnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1mbG9hdGVkIHB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQWRkQ2FuY2VsKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cImNvbnZlcnNhdGlvbkZvcm0uaW52YWxpZCB8fCBpc1N0YXJ0aW5nTWVzc2FnZUV4aXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRTdGVwKClcIj4gTmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RwMl9idG4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdlbHZlIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiICpuZ0lmPVwiIWlzTG9hZGVyU2hvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2tUb1N0ZXBPbmUoKVwiPiBCYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiIChjbGljayk9XCJvcGVuSXRlbXNWZXJpZnlNb2RhbChmYWxzZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGVyU2hvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGVyU2hvdzsgZWxzZSBzdWJtaXRCdG4xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJtaXRCdG4xPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0NoZWNrZWRUZXJtQ29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuY29udmVyc2F0aW9uSWQgPyBvblN1Ym1pdCh0cnVlKSA6IG9wZW5JdGVtc1ZlcmlmeU1vZGFsKHRydWUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb252ZXJzYXRpb25JZCA/ICdVcGRhdGUnIDogJ1N1Ym1pdCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZXhhbXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpc0NoZWNrZWRUZXJtQ29uZGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LXdlaWdodC1ub3JtYWwgdC1hbmQtYy10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5UZXJtQW5kQ29uZGl0aW9uTW9kZWwoKVwiPiBJIGFncmVlIHRvIHRoZSByZXF1aXJlZCB0ZXJtcyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAxLXdyYXBwZXJcIiAqbmdJZj1cInN0ZXBJbmRleCA9PT0gMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uIGZvbnQtMS0yIGZvbnQtd2VpZ2h0LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgQWRkIG5ldyBjb252ZXJzYXRpb25cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uIHB0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb252ZXJzYXRpb25Gb3JtXCIgY2xhc3M9XCJ1aSBmb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q29udmVyc2F0aW9uIG5hbWUgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkNvbnZlcnNhdGlvbiBkZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCI1XCIgbmFtZT1cImRlc2NyaXB0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlB1cnBvc2Ugb2YgdGhlIGNvbnZlcnNhdGlvbiA8c3VwPjxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgcHVycG9zZVwiIGZvcm1Db250cm9sTmFtZT1cInB1cnBvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlN0YXJ0aW5nIG1lc3NhZ2UgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3RhcnRpbmdNZXNzYWdlXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRpbmdNZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiaXNTdGFydGluZ01lc3NhZ2VFeGlzdFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5UaGlzIHN0YXJ0aW5nIG1lc3NhZ2UgaGFzIGFscmVhZHkgYmVlbiB0YWtlbjwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TdGFydCBEYXRlIEFuZCBUaW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGxlZnQgaWNvbiBpbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJjYWxlbmRhciBpY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHN1aURhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIidkYXRldGltZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNaW5EYXRlXT1cInN0YXJ0TWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BpY2tlclVzZU5hdGl2ZU9uTW9iaWxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RW5kIERhdGUgQW5kIFRpbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgbGVmdCBpY29uIGlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNhbGVuZGFyIGljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3VpRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIidkYXRldGltZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNaW5EYXRlXT1cImVuZE1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwaWNrZXJVc2VOYXRpdmVPbk1vYmlsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpeCB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8aDY+VXNlciBzZWdtZW50czwvaDY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicHQtMTBcIj57e3VzZXJTZWdtZW50cy5sZW5ndGh9fSBzZWdtZW50cyBhZGRlZDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2l4IHdpZGUgY29sdW1uICByaWdodCBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblVzZXJTZWdtZW50QWRkQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZSBuZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwidXNlclNlZ21lbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENob29zZSBmcm9tIGV4aXN0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJTZWdtZW50cyAmJiB1c2VyU2VnbWVudHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSB0aHJlZSBjb2x1bW4gZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiICpuZ0Zvcj1cImxldCB1c2VyU2VnbWVudCBvZiB1c2VyU2VnbWVudHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZmx1aWQgY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJyaWdodCBmbG9hdGVkIGljb24gdHJhc2ggZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVXNlclNlZ21lbnREZWxldGUoaSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZXJTZWdtZW50Lm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGFcIj5Vc2VyIGNvdW50IHt7dXNlclNlZ21lbnQuY291bnR9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwMi13cmFwcGVyXCIgKm5nSWY9XCJzdGVwSW5kZXggPT09IDJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbiB3aWRlIGNvbHVtbiBmb250LTEtMiBmb250LXdlaWdodC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIENvbnZlcnNhdGlvbiBmbG93XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtbiByaWdodCBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTG9naWMgJiYgc2VsZWN0ZWRMb2dpYy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kZWwoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRkIExvZ2ljXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZExvZ2ljICYmIHNlbGVjdGVkTG9naWMubGVuZ3RoIDw9IDA7IGVsc2Ugc2hvd1RhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d2VsdmUgd2lkZSBjb2x1bW4gY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMjUtcGVyIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW46IGF1dG87IHBhZGRpbmc6IDJyZW07XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIHNyYz1cImFzc2V0cy91Y2ktY29uc29sZS9pbWFnZXMvZW1wdHkuc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vIGxvZ2ljIEFkZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IG10LTEwXCIgKGNsaWNrKT1cIm9wZW5Nb2RlbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgbG9naWNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93VGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d2VsdmUgd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInVpIHRhYmxlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIGNlbnRlciBhbGlnbmVkIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGhyZWUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImZpdmUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJvbmUgd2lkZSBjZW50ZXIgYWxpZ25lZCBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cIlVwRm9yUmV2aWV3TGlzdEhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvZ2ljIG9mIHNlbGVjdGVkTG9naWM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+e3tpICsgMX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG9naWM/Lm5hbWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvZ2ljPy5kZXNjcmlwdGlvbn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBkcm9wZG93blwiIHN1aURyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWxsaXBzaXMgdmVydGljYWwgaWNvbiBlbGxpcHNpcy1pY29uIGRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgc3VpRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvcGVuTW9kZWwoKTsgZ2V0RWRpdExvZ2ljRGF0YShsb2dpYywgaSlcIj5FZGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvbkRlbGV0ZShsb2dpYywgaSlcIj5EZWxldGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPHN1aS1tb2RhbCAqbmdJZj1cImNvbGxlY3Rpb25MaXN0TW9kYWxcIiBbbXVzdFNjcm9sbF09XCJ0cnVlXCIgW2lzQ2xvc2FibGVdPVwiZmFsc2VcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcbiAgICAgICAgICAgY2xhc3M9XCJzYi1tb2RhbFwiIChkaXNtaXNzZWQpPVwidGhpcy5jb2xsZWN0aW9uTGlzdE1vZGFsID0gZmFsc2U7XCIgI21vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAge3tsb2dpY0Zvcm0uZ2V0KCdpZCcpLnZhbHVlID8gJyBVcGRhdGUnIDogJ0FkZCd9fSBDb252ZXJzYXRpb24gTG9naWNcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2ItbW9kYWwtY29udGVudFwiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2ljRm9ybVwiIGNsYXNzPVwidWkgZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPk5hbWUgPHN1cD48aSBjbGFzcz1cImFzdGVyaXNrIGljb24gYXN0ZXJpc2stY29sb3JcIj48L2k+PC9zdXA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPkRlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBuYW1lPVwiZGVzY3JpcHRpb25cIiBwbGFjZWhvbGRlcj1cIkVudGVyIGRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzIG0tMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZCBPREsgRm9ybSAoLnhtbCk8c3VwPjxpIGNsYXNzPVwiYXN0ZXJpc2sgaWNvbiBhc3Rlcmlzay1jb2xvclwiPjwvaT48L3N1cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHRleHQtcmlnaHQgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJteC0yMCBzYW1wbGUtZG93bmxvYWRcIiAoY2xpY2spPVwibWFudWFsRG93bmxvYWQoKVwiPkluc3RydWN0aW9uIE1hbnVhbDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1sLTEgc2FtcGxlLWRvd25sb2FkXCIgKGNsaWNrKT1cInNhbXBsZU9ES0Rvd25sb2FkKClcIj5TYW1wbGUgT0RLIEZvcm0gKC54bHN4KTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBwbGFjZWhvbGRlcj1cIkJyb3dzZSBYTUwgRmlsZS4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlVXBsb2FkKCRldmVudClcIiBhY2NlcHQ9XCIueG1sXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwib2RrRmlsZUFscmVhZHlFeGlzdFwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj57e2ZpbGVFcnJvclN0YXR1c319PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9kYWxMb2FkZXJTaG93OyBlbHNlIG1vZGFsQnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNtb2RhbEJ0bj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeVwiIChjbGljayk9XCJvbkxvZ2ljQWRkKCk7bW9kYWwuZGVueSgnZGVuaWVkJylcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9naWNGb3JtLmludmFsaWRcIj5cbiAgICAgICAgICAgICAgICB7e2xvZ2ljRm9ybS5nZXQoJ2lkJykudmFsdWUgPyAnIFVwZGF0ZScgOiAnQWRkJ319XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtb2RhbC5kZW55KCdkZW5pZWQnKTtpc01vZGFsTG9hZGVyU2hvdyA9IGZhbHNlO2xvZ2ljRm9ybS5wYXRjaFZhbHVlKHtmb3JtSWQ6ICcnfSk7XCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3N1aS1tb2RhbD5cblxuPHN1aS1tb2RhbCAqbmdJZj1cInRlcm1zQW5kQ29uZGl0aW9uTW9kYWxcIiBbbXVzdFNjcm9sbF09XCJ0cnVlXCIgW2lzQ2xvc2FibGVdPVwiZmFsc2VcIiBbdHJhbnNpdGlvbkR1cmF0aW9uXT1cIjBcIlxuICAgICAgICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcbiAgICAgICAgICAgY2xhc3M9XCJzYi1tb2RhbFwiIChkaXNtaXNzZWQpPVwidGhpcy50ZXJtc0FuZENvbmRpdGlvbk1vZGFsID0gZmFsc2VcIiAjbW9kYWw+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWhlYWRlclwiPlxuICAgICAgICBUZXJtcyBhbmQgQ29uZGl0aW9uc1xuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgIDxsaWItdGVybXMtY29uZGl0aW9ucz48L2xpYi10ZXJtcy1jb25kaXRpb25zPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuZGVueSgnZGVuaWVkJyk7XCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3N1aS1tb2RhbD5cbjxzdWktbW9kYWwgKm5nSWY9XCJ2ZXJpZnlBbGxJdGVtc01vZGFsXCIgW211c3RTY3JvbGxdPVwidHJ1ZVwiIFtpc0Nsb3NhYmxlXT1cImZhbHNlXCIgW3RyYW5zaXRpb25EdXJhdGlvbl09XCIwXCJcbiAgICAgICAgICAgW3NpemVdPVwiJ2xhcmdlJ1wiXG4gICAgICAgICAgIGNsYXNzPVwic2ItbW9kYWxcIiAoZGlzbWlzc2VkKT1cInRoaXMudmVyaWZ5QWxsSXRlbXNNb2RhbCA9IGZhbHNlXCIgI3ZlcmlmeUFsbE1vZGFsPlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgPGg0PlxuICAgICAgICAgICAgUGxlYXNlIGNvbmZpcm0gdGhhdCBBTEwgdGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgdmVyaWZpZWQgKGJ5IHRpY2tpbmcgdGhlIGNoZWNrLWJveGVzKSBiZWZvcmUgeW91IGNhbiBzdWJtaXQ6XG4gICAgICAgIDwvaDQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNiLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3VyIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoND5BcHByb3ByaWF0ZW5lc3M8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgQXBwcm9wcmlhdGVuZXNzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIidhcHByb3ByaWF0ZW5lc3MnICsgaVwiIFsobmdNb2RlbCldPVwibGlzdC5jaGVja3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gcGwtMCBwYi0wIGxpbmUtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2xpc3QudGV4dH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm91ciB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDQ+Q29udGVudCBEZXRhaWxzPC9oND5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiICpuZ0Zvcj1cImxldCBsaXN0IG9mIGNvbnRlbnREZXRhaWxzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIidjb250ZW50RGV0YWlscycgKyBpXCIgWyhuZ01vZGVsKV09XCJsaXN0LmNoZWNrc1wiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbiB3aWRlIGNvbHVtbiBwbC0wIHBiLTAgbGluZS1oZWlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7bGlzdC50ZXh0fX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3VyIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoND5Vc2FiaWxpdHk8L2g0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBncmlkXCIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgdXNhYmlsaXR5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gd2lkZSBjb2x1bW4gcGItMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT1cIid1c2FiaWxpdHknICsgaVwiIFsobmdNb2RlbCldPVwibGlzdC5jaGVja3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gcGwtMCBwYi0wIGxpbmUtaGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2xpc3QudGV4dH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYi1tb2RhbC1hY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclNob3c7IGVsc2Ugc3VibWl0QnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnkgcC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGFjdGl2ZSB0aW55IGlubGluZSBsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdWJtaXRCdG4+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNTdWJtaXRcIiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KHRydWUpO1wiPlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzU3VibWl0XCIgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdChmYWxzZSk7XCI+XG4gICAgICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWxsQ2hlY2soZmFsc2UpOyB2ZXJpZnlBbGxNb2RhbC5kZW55KCdkZW5pZWQnKTtcIj5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IGFsbENoZWNrQnRuXCIgKGNsaWNrKT1cImFsbENoZWNrKHRydWUpXCI+XG4gICAgICAgICAgICBDb25maXJtIEFsbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvc3VpLW1vZGFsPlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs deleted file mode 100644 index b802fbe18be..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-list/conversation-list.component.mjs +++ /dev/null @@ -1,120 +0,0 @@ -import { Component } from '@angular/core'; -import * as i0 from "@angular/core"; -import * as i1 from "../../services/uci.service"; -import * as i2 from "@angular/router"; -import * as i3 from "../../services/global.service"; -import * as i4 from "@angular/common"; -import * as i5 from "@angular/forms"; -import * as i6 from "@project-sunbird/ng2-semantic-ui"; -export class ConversationListComponent { - constructor(uciService, router, globalService) { - this.uciService = uciService; - this.router = router; - this.globalService = globalService; - this.chatBots = []; - this.pager = { - totalItems: 0, - currentPage: 1, - pageSize: 10, - totalPages: 0, - startPage: 0, - endPage: 0, - startIndex: 0, - endIndex: 0, - pages: [] - }; - this.pageNumber = 1; - this.column = ''; - this.sortDirection = ''; - this.reverse = false; - } - ngOnInit() { - this.user = this.globalService.getUser(); - if (!this.user) { - this.router.navigate(['uci-admin']); - return; - } - this.getAllChatBots(); - } - getAllChatBots() { - const param = { - page: this.pager.currentPage, - perPage: this.pager.pageSize - }; - if (this.search) { - param.name = this.search; - this.uciService.searchConversation(param).subscribe(data => this.parseConversations(data)); - } - else { - this.uciService.fetchConversation(param).subscribe(data => this.parseConversations(data)); - } - } - parseConversations(data) { - this.chatBots = []; - data.data.forEach(bot => { - const obj = { ...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft' }; - obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft'; - const segmentNames = []; - bot.userSegments.forEach(userSegment => { - segmentNames.push(userSegment.name); - obj.userCount += (userSegment.count || 0); - }); - obj.segmentText = segmentNames.join(', '); - this.chatBots.push(obj); - }); - this.pager.totalItems = data.total; - this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); - this.pager.pages = []; - let i = 1; - while (i <= Math.ceil(data.total / this.pager.pageSize)) { - this.pager.pages.push(i); - i++; - } - } - sortColumns(column) { - this.column = column; - this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc'; - this.reverse = !this.reverse; - } - navigateToPage(page) { - if (page < 1 || page > this.pager.totalPages) { - return; - } - this.pageNumber = page; - this.pager.currentPage = page; - this.getAllChatBots(); - } - getSearch() { - this.getAllChatBots(); - } - onAddNew() { - this.router.navigateByUrl('uci-admin/add'); - } - onEdit(conversation) { - this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`); - } - onStatusChange(conversation, index) { - if (conversation.status === 'Live') { - this.uciService.pauseConversation(conversation.id).subscribe(data => { - this.chatBots[index].status = 'Disabled'; - }); - } - else { - this.uciService.startConversation(conversation.id).subscribe(data => { - this.chatBots[index].status = 'Live'; - }); - } - } - onDelete(conversation, index) { - this.uciService.deleteConversation(conversation.id).subscribe(data => { - this.chatBots.splice(index, 1); - }); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, deps: [{ token: i1.UciService }, { token: i2.Router }, { token: i3.GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationListComponent, selector: "lib-conversation-list", ngImport: i0, template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-list', template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"] }] - }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }, { type: i3.GlobalService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi1saXN0L2NvbnZlcnNhdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tbGlzdC9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVVoRCxNQUFNLE9BQU8seUJBQXlCO0lBb0JsQyxZQUNZLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxhQUE0QjtRQUY1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRCeEMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFVBQUssR0FBUTtZQUNULFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFTaEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FB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QyxNQUFNLEdBQUcsVUFBVSxDQUFDO1lBQzdDLENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDeEQsSUFBSSxDQUFDLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3pDLENBQUMsQ0FDSixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQVksRUFBRSxLQUFLO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDekQsSUFBSSxDQUFDLEVBQUU7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDOytHQWhJUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qiw2RENWdEMsdW5JQXFGQTs7NEZEM0VhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0dsb2JhbFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLWxpc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNoYXRCb3RzID0gW107XG4gICAgcGFnZXI6IGFueSA9IHtcbiAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgICAgc3RhcnRQYWdlOiAwLFxuICAgICAgICBlbmRQYWdlOiAwLFxuICAgICAgICBzdGFydEluZGV4OiAwLFxuICAgICAgICBlbmRJbmRleDogMCxcbiAgICAgICAgcGFnZXM6IFtdXG4gICAgfTtcbiAgICBwYWdlTnVtYmVyID0gMTtcbiAgICBjb2x1bW4gPSAnJztcbiAgICBzb3J0RGlyZWN0aW9uID0gJyc7XG4gICAgcmV2ZXJzZSA9IGZhbHNlO1xuICAgIHF1ZXJ5UGFyYW1zOiBhbnk7XG4gICAgc2VhcmNoO1xuICAgIHVzZXI7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVzZXIgPSB0aGlzLmdsb2JhbFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgICBpZiAoIXRoaXMudXNlcikge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd1Y2ktYWRtaW4nXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIGdldEFsbENoYXRCb3RzKCkge1xuICAgICAgICBjb25zdCBwYXJhbTogYW55ID0ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlci5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGFnZXIucGFnZVNpemVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgICAgICAgICAgIHBhcmFtLm5hbWUgPSB0aGlzLnNlYXJjaDtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5zZWFyY2hDb252ZXJzYXRpb24ocGFyYW0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBkYXRhID0+IHRoaXMucGFyc2VDb252ZXJzYXRpb25zKGRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmZldGNoQ29udmVyc2F0aW9uKHBhcmFtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB0aGlzLnBhcnNlQ29udmVyc2F0aW9ucyhkYXRhKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcGFyc2VDb252ZXJzYXRpb25zKGRhdGEpIHtcbiAgICAgICAgdGhpcy5jaGF0Qm90cyA9IFtdO1xuICAgICAgICBkYXRhLmRhdGEuZm9yRWFjaChib3QgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gey4uLmJvdCwgc2VnbWVudFRleHQ6ICcnLCB1c2VyQ291bnQ6IDAsIHN0YXR1czogYm90LnN0YXR1cyB8fCAnRHJhZnQnfTtcbiAgICAgICAgICAgIG9iai5zdGF0dXMgPSBib3Quc3RhdHVzID09PSAnZW5hYmxlZCcgPyAnTGl2ZScgOiBib3Quc3RhdHVzID09PSAnZGlzYWJsZWQnID8gJ0Rpc2FibGVkJyA6ICdEcmFmdCc7XG4gICAgICAgICAgICBjb25zdCBzZWdtZW50TmFtZXMgPSBbXTtcbiAgICAgICAgICAgIGJvdC51c2VyU2VnbWVudHMuZm9yRWFjaCh1c2VyU2VnbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgc2VnbWVudE5hbWVzLnB1c2godXNlclNlZ21lbnQubmFtZSk7XG4gICAgICAgICAgICAgICAgb2JqLnVzZXJDb3VudCArPSAodXNlclNlZ21lbnQuY291bnQgfHwgMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9iai5zZWdtZW50VGV4dCA9IHNlZ21lbnROYW1lcy5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYXRCb3RzLnB1c2gob2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFnZXIudG90YWxJdGVtcyA9IGRhdGEudG90YWw7XG4gICAgICAgIHRoaXMucGFnZXIudG90YWxQYWdlcyA9IE1hdGguY2VpbChkYXRhLnRvdGFsIC8gdGhpcy5wYWdlci5wYWdlU2l6ZSk7XG4gICAgICAgIHRoaXMucGFnZXIucGFnZXMgPSBbXTtcbiAgICAgICAgbGV0IGkgPSAxO1xuICAgICAgICB3aGlsZSAoaSA8PSBNYXRoLmNlaWwoZGF0YS50b3RhbCAvIHRoaXMucGFnZXIucGFnZVNpemUpKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VyLnBhZ2VzLnB1c2goaSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzb3J0Q29sdW1ucyhjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgICAgICAgdGhpcy5yZXZlcnNlID0gIXRoaXMucmV2ZXJzZTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvUGFnZShwYWdlOiBudW1iZXIpOiB1bmRlZmluZWQgfCB2b2lkIHtcbiAgICAgICAgaWYgKHBhZ2UgPCAxIHx8IHBhZ2UgPiB0aGlzLnBhZ2VyLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2VyLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIGdldFNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5nZXRBbGxDaGF0Qm90cygpO1xuICAgIH1cblxuICAgIG9uQWRkTmV3KCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCd1Y2ktYWRtaW4vYWRkJyk7XG4gICAgfVxuXG4gICAgb25FZGl0KGNvbnZlcnNhdGlvbikge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGB1Y2ktYWRtaW4vJHtjb252ZXJzYXRpb24uaWR9L2VkaXRgKTtcbiAgICB9XG5cbiAgICBvblN0YXR1c0NoYW5nZShjb252ZXJzYXRpb24sIGluZGV4KSB7XG4gICAgICAgIGlmIChjb252ZXJzYXRpb24uc3RhdHVzID09PSAnTGl2ZScpIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5wYXVzZUNvbnZlcnNhdGlvbihjb252ZXJzYXRpb24uaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGF0Qm90c1tpbmRleF0uc3RhdHVzID0gJ0Rpc2FibGVkJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLnN0YXJ0Q29udmVyc2F0aW9uKGNvbnZlcnNhdGlvbi5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYXRCb3RzW2luZGV4XS5zdGF0dXMgPSAnTGl2ZSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGVsZXRlKGNvbnZlcnNhdGlvbiwgaW5kZXgpIHtcbiAgICAgICAgdGhpcy51Y2lTZXJ2aWNlLmRlbGV0ZUNvbnZlcnNhdGlvbihjb252ZXJzYXRpb24uaWQpLnN1YnNjcmliZShcbiAgICAgICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhdEJvdHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInVjaS1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Itc2VhcmNoLWJveCBiLTAgbWwtMCBsYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1kaXYgcmVsYXRpdmVcIiBpZD1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIGNsYXNzPVwic2VhcmNoIGljb25cIiBzcmM9XCJhc3NldHMvaW1hZ2VzL3NlYXJjaC1pY29uLnN2Z1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzYi1zZWFyY2gtaW5wdXQgZGlzYWJsZWQgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lXCIgaWQ9XCJrZXl3b3JkXCIgbmFtZT1cImZpbHRlcl9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIGRpc2FibGVkXCIgKGNsaWNrKT1cImdldFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBiLTEwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWZsb2F0ZWQgcHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGROZXcoKVwiPiBBZGQgTmV3PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8dGFibGUgY2xhc3M9XCJ1aSBzaW5nbGUgbGluZSB1cEZvclJldmlld1RhYmxlIHRhYmxlXCI+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidGhyZWUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBTdGF0dXNcbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJmb3VyIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMFwiPlxuICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidHdvIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMFwiPlxuICAgICAgICAgICAgICAgIFN0YXJ0aW5nIE1lc3NhZ2VcbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJvbmUgd2lkZSBVcFJldmlld1RhYmxlSGVhZGVyIHNvcnRlZCBibC0wXCI+XG4gICAgICAgICAgICAgICAgVXNlciBDb3VudFxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICBBY3Rpb25cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwiVXBGb3JSZXZpZXdMaXN0SG92ZXJcIiAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBjaGF0Qm90czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgIDx0ZD57e2NvbnRlbnQubmFtZX19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCInc3RhdHVzLScgKyAoY29udGVudC5zdGF0dXMgPyBjb250ZW50LnN0YXR1cy50b0xvd2VyQ2FzZSgpOiAnJylcIj57e2NvbnRlbnQuc3RhdHVzfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudD8uZGVzY3JpcHRpb259fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3tjb250ZW50LnN0YXJ0aW5nTWVzc2FnZX19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+e3tjb250ZW50LnVzZXJDb3VudH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIGRyb3Bkb3duXCIgc3VpRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWxsaXBzaXMgdmVydGljYWwgaWNvbiBlbGxpcHNpcy1pY29uIGRyb3Bkb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudVwiIHN1aURyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cIm9uRWRpdChjb250ZW50KVwiPkVkaXQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGNvbnRlbnQsIGkpXCI+RGVsZXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJvblN0YXR1c0NoYW5nZShjb250ZW50LCBpKVwiPnt7Y29udGVudC5zdGF0dXMgPT09ICdMaXZlJyA/ICdEaXNhYmxlJyA6ICdFbmFibGUnfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3byB3aWRlIGNvbHVtblwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGItMTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgcGFnaW5hdGlvbiBtZW51IG10LTEwIHJpZ2h0LWZsb2F0ZWQgcHQtMFwiICpuZ0lmPVwicGFnZXIucGFnZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09MSB9XCIgY2xhc3M9XCJpdGVtIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZSgxKSBcIj5GaXJzdDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09MSB9XCIgY2xhc3M9XCJpdGVtIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZShwYWdlci5jdXJyZW50UGFnZSAtIDEpXCI+UHJldmlvdXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VyLnBhZ2VzXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTpwYWdlci5jdXJyZW50UGFnZT09PXBhZ2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2UpXCIgY2xhc3M9XCJpdGVtXCI+e3twYWdlfX08L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZT09PSBwYWdlci50b3RhbFBhZ2VzfVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUGFnZShwYWdlci5jdXJyZW50UGFnZSArIDEpXCIgY2xhc3M9XCJpdGVtXCI+TmV4dDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLnRvdGFsUGFnZXMpXCIgY2xhc3M9XCJpdGVtIFwiPkxhc3Q8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs deleted file mode 100644 index e9501d1619b..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/conversation-success/conversation-success.component.mjs +++ /dev/null @@ -1,40 +0,0 @@ -import { Component } from '@angular/core'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -import * as i2 from "@angular/common"; -export class ConversationSuccessComponent { - constructor(router, activatedRoute) { - this.router = router; - this.activatedRoute = activatedRoute; - this.text = ''; - this.botId = ''; - } - ngOnInit() { - this.text = this.activatedRoute.snapshot.queryParams.text || ''; - this.botId = this.activatedRoute.snapshot.queryParams.botId || ''; - } - onCopy(id) { - const val = document.getElementById(id).innerText; - const selBox = document.createElement('textarea'); - selBox.style.position = 'fixed'; - selBox.style.left = '0'; - selBox.style.top = '0'; - selBox.style.opacity = '0'; - selBox.value = val; - document.body.appendChild(selBox); - selBox.focus(); - selBox.select(); - document.execCommand('copy'); - document.body.removeChild(selBox); - } - onClose() { - this.router.navigate(['/uci-admin']); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationSuccessComponent, selector: "lib-conversation-success", ngImport: i0, template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-success', template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n" }] - }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXN1Y2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi1zdWNjZXNzL2NvbnZlcnNhdGlvbi1zdWNjZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9jb252ZXJzYXRpb24tc3VjY2Vzcy9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWhELE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFBb0IsTUFBYyxFQUFVLGNBQThCO1FBQXRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIMUUsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7SUFHWCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUU7UUFDTCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUMzQixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQTdCUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixnRUNSekMsNHFEQXNDQTs7NEZEOUJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItY29udmVyc2F0aW9uLXN1Y2Nlc3MnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLXN1Y2Nlc3MuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblN1Y2Nlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHRleHQgPSAnJztcbiAgICBib3RJZCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy50ZXh0IHx8ICcnO1xuICAgICAgICB0aGlzLmJvdElkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5ib3RJZCB8fCAnJztcbiAgICB9XG5cbiAgICBvbkNvcHkoaWQpIHtcbiAgICAgICAgY29uc3QgdmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmlubmVyVGV4dDtcbiAgICAgICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgICAgc2VsQm94LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgICAgc2VsQm94LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XG4gICAgICAgIHNlbEJveC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICBzZWxCb3gudmFsdWUgPSB2YWw7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcbiAgICAgICAgc2VsQm94LmZvY3VzKCk7XG4gICAgICAgIHNlbEJveC5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWxCb3gpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VjaS1hZG1pbiddKTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1Y2ktY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInR3ZWx2ZSB3aWRlIGNvbHVtbiBjZW50ZXIgYWxpZ25lZCBtdC04MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMCBkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMjUtcGVyIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW46IGF1dG87XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTIwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiU2VhcmNoIEljb25cIiBzcmM9XCJhc3NldHMvdWNpLWNvbnNvbGUvaW1hZ2VzL3N1Y2Nlc3Muc3ZnXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCI+XG4gICAgICAgICAgICAgICAgICAgIENvbmdyYXR1bGF0aW9ucyEgWW91IGhhdmUgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYSBuZXcgY29udmVyc2F0aW9uXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCI+XG4gICAgICAgICAgICAgICAgICAgIFVzZSB0aGUgZm9sbG93aW5nIFVSTCB0byB1c2UgRElLU0hBIGJvdDpcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48c3BhbiBpZD1cImNvcHlVcmxcIj5odHRwczovL2FwaS53aGF0c2FwcC5jb20vc2VuZD90ZXh0PXt7dGV4dH19JnBob25lPSs5MTIyNDk3NTc2Nzc8L3NwYW4+PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC01XCIgKm5nSWY9XCJib3RJZFwiPlxuICAgICAgICAgICAgICAgICAgICBvciBzaGFyZSB0aGUgZm9sbG93aW5nIElEIHdpdGggRGlLU0hBIHRlYW06XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PHNwYW4gaWQ9XCJjb3B5SWRcIj57e2JvdElkfX08L3NwYW4+PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQ29weSgnY29weVVybCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb3B5IFVSTFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1wcmltYXJ5IG1yLTEwXCIgKGNsaWNrKT1cIm9uQ29weSgnY29weUlkJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvcHkgSURcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2VcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs deleted file mode 100644 index 56610fd6aa8..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/lib-entry/lib-entry.component.mjs +++ /dev/null @@ -1,55 +0,0 @@ -import { Component, Input } from '@angular/core'; -import { UciData } from '../../models/uci.model'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -import * as i2 from "../../services/uci.service"; -import * as i3 from "../../services/config.service"; -import * as i4 from "@angular/common"; -import * as i5 from "../../uci-events.service"; -import * as i6 from "../../telemetry-utils.service"; -import * as i7 from "../../services/global.service"; -import * as i8 from "../side-panel/side-panel.component"; -export class LibEntryComponent { - constructor(activatedRoute, uciService, configService, location, uciEventsService, telemetryUtils, globalService, router) { - this.activatedRoute = activatedRoute; - this.uciService = uciService; - this.configService = configService; - this.location = location; - this.uciEventsService = uciEventsService; - this.telemetryUtils = telemetryUtils; - this.globalService = globalService; - this.router = router; - } - ngOnInit() { - if (this.user) { - this.globalService.setUser(this.user); - } - if (this.baseUrl) { - this.globalService.setBaseUrl(this.baseUrl); - } - if (this.router.url === '/uci-admin') { - this.router.navigate(['uci-admin/home']); - } - } - goBack() { - this.location.back(); - } - close(event) { - const eventAction = { - action: 'DF_CLOSE' - }; - this.uciEventsService.emitTelemetry(eventAction); - this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UciService }, { token: i3.ConfigService }, { token: i4.Location }, { token: i5.UciEventsService }, { token: i6.TelemetryUtilsService }, { token: i7.GlobalService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LibEntryComponent, selector: "lib-lib-entry", inputs: { user: "user", baseUrl: "baseUrl" }, ngImport: i0, template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"], dependencies: [{ kind: "component", type: i8.SidePanelComponent, selector: "lib-side-panel" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-lib-entry', template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"] }] - }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.UciService }, { type: i3.ConfigService }, { type: i4.Location }, { type: i5.UciEventsService }, { type: i6.TelemetryUtilsService }, { type: i7.GlobalService }, { type: i1.Router }]; }, propDecorators: { user: [{ - type: Input - }], baseUrl: [{ - type: Input - }] } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWVudHJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBT3ZELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVEvQyxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLFlBQ1csY0FBOEIsRUFDN0IsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsUUFBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLGNBQXFDLEVBQ3JDLGFBQTRCLEVBQzVCLE1BQWM7UUFQZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLFdBQVcsR0FBRztZQUNoQixNQUFNLEVBQUUsVUFBVTtTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDOytHQXRDUSxpQkFBaUI7bUdBQWpCLGlCQUFpQixtR0NoQjlCLDI3QkFzQkE7OzRGRE5hLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlO3FTQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VWNpRXZlbnRzU2VydmljZX0gZnJvbSAnLi4vLi4vdWNpLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7SWRpc2N1c3Npb25Db25maWd9IGZyb20gJy4uLy4uL21vZGVscy91Y2ktY29uZmlnLm1vZGVsJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQge1RlbGVtZXRyeVV0aWxzU2VydmljZX0gZnJvbSAnLi4vLi4vdGVsZW1ldHJ5LXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lEYXRhfSBmcm9tICcuLi8uLi9tb2RlbHMvdWNpLm1vZGVsJztcbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1saWItZW50cnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWItZW50cnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpYi1lbnRyeS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExpYkVudHJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB1c2VyO1xuICAgIEBJbnB1dCgpIGJhc2VVcmw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIHVjaUV2ZW50c1NlcnZpY2U6IFVjaUV2ZW50c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGVsZW1ldHJ5VXRpbHM6IFRlbGVtZXRyeVV0aWxzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRVc2VyKHRoaXMudXNlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNldEJhc2VVcmwodGhpcy5iYXNlVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnL3VjaS1hZG1pbicpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndWNpLWFkbWluL2hvbWUnXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50QWN0aW9uID0ge1xuICAgICAgICAgICAgYWN0aW9uOiAnREZfQ0xPU0UnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudWNpRXZlbnRzU2VydmljZS5lbWl0VGVsZW1ldHJ5KGV2ZW50QWN0aW9uKTtcbiAgICAgICAgdGhpcy50ZWxlbWV0cnlVdGlscy5sb2dJbnRlcmFjdChldmVudCwgVWNpRGF0YS5JUGFnZU5hbWUuTElCX0VOVFJZKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidWlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgcG9zaXRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTggdWEtYnRuLWNvbnRhaW5lciB1YS1iYWNrLWJ0bi1jb250YWluZXIgcHgtMjAgei1pbmRleC0yXCI+XG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yMFwiPlxuICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tb3V0bGluZS1wcmltYXJ5IHNiLWxlZnQtaWNvbiBteC01XCI+XG4gICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy91Y2ktY29uc29sZS9pbWFnZXMvYmFjay1pbWcucG5nXCIgYWx0PVwiYmFjay1pbWFnZVwiIGNsYXNzPVwibWwtNFwiIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIj5cbiAgICAgICAgICAgICAgICAgICBCYWNrXG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1Y2ktYWRtaW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVjaS1hZG1pbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWNpLWFkbWluLWxlZnQtcGFuZWwgdWEtc2lkZS1jb250ZW50IHotaW5kZXgtMlwiPlxuICAgICAgICAgICAgICAgIDxsaWItc2lkZS1wYW5lbD48L2xpYi1zaWRlLXBhbmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWNpLWFkbWluLXJpZ2h0LXBhbmVsIHVhLW1haW4tY29udGVudCB6LWluZGV4LTJcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs deleted file mode 100644 index 93b6d6b8018..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/side-panel/side-panel.component.mjs +++ /dev/null @@ -1,76 +0,0 @@ -import { UciData } from '../../models/uci.model'; -import { Component } from '@angular/core'; -import * as CONSTANTS from '../../common/constants.json'; -/* tslint:disable */ -import * as _ from 'lodash'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -import * as i2 from "../../services/uci.service"; -import * as i3 from "../../telemetry-utils.service"; -import * as i4 from "../../services/config.service"; -import * as i5 from "@angular/common"; -/* tslint:enable */ -export class SidePanelComponent { - constructor(router, uciService, activatedRoute, telemetryUtils, configService) { - this.router = router; - this.uciService = uciService; - this.activatedRoute = activatedRoute; - this.telemetryUtils = telemetryUtils; - this.configService = configService; - this.defaultPage = 'categories'; - this.menu = []; - this.showSideMenu = true; - } - ngOnInit() { - // TODO: loader or spinner - this.telemetryUtils.setContext([]); - this.hideSidePanel = document.body.classList.contains('widget'); - this.telemetryUtils.logImpression(UciData.IPageName.HOME); - this.data = this.configService.getConfig(); - const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : CONSTANTS.MENUOPTIONS; - for (let i = 0; i < menuArr.length; i++) { - if (menuArr[i].enable) { - this.menu.push(menuArr[i]); - } - } - } - isActive(selectedItem) { - if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) { - if (!this.selectedTab) { - this.selectedTab = selectedItem; - } - return true; - } - else if (selectedItem === 'categories' && !this.selectedTab) { - return true; - } - return false; - } - navigate(pageName, event) { - this.selectedTab = pageName; - this.telemetryUtils.setContext([]); - if (event) { - this.telemetryUtils.logInteract(event, UciData.IPageName.HOME); - } - this.router.navigate([`uci-admin`], { queryParamsHandling: 'merge' }); - this.closeNav(); - } - ngOnDestroy() { - if (this.paramsSubscription) { - this.paramsSubscription.unsubscribe(); - } - } - showMenuButton() { - this.showSideMenu = this.showSideMenu ? false : true; - } - closeNav() { - this.showSideMenu = this.showSideMenu ? false : true; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, deps: [{ token: i1.Router }, { token: i2.UciService }, { token: i1.ActivatedRoute }, { token: i3.TelemetryUtilsService }, { token: i4.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SidePanelComponent, selector: "lib-side-panel", ngImport: i0, template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-side-panel', template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"] }] - }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.UciService }, { type: i1.ActivatedRoute }, { type: i3.TelemetryUtilsService }, { type: i4.ConfigService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1wYW5lbC9zaWRlLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLXBhbmVsL3NpZGUtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRy9DLE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRzNELE9BQU8sS0FBSyxTQUFTLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBSTVCLG1CQUFtQjtBQU9uQixNQUFNLE9BQU8sa0JBQWtCO0lBYzNCLFlBQ1csTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLGNBQThCLEVBQzdCLGNBQXFDLEVBQ3JDLGFBQTRCO1FBSjdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFieEMsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFJM0IsU0FBSSxHQUF3QixFQUFFLENBQUM7UUFFL0IsaUJBQVksR0FBWSxJQUFJLENBQUM7SUFTN0IsQ0FBQztJQUVELFFBQVE7UUFDSiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM5SSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1NBQ0o7SUFFTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQzthQUNuQztZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLFlBQVksS0FBSyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCLEVBQUUsS0FBTTtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDOytHQXhFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzRENuQi9CLDYzQkFrQkE7OzRGRENhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VjaURhdGF9IGZyb20gJy4uLy4uL21vZGVscy91Y2kubW9kZWwnO1xuaW1wb3J0IHtUZWxlbWV0cnlVdGlsc1NlcnZpY2V9IGZyb20gJy4uLy4uL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIENPTlNUQU5UUyBmcm9tICcuLi8uLi9jb21tb24vY29uc3RhbnRzLmpzb24nO1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtJZGlzY3Vzc2lvbkNvbmZpZywgSU1lbnVPcHRpb25zfSBmcm9tICcuLi8uLi9tb2RlbHMvdWNpLWNvbmZpZy5tb2RlbCc7XG5cbi8qIHRzbGludDplbmFibGUgKi9cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItc2lkZS1wYW5lbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGUtcGFuZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwYXJhbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHVzZXJOYW1lOiBzdHJpbmc7XG5cbiAgICBkZWZhdWx0UGFnZSA9ICdjYXRlZ29yaWVzJztcblxuICAgIGRhdGE6IElkaXNjdXNzaW9uQ29uZmlnO1xuICAgIGhpZGVTaWRlUGFuZWw6IGJvb2xlYW47XG4gICAgbWVudTogQXJyYXk8SU1lbnVPcHRpb25zPiA9IFtdO1xuICAgIHNlbGVjdGVkVGFiOiBzdHJpbmc7XG4gICAgc2hvd1NpZGVNZW51OiBCb29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHRlbGVtZXRyeVV0aWxzOiBUZWxlbWV0cnlVdGlsc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBUT0RPOiBsb2FkZXIgb3Igc3Bpbm5lclxuICAgICAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLnNldENvbnRleHQoW10pO1xuICAgICAgICB0aGlzLmhpZGVTaWRlUGFuZWwgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnd2lkZ2V0Jyk7XG4gICAgICAgIHRoaXMudGVsZW1ldHJ5VXRpbHMubG9nSW1wcmVzc2lvbihVY2lEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICAgICAgICBjb25zdCBtZW51QXJyID0gXy5nZXQodGhpcy5kYXRhLCAnbWVudU9wdGlvbnMnKSAmJiBfLmdldCh0aGlzLmRhdGEsICdtZW51T3B0aW9ucycpLmxlbmd0aCA+IDAgPyB0aGlzLmRhdGEubWVudU9wdGlvbnMgOiBDT05TVEFOVFMuTUVOVU9QVElPTlM7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKG1lbnVBcnJbaV0uZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51LnB1c2gobWVudUFycltpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGlzQWN0aXZlKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICBpZiAodGhpcy5yb3V0ZXIudXJsLmluZGV4T2YoYC8ke3NlbGVjdGVkSXRlbX1gKSA+IC0xIHx8IHRoaXMuc2VsZWN0ZWRUYWIgPT09IHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHNlbGVjdGVkSXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSXRlbSA9PT0gJ2NhdGVnb3JpZXMnICYmICF0aGlzLnNlbGVjdGVkVGFiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbmF2aWdhdGUocGFnZU5hbWU6IHN0cmluZywgZXZlbnQ/KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBwYWdlTmFtZTtcbiAgICAgICAgdGhpcy50ZWxlbWV0cnlVdGlscy5zZXRDb250ZXh0KFtdKTtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRlbGVtZXRyeVV0aWxzLmxvZ0ludGVyYWN0KGV2ZW50LCBVY2lEYXRhLklQYWdlTmFtZS5IT01FKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYHVjaS1hZG1pbmBdLCB7cXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ30pO1xuICAgICAgICB0aGlzLmNsb3NlTmF2KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYXJhbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dNZW51QnV0dG9uKCkge1xuICAgICAgICB0aGlzLnNob3dTaWRlTWVudSA9IHRoaXMuc2hvd1NpZGVNZW51ID8gZmFsc2UgOiB0cnVlO1xuICAgIH1cblxuICAgIGNsb3NlTmF2KCkge1xuICAgICAgICB0aGlzLnNob3dTaWRlTWVudSA9IHRoaXMuc2hvd1NpZGVNZW51ID8gZmFsc2UgOiB0cnVlO1xuICAgIH1cblxufVxuIiwiPHVsIGNsYXNzPVwic2Itc2lkZWJhci1tZW51IHBsLTBcIiAqbmdJZj1cIiFoaWRlU2lkZVBhbmVsXCI+XG4gICAgPGxpICpuZ0Zvcj0nbGV0IGQgb2YgbWVudScgY2xhc3M9XCJ1YS1zaWRlYmFyLW1lbnUtbGlzdFwiIFtuZ0NsYXNzXT1cInsnbWVudS1hY3RpdmUnOiBpc0FjdGl2ZShkLnJvdXRlKX1cIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGUoZC5yb3V0ZSwgJGV2ZW50KVwiIGlkPVwiZC5yb3V0ZVwiPjxhPnt7ZC5sYWJlbH19PC9hPjwvbGk+XG48L3VsPlxuXG48IS0tIGZvciBtb2JpbGUtdmlldyAtLT5cbjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwib3BlbmJ0blwiIChjbGljayk9XCJzaG93TWVudUJ1dHRvbigpXCI+4piwPC9idXR0b24+XG48ZGl2IGNsYXNzPVwib3ZlcmxheS1zaWRlYmFyXCIgKm5nSWY9XCIhc2hvd1NpZGVNZW51XCI+XG4gICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktc2lkZWJhcl9fbWVudVwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJjbG9zZWJ0blwiIChjbGljayk9XCJjbG9zZU5hdigpXCI+JnRpbWVzOzwvYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItbWVudV9fY29udGVudFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic2Itc2lkZWJhci1tZW51LW1vYiBwbC0wXCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidWEtc2lkZWJhci1tZW51LWxpc3RcIiAqbmdJZj1cImZhbHNlXCIgKGNsaWNrKT1cIm5hdmlnYXRlKCcnLCAkZXZlbnQpXCIgaWQ9XCJhbGwtZGlzY3Vzc2lvbnNcIj48YT5Cb3RzPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs deleted file mode 100644 index af2240c96f5..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/terms-conditions/terms-conditions.component.mjs +++ /dev/null @@ -1,16 +0,0 @@ -import { Component } from '@angular/core'; -import * as i0 from "@angular/core"; -import * as i1 from "@project-sunbird/ng2-semantic-ui"; -export class TermsConditionsComponent { - constructor() { - } - ngOnInit() { - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TermsConditionsComponent, selector: "lib-terms-conditions", ngImport: i0, template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i1.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i1.SuiTabset, selector: "sui-tabset" }, { kind: "directive", type: i1.SuiTabHeader, selector: "[suiTabHeader]", inputs: ["suiTabHeader", "isActive", "isDisabled"], outputs: ["isActiveChange", "activate", "deactivate"] }, { kind: "directive", type: i1.SuiTabContent, selector: "[suiTabContent]", inputs: ["suiTabContent"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-terms-conditions', template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"] }] - }], ctorParameters: function () { return []; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtY29uZGl0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvdGVybXMtY29uZGl0aW9ucy90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7OztBQVV0RSxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDO0lBQ0EsQ0FBQztJQUdELFFBQVE7SUFDUixDQUFDOytHQU5RLHdCQUF3QjttR0FBeEIsd0JBQXdCLDREQ1ZyQywrdG9KQXkxRUE7OzRGRC8wRWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNJLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtVY2lHcmFwaFFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLWdyYXBoLXFsLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXRlcm1zLWNvbmRpdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90ZXJtcy1jb25kaXRpb25zLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUZXJtc0NvbmRpdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidGFicy1jb250ZW50LXdyYXBwZXJcIj5cbiAgICA8c3VpLXRhYnNldD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlY29uZGFyeSBtZW51XCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIml0ZW1cIiBzdWlUYWJIZWFkZXI9XCIxXCI+VGVybXMgb2YgVXNlPC9hPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJpdGVtXCIgc3VpVGFiSGVhZGVyPVwiMlwiPlByaXZhY3kgUG9saWN5IDwvYT5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiaXRlbVwiIHN1aVRhYkhlYWRlcj1cIjNcIj5Db250ZW50IFBvbGljeSA8L2E+XG48IS0tICAgICAgICAgICAgPGEgY2xhc3M9XCJpdGVtXCIgc3VpVGFiSGVhZGVyPVwiNFwiPkdyb3VwIEd1aWRlbGluZXMgPC9hPi0tPlxuPCEtLSAgICAgICAgICAgIDxhIGNsYXNzPVwiaXRlbVwiIHN1aVRhYkhlYWRlcj1cIjVcIj5Db3Vyc2UgR3VpZGVsaW5lcyA8L2E+LS0+XG4gICAgICAgICAgICA8YSBjbGFzcz1cIml0ZW1cIiBzdWlUYWJIZWFkZXI9XCI2XCI+QWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIDwvYT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSAgICB0ZXJtcyBhbmQgdXNlIHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiMVwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cInRlcm1zT2ZVc2VcIiBhcmlhLWxhYmVsbGVkYnk9XCJ0ZXJtcy1vZi11c2UtdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+VGVybXMgb2YgVXNlPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiggTGFzdCB1cGRhdGVkIG9uIDxiPjI4LTA0LTIwMjE8L2I+ICk8L2VtPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgd2Vic2l0ZSBpcyBkZXNpZ25lZCwgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBOYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKE5DRVJUKSAoTWluaXN0cnkgb2ZcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uIChNb0UpLCBHb3Zlcm5tZW50IG9mIEluZGlhKSAodG9nZXRoZXIgcmVmZXJyZWQgdG8gYXNcbiAgICAgICAgICAgICAgICAgICAgXCI8c3Ryb25nPkdvSTwvc3Ryb25nPlwiKS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoZXNlIHRlcm1zIG9mIHVzZSwgYXMgYW1lbmRlZCwgZ292ZXJuIHRoZSB1c2FnZSBvZiBESUtTSEEgKERpZ2l0YWxcbiAgICAgICAgICAgICAgICAgICAgSW5mcmFzdHJ1Y3R1cmUgZm9yIEtub3dsZWRnZSBTaGFyaW5nKSBieSBpdHMgVXNlcnMgKGFzIGRlZmluZWQgYmVsb3cpXG4gICAgICAgICAgICAgICAgICAgIChcIjxzdHJvbmc+VGVybXM8L3N0cm9uZz5cIikuIERJS1NIQSBpcyBhbiBpbml0aWF0aXZlIG9mIHRoZSBHb0kuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBCeSB1c2luZyBESUtTSEEsIHlvdSBoYXZlIGFjY2VwdGVkIGFuZCBhZ3JlZSB0byBiZSBnb3Zlcm5lZCBieSB0aGVzZVxuICAgICAgICAgICAgICAgICAgICBUZXJtcywgYXMgbWF5IGJlIGFtZW5kZWQgZnJvbSB0aW1lIHRvIHRpbWUuIFRoZSB0ZXJtcyBcInlvdVwiLCBcInlvdXJcIlxuICAgICAgICAgICAgICAgICAgICBoZXJlaW5hZnRlciByZWZlciB0byBhbnkgVXNlciBvZiBESUtTSEEsIGluY2x1ZGluZyBSZWdpc3RlcmVkIFVzZXJzIChhc1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJlbG93KS5cbiAgICAgICAgICAgICAgICA8L3A+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RGVmaW5pdGlvbnM8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9yIG1lYW5zIGFueSBuYXR1cmFsIHBlcnNvbiB3aG8gaXMgYVxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VyIGFuZCB3aG8gaXMgYXV0aG9yaXNlZCB0byBiZSBhbiBhZG1pbmlzdHJhdG9yIGJ5IGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXIgb24gYmVoYWxmIG9mIHN1Y2ggSW5zdGl0dXRpb25hbCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG1lYW5zIGFuZCBpbmNsdWRlcywgYXMgdGhlIGNvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzLCAoaSkgYW55IHRleHQsIHNjcmlwdHMsIGdyYXBoaWNzLCBwaG90b3MsIHNvdW5kcywgbXVzaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWRlb3MsIGF1ZGlvLXZpc3VhbCBjb21iaW5hdGlvbnMsIGludGVyYWN0aXZlIGNvbnRlbnQsIGZlYXR1cmVzXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgb3RoZXIgbWF0ZXJpYWxzIHlvdSBtYXkgdmlldywgYWNjZXNzIG9yIGNvbnRyaWJ1dGUsIChpaSkgYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IGFuZCBwb3N0aW5ncyB0aGF0IGFyZSB3cml0dGVuLCB1cGxvYWRlZCwgc3VibWl0dGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVkLCBzZW50LCByZWNlaXZlZCwgc2hhcmVkIG9yIG90aGVyd2lzZSBwcm92aWRlZCBieSBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBVc2Vycywgc3VjaCBhcyBwb3N0cywgY29tbWVudHMsIGZlZWRiYWNrLCBzdWJtaXNzaW9ucywgcmVzcG9uc2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gaW4gZm9ydW1zIG9yIGdyb3VwcywgZm9yIHRlYWNoaW5nIGFuZCBsZWFybmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzLCBhbmQvb3IgdXNpbmcgcHJvamVjdC8gc3VydmV5LyBvYnNlcnZhdGlvbiB0b29scywgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAoaWlpKSBhbGwgdHlwZXMgb2YgbGVhcm5pbmcgbWF0ZXJpYWwgY3JlYXRlZCwgdXBsb2FkZWQgb3IgY29uc3VtZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ5IGEgVXNlciwgc3VjaCBhcyByZXNvdXJjZXMgKGxpa2UgdGVhY2hpbmcgb3IgbGVhcm5pbmcgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZWQgYnkgdGVhY2hlcnMsIHBhcmVudHMgb3Igc3R1ZGVudHMpLCBjb2xsZWN0aW9ucyAoaS5lLiBzZXRzXG4gICAgICAgICAgICAgICAgICAgICAgICBvZiBvcmRlcmVkIHJlc291cmNlcyBidW5kbGVkIHRvZ2V0aGVyIHRvIGJlIGNvbnN1bWVkIGFzIGEgd2hvbGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9va3MsIGUtYm9va3MsIGxlc3NvbiBwbGFucywgcXVlc3Rpb25zLCBhc3Nlc3NtZW50cywgcXVpenplcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZXMsIGxlYXJuaW5nIGFjdGl2aXRpZXMsIHByb2plY3RzLCBjb3Vyc2VzIGFuZCBvdGhlciB0eXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGVhY2hpbmcgYW5kIGxlYXJuaW5nIG1hdGVyaWFscyB0aGF0IGlzIG1lYW50IGZvciB3aWRlIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bXB0aW9uLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgbWVhbnMgPHN0cm9uZz5EPC9zdHJvbmc+aWdpdGFsXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkk8L3N0cm9uZz5uZnJhc3RydWN0dXJlIGZvciA8c3Ryb25nPks8L3N0cm9uZz5ub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5TaGE8L3N0cm9uZz5yaW5nIHdoaWNoIGlzIHRoZSBOYXRpb25hbCBQbGF0Zm9ybSBmb3IgU2Nob29sXG4gICAgICAgICAgICAgICAgICAgICAgICBFZHVjYXRpb24sIGFuIGluaXRpYXRpdmUgb2YgdGhlIEdvSSwgYW5kIGlzIGFjY2Vzc2libGUgb25saW5lIGF0XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kaWtzaGEuZ292LmluL1wiPmh0dHBzOi8vZGlrc2hhLmdvdi5pbiw8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdWdoIHRoZSBESUtTSEEgYW5kcm9pZCBhcHBsaWNhdGlvbiBhbmQgdGhyb3VnaCB0aGUgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNrdG9wIGFwcGxpY2F0aW9uLCBhbmQgYW55IGluY2x1ZGVzIG90aGVyIHN1Yi1kb21haW5zIC8gZXh0ZW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbnMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXIgbWVhbnMgYW5kIGluY2x1ZGVzIE1vRSwgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICBFZHVjYXRpb24gRGVwYXJ0bWVudHMgKG9mIGJvdGggQ2VudHJhbCBHb3Zlcm5tZW50IGFuZCBTdGF0ZS9VVCksXG4gICAgICAgICAgICAgICAgICAgICAgICBOYXRpb25hbCBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKE5DRVJUKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFueSBTdGF0ZSBDb3VuY2lsIGZvciBFZHVjYXRpb25hbCBSZXNlYXJjaCBhbmQgVHJhaW5pbmcgKFNDRVJUKVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRyYWluaW5nIHN0YXR1dG9yeSBib2R5LCBHb3Zlcm5tZW50IGFmZmlsaWF0ZWQgYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9ub21vdXMgYXV0aG9yaXR5IHNldCB1cCBieSB0aGUgR292ZXJubWVudCwgQm9hcmRzIGFuZCBDb3VuY2lsc1xuICAgICAgICAgICAgICAgICAgICAgICAgb2YgZWR1Y2F0aW9uIChDZW50cmFsLCBTdGF0ZSBhbmQgb3RoZXJzKSwgU2Nob29scywgVW5pdmVyc2l0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgRGVlbWVkIFVuaXZlcnNpdGllcywgQXV0b25vbW91cyBlZHVjYXRpb25hbCBpbnN0aXR1dGlvbnMsIExlYXJuaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBDZW50cmVzIG9yIG90aGVyIHN1Y2ggaW5zdGl0dXRpb25zIG9yIG9yZ2FuaXNhdGlvbnMgd2hvIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXNlZCB0byBvcGVyYXRlIGFzIGEgdGVuYW50IG9uIHRoZSBESUtTSEEgZGlnaXRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmFzdHJ1Y3R1cmUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIChpKSBVc2VycyBvZiBESUtTSEEsIHdob1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIgdGhlbXNlbHZlcyBhcyB1c2VycyBvZiBESUtTSEEgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBvbiBESUtTSEEsIGFuZCAoaWkpIFVzZXJzIG9mIERJS1NIQSB3aG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiByZWdpc3RlcmVkIG9uIERJS1NIQSBieSBhbiBBZG1pbmlzdHJhdG9yIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50IGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLCBhbmQgc3VjaCB1c2VycyBjYW4gbG9nIGluIHRvIERJS1NIQSB3aXRoIHRoZWlyIHJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBhcmUgYWxsIG5hdHVyYWwgcGVyc29ucyB3aG8gYWNjZXNzIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGFjY2VzcywgdmlldyBvciB1c2UgQ29udGVudCBvbiBESUtTSEEsIGFuZCBzdWNoIFVzZXJzIGluY2x1ZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+QWNjZXNzIGFuZCBVc2U8L2g0PlxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2Vyczwvc3Ryb25nPiAtXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciB5b3UgcmVwcmVzZW50IGFuZCB3YXJyYW50IHRoYXQgeW91IGFyZSBvZiBsZWdhbCBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhcmUgbGVnYWxseSBjb21wZXRlbnQgdG8gZm9ybSBhIGJpbmRpbmcgY29udHJhY3QgKG9yIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICBub3QsIHlvdSd2ZSByZWNlaXZlZCB5b3VyIHBhcmVudCdzIG9yIGd1YXJkaWFuJ3MgcGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgdG8gdXNlIERJS1NIQSBhbmQgdGhleSBoYXZlIGFncmVlZCB0byB0aGVzZSBUZXJtcyBvbiB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWhhbGYpLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB5b3UgYXJlIGFncmVlaW5nIHRvIHRoZXNlIFRlcm1zIG9uIGJlaGFsZiBvZiBhIGRlcGFydG1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0aXR1dGlvbiwgb3JnYW5pemF0aW9uIG9yIG90aGVyIGxlZ2FsIGVudGl0eSAoZm9yIGV4YW1wbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiB5b3XigJlyZSBhbiBBZG1pbmlzdHJhdG9yIGFncmVlaW5nIHRvIHRoZSBUZXJtcyBvbiBiZWhhbGYgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgc2Nob29sLCBpbnN0aXR1dGlvbiwgb3JnYW5pc2F0aW9uLCBnb3Zlcm5tZW50IGRlcGFydG1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBub24tcHJvZml0IGVudGl0eSwgZXRjLiksIHlvdSBoZXJlYnkgcmVwcmVzZW50IGFuZCB3YXJyYW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHlvdSBhcmUgZHVseSBhdXRob3JpemVkIHRvIGFncmVlIHRvIHRoZXNlIFRlcm1zIG9uIGJlaGFsZlxuICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhhdCBkZXBhcnRtZW50LCBpbnN0aXR1dGlvbiwgb3JnYW5pemF0aW9uIG9yIGVudGl0eSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZXNlIFRlcm1zIGFyZSBiaW5kaW5nIG9uIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYWdyZWVpbmcgdG8gdGhpcyBUZXJtcyBvbiBiZWhhbGYgb2YgYSBzdHVkZW50IHdob1xuICAgICAgICAgICAgICAgICAgICAgICAgaXMgbm90IG9mIGxlZ2FsIGFnZSwgeW91IGhlcmVieSByZXByZXNlbnQgYW5kIHdhcnJhbnQgdGhhdCB5b3VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnQgLyBoYXZlIG9idGFpbmVkIGNvbnNlbnQgZnJvbSB0aGUgcGFyZW50KHMpIC8gbGVnYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGd1YXJkaWFuKHMpIG9uIGJlaGFsZiBvZiBzdWNoIHN0dWRlbnQsIHRvIGFjY2VzcywgdmlldyBhbmQgdXNlXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlc2UgVGVybXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYSBzdHVkZW50IHdobyBpcyBub3Qgb2YgbGVnYWwgYWdlLCB5b3UgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NpbmcgRElLU0hBIHdpdGggY29uc2VudCBvZiBwYXJlbnQvbGVnYWwgZ3VhcmRpYW4sIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGFjY2VzcywgdmlldyBhbmQgdXNlIENvbnRlbnQgb24gRElLU0hBIHdpdGhvdXQgcmVnaXN0ZXJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHlvdXJzZWxmIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgY2FuOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJBXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPmFjY2VzcyBhbmQgdXNlIENvbnRlbnQgYXZhaWxhYmxlIG9uIERJS1NIQSw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5jcmVhdGUgYW5kIG1hbmFnZSB0aGVpciBVc2VyIHByb2ZpbGVzLCBhbmQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5zaGFyZSBDb250ZW50IHdpdGggb3RoZXIgVXNlcnMuPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBzaG91bGQgYmUgdXNlZCBmb3IgbGVhcm5pbmcgYW5kIGVkdWNhdGlvbmFsIHB1cnBvc2VzLlxuICAgICAgICAgICAgICAgICAgICAgICAgQXMgYSBVc2VyLCB5b3Ugd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgYWxsIHlvdXIgYWN0aW9ucyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXRpZXMgaW4gcmVsYXRpb24gdG8geW91ciB1c2FnZSBvZiBESUtTSEEuIEFsbCBVc2VycyBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3cgdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhcyBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRpbWUgdG8gdGltZSwgc3VjaCBhcyB0aGVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5UZXJtcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBZb3VyIGFjY2VzcyBhbmQgdXNlIG9mIERJS1NIQSBtYXkgcG9zc2libHkgYmUgZGlzcnVwdGVkIGR1ZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5pY2FsIG9yIG9wZXJhdGlvbmFsIGRpZmZpY3VsdGllcywgd2l0aG91dCBwcmlvciBub3RpY2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd250aW1lLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxzdHJvbmc+UmVnaXN0ZXJlZCBVc2Vyczwvc3Ryb25nPiAtXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhbGxvd3MgVXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyBvbiBESUtTSEEgYnk6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cIkFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2VsZi1yZWdpc3RyYXRpb247PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U3RhdGUgbGVkIHJlZ2lzdHJhdGlvbi48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGVwZW5kaW5nIG9uIHlvdXIgbW9kZSBvZiByZWdpc3RyYXRpb24sIGFzIGEgUmVnaXN0ZXJlZCBVc2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGNvbGxlY3RzIGNlcnRhaW4gZGF0YSBhbmQgaW5mb3JtYXRpb24gYWJvdXQgeW91IGluXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiPjxiPlByaXZhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uIFJlZ2lzdGVyZWQgVXNlcnMgbWF5IGFsc28gY2hvb3NlIHRvIGdpdmUgdGhlaXIgY29uc2VudCBmb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRhaW4gb2YgdGhlaXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gdG8gYmUgYWNjZXNzZWQgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIGZvciBzcGVjaWZpZWQgcHVycG9zZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsZXZhbnQgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBIGFzIGFwcGxpY2FibGUgZnJvbVxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGNhbiB1c2UgLyBwYXJ0aWNpcGF0ZSBpbiBhIHZhcmlldHkgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyaW5ncyBvbiBESUtTSEEgaW5jbHVkaW5nOlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VibWl0dGluZyAvIHBvc3RpbmcgLyB1cGxvYWRpbmcgLyBvdGhlcndpc2UgcHJvdmlkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWNjZXNzaW5nIGNvdXJzZXMgb3Igb3RoZXIgY29sbGVjdGlvbnMgb2YgQ29udGVudDs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DcmVhdGluZyBvciBwYXJ0aWNpcGF0aW5nIGluIERJS1NIQSBHcm91cHMuPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSZWdpc3RlcmVkIFVzZXJzIChpbmNsdWRpbmcgQWRtaW5pc3RyYXRvcnMpIG11c3QgZm9sbG93XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGUgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBIGFzIGFwcGxpY2FibGUgZnJvbSB0aW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB0byB0aW1lLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZXNlIFRlcm1zLCB0aGUgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgUG9saWN5IG9mIERJS1NIQSBhbmQgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBLiBTb21lIFJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIG1heSBoYXZlIHJlYWQsIHdyaXRlIGFuZCBlZGl0IHJpZ2h0cyBvbiBESUtTSEEgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50LCBzdWNoIHJpZ2h0cyBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGdpdmVuIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZGVudGlhbGl0eSBvZiB0aGVpciBVc2VyIElEIGFuZCBQYXNzd29yZCBhbmQgYWxzb1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2libGUgZm9yIGFsbCBhY3Rpdml0aWVzIHRoYXQgb2NjdXIgdW5kZXIgdGhlaXIgVXNlciBJRFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIFBhc3N3b3JkLiBBcyBhIFJlZ2lzdGVyZWQgVXNlciwgeW91IGFncmVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPmludGVyIGFsaWE8L2VtPiwgdG8gcHJvdmlkZSB0cnVlLCBhY2N1cmF0ZSwgY3VycmVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHlvdXJzZWxmIGFzIHByb21wdGVkIGJ5IHRoZSBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbiBmb3JtIG9yIHByb3ZpZGVkIGJ5IHlvdSBhcyBhIHZpc2l0b3Igb3IgdXNlciBvZiBhXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlyZCBwYXJ0eSBzaXRlIHRocm91Z2ggd2hpY2ggeW91IGFjY2VzcyBESUtTSEEuIElmIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCBpcyB1bnRydWUsIGluYXBwcm9wcmlhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmFjY3VyYXRlLCBub3QgY3VycmVudCBvciBpbmNvbXBsZXRlIG9yIHRoZXJlIGFyZSByZWFzb25hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91bmRzIHRvIHN1c3BlY3QgdGhhdCBzdWNoIGluZm9ybWF0aW9uIGlzIHVudHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYWNjdXJhdGUsIGluYXBwcm9wcmlhdGUsIG5vdCBjdXJyZW50IG9yIGluY29tcGxldGUsIG9yIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZXNlIFRlcm1zLCB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQSBoYXZlIHRoZSByaWdodCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZWZpbml0ZWx5IHN1c3BlbmQgb3IgdGVybWluYXRlIHlvdXIgcmVnaXN0cmF0aW9uIG9yIGJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gYW5kIHBhcnRpY2lwYXRpb24gaW4gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBIFJlZ2lzdGVyZWQgVXNlciBtYXkgbm90IHRyYW5zZmVyIHRoZWlyIHJlZ2lzdHJhdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgYW55b25lIGVsc2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz5JbnN0aXR1dGlvbmFsIFVzZXJzIDwvc3Ryb25nPi1cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBjYW4gb3BlcmF0ZSBhcyBhIHRlbmFudCBvbiB0aGUgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWdpdGFsIGluZnJhc3RydWN0dXJlLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIHNoYWxsIGFwcG9pbnQgQWRtaW5pc3RyYXRvcnMgYW5kIHNoYWxsIGJlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIEFkbWluaXN0cmF0b3Jz4oCZIGNvbXBsaWFuY2UgYW5kIGVuZm9yY2VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBvZiB0ZXJtcyBhbmQgcG9saWNpZXMgb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIGNhbiBhdXRob3Jpc2UgUmVnaXN0ZXJlZCBVc2VycyB0byBjcmVhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJhdGUsIHJldmlldyBvciBwdWJsaXNoIENvbnRlbnQgb3IgY29sbGVjdGlvbnMgb2YgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzdWNoIFJlZ2lzdGVyZWQgVXNlcnPigJkgY29tcGxpYW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgdGVybXMgYW5kIHBvbGljaWVzIG9mIERJS1NIQS4gRm9yIG1vcmUgZGV0YWlscyBvbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgb2YgYWRtaW5pc3RyYXRvcnMsIGNyZWF0b3JzLCBjb250cmlidXRvcnMsIHJldmlld2VycyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyIHJvbGVzLCBwbGVhc2UgdmlzaXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kaWtzaGEuZ292LmluL2hlbHAvZ2V0dGluZy1zdGFydGVkL2V4cGxvcmUtZGlrc2hhL2luZGV4Lmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5IZWxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2VudGVyPC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBtYXkgcnVuIHByb2dyYW1zIG9uIHRoZSBESUtTSEEgZGlnaXRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIGluY2x1ZGluZyAoaSkgdG8gc291cmNlIENvbnRlbnQgdGhyb3VnaFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbXMgYW5kIHRvb2xzIHRoYXQgaW52aXRlIHRoZSBwYXJ0aWNpcGF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBlZHVjYXRpb24gZWNvc3lzdGVtLCBhbmQgKGlpKSB0byBvZmZlclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cnNlcywgY29uZHVjdCBxdWl6emVzLCBjb21wZXRpdGlvbnMsIGFzc2Vzc21lbnRzLCBvciBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbXMgdXNpbmcgdGhlIHZhcmlvdXMgdG9vbHMgYXZhaWxhYmxlIGluY2x1ZGluZyBwcm9qZWN0IC9cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cnZleSAvIG9ic2VydmF0aW9uIHRvb2xzIHRoYXQgaW52aXRlIHRoZSBwYXJ0aWNpcGF0aW9uIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBvZiBESUtTSEEuIFN1Y2ggcHJvZ3JhbXMgYW5kIGl0cyBwYXJ0aWNpcGFudHMgc2hhbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcyBhbmQgcG9saWNpZXMgb2YgRElLU0hBLCBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgYW55IHNwZWNpZmljIHRlcm1zIG9mIHVzZSBwcmVzY3JpYmVkIGZvciB0aGUgc2FtZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGl0dXRpb25hbCBVc2VycyBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgYW5kIHNoYWxsIGNvbXBseVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbmRpYW4gbGF3IGN1cnJlbnRseSBpbiBmb3JjZSwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIChJbmRpYW4pIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFJlYXNvbmFibGUgU2VjdXJpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFByYWN0aWNlcyBhbmQgUHJvY2VkdXJlcykgUnVsZXMsIDIwMTEgd2l0aCByZXNwZWN0IHRvIGFueSBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgcGVyc29uYWwgaW5mb3JtYXRpb24gdGhhdCBpcyBjb2xsZWN0ZWQgZHVyaW5nIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHJ1bm5pbmcgc3VjaCBwcm9ncmFtcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlByb2hpYml0ZWQgQ29udGVudCBhbmQgVXNlPC9oND5cbiAgICAgICAgICAgICAgICA8cD5SZWdpc3RlcmVkIFVzZXJzIHNoYWxsIG5vdDo8L3A+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBESUtTSEEgZm9yIGFueSBwdXJwb3NlIG90aGVyIHRoYW4gbGVhcm5pbmcgYW5kIGVkdWNhdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcztcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCwgdXBsb2FkLCBvciBkaXN0cmlidXRlIGFueSBkZWZhbWF0b3J5LCBsaWJlbG91cywgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGluYWNjdXJhdGUgQ29udGVudCBvciBvdGhlciBjb250ZW50IG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCwgdXBsb2FkLCBvciBkaXN0cmlidXRlIGFueSBDb250ZW50IG9yIG90aGVyIGNvbnRlbnQgdGhhdCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5sYXdmdWwgb3IgdGhhdCBhIHJlYXNvbmFibGUgcGVyc29uIGNvdWxkIGRlZW0gdG8gYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdGlvbmFibGUsIG9mZmVuc2l2ZSwgaW5kZWNlbnQsIHBvcm5vZ3JhcGhpYywgaGFyYXNzaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWF0ZW5pbmcsIHZ1bGdhciwgaGF0ZWZ1bCwgcmFjaWFsbHkgb3IgZXRobmljYWxseSBvZmZlbnNpdmUsIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcndpc2UgaW5hcHByb3ByaWF0ZTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0ZSBhbnkgQ29udGVudCAoaW5jbHVkaW5nIGFueSBvZiB0aGUgZWxlbWVudHMgdGhhdCBzdWNoXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IGNvbXByaXNlcyBzdWNoIGFzIHRleHQsIHNjcmlwdHMsIGdyYXBoaWNzLCBwaG90b3MsIHNvdW5kcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11c2ljLCB2aWRlb3MsIGF1ZGlvLXZpc3VhbCBjb21iaW5hdGlvbnMgZXRjLikgdGhhdCBpbmZyaW5nZXMgdXBvblxuICAgICAgICAgICAgICAgICAgICAgICAgYW55IHRoaXJkIHBhcnR5IHJpZ2h0cyBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGludGVsbGVjdHVhbFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgcmlnaHRzIHN1Y2ggYXMgY29weXJpZ2h0cyBvciBhbnkgb3RoZXIgbGVnYWwgcmlnaHRzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRpdmlkdWFsKHMpL29yZ2FuaXNhdGlvbihzKTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIERJS1NIQSBpbiBhbnkgbWFubmVyIHRoYXQgaXMgaGFybWZ1bCB0byBtaW5vcnMsIG9yIGluIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFubmVyIHRoYXQgdmlvbGF0ZXMgdGhlIGV4dGFudFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5UZXJtcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZTwvYj48L2E+LCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCI+PGI+UHJpdmFjeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvbGljeTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiPjxiPkNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3k8L2I+PC9hPjtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW1wZXJzb25hdGUgYW55IHBlcnNvbiBvciBlbnRpdHksIGZhbHNlbHkgY2xhaW0gYW4gYWZmaWxpYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggYW55IHBlcnNvbiBvciBlbnRpdHksIG9yIGFjY2VzcyBESUtTSEEgYWNjb3VudHMgb2Ygb3RoZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRob3V0IHBlcm1pc3Npb24sIG9yIHBlcmZvcm0gYW55IG90aGVyIGZyYXVkdWxlbnQgYWN0aXZpdHk7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGUgY29weXJpZ2h0IG9yIG90aGVyIHByb3ByaWV0YXJ5IHJpZ2h0cyBub3RpY2VzIG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgb3Igb24gYW55IGxpY2Vuc2VkIENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCwgb3IgYXV0aG9yaXplLCBhc3Npc3QsIG9yIGVuY291cmFnZSBhbnkgdGhpcmQgcGFydHkgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCwgYWdhaW5zdCBESUtTSEEgYW55IGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYWltIHJlZ2FyZGluZyBhbnkgQ29udGVudCB5b3UgaGF2ZSB1c2VkLCBzdWJtaXR0ZWQsIG9yIG90aGVyd2lzZVxuICAgICAgICAgICAgICAgICAgICAgICAgbWFkZSBhdmFpbGFibGUgb24gb3IgdGhyb3VnaCBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UgdW5zb2xpY2l0ZWQgb2ZmZXJzLCBhZHZlcnRpc2VtZW50cywgcHJvcG9zYWxzLCBvciBzZW5kIGp1bmtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haWwgb3Igc3BhbSB0byBvdGhlciBVc2VycyAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sXG4gICAgICAgICAgICAgICAgICAgICAgICB1bnNvbGljaXRlZCBhZHZlcnRpc2luZywgcHJvbW90aW9uYWwgbWF0ZXJpYWxzLCBvZmZlcmluZ3Mgb3Igb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGljaXRhdGlvbiBtYXRlcmlhbCwgYnVsayBtYWlsaW5nIG9mIGNvbW1lcmNpYWwgYWR2ZXJ0aXNpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFpbiBtYWlsLCBpbmZvcm1hdGlvbmFsIGFubm91bmNlbWVudHMsIGNoYXJpdHkgcmVxdWVzdHMsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGV0aXRpb25zIGZvciBzaWduYXR1cmVzKTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIERJS1NIQSBmb3IgYW55IGlsbGVnYWwgcHVycG9zZSwgb3IgaW4gdmlvbGF0aW9uIG9mIGFueSBsb2NhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLCBuYXRpb25hbCwgb3IgaW50ZXJuYXRpb25hbCBsYXcsIGluY2x1ZGluZywgd2l0aG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRhdGlvbiwgbGF3cyBnb3Zlcm5pbmcgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGFuZCBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHJpZXRhcnkgcmlnaHRzLCBhbmQgZGF0YSBwcm90ZWN0aW9uIGFuZCBwcml2YWN5O1xuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhbWUsIGhhcmFzcywgYWJ1c2UsIHRocmVhdGVuIG9yIGRlZnJhdWQgVXNlcnMsIG9yIGNvbGxlY3QsIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0IHRvIGNvbGxlY3QsIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFib3V0IFVzZXJzIG9yIHRoaXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWVzIHdpdGhvdXQgdGhlaXIgY29uc2VudDtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlLCBjaXJjdW12ZW50LCBkaXNhYmxlLCBkYW1hZ2Ugb3Igb3RoZXJ3aXNlIGludGVyZmVyZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eS1yZWxhdGVkIGZlYXR1cmVzIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5LCBhZGFwdCwgdHJhbnNsYXRlIG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIGJhc2VkIHVwb25cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgb24gRElLU0hBIG9yIGFueSBwYXJ0IHRoZXJlb2YsIGV4Y2VwdCBhbmQgb25seSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVudCBleHByZXNzbHkgcGVybWl0dGVkIGJ5IHRoZSBsaWNlbnNlIGFwcGxpY2FibGUgdG8gc3VjaFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudDsgb3JcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZW50aW9uYWxseSBpbnRlcmZlcmUgd2l0aCBvciBkYW1hZ2Ugb3BlcmF0aW9uIG9mIERJS1NIQSBvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIncyB1c2FnZSBvZiBpdCwgYnkgYW55IG1lYW5zLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW9uIGluIGFueSBkZW5pYWwtb2Ytc2VydmljZSB0eXBlIGF0dGFja3Mgb3IgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGluZyBvciBvdGhlcndpc2UgZGlzc2VtaW5hdGluZyB2aXJ1c2VzLCBhZHdhcmUsIHNweXdhcmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3Jtcywgb3Igb3RoZXIgbWFsaWNpb3VzIGNvZGUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Qcml2YWN5IGFuZCBQZXJzb25hbCBJbmZvcm1hdGlvbjwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSB0YWtlcyB0aGUgcHJpdmFjeSBvZiBpdHMgdXNlcnMgdmVyeSBzZXJpb3VzbHkuIFBsZWFzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2aWV3IHRoZSBlbnRpcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgPjxiPlByaXZhY3lcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJ5IHVzaW5nIERJS1NIQSBhbmQvb3IgYnkgcHJvdmlkaW5nIHlvdXIgaW5mb3JtYXRpb24sIHlvdSBjb25zZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgY29sbGVjdGlvbiBhbmQgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiB5b3UgZGlzY2xvc2Ugb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYWJsZSBmcm9tIHRpbWUgdG8gdGltZSwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCI+PGI+UHJpdmFjeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvbGljeSBvZiBESUtTSEE8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNvbnRlbnQgUG9saWN5IG9mIERJS1NIQTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgaXMgYW4gb3BlbiBjb250ZW50IHJlcG9zaXRvcnkgdGhhdCBoYXMgYmVlbiBidWlsdCB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZSB0byBlbmFibGUgZ3JlYXRlciBhY2Nlc3MgdG8gbGVhcm5pbmcgYW5kIHRlYWNoaW5nIGNvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHlvdSB1c2UgRElLU0hBLCB5b3Ugam9pbiBhIHZhc3QgY29tbXVuaXR5IG9mIGxlYXJuZXJzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVhY2hlcnMgdXNpbmcgRElLU0hBIHdoaWNoIGludm9sdmVzIGEgY2VydGFpbiBsZXZlbCBvZiB0cnVzdC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgYXJlIGV4cGVjdGVkIHRvIHJlc3BlY3QgdGhhdCB0cnVzdCBhbmQgYmUgcmVzcG9uc2libGUgYWJvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIHVzYWdlIG9mIERJS1NIQSBhbmQgYWxsIGl0cyBDb250ZW50IGFuZCBmb2xsb3cgYWxsIHJlbGV2YW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXJtcywgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgYXBwbGljYWJsZSB0byBDb250ZW50LCBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIj48Yj5Db250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9saWN5IG9mIERJS1NIQTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBCeSBzdWJtaXR0aW5nIC8gdXBsb2FkaW5nIC8gY3JlYXRpbmcvIHB1Ymxpc2hpbmcgQ29udGVudCBvbiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBmb2xsb3dpbmcgdGhlIG9wZW4gbGljZW5zZSBmcmFtZXdvcmtzIGFkb3B0ZWQgYnkgRElLU0hBLFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyByZWNvZ25pc2UgYW5kIGFjY2VwdCB0aGF0IHRoZSBDb250ZW50IHdpbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2VkIGFuZCB1c2VkIGJ5IGFueSBpbmRpdmlkdWFsLCBpbnN0aXR1dGlvbiBvciBvcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggdmFyaW91cyBwbGF0Zm9ybXMsIHBvcnRhbHMgYW5kIGFwcGxpY2F0aW9ucyBpbiBhY2NvcmRhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGxpY2Vuc2UgY29uZGl0aW9ucy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSXQgc2hhbGwgYmUgdGhlIHNvbGUgcmVzcG9uc2liaWxpdHkgb2YgUmVnaXN0ZXJlZCBVc2VycyB0byBlbnN1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgcHJvcGVyIGFuZCBjb3JyZWN0IGF0dHJpYnV0aW9ucywgYWNrbm93bGVkZ2VtZW50cyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjaW5nIHJlZmVyZW5jZXMgYXJlIGdpdmVuIHRvIHRoZSBDb250ZW50IGFuZCBpbmRpdmlkdWFsKHMpL1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGl0dXRpb24ocykgdGhhdCBoYXZlIGJlZW4gaW52b2x2ZWQgaW4gdGhlIGRldmVsb3BtZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb24gb2YgQ29udGVudCBhbmQgd2hlcmV2ZXIgQ29udGVudCBoYXMgYmVlbiBxdW90ZWQvdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSXQgc2hhbGwgYmUgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIFJlZ2lzdGVyZWQgVXNlcnMgbm90IHRvIGluZnJpbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICB1cG9uIGFueSB0aGlyZCBwYXJ0eSByaWdodHMgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBzdWNoIGFzIGNvcHlyaWdodHMgb3IgYW55IG90aGVyIGxlZ2FsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodHMgb2YgaW5kaXZpZHVhbChzKS9vcmdhbmlzYXRpb24ocykgd2l0aCByZWdhcmRzIHRvIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbmNsdWRpbmcgYWxsIHRoZSBlbGVtZW50cyB0aGF0IHN1Y2ggQ29udGVudCBjb21wcmlzZXMgc3VjaCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgc2NyaXB0cywgZ3JhcGhpY3MsIHBob3Rvcywgc291bmRzLCBtdXNpYywgdmlkZW9zLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8tdmlzdWFsIGNvbWJpbmF0aW9ucyBldGMuKSBjb250cmlidXRlZCBvbiBESUtTSEEuIEZvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsIG1hdHRlciBhcmlzaW5nIG91dCBvZiBpbmZyaW5nZW1lbnQgb2Ygc3VjaCByaWdodHMgYnkgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIsIHN1Y2ggUmVnaXN0ZXJlZCBVc2VyIHNoYWxsIGJlIHNvbGVseSByZXNwb25zaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGFueSBmaW5hbmNpYWwgb3Igb3RoZXIgZGFtYWdlcyBhcmlzaW5nIG91dCBvZiBzdWNoIHZpb2xhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkaXNwdXRlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNoYW5nZXMgaW4gRElLU0hBIFBvbGljaWVzPC9oND5cbiAgICAgICAgICAgICAgICA8cD5UaGVzZSBUZXJtcyAoaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgIGFueSBwb2xpY2llcywgdGVybXMgYW5kIGd1aWRlbGluZXMpIG1heSBiZSB1cGRhdGVkIG9yIG1vZGlmaWVkIGZyb21cbiAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lIGFuZCB0aGUgcmV2aXNlZCBUZXJtcyB3aWxsIGJlIHJlZmxlY3RlZCBoZXJlaW4uIFlvdXJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWVkIHVzZSBvZiBESUtTSEEgY29uc3RpdHV0ZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbi1jdXJyZW50XG4gICAgICAgICAgICAgICAgICAgIFRlcm1zLiBIZW5jZSwgd2UgZW5jb3VyYWdlIHlvdSB0byB2aXNpdCB0aGlzIHBhZ2UgcGVyaW9kaWNhbGx5IHRvXG4gICAgICAgICAgICAgICAgICAgIHJldmlldyBhbnkgY2hhbmdlcy5cblxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkxpbWl0ZWQgTGlhYmlsaXR5PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciB5b3Ugc2hhbGwgbm90IGNvbGxlY3QgYW55IHBlcnNvbmFsIGluZm9ybWF0aW9uIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5zaXRpdmUgcGVyc29uYWwgZGF0YSBvZiBvdGhlciBVc2VycyB0aHJvdWdoIERJS1NIQSwgYnV0IGlmIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgZG8gY29sbGVjdCBzdWNoIGluZm9ybWF0aW9uLCB5b3UgbXVzdCBlbnN1cmUgdGhhdCBzdWNoIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLCB0cmFuc2ZlciBhbmQgZGlzY2xvc3VyZSBpcyBpbiBhY2NvcmRhbmNlIHdpdGggSW5kaWFuIGxhd1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSAoSW5kaWFuKVxuICAgICAgICAgICAgICAgICAgICAgICAgSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoUmVhc29uYWJsZSBTZWN1cml0eSBQcmFjdGljZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9jZWR1cmVzKSBSdWxlcywgMjAxMS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JLCBhZG1pbmlzdHJhdG9ycyBhbmQgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBJbnN0aXR1dGlvbmFsIFVzZXJzIGRvIG5vdCBndWFyYW50ZWUgdGhlIGFjY3VyYWN5IG9mIGFueSBvZiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgb24gdGhlIERJS1NIQS4gR29JLCBhZG1pbmlzdHJhdG9ycyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIGFuZCBJbnN0aXR1dGlvbmFsIFVzZXJzIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICBub3QgdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgYW55IGV4dGVybmFsIHdlYnNpdGVzIGxpbmtlZCBvblxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLCBpbmNsdWRpbmcgY29tcGxpYW5jZSB3aXRoIEluZGlhbiBHb3Zlcm5tZW50IFdlYlxuICAgICAgICAgICAgICAgICAgICAgICAgR3VpZGVsaW5lcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IGFuZCBjb25maWRlbnRpYWxpdHkgb2YgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4gQW55XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmF1dGhvcmlzZWQgdXNlIG9mIHlvdXIgdXNlcm5hbWUgb3IgcGFzc3dvcmQgb3IgYW55IG90aGVyIGJyZWFjaFxuICAgICAgICAgICAgICAgICAgICAgICAgb2Ygc2VjdXJpdHkgbXVzdCBiZSBub3RpZmllZCBieSBzZW5kaW5nIGFuIGVtYWlsIG5vdGlmaWNhdGlvbiB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHRlYW1kaWtzaGEub3JnXCI+PGI+c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZzwvYj48L2E+LiBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBJbnN0aXR1dGlvbmFsIFVzZXJzIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGxvc3Mgb3IgZGFtYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIHByb3Zpc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgcmVzcG9uc2libGUgZm9yIGFueSBvZmZlbnNpdmUgb3IgdW5sYXdmdWxcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgcG9zdGVkLCB0cmFuc21pdHRlZCwgc2VudCBvciBjb21tdW5pY2F0ZWQgdGhyb3VnaCBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgICAgICBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIEluc3RpdHV0aW9uYWwgVXNlcnMgc2hhbGwgbm90IGJlIGhlbGQgcmVzcG9uc2libGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmZW5zaXZlIG9yIHVubGF3ZnVsIENvbnRlbnQgcG9zdGVkLCB1cGxvYWRlZCwgdHJhbnNtaXR0ZWQsIHNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZWNlaXZlZCB0aHJvdWdoIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gbm8gZXZlbnQgd2lsbCBHb0ksIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEgb3IgSW5zdGl0dXRpb25hbCBVc2VycyBiZSBsaWFibGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2UgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGluZGlyZWN0IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50aWFsIGxvc3Mgb3IgZGFtYWdlLCBvciBhbnkgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoYXRzb2V2ZXIgYXJpc2luZyBmcm9tIHVzZSwgb3IgbG9zcyBvZiB1c2UsIG9mIGRhdGEsIGFyaXNpbmcgb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIGFjY2VzcyBvciB1c2Ugb2YgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+VGVybWluYXRpb248L2g0PlxuICAgICAgICAgICAgICAgIDxwPkFueSB2aW9sYXRpb24gb3IgYnJlYWNoIG9mIHRoZXNlIFRlcm1zLFxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgd2hpbGUgaW52ZXN0aWdhdGluZyBjb21wbGFpbnRzIG9yIGFsbGVnZWQgdmlvbGF0aW9uIG9mIHRoZXNlXG4gICAgICAgICAgICAgICAgICAgIFRlcm1zLCBtYXkgbGVhZCB0byBzdXNwZW5zaW9uIG9yIHRlcm1pbmF0aW9uIG9mIHlvdXIgcmVnaXN0cmF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gRElLU0hBLlxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RWxlY3Ryb25pYyBBZ3JlZW1lbnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxwPlRoaXMgZG9jdW1lbnQgaXMgYSB3cml0dGVuXG4gICAgICAgICAgICAgICAgICAgIGFncmVlbWVudCwgYW4gZWxlY3Ryb25pYyByZWNvcmQgYW5kIHZhbGlkIGFuZCBlbmZvcmNlYWJsZSBlbGVjdHJvbmljXG4gICAgICAgICAgICAgICAgICAgIGFncmVlbWVudCAvIGNvbnRyYWN0IHVuZGVyIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQWN0LCAyMDAwIChhc1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhYmxlIGluIFJlcHVibGljIG9mIEluZGlhKSBhbmQgcnVsZXMgdGhlcmUgdW5kZXIgYXMgYXBwbGljYWJsZVxuICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGFtZW5kZWQgcHJvdmlzaW9ucyBwZXJ0YWluaW5nIHRvIGVsZWN0cm9uaWMgcmVjb3JkcyBpbiB2YXJpb3VzXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1dGVzIHVuZGVyIGFwcGxpY2FibGUgSW5kaWFuIGxhd3MuIFRoaXMgZWxlY3Ryb25pYyByZWNvcmQgaXNcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkIGJ5IGEgY29tcHV0ZXIgc3lzdGVtIGFuZCBkb2VzIG5vdCByZXF1aXJlIGFueSBwaHlzaWNhbCBvclxuICAgICAgICAgICAgICAgICAgICBkaWdpdGFsIHNpZ25hdHVyZXMuIFlvdXIgdXNhZ2Ugb2YgRElLU0hBIHNoYWxsIGJlIHlvdXIgZGVlbWVkXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdGFuY2Ugb2YgdGhlc2UgVGVybXMgYW5kIGFsbCB0aGUgbW9kaWZpY2F0aW9ucyBhbmQgdXBkYXRlc1xuICAgICAgICAgICAgICAgICAgICB0aGVyZXRvLlxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+R292ZXJuaW5nIExhdyBhbmQgRGlzcHV0ZSBSZXNvbHV0aW9uPC9oND5cbiAgICAgICAgICAgICAgICA8cD4gVGhlc2UgVGVybXNcbiAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgZ292ZXJuZWQgYnkgYW5kIGNvbnN0cnVlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIEluZGlhbiBsYXcuXG4gICAgICAgICAgICAgICAgICAgIEFueSBkaXNwdXRlIGFyaXNpbmcgdW5kZXIgdGhlc2UgVGVybXMgc2hhbGwgYmUgc3ViamVjdCB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlIGp1cmlzZGljdGlvbiBvZiB0aGUgY291cnRzIG9mIE5ldyBEZWxoaSwgSW5kaWEuXG4gICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5EaXNjbGFpbWVyPC9oND5cbiAgICAgICAgICAgICAgICA8cD4gRElLU0hBIElTIEFWQUlMQUJMRSBPTiBBTiBcIkFTIElTXCIgQkFTSVNcbiAgICAgICAgICAgICAgICAgICAgQU5EIFRIRVJFIEFSRSBOTyBXQVJSQU5USUVTIE9GIEFOWSBLSU5EIFdJVEggUkVTUEVDVCBUTyBESUtTSEEuIEdPSVxuICAgICAgICAgICAgICAgICAgICBBTkQgVEhFIEFETUlOSVNUUkFUT1JTIEFORCBURUNITk9MT0dZIFNVUFBPUlQgUFJPVklERVJTIE9GIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICBTUEVDSUZJQ0FMTFkgRElTQ0xBSU0gQU5ZIElNUExJRUQgV0FSUkFOVElFUyBPRiBGSVRORVNTIEZPUiBBXG4gICAgICAgICAgICAgICAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT04tSU5GUklOR0VNRU5ULiBBQ0NFU1MgQU5EIFVTRSBPRiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgKElOQ0xVRElORyBBTlkgQ09OVEVOVCBPUiBJTkZPUk1BVElPTikgSVMgRU5USVJFTFkgQVQgWU9VUiBPV04gUklTSy5cbiAgICAgICAgICAgICAgICAgICAgSU4gTk8gRVZFTlQgV0lMTCBHT0kgT1IgVEhFIEFETUlOSVNUUkFUT1JTIEFORCBURUNITk9MT0dZIFNVUFBPUlRcbiAgICAgICAgICAgICAgICAgICAgUFJPVklERVJTIE9GIERJS1NIQSBCRSBMSUFCTEUgRk9SIEFOWSBFWFBFTlNFLCBMT1NTIE9SIERBTUFHRVxuICAgICAgICAgICAgICAgICAgICBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBMT1NTIE9SXG4gICAgICAgICAgICAgICAgICAgIERBTUFHRSwgT1IgQU5ZIEVYUEVOU0UsIExPU1MgT1IgREFNQUdFIFdIQVRTT0VWRVIgQVJJU0lORyBGUk9NIFVTRSwgT1JcbiAgICAgICAgICAgICAgICAgICAgTE9TUyBPRiBVU0UsIE9GIERBVEEsIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9GXG4gICAgICAgICAgICAgICAgICAgIERJS1NIQS4gV0hFTiBZT1UgU0VMRUNUIEEgTElOSyBUTyBBTiBPVVRTSURFIFdFQlNJVEUsIFlPVSBBUkUgTEVBVklOR1xuICAgICAgICAgICAgICAgICAgICBESUtTSEEgQU5EIEFSRSBTVUJKRUNUIFRPIFRIRSBQUklWQUNZIEFORCBTRUNVUklUWSBQT0xJQ0lFUyBPRiBUSEVcbiAgICAgICAgICAgICAgICAgICAgT1dORVJTL1NQT05TT1JTIE9GIFRIRSBPVVRTSURFIFdFQlNJVEUgLyBET01BSU4uXG4gICAgICAgICAgICAgICAgPC9wPlxuXG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInRleHQtcmlnaHQgVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj5SZWFkLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2E+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIHRlcm1zIGFuZCB1c2UgZW5kIGhlcmUtLT5cblxuICAgICAgICA8IS0tICAgIFByaXZhY3kgUG9saWN5IHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiMlwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cInByaXZhY3lQb2xpY3lcIiBhcmlhLWxhYmVsbGVkYnk9XCJwcml2YWN5LXBvbGljeS10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5Qcml2YWN5IFBvbGljeSBvZiBESUtTSEE8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgRElLU0hBIChEaWdpdGFsIEluZnJhc3RydWN0dXJlIGZvciBLbm93bGVkZ2UgU2hhcmluZyApIGlzIHRoZSBOYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybSBmb3IgU2Nob29sIEVkdWNhdGlvbiBmb3IgdGhlIGJlbmVmaXQgb2YgdGVhY2hlcnMgYW5kIGxlYXJuZXJzXG4gICAgICAgICAgICAgICAgICAgIGFjcm9zcyBJbmRpYS4gRElLU0hBIGlzIGFuIGluaXRpYXRpdmUgb2YgTmF0aW9uYWwgQ291bmNpbCBmb3JcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uYWwgUmVzZWFyY2ggYW5kIFRyYWluaW5nIChOQ0VSVCkgKE1pbmlzdHJ5IG9mIEVkdWNhdGlvbiAoTW9FKSxcbiAgICAgICAgICAgICAgICAgICAgR292ZXJubWVudCBvZiBJbmRpYSkuIFVzZXJzIG9mIERJS1NIQSBjYW4gYWNjZXNzIGNvbnRlbnQgZm9yIGxlYXJuaW5nIG9uXG4gICAgICAgICAgICAgICAgICAgIHRoZSB3ZWIgYXRcbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZGlrc2hhLmdvdi5pblwiIHRhcmdldD1cIl9ibGFua1wiPmh0dHBzOi8vZGlrc2hhLmdvdi5pbjwvYT4sIHRocm91Z2ggdGhlIERJS1NIQSBtb2JpbGUgYXBwbGljYXRpb24sIGFuZCB0aGUgZGVza3RvcCBhcHBsaWNhdGlvbi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoZSBwcml2YWN5IGFuZCBwcm90ZWN0aW9uIG9mIGRhdGEgb2YgRElLU0hB4oCZcyBVc2VycyBpcyBvZiB1dG1vc3RcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW5jZSBhbmQgc2hhbGwgYmUgZW5zdXJlZCBhdCBhbGwgdGltZXMuIFRoaXMgUHJpdmFjeSBQb2xpY3kgc2hhbGxcbiAgICAgICAgICAgICAgICAgICAgY292ZXIgZGV0YWlscyBvZiBkYXRhIHByb3RlY3Rpb24gYW5kIG1hbmFnZW1lbnQgb24gRElLU0hBLCBpbmNsdWRpbmcgaG93XG4gICAgICAgICAgICAgICAgICAgIHBlcnNvbmFsIGRhdGEgb2YgdXNlcnMgb2YgRElLU0hBIGlzIG1hbmFnZWQsIHVzZWQgYW5kIHByb2Nlc3NlZC4gVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgYXJlIGluZGl2aWR1YWxzIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgYW5kIGJyb2FkbHkgY29tcHJpc2UgKGkpIHVzZXJzXG4gICAgICAgICAgICAgICAgICAgIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgd2l0aG91dCByZWdpc3RlcmluZyB0aGVtc2VsdmVzIG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAoXCI8c3Ryb25nPlVzZXJzPC9zdHJvbmc+XCIpLCAoaWkpIHVzZXJzIHdobyBhY2Nlc3MgYW5kIHVzZSBESUtTSEEgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJpbmcgdGhlbXNlbHZlcyBvbiBESUtTSEEgKFwiPHN0cm9uZz5SZWdpc3RlcmVkIFVzZXJzPC9zdHJvbmc+XCIpLFxuICAgICAgICAgICAgICAgICAgICAoaWlpKSB1c2VycyB3aG8gYXJlIHJlZ2lzdGVyZWQgb24gRElLU0hBIGFuZCBhcmUgYXV0aG9yaXNlZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICBhZG1pbmlzdHJhdG9ycyBvbiBiZWhhbGYgb2YgSW5zdGl0dXRpb25hbCBVc2VycyAoc3VjaCBhcyBOQ0VSVCwgU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgRWR1Y2F0aW9uIERlcGFydG1lbnRzIGV0Yy4pIChcIjxzdHJvbmc+QWRtaW5pc3RyYXRvcnM8L3N0cm9uZz5cIikuXG4gICAgICAgICAgICAgICAgICAgIEluc3RpdHV0aW9uYWwgVXNlcnMgb3BlcmF0ZSBhcyB0ZW5hbnRzIG9uIERJS1NIQS4gTW9yZSBkZXRhaWxzIG9uIHRoZVxuICAgICAgICAgICAgICAgICAgICByaWdodHMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgb2YgVXNlcnMgYW5kIFJlZ2lzdGVyZWQgVXNlcnMgYXJlIHNldCBvdXQgaW5cbiAgICAgICAgICAgICAgICAgICAgdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBCeSBhY2Nlc3NpbmcgYW5kIHVzaW5nIERJS1NIQSwgYW5kIGJ5IHByb3ZpZGluZyB5b3VyIGluZm9ybWF0aW9uIG9uXG4gICAgICAgICAgICAgICAgICAgIERJS1NIQSwgeW91IGNvbnNlbnQgdG8gdGhlIGNvbGxlY3Rpb24gYW5kIHVzZSBvZiB0aGUgaW5mb3JtYXRpb24geW91XG4gICAgICAgICAgICAgICAgICAgIGRpc2Nsb3NlIG9uIERJS1NIQSBieSBESUtTSEEgYW5kIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzIG9mIERJS1NIQSBpblxuICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggdGhlIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSBhcyBhcHBsaWNhYmxlIGZyb21cbiAgICAgICAgICAgICAgICAgICAgdGltZSB0byB0aW1lLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgYW5kIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uIElmIHlvdSBkbyBub3QgYWdyZWUgd2l0aCB0aGUgY29udGVudHMgb2YgdGhpcyBwb2xpY3ksIHBsZWFzZSBkbyBub3RcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzIG9yIHVzZSBESUtTSEEuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBUaGlzXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSByZWFkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDxzdHJvbmc+VGVybXMgb2YgVXNlPC9zdHJvbmc+LlxuICAgICAgICAgICAgICAgICAgICBEZWZpbmVkIHRlcm1zIHVzZWQgYnV0IG5vdCBkZWZpbmVkIGhlcmVpbiBzaGFsbCBoYXZlIHRoZSBtZWFuaW5nXG4gICAgICAgICAgICAgICAgICAgIGFzY3JpYmVkIHRvIHRoZW0gaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlJpZ2h0cyBvZiBVc2Vyczo8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBmYWlyLCB0cmFuc3BhcmVudCBhbmQgbGF3ZnVsIGNvbGxlY3Rpb24gb2YgeW91ciBkYXRhIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJpZ2h0IHRvIGJlIGluZm9ybWVkIGFib3V0IHRoZSB3YXlzIGluIHdoaWNoIHlvdXIgZGF0YSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgY29sbGVjdGVkIG9uIERJS1NIQSB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcmVjZWl2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIHRvIHByb3ZpZGUgaW5mb3JtZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnQgYmVmb3JlIGNvbGxlY3Rpb24gb2YgeW91ciBwZXJzb25hbGx5IGlkZW50aWZpYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3Igc2Vuc2l0aXZlIHBlcnNvbmFsIGRhdGEgb3IgaW5mb3JtYXRpb24gb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2hhcmluZyBvZiB0aGUgc2FtZSB3aXRoIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5SaWdodCB0byByZXZva2Ugc3VjaCBjb25zZW50PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcHJpdmFjeSBhbmQgY29uZmlkZW50aWFsaXR5IHJlZ2FyZGluZyB5b3VyIHBlcnNvbmFsIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBwcm9wZXIgdXNlIG9mIHlvdXIgcGVyc29uYWwgZGF0YSBhbmQgaW5mb3JtYXRpb24gYnlcbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIGZvciBzcGVjaWZpZWQgYW5kIGxlZ2l0aW1hdGUgcHVycG9zZXMgcmVsYXRlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciB1c2Ugb2YgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJpZ2h0IHRvIGtlZXAgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiBhY2N1cmF0ZSBhbmQgdXAgdG8gZGF0ZVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSaWdodCB0byBzZWN1cmUgY29sbGVjdGlvbiwgaGFuZGxpbmcgYW5kIHN0b3JhZ2Ugb2YgeW91ciBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBhbmQgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmlnaHQgdG8gcHJvdGVjdGlvbiBmcm9tIHVuYXV0aG9yaXNlZCBvciB1bmxhd2Z1bCB1c2Ugb2YgeW91clxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uYWwgZGF0YSBhbmQgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlJpZ2h0IHRvIHZpZXcgYW5kIGFjY2VzcyBESUtTSEHigJlzIHByaXZhY3kgcG9saWN5PC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlJlc3BvbnNpYmlsaXRpZXMgb2YgQWRtaW5pc3RyYXRvcnMgd2l0aCByZXNwZWN0IHRvIFVzZXIgZGF0YSBhbmRcbiAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb248L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+VG8gcmVzcGVjdCB0aGUgcHJpdmFjeSBhbmQgZGF0YSBwcm90ZWN0aW9uIHJpZ2h0cyBvZiBVc2VyczwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IGFueSBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24pIHNoYXJlZCBieSBSZWdpc3RlcmVkIFVzZXJzIGlzIGxpbWl0ZWQgc29sZWx5IHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBhbmQgcHVycG9zZXMgbWVudGlvbmVkIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8ga25vdyB0aGF0IGFueSB1c2Ugb2YgZGF0YSBmb3IgcHVycG9zZXMgb3V0c2lkZSBvZiB0aGUgcHJvcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Ugc2hhbGwgYmUgY29uc2lkZXJlZCB2aW9sYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoZSBwb2xpY2llcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgcmVzcG9uc2libGUgYW5kIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIG9ibGlnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoZWlyIGNvbW11bmljYXRpb24gKGlmIGFueSkgd2l0aCBSZWdpc3RlcmVkIFVzZXJzIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlIG9mIHRoZWlyIHVzYWdlIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldCBvdXQgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIENvbnRlbnQgYW5kIHByb2dyYW1zIG9uIERJS1NIQSBhcmUgbm90IHVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhbnkgb2YgdGhlIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPldoYXQgVXNlciBkYXRhIGFuZCBpbmZvcm1hdGlvbiBpcyBjb2xsZWN0ZWQgb24gRElLU0hBPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFsbCA8c3Ryb25nPlVzZXJzPC9zdHJvbmc+IGNhbiBleHBlY3QgdGhlIGZvbGxvd2luZyBkYXRhIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb2YgdGhlaXJzIHRvIGJlIGNvbGxlY3RlZCBvbiBESUtTSEE6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QmFzaWMgSW5mb3JtYXRpb248L3N0cm9uZz46IFVzZXIgVHlwZSAoZWcuIHRlYWNoZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWRlbnQsIG90aGVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkdlb2dyYXBoaWNhbCBJbmZvcm1hdGlvbjwvc3Ryb25nPjogU3RhdGUgYW5kIERpc3RyaWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UHJlZmVyZW5jZXM6IDwvc3Ryb25nPkJvYXJkIG9mIGludGVyZXN0LCBNZWRpdW0gb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb24sIENsYXNzZXMgb2YgaW50ZXJlc3QsIFN1YmplY3RzIG9mIGludGVyZXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RElLU0hBIFVzYWdlOiA8L3N0cm9uZz5Vc2FnZSBoaXN0b3J5LCB0aW1lIHNwZW50IG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQsIENvbnRlbnQgY3JlYXRlZC8gY29udHJpYnV0ZWQgLyBwdWJsaXNoZWQgYW5kIGl0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSwgcHJvZ3Jlc3MgaW4gdHJhY2thYmxlIGNvbGxlY3Rpb25zIG9mIENvbnRlbnQgKGVnLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Vyc2VzKSwgc2NvcmVzICZhbXA7IGFzc2Vzc21lbnQgcmVzdWx0cywgcXVlc3Rpb24td2lzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXJzIGFuZCBvdGhlciB0ZWxlbWV0cnkgZGF0YSBpbiByZWxhdGlvbiB0byB1c2FnZSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEsIGJhZGdlcyBnZW5lcmF0ZWQsIGNlcnRpZmljYXRlcyBpc3N1ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+SVAgQWRkcmVzczwvc3Ryb25nPjogVGhlIElQIGFkZHJlc3Mgb2YgYSBVc2VyIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZCBvbmNlIGZvciB0aGUgbGltaXRlZCBwdXJwb3NlIG9mIGRldGVybWluaW5nIHlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm94aW1hdGUgbG9jYXRpb24gLSB0aGUgU3RhdGUsIENpdHkgYW5kIERpc3RyaWN0IG9mIG9yaWdpbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIElQIGFkZHJlc3MgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2Ugb2YgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBhbmQgdGhlIHByZWNpc2UgbG9jYXRpb24gb2YgYW55IFVzZXIgY2Fubm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVybWluZWQuIFRoZSBVc2VyIGNhbiBjb25maXJtIG9yIG1vZGlmeSB0aGUgU3RhdGUgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RyaWN0IGRldGFpbHMgZGV0ZXJtaW5lZCBvbiB0aGUgYmFzaXMgb2YgdGhlIElQIGFkZHJlc3MuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSB1c2VzIGhhc2ggZGlnZXN0IGZ1bmN0aW9ucyBhbmQgZmluZ2VycHJpbnRpbmcgdG8gY3JlYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZSBpZGVudGlmaWVycyBmb3IgZGlmZmVyZW50IGRldmljZXMuIERJS1NIQSBhbHNvIHVzZXMgRkNNXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VucyB0byBlbmFibGUgcHVzaCBub3RpZmljYXRpb25zIHRvIHlvdXIgZGV2aWNlcywgc2hvdWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBjaG9vc2UgdG8gb3B0IGZvciB0aGUgc2FtZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFsc28gZ2VuZXJhdGVzIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGVhY2ggZGV2aWNlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYWNjZXNzIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gY2FzZSBvZiA8c3Ryb25nPlJlZ2lzdGVyZWQgVXNlcnM8L3N0cm9uZz4sIHRoZXkgY2FuIGV4cGVjdCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZWlycyB0byBiZSBjb2xsZWN0ZWQgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQTpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5OYW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RW1haWwgQWRkcmVzcyAvIE1vYmlsZSBudW1iZXIsIGFuZDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRJS1NIQSBQYXNzd29yZDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJlZ2lzdGVyZWQgVXNlcnMgPC9zdHJvbmc+aGF2ZSBhbiBvcHRpb24gdG8gcHJvdmlkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBvZiB0aGVpcnMgKFwiPHN0cm9uZz5EZWNsYXJlZCBJbmZvcm1hdGlvbjwvc3Ryb25nPlwiKSwgbmFtZWx5OlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJvdGggRW1haWwgQWRkcmVzcyBhbmQgTW9iaWxlIE51bWJlciw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5CbG9jayw8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5TY2hvb2wgb3IgT3JnYW5pc2F0aW9uIG5hbWUsPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2Nob29sIFUtRElTRSBjb2RlIG9yIE9yZ2FuaXNhdGlvbiBjb2RlIC8gbnVtYmVyLDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPklEIGFzIHByb3ZpZGVkIGJ5IHlvdXIgc3RhdGUvYm9hcmQvb3JnYW5pc2F0aW9uLjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBObyBvdGhlciBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBvciBzZW5zaXRpdmUgcGVyc29uYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgb3IgaW5mb3JtYXRpb24gb2YgdGhlIFVzZXIgaXMgY29sbGVjdGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBBbGwgPHN0cm9uZz5Vc2VycyA8L3N0cm9uZz4odXNpbmcgdGhlIERJS1NIQSBtb2JpbGUgYXBwIHRvIGFjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBKSBoYXZlIGEgcHJvZmlsZSB3aGljaCBzcGVjaWZpZXMgdGhlIFVzZXIgdHlwZSwgR2VvZ3JhcGhpY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICBJbmZvcm1hdGlvbiBhbmQgUHJlZmVyZW5jZXMuIFRoZXkgbWF5IGNob29zZSB0byBjdXN0b21pc2UgdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUgYnkgY2hhbmdpbmcgdGhlc2UgZGV0YWlscyBhdCBhbnkgdGltZSBhcyB3ZWxsIGFzIHByb3ZpZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgbmFtZS4gSWYgVXNlcnMgYXJlIHVzaW5nIERJS1NIQSBhcyBhIGd1ZXN0IFVzZXIsIGkuZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgcmVnaXN0ZXJpbmcgb24gRElLU0hBLCB5b3VyIFVzZXIgdHlwZSBhbmQgUHJlZmVyZW5jZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZWQgbG9jYWxseSBvbiB5b3VyIGRldmljZS4gT25seSBSZWdpc3RlcmVkIFVzZXJzIGNhbiB2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVpciBwcm9maWxlIG9uIGJvdGggdGhlIERJS1NIQSBtb2JpbGUgYXBwIGFzIHdlbGwgYXMgdGhlIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgd2ViIHBvcnRhbCwgYW5kIHRoZWlyIHByb2ZpbGVzIHNwZWNpZnkgYWxsIHRoZSBhZGRpdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBzdWNoIGEgUmVnaXN0ZXJlZCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkNoaWxkcmVuIGFzIFJlZ2lzdGVyZWQgVXNlcnM8L3N0cm9uZz46IERJS1NIQSBjb2xsZWN0cyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIOKAmHllYXIgb2YgYmlydGjigJkgb2YgYSBVc2VyIGluIG9yZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGEgVXNlciBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVsb3cgMTggeWVhcnMuIEluIHRoZSBldmVudCBhIHBlcnNvbiB1bmRlciAxOCB5ZWFycyBvZiBhZ2UgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyaW5nIG9uIERJS1NIQSwgRElLU0hBIHByb21wdHMgdGhlIFVzZXIgdG8gcHJvdmlkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsIGFkZHJlc3Mgb3IgbW9iaWxlIG51bWJlciBvZiBhIHBhcmVudCAvIGd1YXJkaWFuIGZvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mIHJlZ2lzdHJhdGlvbi4gQ2hpbGRyZW4gdW5kZXIgMTggeWVhcnMgb2YgYWdlIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgbmVpdGhlciByZXF1aXJlZCB0byBub3IgZW5jb3VyYWdlZCB0byBwcm92aWRlIHRoZWlyIHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91IHJlcHJlc2VudCB0byB1cyB0aGF0IHRoZSBkYXRhIGFuZCBpbmZvcm1hdGlvbiB5b3UgcHJvdmlkZSBvblxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGZyb20gdGltZSB0byB0aW1lIGlzIGFuZCBzaGFsbCBiZSBjb3JyZWN0LCBjdXJyZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZCBhbmQgeW91IGhhdmUgYWxsIHRoZSByaWdodHMsIHBlcm1pc3Npb25zIGFuZCBjb25zZW50cyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSBzdWNoIGRhdGEgYW5kIGluZm9ybWF0aW9uLiBZb3VyIHByb3ZpZGluZyB0aGUgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhdGEgYW5kIHRoZSBjb25zZXF1ZW50IHN0b3JhZ2UsIGNvbGxlY3Rpb24sIHVzYWdlLCB0cmFuc2ZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyBvciBwcm9jZXNzaW5nIG9mIHRoZSBzYW1lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgbm90IGJlIGluIHZpb2xhdGlvbiBvZiBhbnkgdGhpcmQgcGFydHkgYWdyZWVtZW50LCBsYXdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnRlciBkb2N1bWVudHMsIGp1ZGdtZW50cywgb3JkZXJzIGFuZCBkZWNyZWVzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPiBIb3cgaXMgVXNlciBkYXRhIGFuZCBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQ/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgSW5mb3JtYXRpb24sIEdlb2dyYXBoaWNhbCBJbmZvcm1hdGlvbiBhbmQgUHJlZmVyZW5jZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0ZWQgd2hlbiBhIFVzZXIgYWNjZXNzZXMgYW5kIHVzZXMgRElLU0hBIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZXNlIGRldGFpbHMgY2FuIGJlIHVwZGF0ZWQgYnkgdGhlIFVzZXIgZnJvbSB0aGVpciBwcm9maWxlLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2FnZSBkYXRhIG9mIFVzZXJzIGlzIGNvbGxlY3RlZCBhcyBhbmQgd2hlbiBhIFVzZXIgYWNjZXNzZXMsIHVzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBuYXZpZ2F0ZXMgRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBSZWdpc3RlcmVkIFVzZXJzLCBuYW1lbHksXG4gICAgICAgICAgICAgICAgICAgICAgICAoaSkgTmFtZSAoaWkpIEVtYWlsIEFkZHJlc3MgLyBNb2JpbGUgTnVtYmVyIChpaWkpIFBhc3N3b3JkLCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGVkIHdoZW4gYSBVc2VyIGNyZWF0ZXMgYSByZWdpc3RlcmVkIGFjY291bnQgb24gRElLU0hBIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVjb21lcyBhIFJlZ2lzdGVyZWQgVXNlciBvciB3aGVuIGEgUmVnaXN0ZXJlZCBVc2VyIHVwZGF0ZXMgdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlY2xhcmVkIEluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnMgaXMgY29sbGVjdGVkIHdpdGggdGhlaXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxpY2l0IGNvbnNlbnQgd2hlbiB0aGV5IGNob29zZSB0byBwcm92aWRlIHRoZSBzYW1lIG9uIERJS1NIQSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggdGhlaXIgcHJvZmlsZSBvciBvdGhlcndpc2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaG8gaGFzIGFjY2VzcyB0byBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBVc2FnZSBkYXRhIChpbmNsdWRpbmcgVXNhZ2UgYWNyb3NzIHRoZSBTdGF0ZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBEaXN0cmljdHMpIGlzIGEgcGFydCBvZiBhbm9ueW1pc2VkIGFuZCBhZ2dyZWdhdGVkIGRhdGEgc2V0cyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBpcyBhY2Nlc3NpYmxlIHRvIHJlbGV2YW50IEFkbWluaXN0cmF0b3JzIG9mIERJS1NIQSBhbmQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBlbXBsb3llZXMsIGNvbnRyYWN0b3JzIG9yIHN1YmNvbnRyYWN0b3JzIG9mIHRoZSB0ZWNobm9sb2d5IHNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhcmUgYSBVc2VyLCB5b3VyIEJhc2ljIEluZm9ybWF0aW9uLCBHZW9ncmFwaGljYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIEluZm9ybWF0aW9uLCBQcmVmZXJlbmNlcywgYW5kIFVzYWdlIGRhdGEgaXMgYWNjZXNzaWJsZSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcGxveWVlcywgY29udHJhY3RvcnMgb3Igc3ViY29udHJhY3RvcnMgb2YgdGhlIHRlY2hub2xvZ3kgc2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzIG9mIERJS1NIQSAodW5kZXIgc3RyaWN0IGNvbmZpZGVudGlhbGl0eSBvYmxpZ2F0aW9ucykgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZXkgbmVlZCB0byBhY2Nlc3MgdGhlIGRhdGEgdG8gcHJvY2VzcyBpdCBvbiBiZWhhbGYgb2YgRElLU0hBIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhbiBBZG1pbmlzdHJhdG9yIG9yIHRvIHByb3ZpZGUgdGhlIHNlcnZpY2VzIGF2YWlsYWJsZSBvbiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgICAgICBGb3IgUmVnaXN0ZXJlZCBVc2VycywgeW91ciBOYW1lIGlzIGFsc28gYWNjZXNzaWJsZSBpbiB0aGlzIG1hbm5lci5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhbHNvIGhhdmUgYW4gb3B0aW9uIHRvIGV4cGxpY2l0bHkgY29uc2VudCB0byBnaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxldmFudCBBZG1pbmlzdHJhdG9ycyBhY2Nlc3MgdG8gdGhlaXIgTmFtZSwgQmFzaWMgSW5mb3JtYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBQcmVmZXJlbmNlcywgVXNhZ2UgZGF0YSwgYW5kIERlY2xhcmVkIEluZm9ybWF0aW9uIGZvciBzcGVjaWZpZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIHN1Y2ggYXMgaW1wbGVtZW50YXRpb24gb2YgcHJvZ3JhbXMgb24gRElLU0hBIGxpa2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXJzZXMuIE5vdGUgdGhhdCBJbnN0aXR1dGlvbmFsIFVzZXJzIGFyZSByZXF1aXJlZCB0byBlbnN1cmUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgcmVzcGVjdGl2ZSBBZG1pbmlzdHJhdG9ycyBjb21wbHkgd2l0aCBhbmQgQWRtaW5pc3RyYXRvcnMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJsZSB0byBjb21wbHkgd2l0aCB0aGUgcmVsZXZhbnQgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhcyBhcHBsaWNhYmxlIGZyb20gdGltZSB0byB0aW1lLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFVzYWdlIGRhdGEgd2hpY2ggaXMgYW5vbnltaXNlZCBhbmQgYWdncmVnYXRlZCBieSBTdGF0ZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIERpc3RyaWN0IGlzIGFsc28gYXZhaWxhYmxlIHB1YmxpY2x5IG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gb3JkZXIgdG8gcHJvdmlkZSBhbmQgaW1wcm92ZSBESUtTSEEsIGEgbGltaXRlZCBudW1iZXIgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXJkLXBhcnR5IHNlcnZpY2VzIHJlcXVpcmUgYWNjZXNzIHRvIHNvbWUgb2YgeW91ciBwZXJzb25hbCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgaW5mb3JtYXRpb24sIGVnLiBGcmVzaERlc2ssIEdvb2dsZSBQbGF5U3RvcmUuIFRoaXJkIHBhcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyBhcmUgY29udHJhY3R1YWxseSBwcm9oaWJpdGVkIGZyb20gdXNpbmcgeW91ciBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHRvIHByb3ZpZGUgdGhlIHNlcnZpY2UuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gaXMgb25seSBhY2Nlc3NpYmxlIG91dHNpZGUgb2YgdGhlIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gd2hlbiBpdCBpcyBuZWNlc3NhcnkgdG8gb2ZmZXIgdGhlIHNlcnZpY2UsIGNvbXBseSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXcsIG9yIHdpdGggeW91ciBwZXJtaXNzaW9uLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBpcyBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIHVzZWQgZm9yPyA8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgcHJvY2Vzc2VzIHlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gd2hlbiBuZWNlc3NhcnkgZm9yXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRpbmcgYWNjZXNzIHRvIENvbnRlbnQgZm9yIGVkdWNhdGlvbmFsIHB1cnBvc2VzIGFuZCBydW5uaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtcyBvbiBESUtTSEEuIFRoZXNlIHB1cnBvc2VzIGFyZSBsZWdpdGltYXRlLiBUaGUgdXNlcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhIGFyZSBzZXQgb3V0IGJlbG93OlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gY3JlYXRlIGEgcHJvZmlsZSBmb3IgeW91IHRvIGhhdmUgYSBjdXN0b21pc2VkIGV4cGVyaWVuY2Ugb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBzdWdnZXN0IHJlbGV2YW50IENvbnRlbnQgZm9yIHlvdSB0byBjb252ZW5pZW50bHkgZGlzY292ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBiYXNlZCBvbiB5b3VyIHByZWZlcmVuY2VzLCBhY3Rpdml0aWVzIG9uIERJS1NIQSwgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgeW91IGFyZSB2aWV3aW5nIG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5UbyBlbmFibGUgeW91IHRvIGFjY2VzcyBhbmQgdXNlIENvbnRlbnQgb24gRElLU0hBOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbmFibGUgeW91IHRvIHBhcnRpY2lwYXRlIGluIHByb2dyYW1zIHJ1biBieSBJbnN0aXR1dGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIG9uIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcHJvdmlkZSB5b3UgcHVzaCBub3RpZmljYXRpb25zIG9uIHlvdXIgaGFuZC1oZWxkIGRldmljZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkgaWYgeW91IGhhdmUgcHJvdmlkZWQgcGVybWlzc2lvbiBmb3IgdGhlIHNhbWUgZHVyaW5nIGFwcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsYXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHRyYWNrIHlvdXIgcHJvZ3Jlc3MgaW4gY29sbGVjdGlvbnMgb2YgQ29udGVudCBmb3Igd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgaXMgdHJhY2tlZCAvIHJlY29yZGVkIHN1Y2ggYXMgY291cnNlcywgVFZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbnMsIHRleHRib29rcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZ2VuZXJhdGUgYmFkZ2VzIGZvciBvciBpc3N1ZSBjZXJ0aWZpY2F0ZXMgdG8geW91IHVwb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiBvZiBtaWxlc3RvbmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBtYWludGFpbiByZWNvcmRzIG9mIHlvdXIgcHJvZ3Jlc3MgYW5kIGNlcnRpZmljYXRlcy9iYWRnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gcmVsYXRpb24gdG8gY29sbGVjdGlvbnMgb2YgQ29udGVudCB5b3UgaGF2ZSBhY2Nlc3NlZCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gbWVhc3VyZSBpbnRlcmVzdCBpbiB0aGUgb2ZmZXJpbmdzIG9uIERJS1NIQSBhbmQgdG8gaW1wcm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyB0cmFjayBhbmQgYW5hbHlzZSB1c2FnZSBvZiBDb250ZW50IG9uIERJS1NIQSBieVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBhbmQgQ29udGVudCBwcm92aWRlcnMgdG8gaW1wcm92ZSBESUtTSEEgYW5kIGl0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZlcmluZ3Mgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBhc3Nlc3MsIGV2YWx1YXRlLCB2YWxpZGF0ZSBDb250ZW50IHN1Ym1pdHRlZCAvIHBvc3RlZCAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlcG9ydCBhbm9ueW1pc2VkIHVzYWdlIG9mIERJS1NIQSBhbmQgaXRzIENvbnRlbnQgYnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgdG8gaW1wcm92ZSBESUtTSEEgb3ZlciB0aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBjb250YWN0IHlvdSBhbmQgZGVsaXZlciBpbmZvcm1hdGlvbiwgYWRtaW5pc3RyYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWNlcywgc2VlayBmZWVkYmFjayBvciBvdGhlciBjb21tdW5pY2F0aW9ucyBpbiBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggeW91ciB1c2FnZSBvZiBESUtTSEEuIEJ5IGFjY2VwdGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgdGhlIFByaXZhY3kgUG9saWN5LCB5b3UgZXhwcmVzc2x5IGFncmVlIHRvIHJlY2VpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBpbmZvcm1hdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gc3VnZ2VzdCBkZXRhaWxzIGZvciB5b3VyIHByb2ZpbGUgc3VjaCBhcyB5b3VyIGRlY2xhcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlIGFuZCBEaXN0cmljdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcmVzb2x2ZSBkaXNwdXRlcywgdHJvdWJsZXNob290IHByb2JsZW1zLCBkZXRlY3QgYW5kIHByb3RlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IGFnYWluc3QgZnJhdWQgYW5kIG90aGVyIGNyaW1pbmFsIGFjdGl2aXR5LCBlbmZvcmNlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtcyBvZiBVc2UgYW5kIGFueSBvdGhlciBhZ3JlZW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdCB0aW1lcyBtdWx0aXBsZSB1c2VycyBtYXkgYmUgbG9va2VkIGF0IHRvIGlkZW50aWZ5IHByb2JsZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHJlc29sdmUgZGlzcHV0ZXMsIGFuZCBpbiBwYXJ0aWN1bGFyIG1heSBleGFtaW5lIHlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3IgZGF0YSB0byBpZGVudGlmeSB1c2VycyB1c2luZyBtdWx0aXBsZSBVc2VyIElEc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBhbGlhc2VzLiBZb3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgbWF5IGJlIGNvbXBhcmVkIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmlld2VkIGZvciBlcnJvcnMsIG9taXNzaW9ucyBhbmQgZm9yIGFjY3VyYWN5OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGFueSBvdGhlciB1c2UgdGhhdCBtYXkgYmUgZGVzY3JpYmVkIHRvIHlvdSBhdCB0aGUgdGltZSBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIG1heVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlIHRoaXJkIHBhcnRpZXMgYXMgc2VydmljZSBwcm92aWRlcnMgdG8gZmFjaWxpdGF0ZSBvciBvdXRzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uZSBvciBtb3JlIGFzcGVjdHMgb2Ygc2VydmljZSBvcGVyYXRpb25zIHRoYXQgYXJlIHByb3ZpZGVkIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgKGUuZy4sIHNlYXJjaCB0ZWNobm9sb2d5LCBkaXNjdXNzaW9uIGJvYXJkcywgdGVjaG5pY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlIHByb3ZpZGVycywgYWZmaWxpYXRlKSBhbmQgdGhlcmVmb3JlIHNvbWUgb2YgeW91clxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gb3IgZGF0YSBtYXkgYmUgcHJvdmlkZWQgZGlyZWN0bHkgdG8gdGhlc2Ugc2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzLiBUaGVzZSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgc3ViamVjdCB0byBjb25maWRlbnRpYWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBvdGhlciBsZWdhbCByZXN0cmljdGlvbnMgdGhhdCBwcm9oaWJpdCB0aGVpciB1c2Ugb2YgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBwcm92aWRlZCB0byB0aGVtIGZvciBhbnkgcHVycG9zZSBvdGhlciB0aGFuIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWNpbGl0YXRlIHNwZWNpZmljIHdlYnNpdGUgcmVsYXRlZCBvcGVyYXRpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB3ZSB3aXNoIHRvIHVzZSB5b3VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIGZvciBhIG5ldyBwdXJwb3NlLCBub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdmVyZWQgYnkgdGhpcyBQcml2YWN5IFBvbGljeSwgdGhlbiB3ZSB3aWxsIHByb3ZpZGUgeW91IHdpdGggYVxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IG5vdGljZSBleHBsYWluaW5nIHRoaXMgbmV3IHVzZSBwcmlvciB0byBjb21tZW5jaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZyBhbmQgc2V0dGluZyBvdXQgdGhlIHJlbGV2YW50IHB1cnBvc2VzIGFuZCBwcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zLiBXaGVyZSBhbmQgd2hlbmV2ZXIgbmVjZXNzYXJ5LCB3ZSB3aWxsIHNlZWsgeW91ciBwcmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VudCB0byB0aGUgbmV3IHByb2Nlc3NpbmcsIHVubGVzcyBhdXRob3JpemVkIGJ5IGxhdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW4gYW55IGV2ZW50LCB5b3VyIGRhdGEgd2lsbCBub3QgYmUgdXNlZCBmb3IgYW55IG9mIHRoZSBmb2xsb3dpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZW50IG9yIHNhbGUgb3Igb3RoZXIgY29tbWVyY2lhbCBwdXJwb3Nlczs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BZHZlcnRpc2luZyBvciBtYXJrZXRpbmc7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lIGNhbGxzIG9yIG90aGVyIGZvcm1zIG9mIHVuc29saWNpdGVkIGNvbW11bmljYXRpb24gdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBub3QgcmVsYXRlZCB0byB5b3VyIHVzYWdlIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGRpbmcgYSBwZXJzb25hbCBwcm9maWxlLCBvdGhlciB0aGFuIGZvciBlZHVjYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcyBvbiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueSBvZiB0aGUgUHJvaGliaXRlZCBQdXJwb3NlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55IHB1cnBvc2UgdGhhdCBpcyBub3QgZGlzY2xvc2VkIGluIHRoaXMgcG9saWN5IG9yIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBhbnkgdXNlIG9mIGRhdGEgYW5kIGluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRzaWRlIHRoZSBwcm9wZXIgdXNlIGFuZCBzaGFsbCBiZSBoZWxkIGFjY291bnRhYmxlIGZvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xhdGlvbiBvZiB0aGUgdGVybXMgYW5kIHBvbGljaWVzIG9mIERJS1NIQSwgYXMgd2VsbCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBmb3IgYW55IG1pc3VzZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIHNoYWxsIGJlIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGUgb2JsaWdhdGlvbiBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVyIHVzZSBvZiB5b3VyIGRhdGEgYW5kIGluZm9ybWF0aW9uLiBTaG91bGQgeW91IGJlbGlldmUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhIG9yIGluZm9ybWF0aW9uIGlzIGJlaW5nIHVzZWQgaW4gYSBtYW5uZXIgaW5jb25zaXN0ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHRoaXMgUHJpdmFjeSBQb2xpY3ksIHBsZWFzZSBjb250YWN0IHRoZSBESUtTSEEgc3VwcG9ydCB0ZWFtXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHRoZSBkZXRhaWxzIG9mIHlvdXIgY29uY2VybiBieSBzZW5kaW5nIGFuIGVtYWlsIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGVhbWRpa3NoYS5vcmdcIj48Yj5zdXBwb3J0QHRlYW1kaWtzaGEub3JnPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFzIGEgVXNlciwgeW91IHVuZGVyc3RhbmQsIGFncmVlIGFuZCBhY2tub3dsZWRnZSB0aGF0IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbiwgc3RvcmFnZSBhbmQgcHJvY2Vzc2luZyBvZiB5b3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpcyBmb3IgYSBsYXdmdWwgcHVycG9zZSBjb25uZWN0ZWQgd2l0aCBhIGZ1bmN0aW9uIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eSBvZiBESUtTSEEuIFlvdSBmdXJ0aGVyIHVuZGVyc3RhbmQsIGFncmVlIGFuZCBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB5b3VyIGluZm9ybWF0aW9uIG9yIGRhdGEgd2hpY2ggaXMgY2xhc3NpZmllZCBhcyBwZXJzb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYXMgcGVyIGFwcGxpY2FibGUgbGF3cyBpcyBjb25zaWRlcmVkIG5lY2Vzc2FyeSBmb3IgdXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByb3ZpZGUgdmFyaW91cyBzZXJ2aWNlcyBvbiBhbmQgaW4gcmVsYXRpb24gdG8gRElLU0hBIHRvIHlvdVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZvciB5b3VyIHVzYWdlIG9mIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkhvdyBpcyBVc2VyIGRhdGEgYW5kIGluZm9ybWF0aW9uIHN0b3JlZD88L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFzb25hYmxlIGFuZCBhcHByb3ByaWF0ZSBzZWN1cml0eSBwcmFjdGljZXMgYW5kIHByb2NlZHVyZXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBhZG9wdGVkIHRvIHNlY3VyZSB5b3VyIHBlcnNvbmFsIGRhdGEgYW5kIGluZm9ybWF0aW9uIGluXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NvcmRhbmNlIHdpdGggSW5kaWFuIGxhd3MgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChSZWFzb25hYmxlIFNlY3VyaXR5IFByYWN0aWNlcyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb2NlZHVyZXMgYW5kIFNlbnNpdGl2ZSBQZXJzb25hbCBEYXRhIG9yIEluZm9ybWF0aW9uKSBSdWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIDIwMTEuIFRoZXNlIG1lYXN1cmVzIGluY2x1ZGUgYWRtaW5pc3RyYXRpdmUsIHBoeXNpY2FsIHNlY3VyaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRlY2huaWNhbCBjb250cm9scyBpbiBvcmRlciB0byBzYWZlZ3VhcmQgeW91ciBwZXJzb25hbCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgaW5mb3JtYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSwgaW5jbHVkaW5nIHlvdXIgRGVjbGFyZWQgSW5mb3JtYXRpb24sIGFueSBwZXJzb25hbGx5XG4gICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gb3Igc2Vuc2l0aXZlIHBlcnNvbmFsIGRhdGEgb3IgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzIHNlY3VyZWx5IHN0b3JlZCB1c2luZyBNaWNyb3NvZnQgQXp1cmUgY2xvdWQgc2VydmljZXMgd2hpY2ggaGF2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgaXTigJlzIHNlcnZlcnMgaW4gSW5kaWEuIFlvdXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gd2lsbCBwcmltYXJpbHkgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlZCBpbiBlbGVjdHJvbmljIGZvcm0gaG93ZXZlciBjZXJ0YWluIGRhdGEgbWF5IGFsc28gYmUgc3RvcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpbiBwaHlzaWNhbCBmb3JtLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGlyZCBwYXJ0eSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgZW5nYWdlZCB0byBzdG9yZSBhbmQgcHJvY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBkYXRhLiBUaGVzZSBzZXJ2aWNlIHByb3ZpZGVycyBhcmUgY29udHJhY3R1YWxseSBib3VuZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93IHJlYXNvbmFibGUgc2VjdXJpdHkgc3RhbmRhcmRzIHRvIHNhZmVndWFyZCB5b3VyIGRhdGEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZW1haWwgYWRkcmVzcyBhbmQgbW9iaWxlIG51bWJlciBhbmQgYW55IG90aGVyIHBlcnNvbmFsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBpcyBvbmx5IGNvbGxlY3RlZCBzaG91bGQgeW91IGNob29zZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZSB0aGUgc2FtZSBhbmQgaXQgaXMgZW5jcnlwdGVkIGFuZCBzdG9yZWQgc2VjdXJlbHkuXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBpcyBvbmx5IHNoYXJlZCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBmb3IgcHVycG9zZXMgc3BlY2lmaWVkIHRvIHlvdSwgd2l0aCB5b3VyIGV4cGxpY2l0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZW50IGFuZCB1bmRlciB0aGUgb2JsaWdhdGlvbiB0aGF0IHRoZSBBZG1pbmlzdHJhdG9ycyB3aWxsIHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCBpbmZvcm1hdGlvbiBvbmx5IGluIGNvbm5lY3Rpb24gd2l0aCB5b3VyIHVzYWdlIG9mIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBJUCBhZGRyZXNzIGlzIG9ubHkgY29sbGVjdGVkIG9uY2UgZm9yIHRoZSBsaW1pdGVkIHB1cnBvc2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzY2VydGFpbmluZyBhbmQgc3VnZ2VzdGluZyB5b3VyIFN0YXRlIGFuZCBEaXN0cmljdC4gWW91ciBJUFxuICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyBpcyBub3Qgc3RvcmVkIG9uIERJS1NIQSBhdCBhbnkgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRkaXRpb25hbGx5LCBhIHZhcmlldHkgb2YgbWV0aG9kcyBzdWNoIGFzIG5ldHdvcmsgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZyYXN0cnVjdHVyZSBzZWN1cml0eSwgZW5jcnlwdGlvbiBhbmQgbWFudWFsIHNlY3VyaXR5IHByb2NlZHVyZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB1c2VkIHRvIHNlY3VyZSB5b3VyIGluZm9ybWF0aW9uIGFuZCBkYXRhIGFnYWluc3QgbG9zcyBvclxuICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlIGFuZCB0byBoZWxwIHByb3RlY3QgdGhlIGFjY3VyYWN5IGFuZCBzZWN1cml0eSBvZiB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25hbCBpbmZvcm1hdGlvbiAvIGdlbmVyYWwgaW5mb3JtYXRpb24gLyB1c2FnZSBkYXRhIGFuZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmVudCB1bmF1dGhvcml6ZWQgYWNjZXNzIG9yIGltcHJvcGVyIHVzZS4gSWYgeW91IHRoaW5rIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBvciBhbnkgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiAvIGdlbmVyYWwgaW5mb3JtYXRpb24gL1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2UgZGF0YSBpcyBub3Qgc2VjdXJlIG9yIHRoYXQgdGhlcmUgaGFzIGJlZW4gdW5hdXRob3JpemVkXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gdGhlIHdlYnNpdGUgb3IgeW91ciBwZXJzb25hbCBkYXRhLCBwbGVhc2UgY29udGFjdFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHRlYW1kaWtzaGEub3JnXCI+PGI+c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZzwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWx0aG91Z2ggRElLU0hBIHN0cml2ZXMgdG8gcHJvdGVjdCB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgaXQgY2Fubm90IGd1YXJhbnRlZSB0aGUgc2VjdXJpdHkgb2YgeW91ciBkYXRhIHdoaWxlIGl0IGlzXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWluZyB0cmFuc21pdHRlZCB0byBpdHMgc2l0ZTsgYW55IHRyYW5zbWlzc2lvbiBpcyBhdCB5b3VyIG93blxuICAgICAgICAgICAgICAgICAgICAgICAgcmlzay4gT25jZSB5b3VyIGluZm9ybWF0aW9uIGhhcyBiZWVuIHJlY2VpdmVkLCByZWFzb25hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZWR1cmVzIGFuZCBzZWN1cml0eSBmZWF0dXJlcyBhcmUgaW4gcGxhY2UgdG8gcmVhc29uYWJseVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kZWF2b3IgdG8gcHJldmVudCB1bmF1dGhvcml6ZWQgYWNjZXNzIGluIGFjY29yZGFuY2Ugd2l0aCBJbmRpYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkhvdyBsb25nIGlzIFVzZXIgZGF0YSBhbmQgaW5mb3JtYXRpb24gc3RvcmVkPzwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgZGF0YSB3aWxsIG5vdCBiZSByZXRhaW5lZCBmb3IgYSBwZXJpb2QgbW9yZSB0aGFuIG5lY2Vzc2FyeSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVsZmlsbCB0aGUgcHVycG9zZXMgb3V0bGluZWQgaW4gdGhpcyBQcml2YWN5IFBvbGljeSwgdW5sZXNzIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdlciByZXRlbnRpb24gcGVyaW9kIGlzIHJlcXVpcmVkIGJ5IGxhdyBvciBmb3IgZGlyZWN0bHkgcmVsYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVnaXRpbWF0ZSBwdXJwb3Nlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGFyZSB0aGUgc3lzdGVtIHBlcm1pc3Npb25zIHJlcXVpcmVkIGJ5IHRoZSBESUtTSEE/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgTWljcm9waG9uZSAtIFlvdXIgc3lzdGVtIE1pY3JvcGhvbmUgd2lsbCBiZSB1c2VkIGlmIHZvaWNlXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRpbmcgaXMgZXhwbGljaXRseSByZXF1ZXN0ZWQgYXMgcGFydCBvZiBhIENvbnRlbnQgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZXMgb2YgcHJhY3RpY2UuIFRoaXMgdm9pY2UgcmVjb3JkaW5nIGlzIG9ubHkgc3RvcmVkIGxvY2FsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uIHlvdXIgc3lzdGVtLiBZb3VyIHN5c3RlbSBNaWNyb3Bob25lIHdpbGwgYmUgdXNlZCBpZiBhXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIgY3JlYXRpbmcgQ29udGVudCB3YW50cyB0byBhZGQgYSB2b2ljZSByZWNvcmRpbmcgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQuIFRoaXMgdm9pY2UgcmVjb3JkaW5nIHdpbGwgYmVjb21lIHBhcnQgb2YgdGhlIENvbnRlbnQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENhbWVyYSAtIFlvdXIgc3lzdGVtIENhbWVyYSB3aWxsIG9ubHkgYmUgdXNlZCBpZiB5b3Ugd2FudCB0byBzY2FuXG4gICAgICAgICAgICAgICAgICAgICAgICBRUiBjb2RlcyB0byBhY2Nlc3MgQ29udGVudCBvbiBESUtTSEEuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyB0byBmaWxlIG1hbmFnZXIgLSBUaGlzIGlzIHVzZWQgYnkgdGhlIERJS1NIQSBhbmRyb2lkXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiB0byB0cmFuc2ZlciBDb250ZW50IHRvIGFuIGV4dGVybmFsIHN0b3JhZ2Ugc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIG9uIHRoZSBESUtTSEEgZGVza3RvcCBhcHAsIHRoaXMgaXMgdXNlZCB0byB0cmFuc2ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCB0byBhbmQgZnJvbSBhbiBleHRlcm5hbCBzdG9yYWdlIGRldmljZSBsaWtlIGEgcGVuZHJpdmUgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFNEIGNhcmQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db29raWVzOiBIb3cgYXJlIHRoZXkgdXNlZD8gV2hhdCB0eXBlcyBvZiBjb29raWVzIGFyZSB1c2VkPyBIb3cgdG9cbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlIHlvdXIgY29va2llcz88L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBPdXQgb2YgYWxsIHRoZSBjb25zdW1wdGlvbiBjbGllbnRzLCBvbmx5IHRoZSBESUtTSEEgd2ViIHBvcnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcyBjb29raWVzLiBESUtTSEEgb25seSB1c2VzIHNlc3Npb24gY29va2llcywgbm9uZSBvZiB0aGUgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVzIG9mIGNvb2tpZXMuIERJS1NIQSBzZXNzaW9uIGNvb2tpZXMgYXJlIHVzZWQgdG8gc3RvcmUgVVJMcyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgdG8gYmV0dGVyIHJlZGlyZWN0IHVzZXJzIHRvIHRoZSByaWdodCBwYWdlcy4gRm9yIGV4YW1wbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVuIGEgVXNlciBzaWducy1pbiB0byBESUtTSEEgZnJvbSB0aGUgY291cnNlcyBwYWdlLCB0aGV5J2xsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkIHRvIGJlIHJlZGlyZWN0ZWQgYmFjayB0byB0aGUgY291cnNlcyBwYWdlIGF0IHRoZSBlbmQgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24taW4gZm9yIGEgY2xlYW5lciB1c2VyIGV4cGVyaWVuY2UuIFNlc3Npb24gY29va2llcyBhcmUgYWxzb1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCB0byBzdG9yZSB3aGV0aGVyIHRvIHVzZSB0aGUgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIChDRE4pIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWxsIGltYWdlcywgcGx1Z2lucyBhbmQgb3RoZXIgYXNzZXRzIHRoYXQgYXJlIHNob3duIG9uIHRoZSB1c2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UuIFRoaXMgaXMgdG8gZW5hYmxlIGZhc3RlciBsb2FkaW5nIG9mIHRoZSBwYWdlcyB0aGUgVXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RzIHdpdGguIE5vIHBlcnNvbmFsIGluZm9ybWF0aW9uLCBvciB1c2VyIHByZWZlcmVuY2VzIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVkIGluIGNvb2tpZXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJzIGNhbiBjbGVhciB0aGVpciBjb29raWVzIGJ5IGdvaW5nIHRvIHRoZWlyIGJyb3dzZXIgc2V0dGluZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBjbGVhcmluZyB0aGVpciBicm93c2luZyBkYXRhIChieSBzcGVjaWZpY2FsbHkgY2hlY2tpbmcgb2ZmIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIHRvIGNsZWFyIGNvb2tpZXMpLiBEb2luZyBzbywgZG9lcyBub3QgaW1wYWN0IHRoZWlyIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVyaWVuY2Ugb24gRElLU0hBIGFzIHVzYWdlIG9mIERJS1NIQSBzZXRzIHRoZSBjb29raWVzIGFnYWluLlxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgY2FuIGFsc28gY2hvb3NlIHRvIGJsb2NrIGNvb2tpZXMgZnJvbSB0aGUgc2V0dGluZ3MgYXMgd2VsbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvaW5nIHNvLCB3aWxsIG1lYW4gdGhhdCBjZXJ0YWluIHRoaW5ncyBvbiBESUtTSEEgd2lsbCBub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb3Blcmx5LiBGb3IgZWcuLCBpbWFnZXMvcGx1Z2lucyBtYXkgdGFrZSBhIGxvbmcgdGltZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCBhbmQgdGhlIHVzZXIgd2lsbCBub3QgYmUgdGFrZW4gdG8gdGhlIHJpZ2h0IHBhZ2VzIGFmdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dpbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkRhdGEgYW5kIGluZm9ybWF0aW9uIERJS1NIQSBpcyBub3QgcmVzcG9uc2libGUgZm9yPC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIG1heSBoYXZlIENvbnRlbnQsIHdlYnBhZ2VzLCBjb29raWVzLCBmaWxlcywgc29mdHdhcmUsIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIG90aGVyIGluZm9ybWF0aW9uIG9yIGNvbW11bmljYXRpb24gbGlua3MgdGhhdCBhcmUgb3JpZ2luYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgb3IgcG9zdGVkIGJ5IHRoaXJkIHBhcnRpZXMgdGhhdCBtYXkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdCwgc3RvcmUgb3IgdXNlIHlvdXIgZGF0YSBvciBpbmZvcm1hdGlvbi4gVGhlIGFkbWluaXN0cmF0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgYXJlIG5vdCByZXNwb25zaWJsZSBmb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2ggZGF0YSBvciBpbmZvcm1hdGlvbiBjb2xsZWN0ZWQsIHN0b3JlZCBvciB1c2VkIGJ5IHRoaXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWVzIGV2ZW4gaWYgc3VjaCB0aGlyZCBwYXJ0aWVzIHVzZSBESUtTSEEgdG8gY29sbGVjdCwgc3RvcmUgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBzdWNoIGRhdGEgb3IgaW5mb3JtYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBhY2Nlc3MgRElLU0hBIHRocm91Z2ggYSB0aGlyZCBwYXJ0eSBRUiBjb2RlIHNjYW5uZXIgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm91Z2ggYSB3ZWIgYnJvd3NlciwgdGhlIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVycyBvZiBESUtTSEEgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgdGhlIGRhdGEgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGNvbGxlY3RlZCBieSBzdWNoIHRoaXJkIHBhcnRpZXMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHRoZSBwcml2YWN5IHByYWN0aWNlcyBvZiBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vic2l0ZXMgYW5kIHVzZXJzIG5lZWQgdG8gYmUgYXdhcmUgb2YgdGhlIGRhdGEgcHJpdmFjeSBwcmFjdGljZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHN1Y2ggc2l0ZXMgc2hvdWxkIHRoZXkgY2hvb3NlIHRvIHVzZSB0aGVzZSBsaW5rcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNvbXBsaWFuY2Ugd2l0aCBsYXdzIGFuZCBsYXcgZW5mb3JjZW1lbnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBjb29wZXJhdGUgd2l0aCBnb3Zlcm5tZW50cyBhbmQgbGF3IGVuZm9yY2VtZW50IGFnZW5jaWVzIG9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcmQgcGFydHkgYnkgYW55IG9yZGVyIHVuZGVyIGxhdyBmb3IgdGhlIHRpbWUgYmVpbmcgaW4gZm9yY2UgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZm9yY2UgYW5kIGNvbXBseSB3aXRoIHRoZSBsYXcuIEFueSBpbmZvcm1hdGlvbiBhYm91dCB5b3Ugd2lsbCBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzY2xvc2VkIHRvIHRoZSBnb3Zlcm5tZW50IG9yIGxhdyBlbmZvcmNlbWVudCBvZmZpY2lhbHMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcGFydGllcyBhcywgaW4gdGhlIHNvbGUgZGlzY3JldGlvbiBvZiB0aGUgYWRtaW5pc3RyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0ZWNobm9sb2d5IHN1cHBvcnQgcHJvdmlkZXJzLCBpZiB0aGV5IGJlbGlldmUgbmVjZXNzYXJ5IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSB0byByZXNwb25kIHRvIGNsYWltcyBhbmQgbGVnYWwgcHJvY2VzcywgdG8gcHJvdGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgcHJvcGVydHkgYW5kIHJpZ2h0cyBvciBhIHRoaXJkIHBhcnR5LCB0byBwcm90ZWN0IHRoZSBzYWZldHlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBwdWJsaWMgb3IgYW55IHBlcnNvbiwgb3IgdG8gcHJldmVudCBvciBzdG9wIGFueSBpbGxlZ2FsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdW5ldGhpY2FsIG9yIGxlZ2FsbHkgYWN0aW9uYWJsZSBhY3Rpdml0eS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgWW91ciBpbmZvcm1hdGlvbiBvciBkYXRhIG1heSBhbHNvIGJlIHByb3ZpZGVkIHRvIHZhcmlvdXMgdGF4XG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdGllcyB1cG9uIGFueSBkZW1hbmQgb3IgcmVxdWVzdCBmcm9tIHRoZW0uIFlvdSBhY2tub3dsZWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBESUtTSEEgY2FuIGJlIGFjY2Vzc2VkIGZyb20gYW55d2hlcmUgaW4gdGhlIHdvcmxkIGFuZCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXZlIHVzZXJzIGZyb20gYWxsIG92ZXIgdGhlIHdvcmxkIGFuZCB0aGVyZWZvcmUgZ292ZXJubWVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBqdWRpY2lhcmllcyBvciBsYXcgZW5mb3JjZW1lbnQgYXV0aG9yaXRpZXMgaW4gdmFyaW91cyBwYXJ0cyBvZiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkIG1heSBoYXZlIG9yIGFzc3VtZSBqdXJpc2RpY3Rpb24gb3ZlciBESUtTSEEgYW5kIERJS1NIQSBtYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlIHN1YmplY3QgdG8gdGhlIGxhd3MsIHJ1bGVzLCByZWd1bGF0aW9ucyBhbmQganVkZ21lbnRzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpb3VzIGNvdW50cmllcywgc3RhdGVzLCBtdW5pY2lwYWxpdGllcyBvciBwcm92aW5jZXMgd2hlcmUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heSBub3QgaGF2ZSBhIGRpcmVjdCBwcmVzZW5jZSB0byBzdG9yZSwgcHJvY2VzcywgY29sbGVjdCwgdXNlIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBrZWVwIHlvdXIgaW5mb3JtYXRpb24gb3IgZGF0YS4gWW91IGFja25vd2xlZGdlIHRoYXQgZ292ZXJubWVudCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF3IGVuZm9yY2VtZW50IGF1dGhvcml0aWVzIGluIHRoZSBjb3VudHJpZXMgd2hlcmUgeW91ciBkYXRhIG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgbWF5IGhhdmUgdGhlIHJpZ2h0IHRvIGRlY3J5cHQsIGNvbGxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb25pdG9yIG9yIGFjY2VzcyB5b3VyIGRhdGEgb3IgaW5mb3JtYXRpb24sIHdoaWNoIGFjdGlvbnMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWx5IG91dCBvZiB0aGUgY29udHJvbCBvZiB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3lcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQgcHJvdmlkZXJzIG9mIERJS1NIQS4gVGhlIGFkbWluaXN0cmF0b3JzIGFuZCB0ZWNobm9sb2d5XG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgZG8gbm90IHRha2UgYW55IHJlc3BvbnNpYmlsaXR5IGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCBhY3Rpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+RGVsZXRpbmcgeW91ciBpbmZvcm1hdGlvbjwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSB3aXNoIHRvIGhhdmUgdGhlIGluZm9ybWF0aW9uIG9yIGRhdGEgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZCwgeW91IGNhbiBhbHdheXMgZG8gc28gYnkgc2VuZGluZyBhbiBlbWFpbCByZXF1ZXN0IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAdGVhbWRpa3NoYS5vcmdcIj48Yj5zdXBwb3J0QHRlYW1kaWtzaGEub3JnPC9iPjwvYT4uIFlvdSBtYXkgbm90ZSB0aGF0IGRlbGV0aW9uIG9mIGNlcnRhaW4gaW5mb3JtYXRpb24gb3IgZGF0YSBtYXlcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYWQgdG8gY2FuY2VsbGF0aW9uIG9mIHlvdXIgcmVnaXN0cmF0aW9uIHdpdGggRElLU0hBIGFuZCB5b3VyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgdG8gY2VydGFpbiBmZWF0dXJlcyBvZiBESUtTSEEuIFlvdSBhbHNvIGFncmVlIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNrbm93bGVkZ2UgdGhhdCBjZXJ0YWluIGRhdGEgb3IgaW5mb3JtYXRpb24gY2Fubm90IGJlIGRlbGV0ZWQgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heSBiZSBwcm9oaWJpdGVkIHRvIGJlIGRlbGV0ZWQgYXMgcmVxdWlyZWQgdW5kZXIgYW55IGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdywgbGF3IGVuZm9yY2VtZW50IHJlcXVlc3RzIG9yIHVuZGVyIGFueSBqdWRpY2lhbCBwcm9jZWVkaW5ncy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkNoYW5nZXMgdG8gdGhpcyBQcml2YWN5IFBvbGljeTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSByZXNlcnZlcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgcHJpdmFjeSBzdGF0ZW1lbnQgYXQgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCBzbyBwbGVhc2UgcmV2aWV3IGl0IGZyZXF1ZW50bHkuIElmIGEgbWF0ZXJpYWwgY2hhbmdlIGlzIG1hZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBwcmFjdGljZXMgcmVnYXJkaW5nIHlvdXIgcGVyc29uYWxseSBpZGVudGlmaWFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uLCB5b3Ugd2lsbCBiZSBub3RpZmllZCwgYnkgbWVhbnMgb2YgYSBub3RpY2Ugb24gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+SG93IHRvIGNvbnRhY3QgdXM/PC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IGhhdmUgYW55IHF1ZXJpZXMsIGNvbW1lbnRzLCBvciByZXF1ZXN0cywgcGxlYXNlIGNvbnRhY3QgdXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHNlbmRpbmcgYW4gZW1haWwgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZ1wiPjxiPnN1cHBvcnRAdGVhbWRpa3NoYS5vcmc8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgVGVybXMgb2YgVXNlPC9hPi0tPlxuPCEtLSAgICAgICAgPC9zcGFuPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB1bGwtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPlJlYWQgQ29udGVudCBQb2xpY3kgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvaT48L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIFByaXZhY3kgUG9saWN5IGVuZCBoZXJlLS0+XG5cbiAgICAgICAgPCEtLSAgICBDb250ZW50IFBvbGljeSBzdGFydCBoZXJlLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50XCIgc3VpVGFiQ29udGVudD1cIjNcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJjb250ZW50UG9saWN5XCIgYXJpYS1sYWJlbGxlZGJ5PVwiY29udGVudC1wb2xpY3ktdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiggTGFzdCB1cGRhdGVkIG9uIDxiPjI4LTA0LTIwMjE8L2I+ICk8L2VtPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgQ29udGVudCBQb2xpY3kgc2V0cyBvdXQgdGhlIGd1aWRlbGluZXMgZm9yIGNvbnRlbnQgdG8gYmUgZm9sbG93ZWRcbiAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBLiBUaGUgRElLU0hBIFN0cmF0ZWd5IGFuZCBBcHByb2FjaCBQYXBlciBjbGVhcmx5IGFydGljdWxhdGVzXG4gICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgaW50ZW50aW9ucyBvZiBESUtTSEEgLSB0byBjcmVhdGUgYSBjb21tb24gcmVwb3NpdG9yeSBvZiBvcGVuXG4gICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbiByZXNvdXJjZXMgZm9yIGVhc3kgYWNjZXNzIHRvIHRlYWNoZXJzIGFjcm9zcyB0aGUgY291bnRyeS4gVGhpc1xuICAgICAgICAgICAgICAgICAgICBDb250ZW50IFBvbGljeSBzZXRzIG91dCB0aGUgcHJpbmNpcGxlcyBhbmQgcHJvY2VzcyB0byBhY2hpZXZlIHRoaXMgZW5kLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnQgY3JlYXRpb24gYW5kIGN1cmF0aW9uIHByb2Nlc3Mgb24gRElLU0hBIGlzIGVudmlzYWdlZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICBhbiBvcGVuIHByb2Nlc3Mgd2l0aCBsb3cgYmFycmllcnMgdG8gZW50cnkuIEl0IGNlbGVicmF0ZXMgYW5kIGVuY291cmFnZXNcbiAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhdGlvbiBieSBtYWtpbmcgaXQgc2ltcGxlIHRvIGNyZWF0ZSBhbmQgc2hhcmUgY29udGVudCBvbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0uIEl0IGF2b2lkcyBjcmVhdGluZyBiYXJyaWVycyB0byBlbnRyeSBpbiB0aGUgZm9ybSBvZlxuICAgICAgICAgICAgICAgICAgICBjZW50cmFsaXplZCByZXZpZXcgd29ya2Zsb3dzIGFuZCBmZWRlcmF0ZXMgdGhhdCBwcm9jZXNzIHRvIHRoZSBjb21tdW5pdHlcbiAgICAgICAgICAgICAgICAgICAgdG8gcG9saWNlIGl0c2VsZi4gSW5zdGl0dXRpb25hbCBVc2VycywgdGhyb3VnaCB0aGVpciBBZG1pbmlzdHJhdG9ycyxcbiAgICAgICAgICAgICAgICAgICAgYmVpbmcgdGhlIGN1c3RvZGlhbnMgb2YgRElLU0hBLCBmcmFtZSB0aGUgZ3VpZGVsaW5lcyBhbmQgY3VyYXRpb24gcnVsZXMsXG4gICAgICAgICAgICAgICAgICAgIGFuZCBkZWxlZ2F0ZSB0aGUgYXV0aG9yaXR5IHRvIGN1cmF0ZSB0byB0aGUgY29tbXVuaXR5LiBUaGlzIGNyZWF0ZXMgYVxuICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB0aGF0IGlzIG9wZW4sIGhhcyBsb3cgYmFycmllciB0byBlbnRyeSwgd2hpbGUgdGhlIHF1YWxpdHkgb2ZcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCBpcyBlbnN1cmVkIGJ5IHRoZSBmZWRlcmF0ZWQgcHJvY2Vzcy5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFNldCBvdXQgYmVsb3cgYXJlIHNvbWUgY29tbW9uLXNlbnNlIHJ1bGVzIHRoYXQgYWxsIFVzZXJzIG11c3QgY29tcGx5XG4gICAgICAgICAgICAgICAgICAgIHdpdGggcmVzcGVjdCB0byBDb250ZW50IG9uIERJS1NIQS4gVGhlc2UgcnVsZXMgYXJlIHRvIGJlIHRha2VuIHNlcmlvdXNseVxuICAgICAgICAgICAgICAgICAgICBhcyBBZG1pbmlzdHJhdG9ycyBhcmUgcmVxdWlyZWQgdG8gZW5mb3JjZSB0aGUgc2FtZSBzdHJpY3RseS4gVXNlcnMgYXJlXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZCBub3QgdG8gbG9vayBmb3IgbG9vcGhvbGVzIG9yIHdheXMgYXJvdW5kIHRoZXNlIGd1aWRlbGluZXMgYW5kXG4gICAgICAgICAgICAgICAgICAgIHJlc3BlY3QgdGhlIHNwaXJpdCBpbiB3aGljaCB0aGV5IGhhdmUgYmVlbiBjcmVhdGVkLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgUGxlYXNlIHJlYWQgdGhpcyBDb250ZW50IFBvbGljeSBjYXJlZnVsbHksIHRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHJ1bGVzXG4gICAgICAgICAgICAgICAgICAgIG9uIGFwcHJvcHJpYXRlbmVzcywgYWNjdXJhY3ksIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgYW5kIGxpY2Vuc2luZ1xuICAgICAgICAgICAgICAgICAgICB0aGF0IGdvdmVybiBDb250ZW50IG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFRoaXMgQ29udGVudCBQb2xpY3kgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gYW5kIHRvZ2V0aGVyIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uIERlZmluZWQgdGVybXMgdXNlZCBidXQgbm90IGRlZmluZWQgaGVyZWluIHNoYWxsIGhhdmUgdGhlIG1lYW5pbmdcbiAgICAgICAgICAgICAgICAgICAgYXNjcmliZWQgdG8gdGhlbSBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5QcmluY2lwbGVzIGZvciBDb250ZW50IG9uIERJS1NIQTwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgb24gdGhlIERJS1NIQSB3aWxsIGJlIGNvbnRyaWJ1dGVkIGJ5IHZhcmlvdXMgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzIGFjcm9zcyB0aGUgY291bnRyeS4gVGhlIGludGVudCBpcyB0byBlbmFibGUgYWNjZXNzIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBhIHdpZGUgcmFuZ2UgYW5kIGRpdmVyc2UgY29udGVudCBmcm9tIGFjcm9zcyB0aGUgY291bnRyeSBzbyBhcyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIGJldHRlciBjb250ZXh0dWFsaXNhdGlvbiBvZiBjb250ZW50IGFuZCB3aWRlIGFjY2VzcyBmb3IgZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Vycy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWxsIGNvbnRlbnQgcHVibGlzaGVkIG9uIERJS1NIQSBiZWxvbmdzIHRvIHRoZSBjcmVhdG9ycyBvZiBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBiZSBpdCBpbmRpdmlkdWFscyBvciBvcmdhbmlzYXRpb25zIHRoYXQgaGF2ZSBtYWRlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0sIHRoZXkgYXJlIHJlc3BvbnNpYmxlIGZvciB1c2UgYnkgb3BlblxuICAgICAgICAgICAgICAgICAgICAgICAgbGVhcm5pbmcgcGxhdGZvcm1zIGFuZCBhcHBsaWNhdGlvbnMgdGhlcmVmb3JlLCBjb250ZW50IGNyZWF0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmUgcmVzcG9uc2libGVzIGZvciBlbnN1cmluZyBhY2N1cmFjeSBhbmQgYXBwcm9wcmlhdGVuZXNzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBjYW4gbWFrZSBtdWx0aWxpbmd1YWwgYW5kIGRpdmVyc2UgY29udGVudCBhdmFpbGFibGUgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSByYW5naW5nIGZyb20gY291cnNlcyBmb3IgaW4tc2VydmljZSBhbmQgcHJlLXNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlYWNoZXJzIHRvIGNsYXNzcm9vbSByZXNvdXJjZXMgdG8gdG9vbHMgZm9yIGFzc2Vzc21lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsdWF0aW9uIGJvdGggb2YgdGVhY2hlcnMgYW5kIGxlYXJuZXJzLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSBtZWFucyBhbmQgaW5jbHVkZXMsIChpKSBjb250ZW50IHRoYXQgaXMgd3JpdHRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkLCBzdWJtaXR0ZWQsIHN0b3JlZCwgc2VudCwgcmVjZWl2ZWQgb3Igc2hhcmVkIHVzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEsIHRlYWNoaW5nIGFuZCBsZWFybmluZyBjb250ZW50IGluIHRoZSBjb250ZXh0IG9mIHNjaG9vbFxuICAgICAgICAgICAgICAgICAgICAgICAgZWR1Y2F0aW9uLCBjb3Vyc2VzLCBsZXNzb24gcGxhbnMsIHdvcmtzaGVldHMsIHN1cHBsZW1lbnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzIGZvciBjbGFzc3Jvb20gYW5kIG90aGVyIHN1Y2ggbGVhcm5pbmcgbWF0ZXJpYWxzIG1lYW50XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3Igd2lkZSB1c2VyIGNvbnN1bXB0aW9uLCBhbmQgKGlpaSkgb3RoZXIgdHlwZXMgb2YgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVkIGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciB0aGUgYWNjdXJhY3ksXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZW5lc3MgYW5kIHZpb2xhdGlvbnMgb2YgYW55IHByaXZhY3kgcmlnaHRzLCB0aGlyZCBwYXJ0eVxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRzIGluY2x1ZGluZyBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHdpdGggcmVnYXJkcyB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlaXIgQ29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGlmZmVyZW50IHR5cGVzIG9mIENvbnRlbnQgYXJlIHN1Ym1pdHRlZC8gcG9zdGVkLyB1cGxvYWRlZCAvXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWQgb24gRElLU0hBIGZvbGxvd2luZyBkaWZmZXJlbnQgcHJvY2Vzc2VzIGFuZCB3b3JrZmxvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSBwdXJwb3NlIG9mIHRoZSBDb250ZW50LiBDZXJ0YWluIENvbnRlbnQsIHN1Y2ggYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RzLCBjb21tZW50cywgZmVlZGJhY2ssIHN1Ym1pc3Npb25zLCByZXNwb25zZXMsIGV4cGxhbmF0aW9ucyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ydW1zL2dyb3VwcyBvciB1c2luZyBwcm9qZWN0LyBzdXJ2ZXkvIG9ic2VydmF0aW9uIHRvb2xzIGV0Yy4sXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmUgZGlyZWN0bHkgc3VibWl0dGVkLyBwb3N0ZWQvIHVwbG9hZGVkLiBDZXJ0YWluIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyaWJ1dGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnMgdGhhdCBpcyBtZWFudCBmb3Igd2lkZXIgdXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtcHRpb24gaXMgcHVibGlzaGVkIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMgYWZ0ZXIgZm9sbG93aW5nIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmlldyBwcm9jZXNzIGRlc2NyaWJlZCBiZWxvdy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db250ZW50IENvbnRyaWJ1dGlvbjwvaDQ+IDxwPkNvbnRlbnQgdGhhdCBpcyBwdWJsaXNoZWQgb25cbiAgICAgICAgICAgICAgICBESUtTSEEgZm9yIHdpZGVyIHVzZXIgY29uc3VtcHRpb24gY2FuIG9ubHkgYmUgY3JlYXRlZCBieSBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgVXNlcnMgd2hvIGFyZSBhdXRob3Jpc2VkIGJ5IGFuIEluc3RpdHV0aW9uYWwgVXNlciB0byBoYXZlIHJlYWQsIHdyaXRlXG4gICAgICAgICAgICAgICAgYW5kIGVkaXQgcmlnaHRzIHRvIGNyZWF0ZSBDb250ZW50LiBUaGlzIGF1dGhvcmlzYXRpb24gbWF5IGhhcHBlbiBhdFxuICAgICAgICAgICAgICAgIGNlbnRyYWwgbGV2ZWwgb3Igc3RhdGUgbGV2ZWwuIEVhY2ggSW5zdGl0dXRpb25hbCBVc2VyIGhhcyB0aGVpciBvd25cbiAgICAgICAgICAgICAgICBndWlkZWxpbmVzIGZvciBzdWNoIGF1dGhvcmlzYXRpb24uIFJlZ2lzdGVyZWQgVXNlcnMgd2hvIGNyZWF0ZSBDb250ZW50XG4gICAgICAgICAgICAgICAgYXJlIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgY29udHJpYnV0aW5nIENvbnRlbnQgdGhhdCBjb21wbGllc1xuICAgICAgICAgICAgICAgIHdpdGggdGhpc1xuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48Yj5Db250ZW50IFBvbGljeTwvYj48L2E+LCB0aGVcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4sIGFuZCBhbnkgb3RoZXIgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgcHJlc2NyaWJlZCBmcm9tIHRpbWUgdG8gdGltZS5cbiAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHNoYWxsIGhhdmUgZXhlcmNpc2VkIHJlYXNvbmFibGUgZGlsaWdlbmNlIHRvIHNhdGlzZnlcbiAgICAgICAgICAgICAgICB0aGVtc2VsdmVzIHRoYXQgdGhlaXIgQ29udGVudCBpcyByZWFkeSBmb3IgcHVibGljIGNvbnN1bXB0aW9uIHByaW9yIHRvXG4gICAgICAgICAgICAgICAgYmVpbmcgc3VibWl0dGVkIGZvciByZXZpZXcgYW5kIHVzZSBvbiBESUtTSEEuPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Db250ZW50IFJldmlldyAmYW1wOyBQdWJsaXNoaW5nIDwvaDQ+PHA+QWxsIENvbnRlbnQgcHVibGlzaGVkXG4gICAgICAgICAgICAgICAgb24gRElLU0hBIGZvciB3aWRlciB1c2VyIGNvbnN1bXB0aW9uIGlzIGN1cmF0ZWQsIHJldmlld2VkIGFuZFxuICAgICAgICAgICAgICAgIHB1Ymxpc2hlZCBieSBSZWdpc3RlcmVkIFVzZXJzIHdobyBhcmUgYXV0aG9yaXNlZCBieSBhbiBJbnN0aXR1dGlvbmFsXG4gICAgICAgICAgICAgICAgdG8gaGF2ZSByZWFkLCB3cml0ZSBhbmQgZWRpdCByaWdodHMgdG8gY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaFxuICAgICAgICAgICAgICAgIENvbnRlbnQuIFRoaXMgYXV0aG9yaXNhdGlvbiBtYXkgaGFwcGVuIGF0IGNlbnRyYWwgbGV2ZWwgb3Igc3RhdGVcbiAgICAgICAgICAgICAgICBsZXZlbC4gRWFjaCBJbnN0aXR1dGlvbmFsIFVzZXIgaGFzIHRoZWlyIG93biBndWlkZWxpbmVzIGZvciBzdWNoXG4gICAgICAgICAgICAgICAgYXV0aG9yaXNhdGlvbi4gUmVnaXN0ZXJlZCBVc2VycyB3aG8gY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBDb250ZW50XG4gICAgICAgICAgICAgICAgc2hhbGwgZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgdGhleSBhY2NlcHQgY29tcGxpZXMgd2l0aCB0aGlzIENvbnRlbnRcbiAgICAgICAgICAgICAgICBQb2xpY3ksIHRoZVxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICBhbmRcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPiwgYW5kIGFueSBvdGhlciBwb2xpY2llcyBhbmQgZ3VpZGVsaW5lcyBwcmVzY3JpYmVkIGZyb20gdGltZSB0byB0aW1lLlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5BY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzIDwvaDQ+LSBSZWdpc3RlcmVkIFVzZXJzIG11c3RcbiAgICAgICAgICAgICAgICBlbnN1cmUgdGhhdCBhbGwgdGhlIENvbnRlbnQgdGhleSBoYXZlIGNyZWF0ZWQsIGNvbnRyaWJ1dGVkLCByZXZpZXdlZFxuICAgICAgICAgICAgICAgIG9yIHB1Ymxpc2hlZCBpcyBhcHByb3ByaWF0ZSBhbmQgYWNjdXJhdGUgYW5kIG1lZXRzIHRoZWlyIHBlZGFnb2dpY2FsXG4gICAgICAgICAgICAgICAgYW5kIHVzYWJpbGl0eSByZXF1aXJlbWVudHMgYXMgcHJlc2NyaWJlZCBieSBJbnN0aXR1dGlvbmFsIFVzZXJzLlxuICAgICAgICAgICAgICAgIENvbnRlbnQgaWRlbnRpZmllZCBhcyBpbmFwcHJvcHJpYXRlIG9yIGluYWNjdXJhdGUsIGFzIHBlciB0aGlzIENvbnRlbnRcbiAgICAgICAgICAgICAgICBQb2xpY3ksIHdpbGwgbm90IGJlIHB1Ymxpc2hlZCBhbmQgY2FuIGJlIHVuaWxhdGVyYWxseSByZW1vdmVkIGZyb21cbiAgICAgICAgICAgICAgICBESUtTSEEuXG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QWNjdXJhdGUgQ29udGVudDwvc3Ryb25nPiAtIEFsbCBDb250ZW50IG11c3Q6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QmUgZmFjdHVhbGx5IGNvcnJlY3QsPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBsYW5ndWFnZSBpbiB0ZXh0LCBhdWRpbywgdmlkZW8gYW5kIGludGVyYWN0aXZlIG1hdGVyaWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGlzIHNpbXBsZSBhbmQgZWFzeSB0byB1bmRlcnN0YW5kLCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmUgY29udGV4dHVhbCBhbmQgcmVsZXZhbnQgdG8gdGhlIG5lZWRzIG9mIHRoZSBpbnRlbmRlZCBVc2VyLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkluYXBwcm9wcmlhdGUgQ29udGVudDwvc3Ryb25nPiBpbmNsdWRlcywgYnV0IGlzIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlZCB0bzpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGF0ZSBTcGVlY2ggLSBieSB3b3JkcyBlaXRoZXIgd3JpdHRlbiBvciBzcG9rZW4gb3IgYnkgc2lnbnMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgdmlzaWJsZSByZXByZXNlbnRhdGlvbiBvciBvdGhlcndpc2UgcHJvbW90ZXMgb3IgYXR0ZW1wdHMgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbW90ZSBmZWVsaW5ncyBvZiBlbm1pdHksIGhhdHJlZCBvciBpbGwtd2lsbCBhZ2FpbnN0IHBlcnNvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNhc3RlPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DbGFzczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+VHJpYmU8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlJhY2U8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkV0aG5pY2l0eTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2V4LCBnZW5kZXIsIG9yIGdlbmRlciBpZGVudGl0eTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+TmF0aW9uYWwgb3JpZ2luPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZWxpZ2lvdXMgYWZmaWxpYXRpb248L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlNleHVhbCBvcmllbnRhdGlvbiwgb3I8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRpc2FiaWxpdGllcyBvciBkaXNlYXNlczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNleHVhbGx5IGV4cGxpY2l0IGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlBvcm5vZ3JhcGh5PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBsaWNpdCB0ZXh0L2ltYWdlcy9pbGx1c3RyYXRpb25zL3NvdW5kcyBvZiBzZXh1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkRlc2NyaXB0aW9ucyBvZiBzZXh1YWwgYWN0czwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcGljdGlvbiBvZiBzZXh1YWwgdmlvbGVuY2UgYW5kIGV4cGxvaXRhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jbHVkZXMgc2V4dWFsIGV4cGxvaXRhdGlvbiBvZiBtaW5vcnMsIGFuZCBzZXh1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NhdWx0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b2dyYXBocy8gSWxsdXN0cmF0aW9ucy92aWRlb3MgZGVwaWN0aW5nIGluY2lkZW50cyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNleHVhbCB2aW9sZW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwaWN0aW9uIG9mIG51ZGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVkaXR5IHdvdWxkIG1lYW4gZGlzcGxheWluZyBnZW5pdGFscywgYnJlYXN0cyBvciBidXR0b2Nrc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG90aGVkIG9yIHVuY2xvdGhlZCkgZm9yIHRoZSBwdXJwb3NlIG9mIHNleHVhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXRpZmljYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIHRoYW4gdGhlIGRlcGljdGlvbiBvZiBib2R5IHBhcnRzIHdoaWNoIGlzbuKAmXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmF0dWl0b3VzbHkgZ3JhcGhpYyBhbmQgaXMgZWR1Y2F0aW9uYWwsIGRvY3VtZW50YXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWVudGlmaWMsIG9yIGFydGlzdGljIC0gcGFpbnRpbmdzLCBzY3VscHR1cmVzLCBhbmQgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnQgdGhhdCBkZXBpY3RzIG51ZGUgZmlndXJlcywgd2hpY2ggaXMgcG9zdGVkIGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbmFsIHB1cnBvc2VzLiBQcm92aWRpbmcgY29udGV4dCB3aWxsIGhlbHAgdXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlcm1pbmUgdGhlIHB1cnBvc2Ugb2YgdGhlIGNvbnRlbnQvYXNzZXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHRoYXQgcHJvbW90ZXMgdmlvbGVuY2UsIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvbW90aW5nLCBlbmNvdXJhZ2luZywgc3VwcG9ydGluZywgcHJhaXNpbmcsIG9yIGNvbmRvbmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xlbnQgYWN0aW9ucywgYWN0aXZpdGllcyBhbmQgYmVoYXZpb3VyIC0gdmVyYmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsIG9yIGVtb3Rpb25hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWF0ZW5pbmcgb3IgaW5jaXRpbmcgb3RoZXJzIHRvIGNvbW1pdCBhY3RzIG9mIHZpb2xlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJlc3Npbmcgc3VwcG9ydCBvciBwcmFpc2UgZm9yIGdyb3VwcywgcGVvcGxlIHRoYXQgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2x2ZWQgaW4gdmlvbGVudCBvciBjcmltaW5hbCBiZWhhdmlvdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgdGhhdCBwcm9tb3Rlcy9kZXBpY3RzL3JlZmxlY3RzIGRpc2NyaW1pbmF0aW9uIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWxseWluZyBvciBlbmNvdXJhZ2luZyBzdWNoIGJlaGF2aW91ciwgaW5jbHVkaW5nOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0aW5nIGluZGl2aWR1YWxzIHdpdGggdGhlIGludGVudGlvbiBvZiBkZWdyYWRpbmcgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFtaW5nIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElsbHVzdHJhdGlvbnMgb3IgSW1hZ2VzIGFsdGVyZWQgdG8gZGVncmFkZSBpbmRpdmlkdWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5QaG90b3Mgb3IgdmlkZW9zIG9mIHBoeXNpY2FsIG9yIHZlcmJhbCBidWxseWluZzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2hhcmluZyBwZXJzb25hbCBpbmZvcm1hdGlvbiBvciBoYXJhc3NpbmcgcGVvcGxlPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBlYXRlZGx5IHRhcmdldGluZyBvdGhlciBwZW9wbGUgd2l0aCB1bndhbnRlZCByZXF1ZXN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIG1lc3NhZ2VzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcHJpc2VzIGhhcm1mdWwgb3IgZGFuZ2Vyb3VzIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIGludGVuZHMgdG8gaW5jaXRlIHZpb2xlbmNlIG9yIGVuY291cmFnZSBkYW5nZXJvdXMgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsIGFjdGl2aXRpZXMgdGhhdCBoYXZlIGFuIGluaGVyZW50IHJpc2sgb2Ygc2VyaW91c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsIGhhcm0gb3IgZGVhdGguXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY291cmFnZXMgZGFuZ2Vyb3VzIG9yIGlsbGVnYWwgYWN0aXZpdGllcyBmb3IgaW5zdGFuY2UgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5IGxhdW5kZXJpbmcsIGdhbWJsaW5nLCBwZXJmb3JtaW5nIHN0dW50cywgaGlnaCByaXNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllcywgY2hva2luZyBnYW1lcywgZHJ1ZyB1c2UsIG9yIG90aGVyIGFjdHMgd2hlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpb3VzIGluanVyeSBvciBoYXJtIG1heSByZXN1bHQuIENvbnRlbnQgdGhhdCBkZXBpY3RzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzIGFjdHMgbWF5IGJlIGFsbG93ZWQgaWYgdGhlIHByaW1hcnkgcHVycG9zZSBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdWNhdGlvbmFsLCBkb2N1bWVudGFyeSwgc2NpZW50aWZpYywgb3IgYXJ0aXN0aWMgKEVEU0EpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBpc27igJl0IGdyYXR1aXRvdXNseSBncmFwaGljLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXIgcG9zc2liaWxpdGllczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggdmlvbGF0ZXMgdGhlIGxhdyBmb3IgdGhlIHRpbWUgYmVpbmcgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCB3aGljaCBpbmZyaW5nZXMgYW55IHRyYWRlbWFyaywgY29weXJpZ2h0LCBvciBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggZGVjZWl2ZXMgb3IgbWlzbGVhZHMgdGhlIFVzZXIgYWJvdXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luIG9mIHN1Y2ggQ29udGVudCBhbmQgY29udmV5cyBpbmZvcm1hdGlvbiB3aGljaCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3NzbHkgb2ZmZW5zaXZlIG9yIG1lbmFjaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHdoaWNoIGNvbnRhaW5zIHNvZnR3YXJlIHZpcnVzZXMgb3IgYW55IG90aGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZXIgY29kZSwgZmlsZXMgb3IgcHJvZ3JhbXMgZGVzaWduZWQgdG8gaW50ZXJydXB0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3kgb3IgbGltaXQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW55IGNvbXB1dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgd2hpY2ggdGhyZWF0ZW5zIHRoZSB1bml0eSwgaW50ZWdyaXR5LCBkZWZlbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IG9yIHNvdmVyZWlnbnR5IG9mIEluZGlhLCBmcmllbmRseSByZWxhdGlvbnMgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ24gc3RhdGVzLCBvciBwdWJsaWMgb3JkZXIsIG9yIGNhdXNlcyBpbmNpdGVtZW50IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbW1pc3Npb24gb2YgYW55IGNvZ25pc2FibGUgb2ZmZW5jZSBvciBwcmV2ZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmVzdGlnYXRpb24gb2YgYW55IG9mZmVuY2Ugb3IgaXMgaW5zdWx0aW5nIGFueSBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmdzIG1pbm9ycy8gY2hpbGRyZW4gaW4gdmlvbGVuY2UgYXMgdmljdGltc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHBlcnBldHJhdG9ycyBvciBhcyBmb3JjZWQgd2l0bmVzc2VzIHRvIHZpb2xlbmNlLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dpbmcgY2hpbGRyZW4gYXMgYmVpbmcgc3ViamVjdGVkIHRvIGFueSBmb3JtIG9mIGNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1c2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIGFidXNlIG9yIHJpZGljdWxlIG9mIHBlb3BsZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJpbGl0aWVzIChwaHlzaWNhbCBvciBtZW50YWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db250ZW50IGludm9sdmluZyBjcnVlbHR5IHRvLCBvciBhYnVzZSBvZiBhbmltYWxzLDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwaWN0aW9uIG9mIHZpb2xlbmNlLCBjcnVlbHR5IGFuZCBob3Jyb3IsIHNjZW5lcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpb2xlbmNlIHByaW1hcmlseSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgaW1hZ2VzL3RleHQvIGlsbHVzdHJhdGlvbnMgaGF2ZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Qgb2YgZW5jb3VyYWdpbmcsIGp1c3RpZnlpbmcsIGdsb3JpZnlpbmcsIGdsYW1vcmlzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxjb2hvbCBkcmlua2luZywgZHJ1Z3MgYW5kIHN1YnN0YW5jZSBhYnVzZTsgY29uc3VtcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0b2JhY2NvIG9yIHNtb2tpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIGRlZ3JhZGluZyBvciBkZW5pZ3JhdGluZyB3b21lbiBpbiBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIHZ1bGdhcml0eSwgb2JzY2VuaXR5IG9yIGRlcHJhdml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgZHVhbCBtZWFuaW5nIHdvcmRzIGFzIG9idmlvdXNseSBjYXRlciB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VyIGluc3RpbmN0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudCBpbnZvbHZpbmcgdmlzdWFscyBvciB3b3JkcyBjb250ZW1wdHVvdXMgb2YgcmFjaWFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGlnaW91cyBvciBvdGhlciBncm91cHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW52b2x2aW5nIHZpc3VhbHMgb3Igd29yZHMgd2hpY2ggcHJvbW90ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyc3RpdGlvbiwgY29tbXVuYWwsIG9ic2N1cmFudGlzdCwgYW50aS1zY2llbnRpZmljXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0aXR1ZGUsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IGludm9sdmluZyB2aXN1YWxzIG9yIHdvcmRzIGludm9sdmluZyBkZWZhbWF0aW9uIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5kaXZpZHVhbCBvciBhIGJvZHkgb2YgaW5kaXZpZHVhbHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHM8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIENvbnRlbnQgdGhleSBoYXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkLCB1cGxvYWRlZCwgc291cmNlZCwgbGlua2VkLCBzdHJlYW1lZCwgY3VyYXRlZCwgcmV2aWV3ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvciBwdWJsaXNoZWQgb24gRElLU0hBLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG11c3QgZW5zdXJlIHRoYXQgQ29udGVudCAobWVhbnQgZm9yIHdpZGVyIHVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bXB0aW9uKSB0aGF0IHRoZXkgY3JlYXRlLCB1cGxvYWQsIHNvdXJjZSwgbGluaywgc3RyZWFtLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaCBvbiBESUtTSEEgYWNjdXJhdGVseSByZWZsZWN0czpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5BdXRob3I8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Db3B5cmlnaHQgaG9sZGVyPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+WWVhciBvZiBjb3B5cmlnaHQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRpb25zIHRvIGNyZWF0b3JzIHdob3NlIGNvbnRlbnQgaGFzIGJlZW4gcmVsaWVkIG9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluLCBvciByZWZlcnJlZCB0byBpbiB0aGUgQ29udGVudCAoaWYgYW55KSBhbmQgc291cmNlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgY2l0YXRpb25zLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlRoZSByZWxldmFudCBsaWNlbnNlLCBhcyBwZXIgdGhlIExpY2Vuc2luZyBQb2xpY3k8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyB3aG8gaGF2ZSBjb3B5cmlnaHQgaW4gdGhlIENvbnRlbnQgdGhleSBoYXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cmlidXRlZCwgY29uc2VudCB0byBwdWJsaWNhdGlvbiBvZiB0aGVpciBDb250ZW50IGluIGFjY29yZGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEluIHJlbGF0aW9uIHRvIENvbnRlbnQgYmVpbmcgY29udHJpYnV0ZWQgYnkgYW55IHBlcnNvbiBvdGhlciB0aGFuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29weXJpZ2h0IGhvbGRlciBvZiB0aGUgQ29udGVudCwgUmVnaXN0ZXJlZCBVc2VycyBtdXN0IGVuc3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB0aGV5IGhhdmUgdGhlIG5lY2Vzc2FyeSBhdXRob3Jpc2F0aW9uLCBjb25zZW50LCBsaWNlbnNlLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbiB0byBwdWJsaXNoIHN1Y2ggQ29udGVudCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIElmIENvbnRlbnQgaW5jbHVkZXMgY29weXJpZ2h0ZWQgbWF0ZXJpYWxzIChpbmNsdWRpbmcgdGV4dCwgaW1hZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zLCBpbGx1c3RyYXRpb25zLCBzb3VuZHMsIG11c2ljLCB2aWRlb3MsIGF1ZGlvLXZpc3VhbFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluYXRpb25zLCBldGMuKSwgUmVnaXN0ZXJlZCBVc2VycyAoY3JlYXRvcnMsIGN1cmF0b3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2aWV3ZXJzIGFuZCBwdWJsaXNoZXJzKSBtdXN0IGVuc3VyZSBjb21wbGlhbmNlIHdpdGggdGhlIGxpY2Vuc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm1zLCBwcm9wZXIgYXR0cmlidXRpb24gYW5kIGFueSBvdGhlciB0aGlyZCBwYXJ0eSBpbnRlbGxlY3R1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IHJpZ2h0cy4gSW5mcmluZ2VtZW50IG9mIGNvcHlyaWdodCBvciBhbnkgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgaXMgbm90IGFjY2VwdGFibGUsIHRoZSBwcm9wZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0aW9ucyBhbmQgYWNrbm93bGVkZ2VtZW50IG9mIGF1dGhvcnMgYW5kIGNyZWF0b3JzIGZvciBvcGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBlZHVjYXRpb24gcmVzb3VyY2UgY29tbXVuaXR5IGFuZCBjcmVhdGl2ZSBjb21tb25zIGNvbW11bml0eSBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBiZSByZXNwZWN0ZWQgYW5kIHVwaGVsZCBhdCBhbGwgdGltZXMuIEFkbWluaXN0cmF0b3JzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVjaG5vbG9neSBzdXBwb3J0IHByb3ZpZGVycyBvZiBESUtTSEEgd2lsbCByZW1vdmUgYW55IENvbnRlbnQgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IG5vdGlmaWVkIHRoYXQgc3VjaCBDb250ZW50IGluZnJpbmdlcyBvbiBhbm90aGVyJ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3IgdmlvbGF0ZXMgdGhpcyBDb250ZW50IFBvbGljeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCAvIG9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJwcml2YWN5LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwicHJpdmFjeVBvbGljeVwiPjxiPlByaXZhY3kgUG9saWN5PC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJ5IHN1Ym1pdHRpbmcgLyB1cGxvYWRpbmcgLyBjcmVhdGluZy8gcHVibGlzaGluZyBDb250ZW50IG9uIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGZvbGxvd2luZyB0aGUgb3BlbiBsaWNlbnNlIGZyYW1ld29ya3MgYWRvcHRlZCBieSBESUtTSEEsXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHJlY29nbmlzZSBhbmQgYWNjZXB0IHRoYXQgdGhlIENvbnRlbnQgKGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxsIHRoZSBlbGVtZW50cyB0aGF0IHN1Y2ggQ29udGVudCBjb21wcmlzZXMgc3VjaCBhcyB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0cywgZ3JhcGhpY3MsIHBob3Rvcywgc291bmRzLCBtdXNpYywgdmlkZW9zLCBhdWRpby12aXN1YWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmF0aW9ucyBldGMuKSBpcyBwbGFjZWQgaW4gcHVibGljIGRvbWFpbiB3aWxsIGJlIGFjY2Vzc2VkIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCBieSBhbnkgaW5kaXZpZHVhbCwgaW5zdGl0dXRpb24gb3Igb3JnYW5pc2F0aW9uIHRocm91Z2hcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlvdXMgcGxhdGZvcm1zLCBwb3J0YWxzIGFuZCBhcHBsaWNhdGlvbnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgbGljZW5zZSBjb25kaXRpb25zLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJdCBzaGFsbCBiZSB0aGUgc29sZSByZXNwb25zaWJpbGl0eSBvZiBSZWdpc3RlcmVkIFVzZXJzIHRvIGVuc3VyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBwcm9wZXIgYW5kIGNvcnJlY3QgYXR0cmlidXRpb25zLCBhY2tub3dsZWRnZW1lbnRzIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNpbmcgcmVmZXJlbmNlcyBhcmUgZ2l2ZW4gdG8gdGhlIENvbnRlbnQgYW5kIGluZGl2aWR1YWwocykvXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0aXR1dGlvbihzKSB0aGF0IGhhdmUgYmVlbiBpbnZvbHZlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbiBvZiBDb250ZW50IGFuZCB3aGVyZXZlciBDb250ZW50IGhhcyBiZWVuIHF1b3RlZC91c2VkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJdCBzaGFsbCBiZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgUmVnaXN0ZXJlZCBVc2VycyBub3QgdG8gaW5mcmluZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwb24gYW55IHRoaXJkIHBhcnR5IHJpZ2h0cyBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHN1Y2ggYXMgY29weXJpZ2h0cyBvciBhbnkgb3RoZXIgbGVnYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0cyBvZiBpbmRpdmlkdWFsKHMpL29yZ2FuaXNhdGlvbihzKSB3aXRoIHJlZ2FyZHMgdG8gQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0ZWQgb24gRElLU0hBLiBGb3IgYW55IGxlZ2FsIG1hdHRlciBhcmlzaW5nIG91dCBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mcmluZ2VtZW50IG9mIHN1Y2ggcmlnaHRzIGJ5IHRoZSBSZWdpc3RlcmVkIFVzZXIsIHN1Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlciBzaGFsbCBiZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGFueSBmaW5hbmNpYWwgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyIGRhbWFnZXMgYXJpc2luZyBvdXQgb2Ygc3VjaCB2aW9sYXRpb25zIGFuZCBkaXNwdXRlcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JIGFuZC9vciB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciB0aGUgdmlvbGF0aW9ucyBvZiBhbnkgdGhpcmQgcGFydHlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0cyBpbmNsdWRpbmcgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBieSBhbnkgVXNlci5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQW55IHZpb2xhdGlvbnMgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyB3aWxsIGJlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNvbmNlcm5lZCBVc2Vycy4gQW55IGRpc3B1dGVzIHdpbGwgYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRsZWQgYnkgdGhlIHJlc3BlY3RpdmUgcGFydGllcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgR29JIGFuZC9vciB0aGUgYWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIERJS1NIQSBkbyBub3QgZW5kb3JzZSBhbnkgQ29udGVudCBwdWJsaXNoZWQgb24gRElLU0hBLCBvciBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIG9waW5pb24sIHJlY29tbWVuZGF0aW9uLCBvciBhZHZpY2UgZXhwcmVzc2VkIHRoZXJlaW4sIGFuZCBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3NseSBkaXNjbGFpbXMgYW55IGFuZCBhbGwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5PcGVuIExpY2Vuc2luZyBQb2xpY3kgLSBDcmVhdGl2ZSBDb21tb25zIEZyYW1ld29yazwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBESUtTSEEgZm9sbG93cyBwcmluY2lwbGVzIG9mIG9wZW4gYWNjZXNzLCBvcGVuIGxpY2Vuc2luZyBhbmQgaXMgYVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gZm9yIG9wZW4gZWR1Y2F0aW9uIHJlc291cmNlcy4gUmVnaXN0ZXJlZCBVc2VycyBtdXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnN1cmUgdGhhdCB0aGV5IGZvbGxvdyB0aGVzZSBsaWNlbnNpbmcgdGVybXMuIENvbnRlbnQgd2hpY2ggZG9lc1xuICAgICAgICAgICAgICAgICAgICAgICAgbm90IGZvbGxvdyB0aGVzZSBsaWNlbnNpbmcgdGVybXMgc2hhbGwgYmUgcmVqZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBMaWNlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICBGcmFtZXdvcmsuIENyZWF0aXZlIENvbW1vbnMgbGljZW5zZXMgcHJvdmlkZSBhbiBlYXN5IHdheSB0byBtYW5hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb3B5cmlnaHQgdGVybXMgdGhhdCBhdHRhY2ggYXV0b21hdGljYWxseSB0byBhbGwgY3JlYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsIHVuZGVyIGNvcHlyaWdodC4gQ3JlYXRpdmUgQ29tbW9ucyBsaWNlbnNlcyBhbGxvdyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbCB0byBiZSBzaGFyZWQgYW5kIHJldXNlZCB1bmRlciB0ZXJtcyB0aGF0IGFyZSBmbGV4aWJsZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsbHkgc291bmQuIENyZWF0aXZlIENvbW1vbnMgb2ZmZXJzIGEgY29yZSBzdWl0ZSBvZiBzaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlyaWdodCBsaWNlbnNlcy4gQW55b25lIGNhbiB1c2UgQ3JlYXRpdmUgQ29tbW9ucyBsaWNlbnNlZFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWxzIGFzIGxvbmcgYXMgdGhlIGxpY2Vuc2UgY29uZGl0aW9ucyBhcmUgZm9sbG93ZWQuIE9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uIG9mIGFsbCBDcmVhdGl2ZSBDb21tb25zIGxpY2Vuc2VzIGlzIGF0dHJpYnV0aW9uLiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pdHMgdGhlIHVzZSBvZiB0aGUgZm9sbG93aW5nIGxpY2VuY2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC9sZWdhbGNvZGVcIj5DQyBCWTQuMDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEF0dHJpYnV0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1TQSA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1OQyA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9sZWdhbGNvZGVcIj5DQyBCWS1OQy1TQSA0LjA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsLVNoYXJlQWxpa2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmQvNC4wL2xlZ2FsY29kZVwiPkNDIEJZLU5EIDQuMDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEF0dHJpYnV0aW9uLU5vbi1EZXJpdmF0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPllvdVR1YmUgTGljZW5zZTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG11c3QgZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgc3VibWl0dGVkIHRvIGJlXG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoZWQgb24gdGhlIERJS1NIQSBmb3Igd2lkZXIgdXNlciBjb25zdW1wdGlvbiBzcGVjaWZpZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVsZXZhbnQgbGljZW5zZSB1bmRlciB3aGljaCBzdWNoIENvbnRlbnQgd2lsbCBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgdG8gdGhlIFVzZXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGF0IHRoZSBhcHByb3ByaWF0ZSBsaWNlbnNlIHRlcm1zIGFuZCB3ZWxsIGFzIGF0dHJpYnV0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGluZyB0byBzdWNoIENvbnRlbnQgYXJlIHByb3Blcmx5IGZvbGxvd2VkLCBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyBvZiB0aGUgY3JlYXRvciBhbmQgc291cmNlLyBjaXRhdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYXQgbGljZW5zZSBvcHRpb25zIG1lbnRpb25lZCBoZXJlaW4gYXJlIGZvbGxvd2VkIGluIGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlcywgYW5kIHRoYXQgdGhlIHJlbGV2YW50IGxpY2Vuc2Ugc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29weXJpZ2h0IGxpY2Vuc2UgYXBwbGljYWJsZSB0byB0aGUgb3JpZ2luYWwgcGllY2Ugb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhY2tub3dsZWRnZSBhbmQgYWNjZXB0IHRoYXQgc2luY2UgdGhlIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVkIGhlcmVpbiBmb2xsb3dzIG9wZW4gbGljZW5zaW5nIG5vcm1zIHN1Y2ggYXMgY3JlYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbnMgbGljZW5zZXMgb3Igb3RoZXIgb3BlbiBsaWNlbnNlcywgdGhlIHVzZSBvZiB0aGUgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgbm90IGJlIGxpbWl0ZWQgdG8gc3BlY2lmaWMgSW5zdGl0dXRpb25hbCBVc2Vycy8gUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgdGhhdCBoYXZlIHB1Ymxpc2hlZCB0aGUgQ29udGVudCBhbmQgdGhleSBzaGFsbCBiZSBtYWRlXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgZm9yIGRpc2NvdmVyeSwgYWNjZXNzIGFuZCB1c2UgYnkgYW55IG9yZ2FuaXNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc3RpdHV0aW9uLCBwbGF0Zm9ybSwgYXBwbGljYXRpb24gYW5kIGluZGl2aWR1YWwgaW4gZ2VuZXJhbC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyByZWNvZ25pc2UgYW5kIGFjY2VwdCB0aGF0IG9uY2UgQ29udGVudCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkIGFuZCBwbGFjZWQgaW4gdGhlIHB1YmxpYyBkb21haW4gZm9yIHVzZSwgdGhleSBjYW5ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaWxhdGVyYWxseSB3aXRoZHJhdyB0aGUgQ29udGVudCBvciBjaGFuZ2UgdGhlIGxpY2Vuc2luZyB0ZXJtcy5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5CYWQgUHJhY3RpY2VzOjwvaDQ+IFJlZ2lzdGVyZWQgVXNlcnMgbXVzdCBub3QgaW5kdWxnZSBpblxuICAgICAgICAgICAgICAgIGFueSBvZiB0aGUgZm9sbG93aW5nIGJhZCBwcmFjdGljZXMgaW4gcmVsYXRpb24gdG8gdGhlaXIgQ29udGVudCxcbiAgICAgICAgICAgICAgICBpbmNsdWRpbmc6XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZW0+VXBsb2FkaW5nIENvbnRlbnQgKGluY2x1ZGluZyBwaG90b3Mgb3IgdmlkZW9zKSBvZiBpbmRpdmlkdWFsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgdGhlaXIgY29uc2VudDwvZW0+OiBQaG90b3Mgb3IgdmlkZW9zIHdoaWNoIGluY2x1ZGUgb3RoZXIgcGVvcGxlIHdobyBhcmUgbm90IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdCBvZiB0aGUgcGhvdG8gYW5kIGhhdmUgbm90IHNpZ25lZCBhIGNvbnNlbnQgLyByZWxlYXNlIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHNoYXJlIHRob3NlIHBob3RvcyBvciB2aWRlb3MsIGFyZSBub3QgcGVybWl0dGVkLiBBbnkgcGVyc29uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGFwcGVhcnMgaW4gdGhlIHBob3RvIG9yIHZpZGVvICh3aG9zZSBmYWNlIGlzIHZpc2libGUpIG11c3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgc2lnbmVkIGEgY29uc2VudCAvIHJlbGVhc2UgZm9ybSB3aGVyZSB0aGV5IGNvbnNlbnQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFyaW5nIG9mIHN1Y2ggcGhvdG8ocykgd2l0aCB0aGlyZCBwYXJ0aWVzLiBJZiB0aGUgaW5kaXZpZHVhbCBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgYSBjaGlsZCB1bmRlciB0aGUgYWdlIG9mIDE4IHllYXJzLCB0aGUgcGFyZW50cyBvciBndWFyZGlhbnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2ggY2hpbGQgbXVzdCBoYXZlIHNpZ25lZCBzdWNoIGNvbnNlbnQvIHJlbGVhc2UgZm9ybS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlVwbG9hZGluZyBDb250ZW50IChpbmNsdWRpbmcgcGhvdG9zIG9yIHZpZGVvcykgd2l0aCBldGhpY2FsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVzOiA8L2VtPlBob3RvZ3JhcGhzIG9yIHZpZGVvcyBjb250YWluaW5nIHZpb2xlbnQsIHBvcm5vZ3JhcGhpYywgc2Vuc2l0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IG9yIG90aGVyIGluYXBwcm9wcmlhdGUgQ29udGVudCBkZXNjcmliZWQgaW4gdGhpcyBDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBQb2xpY3kgdGhhdCBjb3VsZCwgaW4gc29tZSB3YXksIG9mZmVuZCBvdXIgVXNlcnMgYXJlIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZW0+VXBsb2FkaW5nIENvbnRlbnQgKGluY2x1ZGluZyBwaG90b3MsIHZpZGVvcyBvciBkb2N1bWVudHMpIHdoaWNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSBhdXRob3Jpc2F0aW9uIGZyb20gdGhlIGF1dGhvciAvIG93bmVyOiA8L2VtPkNlcnRhaW4gdHlwZXMgb2YgQ29udGVudCAoaW5jbHVkaW5nIHBob3RvZ3JhcGhzLCB2aWRlb3Mgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50cykgcmVxdWlyZSB0aGUgcGVybWlzc2lvbiBvZiB0aGUgYXV0aG9yIC8gb3duZXIgc3VjaCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29weXJpZ2h0ZWQgd29ya3MgKGVnLiBsb2dvcywgbGl0ZXJhcnkgb3IgYXJ0d29ya3MpLCBvclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlkZW50aWFsIGRvY3VtZW50cy4gSXQgaXMgaW1wb3J0YW50IHRoYXQgYmVmb3JlIHVwbG9hZGluZyBzdWNoXG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50LCBhcHByb3ByaWF0ZSB3cml0dGVuIHBlcm1pc3Npb25zIGFyZSB0YWtlbi5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGVtPlVwbG9hZGluZyBDb250ZW50IHdoaWNoIGRvZXNu4oCZdCBtZWV0IHNwZWNpZmllZCB0ZWNobmljYWwgb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWwgcmVxdWlyZW1lbnRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9lbT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5VcGxvYWRpbmcgcmVwZWF0cyBvZiB0aGUgc2FtZSBDb250ZW50LiA8L2VtPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT48ZW0+VXBsb2FkaW5nIGZpbGVzIHRoYXQgY29udGFpbiB2aXJ1c2VzIG9yIG1hbHdhcmUuPC9lbT48L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlRha2Vkb3duIFBvbGljeSAtIDwvaDQ+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBJZiBhIFVzZXIgYmVsaWV2ZXMgdGhhdCBjZXJ0YWluIENvbnRlbnQgcHVibGlzaGVkIG9uIERJS1NIQSBpcyBpblxuICAgICAgICAgICAgICAgICAgICAgICAgdmlvbGF0aW9uIG9mIHRoaXMgQ29udGVudCBQb2xpY3kgb3IgYW55IGFwcGxpY2FibGUgbGF3cyBwbGVhc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QgdXMgYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86c3VwcG9ydEB0ZWFtZGlrc2hhLm9yZ1wiPjxiPnN1cHBvcnRAdGVhbWRpa3NoYS5vcmc8L2I+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG5lY2Vzc2FyeSBhY3Rpb24gd2lsbCBiZSB0YWtlbiB0byByZXZpZXcgYW5kIC8gb3IgcmVtb3ZlIHN1Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgYXMgcXVpY2tseSBhcyBwb3NzaWJsZS5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWRtaW5pc3RyYXRvcnMgYW5kIHRlY2hub2xvZ3kgc3VwcG9ydCBwcm92aWRlcnMgb2YgRElLU0hBIHJlc2VydmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByaWdodCB0byByZW1vdmUgQ29udGVudCBmcm9tIERJS1NIQSB3aXRob3V0IGFueSBwcmlvciBub3RpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhbnkgdmlvbGF0aW9uIG9mIHRoZSBDb250ZW50IFBvbGljeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+LCBvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uIFRoZXkgbWF5IGF0IHRoZWlyIHNvbGUgYW5kIGFic29sdXRlIGRpc2NyZXRpb24gZGVsZXRlLCByZW1vdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlIGFjY2VzcyBvciBvdGhlcndpc2UgZGVhbCB3aXRoIGluZm9ybWF0aW9uLCBkYXRhIG9yIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvIGNvbXBseSB3aXRoIGxhd3MgY3VycmVudGx5IGluIGZvcmNlLCBpbmNsdWRpbmcgdGhlIEluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBUZWNobm9sb2d5IEFjdCwgMjAwMC5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgPGVtPkRJU0NMQUlNRVI6IFRob3VnaCBhbGwgZWZmb3J0cyBoYXZlIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhlIGFjY3VyYWN5XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgY3VycmVuY3kgb2YgdGhlIENvbnRlbnQgb24gRElLU0hBLCB0aGUgc2FtZSBzaG91bGQgbm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1ZWQgYXMgYSBzdGF0ZW1lbnQgb2YgbGF3IG9yIHVzZWQgZm9yIGFueSBsZWdhbCBwdXJwb3Nlcy4gSW4gbm9cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50IHdpbGwgdGhlIEdvdmVybm1lbnQgb2YgSW5kaWEsIE1vRSBvciBOQ0VSVCBiZSBsaWFibGUgZm9yIGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2UgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGluZGlyZWN0IG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50aWFsIGxvc3Mgb3IgZGFtYWdlLCBvciBhbnkgZXhwZW5zZSwgbG9zcyBvciBkYW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoYXRzb2V2ZXIgYXJpc2luZyBmcm9tIHVzZSwgb3IgbG9zcyBvZiB1c2UsIG9mIGRhdGEsIGFyaXNpbmcgb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgICAgICBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhlIHVzZSBvZiBESUtTSEEuIExpbmtzIHRvIG90aGVyIHdlYnNpdGVzIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBpbmNsdWRlZCBvbiB0aGlzIHBsYXRmb3JtIGFyZSBwcm92aWRlZCBmb3IgcHVibGljXG4gICAgICAgICAgICAgICAgICAgICAgICBjb252ZW5pZW5jZSBvbmx5LjwvZW0+XG4gICAgICAgICAgICAgICAgPC9wPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cInRleHQtcmlnaHQgVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj4tLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgUHJpdmFjeSBQb2xpY3kgb2YgRElLU0hBPC9hPi0tPlxuPCEtLSAgICAgICAgPC9zcGFuPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0IHB1bGwtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJncm91cC1ndWlkZWxpbmVzLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJncm91cEd1aWRlbGluZXNcIj5SZWFkIEdyb3VwIEd1aWRlbGluZXMgb2YgRElLU0hBIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvaT48L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tICAgIENvbnRlbnQgUG9saWN5IGVuZCBoZXJlLS0+XG5cbiAgICAgICAgPCEtLSAgICBHcm91cCBHdWlkZWxpbmVzIHN0YXJ0IGhlcmUtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnRcIiBzdWlUYWJDb250ZW50PVwiNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGVcIiBpZD1cImdyb3VwR3VpZGVsaW5lc1wiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cImdyb3VwLWd1aWRlbGluZXMtdGFiXCI+XG4gICAgICAgICAgICAgICAgPGg0PjxzdHJvbmc+RElLU0hBIEdyb3VwIEd1aWRlbGluZXM8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlc2UgR3JvdXAgR3VpZGVsaW5lcyBzcGVjaWZ5IHRoZSByaWdodHMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgb2ZcbiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyB3aG8gdXNlIGFuZCBwYXJ0aWNpcGF0ZSBpbiBHcm91cHMuIFRoZXNlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgIEd1aWRlbGluZXMgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPixcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5PC9iPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgYW5kXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwicHJpdmFjeS1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cInByaXZhY3lQb2xpY3lcIj48Yj5Qcml2YWN5IFBvbGljeTwvYj48L2E+LiBEZWZpbmVkIHRlcm1zIHVzZWQgYnV0IG5vdCBkZWZpbmVkIGhlcmVpbiBzaGFsbCBoYXZlIHRoZSBtZWFuaW5nXG4gICAgICAgICAgICAgICAgICAgIGFzY3JpYmVkIHRvIHRoZW0gaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiMVwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBpcyBhIEdyb3VwP1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkEgR3JvdXAgaXMgYSBzZXQgb2YgUmVnaXN0ZXJlZCBVc2VyczwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIEdyb3VwIGNhbiBiZSBjcmVhdGVkIGJ5IGEgR3JvdXAgQWRtaW4gYW5kIGNvbXByaXNlcyBHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1iZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwcyBhcmUgb25seSB2aXNpYmxlIHRvIHRoZSBHcm91cCBBZG1pbiB3aG8gaGFzIGNyZWF0ZWQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIGFuZCB0aGUgR3JvdXAgTWVtYmVycyBhc3NpZ25lZCB0byB0aGUgR3JvdXAuIEdyb3VwcyBhcmUgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEFkbWlucyBjYW4gYXNzaWduIGFjdGl2aXRpZXMgb24gRElLU0hBIHRvIHRoZSBHcm91cCBNZW1iZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXNpYmxlIG9uIHRoZSBHcm91cCkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgICAgICA8L2g0PjxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hvIGlzIGEgR3JvdXAgQWRtaW4/PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICBBIFJlZ2lzdGVyZWQgVXNlciB3aG8gaGFzIGNyZWF0ZWQgYSBHcm91cCBvciBoYXMgYmVlbiBhc3NpZ25lZCB0byBiZVxuICAgICAgICAgICAgICAgICAgICAgICAgYSBHcm91cCBBZG1pbiBieSBhbm90aGVyIEdyb3VwIEFkbWluXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hvIGlzIGEgR3JvdXAgTWVtYmVyPzwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgQSBSZWdpc3RlcmVkIFVzZXIgd2hvIGhhcyBiZWVuIGFkZGVkIHRvIEdyb3VwIGFzIGEgR3JvdXAgTWVtYmVyIGJ5IGFcbiAgICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEFkbWluLlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGNhbiBhIEdyb3VwIEFkbWluIGRvIG9uIERJS1NIQT88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5DcmVhdGUgYSBHcm91cDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkIC8gUmVtb3ZlIEdyb3VwIE1lbWJlcnM8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk1hcmsgYW5vdGhlciBHcm91cCBNZW1iZXIgYXMgYSBHcm91cCBBZG1pbjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+Vmlldywgc2VhcmNoIGFuZCBzdWdnZXN0IGFjdGl2aXRpZXMgb24gRElLU0hBIHRvIHRoZSBHcm91cDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyB0aGUgcHJvZ3Jlc3Mgb2YgaW5kaXZpZHVhbCBHcm91cCBNZW1iZXJzIGluIHJlbGF0aW9uIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdGllcyBvZiB0aGUgR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbXVuaWNhdGUgd2l0aCB0aGUgR3JvdXAgTWVtYmVycyAoYXMgYSBHcm91cCBhbmQgaW5kaXZpZHVhbGx5KVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5EZWxldGUgdGhlIEdyb3VwPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBSZWdpc3RlcmVkIFVzZXIgZGF0YSBkb2VzIHRoZSBHcm91cCBBZG1pbiBoYXZlIGFjY2VzcyB0bz88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5OYW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmVzcyBhbmQgbWlsZXN0b25lcyBhY2hpZXZlZCBieSBHcm91cCBNZW1iZXJzIGluIHJlbGF0aW9uIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFjdGl2aXRpZXMgb2YgdGhlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L29sPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5XaGF0IGFyZSB0aGUgcmVzcG9uc2liaWxpdGllcyBvZiB0aGUgR3JvdXAgQWRtaW4/PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgYWN0aXZpdGllcyBvZiB0aGUgR3JvdXAgYXJlIGluIGxpbmUgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4sIGFuZCBhY2NvcmRpbmdseSBtZWV0IHRoZSBBY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyB1c2UgdGhlIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnMgb25seSBmb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZXMgb2YgdHJhY2tpbmcgdGhlIHByb2dyZXNzIG9mIEdyb3VwIE1lbWJlcnMsIGFuZCBmb3Igbm9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciBwdXJwb3NlLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCBhbnkgY29tbXVuaWNhdGlvbiB3aXRoIEdyb3VwIE1lbWJlcnMgaXMgcmVsZXZhbnQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHVycG9zZSBvZiB0aGUgR3JvdXAgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlZnJhaW4gZnJvbSB1c2luZyB0aGUgR3JvdXAgZm9yIGFueSBvZiB0aGUgUHJvaGliaXRlZCBVc2VzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBjYW4gYSBHcm91cCBNZW1iZXIgZG8gb25jZSBhc3NpZ25lZCB0byBhIEdyb3VwPzwvaDQ+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcsIHBhcnRpY2lwYXRlIGFuZCBjb21tdW5pY2F0ZSBpbiByZWxhdGlvbiB0byB0aGUgYWN0aXZpdGllcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBHcm91cCBvbiBESUtTSEFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyB0aGVpciBvd24gcHJvZ3Jlc3MgaW4gcmVsYXRpb24gdG8gdGhlIGFjdGl2aXRpZXMgb2YgdGhlIEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlZpZXcgYSBsaXN0IG9mIG90aGVyIEdyb3VwIE1lbWJlcnM8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk9wdCBvdXQgb2YgYW55IEdyb3VwPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+V2hhdCBhcmUgdGhlIHJlc3BvbnNpYmlsaXRpZXMgb2YgdGhlIEdyb3VwIE1lbWJlcj88L2g0PlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCBhbnkgY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIEdyb3VwIE1lbWJlcnMgb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JvdXAgQWRtaW4gaXMgcmVsZXZhbnQgdG8gdGhlIHB1cnBvc2Ugb2YgdGhlIEdyb3VwIGFuZCBtZWV0IHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcHJvcHJpYXRlbmVzcyBzdGFuZGFyZHMgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlZnJhaW4gZnJvbSB1c2luZyB0aGUgR3JvdXAgZm9yIGFueSBvZiB0aGUgUHJvaGliaXRlZCBVc2VzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgIDwvb2w+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgQ29udGVudCBQb2xpY3kgb2YtLT5cbjwhLS0gICAgICAgICAgICBESUtTSEE8L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHVsbC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvdXJzZS1ndWlkZWxpbmVzLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb3Vyc2VHdWlkZWxpbmVzXCI+UmVhZCBDb3Vyc2UgR3VpZGVsaW5lcyBvZiBESUtTSEEgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPjwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgR3JvdXAgR3VpZGVsaW5lcyBlbmQgaGVyZS0tPlxuXG4gICAgICAgIDwhLS0gICAgQ291cnNlIEd1aWRlbGluZXMgc3RhcnQgaGVyZS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudFwiIHN1aVRhYkNvbnRlbnQ9XCI1XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiY291cnNlR3VpZGVsaW5lc1wiICBhcmlhLWxhYmVsbGVkYnk9XCJjb3Vyc2UtZ3VpZGVsaW5lcy10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5ESUtTSEEgQ291cnNlIFRlcm1zPC9zdHJvbmc+PC9oND5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0YWdMaW5lXCI+PGVtPiAoIExhc3QgdXBkYXRlZCBvbiA8Yj4yOC0wNC0yMDIxPC9iPiApPC9lbT48L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBUaGVzZSBDb3Vyc2UgVGVybXMgc3BlY2lmeSB0aGUgcmlnaHRzIGFuZCByZXNwb25zaWJpbGl0aWVzIG9mIFJlZ2lzdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgVXNlcnMgd2hvIGNob29zZSB0byBqb2luIGEgY291cnNlIG9uIERJS1NIQSBhbmQgQWRtaW5pc3RyYXRvcnMgb2ZcbiAgICAgICAgICAgICAgICAgICAgY291cnNlcyBvbiBESUtTSEEuIEFkbWluaXN0cmF0b3JzIG9mIGEgY291cnNlIGFyZSBSZWdpc3RlcmVkIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcmlzZWQgYnkgSW5zdGl0dXRpb25hbCBVc2VycyB0byBvZmZlciBjb3Vyc2VzIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Gb3IgUmVnaXN0ZXJlZCBVc2VycyA8L2g0PlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiMVwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+QSBSZWdpc3RlcmVkIFVzZXIgdGhhdCBjaG9vc2VzIHRvIGpvaW4gYSBjb3Vyc2Ugb24gRElLU0hBXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW46PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFjY2VzcyB0aGUgY291cnNlIGFuZCBpdHMgQ29udGVudDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+VmlldyB0aGVpciBvd24gcHJvZ3Jlc3M8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyBhbmQgZG93bmxvYWQgYW55IGNlcnRpZmljYXRlcyByZWNlaXZlZCBvbiBhY2hpZXZpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxlc3RvbmVzIGluIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+T3B0IG91dCBvZiB0aGUgY291cnNlIGF0IGFueSB0aW1lPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm92aWRlIGNvbnNlbnQgZm9yIHNoYXJpbmcgcGVyc29uYWwgaW5mb3JtYXRpb24gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkbWluaXN0cmF0b3JzIG9mIGEgY291cnNlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldm9rZSBjb25zZW50IGZvciBzaGFyaW5nIHBlcnNvbmFsIGluZm9ybWF0aW9uIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZG1pbmlzdHJhdG9ycyBvZiBhIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPkFjY2VzcyBhbmQgUmV2b2NhdGlvbiBvZiBhY2Nlc3MgdG8gZGF0YSBhbmQgaW5mb3JtYXRpb24gb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcjpcbiAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5IGNob29zaW5nIHRvIGpvaW4gYSBjb3Vyc2UsIHRoZSBSZWdpc3RlcmVkIFVzZXIgYWdyZWVzIHRvIGdpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZSBhY2Nlc3MgdG8gdGhlaXIgTmFtZSwgU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdHJpY3QsIHByb2dyZXNzIGluIHRoZSBjb3Vyc2UgYW5kIG1pbGVzdG9uZXMgYWNoaWV2ZWQgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mIGFuYWx5c2luZyB1c2FnZSBvZiBDb250ZW50IHRvIGltcHJvdmUgY29udGVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciBvZmZlcmluZ3MuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwb24gam9pbmluZyBhIGNvdXJzZSwgYSBSZWdpc3RlcmVkIFVzZXIgaGFzIHRoZSBvcHRpb24gdG8gcHJvdmlkZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZWlyIGV4cGxpY2l0IGNvbnNlbnQgdG8gZ2l2ZSB0aGUgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIG5hbWVseTogKGkpIFVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCAoVGVhY2hlciBJRCkgKGlpKSBCbG9jayAoaWlpKSBTY2hvb2wgVS1ESVNFIGNvZGUgLyBPcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCBvciBudW1iZXIgKGl2KSBTY2hvb2wvT3JnYW5pc2F0aW9uIG5hbWUgKHYpIG1vYmlsZSBudW1iZXIgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpKSBlbWFpbCBhZGRyZXNzLiBUaGlzIGNvbnNlbnQgY2FuIGJlIGdpdmVuIGVpdGhlciB3aGVuIHByb21wdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgYSBwb3AtdXAgb3IgYnkgY2hhbmdpbmcgdGhlaXIgZGF0YSBzaGFyaW5nIHNldHRpbmdzLiBUaGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjYW4gb25seSBiZSB1c2VkIGJ5IHRoZSBBZG1pbmlzdHJhdG9ycyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb3Vyc2UgZm9yIHRoZSBwdXJwb3NlIG9mOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dHJhY2tpbmcgcHJvZ3Jlc3Mgb2YgdGhlIFJlZ2lzdGVyZWQgVXNlciA7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaW5nIHVzYWdlIHRvIGltcHJvdmUgdGhlIGNvdXJzZSwgQ29udGVudCBhbmQgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZmVyaW5ncztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnZhbGlkYXRpbmcgY29udGFjdCBkZXRhaWxzOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5pc3N1aW5nIGNlcnRpZmljYXRlczsgYW5kPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdGluZyBSZWdpc3RlcmVkIFVzZXJzIHRvIHNlbmQgcmVsZXZhbnQgaW5mb3JtYXRpb24gb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZWsgZmVlZGJhY2suXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBjYW4gcmV2b2tlIHRoZWlyIGNvbnNlbnQgdG8gc2hhcmluZyBhZGRpdGlvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYXQgYW55IHRpbWUgYnkgY2hhbmdpbmcgdGhlaXIgZGF0YSBzaGFyaW5nIHNldHRpbmdzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UmVzcG9uc2liaWxpdGllcyBvZiBSZWdpc3RlcmVkIFVzZXJzOiA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgYW55IG9mIHRoZWlyIGNvbW11bmljYXRpb24gaXMgcmVsZXZhbnQgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVycG9zZSBvZiB0aGUgY291cnNlIGFuZCBtZWV0IHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIHVzZSBvZiBjb3Vyc2VzIGRvZXMgbm90IHZpb2xhdGUgYW55IG9mIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZSA8c3Ryb25nPlRlcm1zIG9mIFVzZTwvc3Ryb25nPi5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5Gb3IgQWRtaW5pc3RyYXRvcnMgb2YgdGhlIGNvdXJzZTwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5BZG1pbmlzdHJhdG9ycyBvZiBhIGNvdXJzZSBvbiBESUtTSEEgY2FuOiA8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+Q3JlYXRlLCByZXZpZXcgb3IgcHVibGlzaCBjb3Vyc2VzIG9uIERJS1NIQTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIGNvdXJzZXMgY3JlYXRlZCBieSBvciBhc3NpZ25lZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW0sIHdoaWNoIGNvbnRhaW46XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsIFN0YXRlLCBEaXN0cmljdCBhbmQgcHJvZ3Jlc3MgZGF0YSBvZiB0aGUgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgd2hvIGhhdmUgY2hvc2VuIHRvIGpvaW4gdGhlIGNvdXJzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJRCAoVGVhY2hlciBJRCksIEJsb2NrLCBTY2hvb2wgVS1ESVNFIGNvZGUgLyBPcmdhbmlzYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEIG9yIG51bWJlciwgU2Nob29sL09yZ2FuaXNhdGlvbiBuYW1lLCBtb2JpbGUgbnVtYmVyLCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsIGFkZHJlc3Mgb2YgUmVnaXN0ZXJlZCBVc2Vycywgb25seSBpZiB0aGUgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgaGF2ZSBnaXZlbiB0aGVpciBleHBsaWNpdCBjb25zZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3Vyc2UgdXNhZ2UgZGF0YSBzdWNoIGFzIHByb2dyZXNzIGFuZCBjb21wbGV0aW9uIGRldGFpbHMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciByZWxhdGVkIG1hdHRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IGFuZCB1c2Ugc3VjaCBkYXRhIGFuZCBpbmZvcm1hdGlvbi4gUmVwb3J0cyB3aXRoIHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIG9ubHkgZm9yIGEgbGltaXRlZCBwZXJpb2RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aW1lIGFuZCB3aWxsIGV4cGlyZSBpbiAxNSBkYXlzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgdGhlIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBSZWdpc3RlcmVkIFVzZXJzIG9ubHkgZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cnBvc2VzIG9mOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dHJhY2tpbmcgdGhlaXIgcHJvZ3Jlc3M7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHlzaW5nIHVzYWdlIG9mIENvbnRlbnQgdG8gaW1wcm92ZSBjb250ZW50IGFuZCBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2ZmZXJpbmdzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+dmFsaWRhdGluZyBjb250YWN0IGRldGFpbHM7PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPmlzc3VpbmcgY2VydGlmaWNhdGVzOyBhbmQ8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0aW5nIFJlZ2lzdGVyZWQgVXNlcnMgdG8gc2VuZCByZWxldmFudCBpbmZvcm1hdGlvbiBvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlayBmZWVkYmFjay5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYW5kIGlzc3VlIGNlcnRpZmljYXRlcyBmb3IgUmVnaXN0ZXJlZCBVc2VycyB3aG8gaGF2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjaGlldmVkIG1pbGVzdG9uZXMgaW4gdGhlIGNvdXJzZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvb2w+XG5cblxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJlc3BvbnNpYmlsaXRpZXMgb2YgQWRtaW5pc3RyYXRvcnMgb2YgYSBjb3Vyc2U6IDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCB0aGUgY291cnNlcyBjcmVhdGVkLCByZXZpZXdlZCBvciBwdWJsaXNoZWQgYnkgdGhlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBpbiBsaW5lIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJjb250ZW50LXBvbGljeS10YWJcIiB0YWJwYW5ldG9zaG93PVwiY29udGVudFBvbGljeVwiPjxiPkNvbnRlbnQgUG9saWN5IG9mIERJS1NIQTwvYj48L2E+LCBhbmQgYWNjb3JkaW5nbHkgbWVldCB0aGUgQWNjdXJhY3kgYW5kIEFwcHJvcHJpYXRlbmVzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gcmVzcGVjdCB0aGUgcHJpdmFjeSBhbmQgZGF0YSBwcm90ZWN0aW9uIHJpZ2h0cyBvZiBSZWdpc3RlcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSkgc2hhcmVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnMgaXMgbGltaXRlZCBzb2xlbHkgdG8gdGhlIHB1cnBvc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudGlvbmVkIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIGtub3cgdGhhdCBhbnkgdXNlIG9mIGRhdGEgZm9yIHB1cnBvc2VzIG91dHNpZGUgb2YgdGhlIHByb3BlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBzaGFsbCBiZSBjb25zaWRlcmVkIHZpb2xhdGlvbiBvZiB0aGUgdGVybXMgb2YgdGhlIHBvbGljaWVzIG9mXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGFuZCBsaWFibGUgZm9yIHN1Y2ggYWN0aW9ucyBhbmQgZm9yIGFueSBsb3NzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZGFtYWdlIGFyaXNpbmcgZnJvbSBmYWlsdXJlIHRvIGNvbXBseSB3aXRoIHRoaXMgb2JsaWdhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgdGhlaXIgY29tbXVuaWNhdGlvbiAoaWYgYW55KSB3aXRoIFJlZ2lzdGVyZWQgVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlIG9mIHRoZSBjb3Vyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbWVldHMgdGhlIEFwcHJvcHJpYXRlbmVzcyBzdGFuZGFyZHMgc2V0IG91dCBpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4uIFRoZSBlbWFpbCBhZGRyZXNzIGFuZCBwaG9uZSBudW1iZXIgb2YgUmVnaXN0ZXJlZCBVc2VycyBzaGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkgYmUgdXNlZCB0byBzaGFyZSBpbmZvcm1hdGlvbiBpbiBjb25uZWN0aW9uIHdpdGggdGhlIGNvdXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBzaGFsbCBub3QgdW5kZXIgYW55IGNpcmN1bXN0YW5jZSBiZSB1c2VkIGZvciBhbnkgb3RoZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXR0ZXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBlbnN1cmUgdGhhdCB0aGVpciBjb3Vyc2VzIGFyZSBub3QgdXNlZCBmb3IgYW55IG9mIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2hpYml0ZWQgVXNlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlIG9mIERJS1NIQTwvYj48L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9vbD5cblxuICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxlbT5UaGVzZSBDb3Vyc2UgR3VpZGVsaW5lcyBzaG91bGQgYmUgcmVhZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgcG9saWNpZXMgYW5kIGd1aWRlbGluZXMgb2YgRElLU0hBLCBpbmNsdWRpbmcgdGhlIDwvZW0+PHN0cm9uZz48ZW0+PGEgY2xhc3M9XCJUZXJtc09mVXNlQ2xpY2tcIiB0YWJ0b3Nob3c9XCJ0ZXJtcy1vZi11c2UtdGFiXCIgdGFicGFuZXRvc2hvdz1cInRlcm1zT2ZVc2VcIj48Yj5UZXJtcyBvZiBVc2U8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPiwgPC9lbT48c3Ryb25nPjxlbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3k8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPiBhbmQgPC9lbT48c3Ryb25nPjxlbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+UHJpdmFjeSBQb2xpY3k8L2I+PC9hPjwvZW0+PC9zdHJvbmc+PGVtPi4gRGVmaW5lZCB0ZXJtcyB1c2VkIGJ1dCBub3QgZGVmaW5lZCBoZXJlaW4gc2hhbGwgaGF2ZSB0aGUgbWVhbmluZ1xuICAgICAgICAgICAgICAgICAgICBhc2NyaWJlZCB0byB0aGVtIGluIHRoZSA8L2VtPjxzdHJvbmc+PGVtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+VGVybXMgb2YgVXNlPC9iPjwvYT48L2VtPjwvc3Ryb25nPjxlbT4uIDwvZW0+XG4gICAgICAgICAgICAgICAgPC9wPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGVmdFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImdyb3VwLWd1aWRlbGluZXMtdGFiXCIgdGFicGFuZXRvc2hvdz1cImdyb3VwR3VpZGVsaW5lc1wiPi0tPlxuPCEtLSAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tbGVmdFwiPjwvaT4gUmVhZCBHcm91cCBHdWlkZWxpbmVzIG9mIERJS1NIQS0tPlxuPCEtLSAgICAgICAgICA8L2E+LS0+XG48IS0tICAgICAgICA8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHQgcHVsbC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImFkbWluaXN0cmF0b3ItZ3VpZGVsaW5lcy10YWJcIiB0YWJwYW5ldG9zaG93PVwiYWRtaW5pc3RyYXRvckd1aWRlbGluZXNcIj4tLT5cbjwhLS0gICAgICAgICAgICBSZWFkIEFkbWluaXN0cmF0b3IgR3VpZGVsaW5lcyBvZiBESUtTSEEtLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+LS0+XG48IS0tICAgICAgICAgIDwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgQ291cnNlIEd1aWRlbGluZXMgZW5kIGhlcmUtLT5cblxuICAgICAgICA8IS0tICAgIEFkbWluaXN0cmF0b3IgR3VpZGVsaW5lcyBzdGFydCBoZXJlLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50XCIgc3VpVGFiQ29udGVudD1cIjZcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJhZG1pbmlzdHJhdG9yR3VpZGVsaW5lc1wiIGFyaWEtbGFiZWxsZWRieT1cImFkbWluaXN0cmF0b3ItZ3VpZGVsaW5lcy10YWJcIj5cbiAgICAgICAgICAgICAgICA8aDQ+PHN0cm9uZz5BZG1pbmlzdHJhdG9yIEd1aWRlbGluZXM8L3N0cm9uZz48L2g0PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRhZ0xpbmVcIj48ZW0+KCBMYXN0IHVwZGF0ZWQgb24gPGI+MjgtMDQtMjAyMTwvYj4gKTwvZW0+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVGhlc2UgQWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIHNwZWNpZnkgdGhlIHJpZ2h0cyBhbmQgcmVzcG9uc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBvZiBSZWdpc3RlcmVkIFVzZXJzIHdobyBhcmUgQWRtaW5pc3RyYXRvcnMgb24gRElLU0hBLiBBZG1pbmlzdHJhdG9ycyBhcmVcbiAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJlZCBVc2VycyBhdXRob3Jpc2VkIGJ5IEluc3RpdHV0aW9uYWwgVXNlcnMgdG8gYmUgYWRtaW5pc3RyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgb24gRElLU0hBIG9uIHRoZWlyIGJlaGFsZi5cbiAgICAgICAgICAgICAgICA8L3A+XG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+QWRtaW5pc3RyYXRvcnMgb24gRElLU0hBIGNhbjo8L2g0PlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIEFjY2VzcyB0aGUgZm9sbG93aW5nIGRhdGEgYW5kIGluZm9ybWF0aW9uIG9mIFJlZ2lzdGVyZWQgVXNlcnM6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPk5hbWU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+U3RhdGU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+RGlzdHJpY3Q8L2VtPjwvc3Ryb25nPiBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPmNvdXJzZSBwcm9ncmVzcyBkYXRhPC9lbT48L3N0cm9uZz4gb2YgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIHdobyBoYXZlIGNob3NlbiB0byBqb2luIGNvdXJzZXMgb2ZmZXJlZCBieVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRoZSBJbnN0aXR1dGlvbmFsIFVzZXIgdGhhdCB0aGUgQWRtaW5pc3RyYXRvciBiZWxvbmdzIHRvLFxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxlbT5Vc2VyIElEPC9lbT48L3N0cm9uZz4gKDE2IGRpZ2l0IHJhbmRvbWlzZWQgc3lzdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZWQgaWRlbnRpZmllciBmb3IgZXZlcnkgUmVnaXN0ZXJlZCBVc2VyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPmV4dGVybmFsIElEPC9lbT48L3N0cm9uZz4gKElEIGVudGVyZWQgYnkgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXIgd2hlbiB0aGV5IGNob29zZSB0byBzdWJtaXQgYWRkaXRpb25hbCBkZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZWlyIHByb2ZpbGUpLCA8c3Ryb25nPjxlbT5CbG9jazwvZW0+PC9zdHJvbmc+LFxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48ZW0+U2Nob29sIFUtRElTRSBjb2RlIC8gT3JnYW5pc2F0aW9uIElEIG9yIG51bWJlcjwvZW0+PC9zdHJvbmc+LCA8c3Ryb25nPjxlbT5TY2hvb2wvT3JnYW5pc2F0aW9uIG5hbWU8L2VtPjwvc3Ryb25nPiwgPHN0cm9uZz48ZW0+bW9iaWxlIG51bWJlcihzKTwvZW0+PC9zdHJvbmc+LCBhbmQgPHN0cm9uZz48ZW0+ZW1haWwgYWRkcmVzcyhzKTwvZW0+PC9zdHJvbmc+IGxpbmtlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHByb2ZpbGUgb2YgdGhlIFJlZ2lzdGVyZWQgVXNlcnMgb3IgYWRkaXRpb25hbGx5IHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgUmVnaXN0ZXJlZCBVc2VyLCA8c3Ryb25nPm9ubHkgaWY8L3N0cm9uZz4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIGhhdmUgZ2l2ZW4gdGhlaXIgZXhwbGljaXQgY29uc2VudCB0byBzaGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhlc2UgZGV0YWlscyB3aXRoIHRoZSBBZG1pbmlzdHJhdG9ycy4gVGhpcyBBZG1pbmlzdHJhdG9yIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlbG9uZyB0byB0aGUgc2FtZSBJbnN0aXR1dGlvbmFsIFVzZXIgdGhhdCB0aGUgUmVnaXN0ZXJlZCBVc2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWxvbmdzIHRvLlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvb2w+XG5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgZGF0YSBhbmQgaW5mb3JtYXRpb24gaW4gcmVsYXRpb24gdG8gdXNhZ2Ugb2YgRElLU0hBIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAgICAgQ29udGVudCwgd2hpY2ggaW5jbHVkZXM6IDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxvbCBjbGFzcz1cImFycm93LWxpc3RcIiB0eXBlPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50IHBsYXlzIChpLmUuIGFueSBDb250ZW50IHBsYXllZCAvIHZpZXdlZCAvIHVzZWQgZm9yIGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFzdCAxMCBzZWNvbmRzKVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+Q29udGVudCBwbGF5IHRpbWUgKGluIG1pbnV0ZXMpPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUVIgY29kZSBzY2FucyAoaW5jbHVkaW5nIHVzaW5nIHRoZSBESUFMIENvZGUgZGlyZWN0bHkpIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkIHNjYW5zXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5Vc2VyIHJhdGluZ3MgYW5kIGZlZWRiYWNrIGZvciBDb250ZW50PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPk51bWJlciBhbmQgdHlwZXMgb2YgdW5pcXVlIGRldmljZXM8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+VHJhbnNhY3Rpb25zIHBlciBzZWNvbmQgb24gRElLU0hBPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0cyB0aGF0IGNvbXBpbGUgdGhlIGFib3ZlIG1lbnRpb25lZCBkYXRhIGFuZCBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgYnkgYm9hcmQsIG1lZGl1bSwgZ3JhZGUsIHN1YmplY3QsIGxvY2F0aW9uLCBjcmVhdG9yLCBkZXZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsIG51bWJlciBvZiB1bmlxdWUgZGV2aWNlcywgZW5lcmdpc2VkIHRleHRib29rIHNvIGFzIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUgQWRtaW5pc3RyYXRvcnMgdG8gbGVhcm4gYWJvdXQgdXNhZ2Ugb2YgRElLU0hBIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgaW4gZGlmZmVyZW50IGNvbnRleHRzXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgdGhhdCBjb21waWxlIHRoZSBDb250ZW50IHByb3ZpZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIHRvb2xzIGxpa2Ugc3VydmV5cywgb2JzZXJ2YXRpb25zLCBhbmQgcHJvamVjdHNcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L29sPlxuXG4gICAgICAgICAgICAgICAgPHN0cm9uZz4gVXNlIHRoZSBkYXRhIGFuZCBpbmZvcm1hdGlvbiBvbmx5IGZvciB0aGUgcHVycG9zZXMgb2Y6PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPG9sIGNsYXNzPVwiYXJyb3ctbGlzdFwiIHR5cGU9XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEdhaW5pbmcgaW5zaWdodHMgdGhyb3VnaCBhbmFseXNpcyBvZiBkYXRhIHRvIGltcHJvdmUgcXVhbGl0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZW5lc3MsIHJlbGV2YW5jZSwgdXNhZ2Ugb2YgQ29udGVudCwgY291cnNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRib29rcywgcHJvZ3JhbXMgYW5kIG90aGVyIG9mZmVyaW5ncyBvdmVyIHRpbWUgYmFzZWQgb25cbiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRlbnQgdXNhZ2UsIGludGVyZXN0LCB1c2VyIGZlZWRiYWNrLCBwb3B1bGFyaXR5LCBjb21wbGV0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICByYXRlcywgaWRlbnRpZmllZCBtaXNjb25jZXB0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgQXNzZXNzaW5nLCBldmFsdWF0aW5nLCB2YWxpZGF0aW5nIENvbnRlbnQgc3VibWl0dGVkIC8gcG9zdGVkIC9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkIC8gb3RoZXJ3aXNlIHByb3ZpZGVkIGJ5IFJlZ2lzdGVyZWQgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkaW5nIGRldGFpbHMgc3VibWl0dGVkIGFuZCBleHByZXNzbHkgc2hhcmVkIGJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcmVkIFVzZXJzIG9ubHkgZm9yIHRoZSBwdXJwb3NlcyBtZW50aW9uZWQgaGVyZWluIGFuZCBpblxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHRoZSBwb2xpY2llcyBvZiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICBHcmFudCBvciByZXZva2UgcmlnaHRzIHRvIGNyZWF0ZSwgY3VyYXRlLCByZXZpZXcgb3IgcHVibGlzaFxuICAgICAgICAgICAgICAgICAgICBDb250ZW50IG9uIERJS1NIQSB0byBSZWdpc3RlcmVkIFVzZXJzLlxuICAgICAgICAgICAgICAgIDwvc3Ryb25nPlxuXG5cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+UmVzcG9uc2liaWxpdGllcyBvZiBBZG1pbmlzdHJhdG9yczogPC9oND5cbiAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8gZW5zdXJlIHRoYXQgdGhlIENvbnRlbnQgY3JlYXRlZCwgcmV2aWV3ZWQgb3IgcHVibGlzaGVkIGJ5IHRoZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBpbiBsaW5lIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3kgb2YgRElLU0hBPC9iPjwvYT4sIGFuZCBhY2NvcmRpbmdseSBtZWV0IHRoZSBBY2N1cmFjeSBhbmQgQXBwcm9wcmlhdGVuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZHM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIHJlc3BlY3QgdGhlIHByaXZhY3kgYW5kIGRhdGEgcHJvdGVjdGlvbiByaWdodHMgb2YgUmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnM7XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGUgc2VjdXJpdHkgb2YgYW5kIHVzZSBvZiBkYXRhIChlc3BlY2lhbGx5IHBlcnNvbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhKSBzaGFyZWQgYnkgUmVnaXN0ZXJlZCBVc2VycyBvciBvYnRhaW5lZCBmcm9tIERJS1NIQSBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlZCBzb2xlbHkgdG8gdGhlIHB1cnBvc2VzIG1lbnRpb25lZCBoZXJlIGFuZCBpcyBub3QgdXNlZCBmb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9XCJhcnJvdy1saXN0XCIgdHlwZT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2FsZSBvciBvdGhlciBjb21tZXJjaWFsIHB1cnBvc2VzOzwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkdmVydGlzaW5nIG9yIG1hcmtldGluZzs8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvbmUgY2FsbHMgb3Igb3RoZXIgZm9ybXMgb2YgdW5zb2xpY2l0ZWQgY29tbXVuaWNhdGlvbiB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCByZWxhdGVkIHRvIHVzYWdlIG9mIERJS1NIQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGRpbmcgYSBwZXJzb25hbCBwcm9maWxlLCBvdGhlciB0aGFuIGZvciBlZHVjYXRpb25hbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJwb3NlcyBvbiBESUtTSEE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmFtaW5nLCBoYXJhc3NpbmcsIGFidXNpbmcsIHRocmVhdGVuaW5nIG9yIGRlZnJhdWRpbmcgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyZWQgVXNlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltcGVyc29uYXRpbmcgYW55IHBlcnNvbiBvciBlbnRpdHksIGZhbHNlbHkgY2xhaW1pbmcgYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaWxpYXRpb24gd2l0aCBhbnkgcGVyc29uIG9yIGVudGl0eSwgb3IgYWNjZXNzaW5nIERJS1NIQVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50cyB3aXRob3V0IHBlcm1pc3Npb24sIG9yIHBlcmZvcm0gYW55IG90aGVyIGZyYXVkdWxlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRpbmcganVuayBtYWlsIG9yIHNwYW0sIGluZm9ybWF0aW9uYWwgYW5ub3VuY2VtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcml0eSByZXF1ZXN0cywgYW5kIHBldGl0aW9ucyBmb3Igc2lnbmF0dXJlcyBldGMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueSBvZiB0aGUgUHJvaGliaXRlZCBQdXJwb3NlcyBzZXQgb3V0IGluIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPlRlcm1zIG9mIFVzZTwvYj48L2E+OyBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55IHB1cnBvc2UgdGhhdCBpcyBub3QgZGlzY2xvc2VkIGluIHRoaXMgcG9saWN5IG9yIG9uIERJS1NIQS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG8ga25vdyB0aGF0IGFueSB1c2Ugb2YgZGF0YSBmb3IgcHVycG9zZXMgb3V0c2lkZSBvZiB0aGUgcHJvcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Ugc2hhbGwgYmUgY29uc2lkZXJlZCB2aW9sYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoZSBwb2xpY2llcyBvZlxuICAgICAgICAgICAgICAgICAgICAgICAgRElLU0hBIGFzIHdlbGwgYXMgYXBwbGljYWJsZSBsYXdzIGFuZCBwb2xpY2llcyBvZiBJbmRpYSBhbmQgdGhleVxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhbGwgYmUgcmVzcG9uc2libGUgYW5kIGxpYWJsZSBmb3Igc3VjaCBhY3Rpb25zIGFuZCBmb3IgYW55IGxvc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yIGRhbWFnZSBhcmlzaW5nIGZyb20gZmFpbHVyZSB0byBjb21wbHkgd2l0aCB0aGlzIG9ibGlnYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZWlyIGNvbW11bmljYXRpb24gKGlmIGFueSkgd2l0aCBSZWdpc3RlcmVkIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBpcyBleHBsaWNpdGx5IGxpbWl0ZWQgYW5kIHJlbGV2YW50IHRvIHRoZSBwdXJwb3NlcyBzcGVjaWZpZWQgaGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1lZXRzIHRoZSBBcHByb3ByaWF0ZW5lc3Mgc3RhbmRhcmRzIHNldCBvdXQgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cImNvbnRlbnQtcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJjb250ZW50UG9saWN5XCI+PGI+Q29udGVudCBQb2xpY3k8L2I+PC9hPi4gVGhlIGVtYWlsIGFkZHJlc3MgYW5kIHBob25lIG51bWJlciBvZiBSZWdpc3RlcmVkIFVzZXJzIHNoYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGJlIHVzZWQgdG8gc2hhcmUgaW5mb3JtYXRpb24gaW4gY29ubmVjdGlvbiB3aXRoIHVzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCBoZXJlIGFuZCBzaGFsbCBub3QgdW5kZXIgYW55IGNpcmN1bXN0YW5jZSBiZSB1c2VkIGZvclxuICAgICAgICAgICAgICAgICAgICAgICAgYW55IG90aGVyIG1hdHRlcnMuXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cblxuXG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxlbT5UaGVzZSBBZG1pbmlzdHJhdG9yIEd1aWRlbGluZXMgc2hvdWxkIGJlIHJlYWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljaWVzIGFuZCBndWlkZWxpbmVzIG9mIERJS1NIQSwgaW5jbHVkaW5nIHRoZSA8L2VtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwidGVybXMtb2YtdXNlLXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJ0ZXJtc09mVXNlXCI+PGI+PGVtPlRlcm1zIG9mIFVzZTwvZW0+PC9iPjwvYT48ZW0+LCA8L2VtPjxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY29udGVudC1wb2xpY3ktdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvbnRlbnRQb2xpY3lcIj48Yj48ZW0+Q29udGVudCBQb2xpY3k8L2VtPjwvYj48L2E+PGVtPiBhbmQgPC9lbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInByaXZhY3ktcG9saWN5LXRhYlwiIHRhYnBhbmV0b3Nob3c9XCJwcml2YWN5UG9saWN5XCI+PGI+PGVtPlByaXZhY3kgUG9saWN5PC9lbT48L2I+PC9hPjxlbT4uIERlZmluZWQgdGVybXMgdXNlZCBidXQgbm90IGRlZmluZWQgaGVyZWluIHNoYWxsIGhhdmUgdGhlIG1lYW5pbmdcbiAgICAgICAgICAgICAgICAgICAgYXNjcmliZWQgdG8gdGhlbSBpbiB0aGUgPC9lbT48YSBjbGFzcz1cIlRlcm1zT2ZVc2VDbGlja1wiIHRhYnRvc2hvdz1cInRlcm1zLW9mLXVzZS10YWJcIiB0YWJwYW5ldG9zaG93PVwidGVybXNPZlVzZVwiPjxiPjxlbT5UZXJtcyBvZiBVc2U8L2VtPjwvYj48L2E+PGVtPi4gPC9lbT5cbiAgICAgICAgICAgICAgICA8L3A+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnRcIj4tLT5cbjwhLS0gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZWZ0XCI+LS0+XG48IS0tICAgICAgICAgIDxhIGNsYXNzPVwiVGVybXNPZlVzZUNsaWNrXCIgdGFidG9zaG93PVwiY291cnNlLWd1aWRlbGluZXMtdGFiXCIgdGFicGFuZXRvc2hvdz1cImNvdXJzZUd1aWRlbGluZXNcIj4tLT5cbjwhLS0gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+IFJlYWQgQ291cnNlIEd1aWRlbGluZXMgb2YgRElLU0hBLS0+XG48IS0tICAgICAgICAgIDwvYT4tLT5cbjwhLS0gICAgICAgIDwvc3Bhbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gICAgQWRtaW5pc3RyYXRvciBHdWlkZWxpbmVzIGVuZCBoZXJlLS0+XG4gICAgPC9zdWktdGFic2V0PlxuPC9kaXY+XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs deleted file mode 100644 index e4d1e953c2e..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-add/user-segment-add.component.mjs +++ /dev/null @@ -1,221 +0,0 @@ -import { Component, EventEmitter, Output } from '@angular/core'; -import { Validators } from '@angular/forms'; -import * as i0 from "@angular/core"; -import * as i1 from "../../services/uci.service"; -import * as i2 from "@angular/forms"; -import * as i3 from "../../services/uci-graph-ql.service"; -import * as i4 from "@angular/common"; -import * as i5 from "@project-sunbird/ng2-semantic-ui"; -export class UserSegmentAddComponent { - constructor(uciService, fb, uciGraphQlService) { - this.uciService = uciService; - this.fb = fb; - this.uciGraphQlService = uciGraphQlService; - this.cancel = new EventEmitter(); - this.add = new EventEmitter(); - this.userSegment = {}; - this.isLoaderShow = false; - this.districts = []; - this.blocks = []; - this.schools = []; - this.clusters = []; - this.roles = []; - this.boards = []; - this.grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]; - this.subjects = []; - this.state = 'Haryana'; - } - ngOnInit() { - this.getUciDistrict(); - this.getUciRole(); - this.getUciBoard(); - this.userSegmentForm = this.fb.group({ - name: ['', Validators.required], - description: [''], - district: [''], - block: [''], - cluster: [''], - school: [''], - role: [''], - board: [''], - grade: [''], - subject: [''] - }); - this.userSegmentForm.get('district').valueChanges.subscribe(item => { - if (item) { - this.userSegmentForm.get('block').patchValue(''); - this.blocks = []; - this.userSegmentForm.get('cluster').patchValue(''); - this.userSegmentForm.get('school').patchValue(''); - this.schools = []; - this.clusters = []; - this.getUciBlock(); - } - }); - this.userSegmentForm.get('block').valueChanges.subscribe(item => { - if (item) { - this.userSegmentForm.get('cluster').patchValue(''); - this.userSegmentForm.get('school').patchValue(''); - this.schools = []; - this.clusters = []; - this.getUciCluster(); - this.getUciSchoolDetails(); - } - }); - } - onCancel() { - this.cancel.emit(false); - } - onAdd() { - if (this.userSegmentForm.invalid) { - return; - } - this.isLoaderShow = true; - const formValue = this.userSegmentForm.value; - const locationData = []; - const blockData = []; - const districtData = []; - for (const school of this.schools) { - if (formValue.school.indexOf(school.school) !== -1) { - locationData.push(school); - if (blockData.indexOf(school.block) === -1) { - blockData.push(school.block); - districtData.push(school.district); - } - } - if (locationData.length === formValue.school) { - break; - } - } - if (blockData.length < formValue.block.length) { - for (const block of this.blocks) { - if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) { - locationData.push(block); - blockData.push(block.block); - districtData.push(block.district); - } - if (blockData.length === formValue.block) { - break; - } - } - } - if (districtData.length < formValue.district.length) { - for (const district of this.districts) { - if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) { - locationData.push(district); - } - } - } - const param = { - data: { - userLocation: locationData, - roles: formValue.role, - userType: { - type: 'student' - }, - framework: { - board: formValue.board, - gradeLevel: formValue.grade - } - } - }; - this.uciService.userSegmentQueryBuilder(param).subscribe(response => { - if (response) { - const items = { - ...response, - name: formValue.name, - description: formValue.description - }; - this.uciService.createUserSegment({ data: items }).subscribe((data) => { - this.isLoaderShow = false; - this.afterAdd(data.inserted); - }, err => { - this.isLoaderShow = false; - }); - } - }, error => { - this.isLoaderShow = false; - }); - } - afterAdd(data) { - this.add.emit(data); - } - getUciState() { - this.uciGraphQlService.getState().subscribe(res => { - }); - } - getUciDistrict() { - const params = { - state: this.state - }; - this.uciGraphQlService.getDistrict(params).subscribe((res) => { - this.districts = []; - if (res && res.data && res.data.organisation && res.data.organisation.length) { - this.districts = res.data.organisation; - } - }); - } - getUciBlock() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district - }; - this.uciGraphQlService.getBlock(params).subscribe((res) => { - this.blocks = []; - if (res && res.data && res.data.blocks && res.data.blocks.length) { - this.blocks = res.data.blocks; - } - }); - } - getUciCluster() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district, block: formVal.block - }; - this.uciGraphQlService.getClusters(params).subscribe((res) => { - this.clusters = []; - if (res && res.data && res.data.clusters && res.data.clusters.length) { - if (res.data.clusters[0].cluster) { - this.clusters = res.data.clusters; - } - } - }); - } - getUciSchoolDetails() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district, block: formVal.block - }; - this.uciGraphQlService.getSchoolDetails(params).subscribe((res) => { - this.schools = []; - if (res && res.data && res.data.schools && res.data.schools.length) { - this.schools = res.data.schools; - } - }); - } - getUciRole() { - this.uciGraphQlService.getRole().subscribe((res) => { - if (res && res.data && res.data.role && res.data.role.length) { - this.roles = res.data.role; - } - }); - } - getUciBoard() { - this.uciGraphQlService.getBoards().subscribe((res) => { - if (res && res.data && res.data.board && res.data.board.length) { - this.boards = res.data.board; - } - }); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, deps: [{ token: i1.UciService }, { token: i2.UntypedFormBuilder }, { token: i3.UciGraphQlService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "component", type: i5.SuiSelectOption, selector: "sui-select-option", inputs: ["value"], outputs: ["onSelected"] }, { kind: "component", type: i5.SuiMultiSelect, selector: "sui-multi-select", inputs: ["hasLabels", "placeholder", "maxSelected", "zeroSelectionText", "defaultSelectionText"], outputs: ["selectedOptionsChange"] }, { kind: "directive", type: i5.SuiMultiSelectValueAccessor, selector: "sui-multi-select" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-user-segment-add', template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"] }] - }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.UntypedFormBuilder }, { type: i3.UciGraphQlService }]; }, propDecorators: { cancel: [{ - type: Output - }], add: [{ - type: Output - }] } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1zZWdtZW50LWFkZC91c2VyLXNlZ21lbnQtYWRkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXNlZ21lbnQtYWRkL3VzZXItc2VnbWVudC1hZGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RFLE9BQU8sRUFBdUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLHVCQUF1QjtJQWlCaEMsWUFBb0IsVUFBc0IsRUFDdEIsRUFBc0IsRUFDdEIsaUJBQW9DO1FBRnBDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWxCOUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osVUFBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxD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QUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNoQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6TlEsdUJBQXVCO21HQUF2Qix1QkFBdUIsdUdDVnBDLGk5TkE0SUE7OzRGRGxJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2tLQUt0QixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVY2lTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2kuc2VydmljZSc7XG5pbXBvcnQge1VjaUdyYXBoUWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91Y2ktZ3JhcGgtcWwuc2VydmljZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi11c2VyLXNlZ21lbnQtYWRkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1zZWdtZW50LWFkZC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlZ21lbnRBZGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGZvcm1GaWVsZFByb3BlcnRpZXM6IEFycmF5PGFueT47XG4gICAgdXNlclNlZ21lbnQ6IGFueSA9IHt9O1xuICAgIGlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgIGRpc3RyaWN0cyA9IFtdO1xuICAgIGJsb2NrcyA9IFtdO1xuICAgIHNjaG9vbHMgPSBbXTtcbiAgICBjbHVzdGVycyA9IFtdO1xuICAgIHJvbGVzID0gW107XG4gICAgYm9hcmRzID0gW107XG4gICAgZ3JhZGUgPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDEyXTtcbiAgICBzdWJqZWN0cyA9IFtdO1xuICAgIHVzZXJTZWdtZW50Rm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBzdGF0ZSA9ICdIYXJ5YW5hJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdWNpU2VydmljZTogVWNpU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB1Y2lHcmFwaFFsU2VydmljZTogVWNpR3JhcGhRbFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5nZXRVY2lEaXN0cmljdCgpO1xuICAgICAgICB0aGlzLmdldFVjaVJvbGUoKTtcbiAgICAgICAgdGhpcy5nZXRVY2lCb2FyZCgpO1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgICAgICAgZGlzdHJpY3Q6IFsnJ10sXG4gICAgICAgICAgICBibG9jazogWycnXSxcbiAgICAgICAgICAgIGNsdXN0ZXI6IFsnJ10sXG4gICAgICAgICAgICBzY2hvb2w6IFsnJ10sXG4gICAgICAgICAgICByb2xlOiBbJyddLFxuICAgICAgICAgICAgYm9hcmQ6IFsnJ10sXG4gICAgICAgICAgICBncmFkZTogWycnXSxcbiAgICAgICAgICAgIHN1YmplY3Q6IFsnJ11cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51c2VyU2VnbWVudEZvcm0uZ2V0KCdkaXN0cmljdCcpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnYmxvY2snKS5wYXRjaFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnY2x1c3RlcicpLnBhdGNoVmFsdWUoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnc2Nob29sJykucGF0Y2hWYWx1ZSgnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hvb2xzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5jbHVzdGVycyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VWNpQmxvY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXNlclNlZ21lbnRGb3JtLmdldCgnYmxvY2snKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybS5nZXQoJ2NsdXN0ZXInKS5wYXRjaFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZWdtZW50Rm9ybS5nZXQoJ3NjaG9vbCcpLnBhdGNoVmFsdWUoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nob29scyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuY2x1c3RlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFVjaUNsdXN0ZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFVjaVNjaG9vbERldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uQWRkKCkge1xuICAgICAgICBpZiAodGhpcy51c2VyU2VnbWVudEZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy51c2VyU2VnbWVudEZvcm0udmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2F0aW9uRGF0YSA9IFtdO1xuICAgICAgICBjb25zdCBibG9ja0RhdGEgPSBbXTtcbiAgICAgICAgY29uc3QgZGlzdHJpY3REYXRhID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2Nob29sIG9mIHRoaXMuc2Nob29scykge1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZS5zY2hvb2wuaW5kZXhPZihzY2hvb2wuc2Nob29sKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbkRhdGEucHVzaChzY2hvb2wpO1xuICAgICAgICAgICAgICAgIGlmIChibG9ja0RhdGEuaW5kZXhPZihzY2hvb2wuYmxvY2spID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBibG9ja0RhdGEucHVzaChzY2hvb2wuYmxvY2spO1xuICAgICAgICAgICAgICAgICAgICBkaXN0cmljdERhdGEucHVzaChzY2hvb2wuZGlzdHJpY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsb2NhdGlvbkRhdGEubGVuZ3RoID09PSBmb3JtVmFsdWUuc2Nob29sKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrRGF0YS5sZW5ndGggPCBmb3JtVmFsdWUuYmxvY2subGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIHRoaXMuYmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZS5ibG9jay5pbmRleE9mKGJsb2NrLmJsb2NrKSAhPT0gLTEgJiYgYmxvY2tEYXRhLmluZGV4T2YoYmxvY2suYmxvY2spID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbkRhdGEucHVzaChibG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2NrRGF0YS5wdXNoKGJsb2NrLmJsb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzdHJpY3REYXRhLnB1c2goYmxvY2suZGlzdHJpY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYmxvY2tEYXRhLmxlbmd0aCA9PT0gZm9ybVZhbHVlLmJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGlzdHJpY3REYXRhLmxlbmd0aCA8IGZvcm1WYWx1ZS5kaXN0cmljdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGlzdHJpY3Qgb2YgdGhpcy5kaXN0cmljdHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybVZhbHVlLmRpc3RyaWN0LmluZGV4T2YoZGlzdHJpY3QuZGlzdHJpY3QpICE9PSAtMSAmJiBkaXN0cmljdERhdGEuaW5kZXhPZihkaXN0cmljdC5kaXN0cmljdCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uRGF0YS5wdXNoKGRpc3RyaWN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyYW0gPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXNlckxvY2F0aW9uOiBsb2NhdGlvbkRhdGEsXG4gICAgICAgICAgICAgICAgcm9sZXM6IGZvcm1WYWx1ZS5yb2xlLFxuICAgICAgICAgICAgICAgIHVzZXJUeXBlOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHVkZW50J1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnJhbWV3b3JrOiB7XG4gICAgICAgICAgICAgICAgICAgIGJvYXJkOiBmb3JtVmFsdWUuYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgIGdyYWRlTGV2ZWw6IGZvcm1WYWx1ZS5ncmFkZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnVjaVNlcnZpY2UudXNlclNlZ21lbnRRdWVyeUJ1aWxkZXIocGFyYW0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZvcm1WYWx1ZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVZhbHVlLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnVjaVNlcnZpY2UuY3JlYXRlVXNlclNlZ21lbnQoe2RhdGE6IGl0ZW1zfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlckFkZChkYXRhLmluc2VydGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZXJTaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZnRlckFkZChkYXRhKSB7XG4gICAgICAgIHRoaXMuYWRkLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpU3RhdGUoKSB7XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0U3RhdGUoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpRGlzdHJpY3QoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0RGlzdHJpY3QocGFyYW1zKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc3RyaWN0cyA9IFtdO1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5vcmdhbmlzYXRpb24gJiYgcmVzLmRhdGEub3JnYW5pc2F0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzdHJpY3RzID0gcmVzLmRhdGEub3JnYW5pc2F0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lCbG9jaygpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbCA9IHRoaXMudXNlclNlZ21lbnRGb3JtLnZhbHVlO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSwgZGlzdHJpY3Q6IGZvcm1WYWwuZGlzdHJpY3RcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51Y2lHcmFwaFFsU2VydmljZS5nZXRCbG9jayhwYXJhbXMpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tzID0gW107XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLmJsb2NrcyAmJiByZXMuZGF0YS5ibG9ja3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MgPSByZXMuZGF0YS5ibG9ja3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFVjaUNsdXN0ZXIoKSB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWwgPSB0aGlzLnVzZXJTZWdtZW50Rm9ybS52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgc3RhdGU6IHRoaXMuc3RhdGUsIGRpc3RyaWN0OiBmb3JtVmFsLmRpc3RyaWN0LCBibG9jazogZm9ybVZhbC5ibG9ja1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVjaUdyYXBoUWxTZXJ2aWNlLmdldENsdXN0ZXJzKHBhcmFtcykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbHVzdGVycyA9IFtdO1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5jbHVzdGVycyAmJiByZXMuZGF0YS5jbHVzdGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuY2x1c3RlcnNbMF0uY2x1c3Rlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsdXN0ZXJzID0gcmVzLmRhdGEuY2x1c3RlcnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lTY2hvb2xEZXRhaWxzKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsID0gdGhpcy51c2VyU2VnbWVudEZvcm0udmFsdWU7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLCBkaXN0cmljdDogZm9ybVZhbC5kaXN0cmljdCwgYmxvY2s6IGZvcm1WYWwuYmxvY2tcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51Y2lHcmFwaFFsU2VydmljZS5nZXRTY2hvb2xEZXRhaWxzKHBhcmFtcykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY2hvb2xzID0gW107XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnNjaG9vbHMgJiYgcmVzLmRhdGEuc2Nob29scy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjaG9vbHMgPSByZXMuZGF0YS5zY2hvb2xzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRVY2lSb2xlKCkge1xuICAgICAgICB0aGlzLnVjaUdyYXBoUWxTZXJ2aWNlLmdldFJvbGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnJvbGUgJiYgcmVzLmRhdGEucm9sZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvbGVzID0gcmVzLmRhdGEucm9sZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VWNpQm9hcmQoKSB7XG4gICAgICAgIHRoaXMudWNpR3JhcGhRbFNlcnZpY2UuZ2V0Qm9hcmRzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5ib2FyZCAmJiByZXMuZGF0YS5ib2FyZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkcyA9IHJlcy5kYXRhLmJvYXJkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidWNpLWFkZC1zZWdtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pbmUgd2lkZSBjb2x1bW4gZm9udC0xLTIgZm9udC13ZWlnaHQtYm9sZFwiPlxuICAgICAgICAgICAgQ3JlYXRlIG5ldyBzZWdtZW50XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWUgd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1mbG9hdGVkIHB0LTBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLW91dGxpbmUtcHJpbWFyeSBtci0xMFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclNob3c7IGVsc2UgYWRkQnRuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYi1idG4gc2ItYnRuLW5vcm1hbCBzYi1idG4tcHJpbWFyeSBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBhY3RpdmUgdGlueSBpbmxpbmUgbG9hZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWRkQnRuPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVzZXJTZWdtZW50Rm9ybS5pbnZhbGlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW4gZm9udC0xLTJcIj5cbiAgICAgICAgPGZvcm0gY2xhc3M9XCJ1aSBmb3JtIHVzZXItc2VnbWVudC1mb3JtXCIgW2Zvcm1Hcm91cF09XCJ1c2VyU2VnbWVudEZvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD5OYW1lIDxzdXA+PGkgY2xhc3M9XCJhc3RlcmlzayBpY29uIGFzdGVyaXNrLWNvbG9yXCI+PC9pPjwvc3VwPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIk5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9XCJkZXNjcmlwdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBkZXNjcmlwdGlvblwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBkaXZpZGVyIG10LTMwXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIGZpZWxkc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RGlzdHJpY3Q8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpc3RyaWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImRpc3RyaWN0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3REaXN0cmljdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdERpc3RyaWN0LmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uZGlzdHJpY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QmxvY2s8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImJsb2Nrc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RCbG9jaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdEJsb2NrLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3byBmaWVsZHNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNsdXN0ZXJzLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Q2x1c3RlcjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1tdWx0aS1zZWxlY3QgY2xhc3M9XCJzZWxlY3Rpb24gdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2x1c3RlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjbHVzdGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RDbHVzdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0Q2x1c3Rlci5maWx0ZXJlZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLmNsdXN0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktbXVsdGktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNjaG9vbDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBzZWdtZW50IHAtMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1tdWx0aS1zZWxlY3QgY2xhc3M9XCJzZWxlY3Rpb24gdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Nob29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI211bHRpU2VsZWN0U2Nob29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0U2Nob29sLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24uc2Nob29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdWktc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLW11bHRpLXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0d28gZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Sb2xlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpIHNlZ21lbnQgcC0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3VpLW11bHRpLXNlbGVjdCBjbGFzcz1cInNlbGVjdGlvbiB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInJvbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtdWx0aVNlbGVjdFJvbGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN1aS1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbXVsdGlTZWxlY3RSb2xlLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Qm9hcmQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJvYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImJvYXJkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbXVsdGlTZWxlY3RCb2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VpLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtdWx0aVNlbGVjdEJvYXJkLmZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24ubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIGZpZWxkc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+R3JhZGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWkgc2VnbWVudCBwLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktbXVsdGktc2VsZWN0IGNsYXNzPVwic2VsZWN0aW9uIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImdyYWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdyYWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNtdWx0aVNlbGVjdEdyYWRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdWktc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG11bHRpU2VsZWN0R3JhZGUuZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3VpLXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N1aS1tdWx0aS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs deleted file mode 100644 index 9991bb98bca..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/components/user-segment-list/user-segment-list.component.mjs +++ /dev/null @@ -1,100 +0,0 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import * as i0 from "@angular/core"; -import * as i1 from "../../services/uci.service"; -import * as i2 from "@angular/router"; -import * as i3 from "@angular/common"; -import * as i4 from "@angular/forms"; -import * as i5 from "@project-sunbird/ng2-semantic-ui"; -export class UserSegmentListComponent { - constructor(uciService, route) { - this.uciService = uciService; - this.route = route; - this.cancel = new EventEmitter(); - this.add = new EventEmitter(); - this.selectedUserSegments = []; - this.userSegments = []; - this.selectedUserSegmentMap = {}; - this.pager = { - totalItems: 0, - currentPage: 1, - pageSize: 10, - totalPages: 0, - startPage: 0, - endPage: 0, - startIndex: 0, - endIndex: 0, - pages: [] - }; - this.pageNumber = 1; - this.column = ''; - this.reverse = false; - } - ngOnInit() { - this.selectedUserSegments.forEach(selectedUserSegment => { - this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment; - }); - this.getUserSegment(); - } - getUserSegment() { - const param = { - page: this.pager.currentPage, - perPage: this.pager.pageSize - }; - if (this.search) { - param.name = this.search; - this.uciService.searchUserSegment(param).subscribe(data => this.parseUserSegments(data)); - } - else { - this.uciService.fetchUserSegment(param).subscribe(data => this.parseUserSegments(data)); - } - } - parseUserSegments(data) { - this.userSegments = data.data; - this.pager.totalItems = data.total; - this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); - this.pager.pages = []; - let i = 1; - while (i <= Math.ceil(data.total / this.pager.pageSize)) { - this.pager.pages.push(i); - i++; - } - } - navigateToPage(page) { - if (page < 1 || page > this.pager.totalPages) { - return; - } - this.pageNumber = page; - this.pager.currentPage = page; - this.getUserSegment(); - } - getSearch() { - this.getUserSegment(); - } - onCancel() { - this.cancel.emit(false); - } - onCheck(event, userSegment) { - if (event.target.checked) { - this.selectedUserSegmentMap[userSegment.id] = userSegment; - } - else { - delete this.selectedUserSegmentMap[userSegment.id]; - } - } - onAdd() { - this.add.emit(Object.values(this.selectedUserSegmentMap)); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, deps: [{ token: i1.UciService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: { selectedUserSegments: "selectedUserSegments" }, outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.SuiDropdownMenuItem, selector: ".item" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-user-segment-list', template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"] }] - }], ctorParameters: function () { return [{ type: i1.UciService }, { type: i2.Router }]; }, propDecorators: { cancel: [{ - type: Output - }], add: [{ - type: Output - }], selectedUserSegments: [{ - type: Input - }] } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZWdtZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItc2VnbWVudC1saXN0L3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvY29tcG9uZW50cy91c2VyLXNlZ21lbnQtbGlzdC91c2VyLXNlZ21lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzdFLE1BQU0sT0FBTyx3QkFBd0I7SUF3QmpDLFlBQ1ksVUFBc0IsRUFDdEIsS0FBYTtRQURiLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQXpCZixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNyQyxRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvQix5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFbkMsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLFVBQUssR0FBUTtZQUNULFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsU0FBUyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDO1lBQ2IsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFRaEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxLQUFLLEdBQVE7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7U0FDL0IsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDOUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQ3ZDLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQzdDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUN2QyxDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBSTtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsRUFBRSxDQUFDO1NBQ1A7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDdkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUMxQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVztRQUN0QixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDO1NBQzdEO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEQ7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDOytHQS9GUSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrS0NUckMsb3NIQTZFQTs7NEZEcEVhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSx1QkFBdUI7c0hBS3ZCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VWNpU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdWNpLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXVzZXItc2VnbWVudC1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1zZWdtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VzZXItc2VnbWVudC1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VnbWVudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVXNlclNlZ21lbnRzID0gW107XG5cbiAgICB1c2VyU2VnbWVudHMgPSBbXTtcbiAgICBzZWxlY3RlZFVzZXJTZWdtZW50TWFwID0ge307XG4gICAgcGFnZXI6IGFueSA9IHtcbiAgICAgICAgdG90YWxJdGVtczogMCxcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgdG90YWxQYWdlczogMCxcbiAgICAgICAgc3RhcnRQYWdlOiAwLFxuICAgICAgICBlbmRQYWdlOiAwLFxuICAgICAgICBzdGFydEluZGV4OiAwLFxuICAgICAgICBlbmRJbmRleDogMCxcbiAgICAgICAgcGFnZXM6IFtdXG4gICAgfTtcbiAgICBwYWdlTnVtYmVyID0gMTtcbiAgICBjb2x1bW4gPSAnJztcbiAgICByZXZlcnNlID0gZmFsc2U7XG4gICAgcXVlcnlQYXJhbXM6IGFueTtcbiAgICBzZWFyY2g7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB1Y2lTZXJ2aWNlOiBVY2lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBSb3V0ZXJcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50cy5mb3JFYWNoKHNlbGVjdGVkVXNlclNlZ21lbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50TWFwW3NlbGVjdGVkVXNlclNlZ21lbnQuaWRdID0gc2VsZWN0ZWRVc2VyU2VnbWVudDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRVc2VyU2VnbWVudCgpO1xuICAgIH1cblxuICAgIGdldFVzZXJTZWdtZW50KCkge1xuICAgICAgICBjb25zdCBwYXJhbTogYW55ID0ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlci5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IHRoaXMucGFnZXIucGFnZVNpemVcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5zZWFyY2gpIHtcbiAgICAgICAgICAgIHBhcmFtLm5hbWUgPSB0aGlzLnNlYXJjaDtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5zZWFyY2hVc2VyU2VnbWVudChwYXJhbSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIGRhdGEgPT4gdGhpcy5wYXJzZVVzZXJTZWdtZW50cyhkYXRhKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudWNpU2VydmljZS5mZXRjaFVzZXJTZWdtZW50KHBhcmFtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgZGF0YSA9PiB0aGlzLnBhcnNlVXNlclNlZ21lbnRzKGRhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VVc2VyU2VnbWVudHMoZGF0YSkge1xuICAgICAgICB0aGlzLnVzZXJTZWdtZW50cyA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy5wYWdlci50b3RhbEl0ZW1zID0gZGF0YS50b3RhbDtcbiAgICAgICAgdGhpcy5wYWdlci50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKGRhdGEudG90YWwgLyB0aGlzLnBhZ2VyLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5wYWdlci5wYWdlcyA9IFtdO1xuICAgICAgICBsZXQgaSA9IDE7XG4gICAgICAgIHdoaWxlIChpIDw9IE1hdGguY2VpbChkYXRhLnRvdGFsIC8gdGhpcy5wYWdlci5wYWdlU2l6ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZXIucGFnZXMucHVzaChpKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5hdmlnYXRlVG9QYWdlKHBhZ2U6IG51bWJlcik6IHVuZGVmaW5lZCB8IHZvaWQge1xuICAgICAgICBpZiAocGFnZSA8IDEgfHwgcGFnZSA+IHRoaXMucGFnZXIudG90YWxQYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZU51bWJlciA9IHBhZ2U7XG4gICAgICAgIHRoaXMucGFnZXIuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLmdldFVzZXJTZWdtZW50KCk7XG4gICAgfVxuXG4gICAgZ2V0U2VhcmNoKCkge1xuICAgICAgICB0aGlzLmdldFVzZXJTZWdtZW50KCk7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uQ2hlY2soZXZlbnQsIHVzZXJTZWdtZW50KSB7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJTZWdtZW50TWFwW3VzZXJTZWdtZW50LmlkXSA9IHVzZXJTZWdtZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRVc2VyU2VnbWVudE1hcFt1c2VyU2VnbWVudC5pZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFkZCgpIHtcbiAgICAgICAgdGhpcy5hZGQuZW1pdChPYmplY3QudmFsdWVzKHRoaXMuc2VsZWN0ZWRVc2VyU2VnbWVudE1hcCkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ1Y2ktY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInVpIGdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNldmVuIHdpZGUgY29sdW1uIGZvbnQtMS0yIGZvbnQtd2VpZ2h0LWJvbGRcIj5cbiAgICAgICAgICAgIFNlbGVjdCB1c2VyIHNlZ21lbnRcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaXZlIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtZmxvYXRlZCBwdC0wXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIHNiLWJ0bi1vdXRsaW5lLXByaW1hcnkgbXItMTBcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPiBDYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ItYnRuIHNiLWJ0bi1ub3JtYWwgc2ItYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25BZGQoKVwiPiBBZGQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVuIHdpZGUgY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Itc2VhcmNoLWJveCBiLTAgbWwtMCBsYXJnZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1kaXYgcmVsYXRpdmVcIiBpZD1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJTZWFyY2ggSWNvblwiIGNsYXNzPVwic2VhcmNoIGljb25cIiBzcmM9XCJhc3NldHMvaW1hZ2VzL3NlYXJjaC1pY29uLnN2Z1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzYi1zZWFyY2gtaW5wdXQgZGlzYWJsZWQgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lXCIgaWQ9XCJrZXl3b3JkXCIgbmFtZT1cImZpbHRlcl9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNiLWJ0biBzYi1idG4tbm9ybWFsIGRpc2FibGVkXCIgKGNsaWNrKT1cImdldFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHRhYmxlIGNsYXNzPVwidWkgc2luZ2xlIGxpbmUgdXBGb3JSZXZpZXdUYWJsZSB0YWJsZVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm9uZSB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgdy01MC1weFwiPlxuXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiZm91ciB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiZm91ciB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTBcIj5cbiAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInR3byB3aWRlIFVwUmV2aWV3VGFibGVIZWFkZXIgc29ydGVkIGJsLTAgY2VudGVyIGFsaWduZWRcIj5cbiAgICAgICAgICAgICAgICBUb3RhbCBtZW1iZXJzXG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwidHdvIHdpZGUgVXBSZXZpZXdUYWJsZUhlYWRlciBzb3J0ZWQgYmwtMCBjZW50ZXIgYWxpZ25lZFwiPlxuICAgICAgICAgICAgICAgIExhc3QgVXBkYXRlZCBPblxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgY2xhc3M9XCJVcEZvclJldmlld0xpc3RIb3ZlclwiICpuZ0Zvcj1cImxldCBjb250ZW50IG9mIHVzZXJTZWdtZW50czsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNlbnRlciBhbGlnbmVkXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cIiEhc2VsZWN0ZWRVc2VyU2VnbWVudE1hcFtjb250ZW50LmlkXVwiIChjaGFuZ2UpPVwib25DaGVjaygkZXZlbnQsIGNvbnRlbnQpXCI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudC5uYW1lfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7Y29udGVudD8uY2F0ZWdvcnl9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjZW50ZXIgYWxpZ25lZFwiPnt7Y29udGVudD8uY291bnR9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjZW50ZXIgYWxpZ25lZFwiPnt7Y29udGVudD8udXBkYXRlZF9hdCB8IGRhdGV9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgICA8ZGl2IGNsYXNzPVwidWkgZ3JpZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHdvIHdpZGUgY29sdW1uXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZW4gd2lkZSBjb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYi0xMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aSBwYWdpbmF0aW9uIG1lbnUgbXQtMTAgcmlnaHQtZmxvYXRlZCBwdC0wXCIgKm5nSWY9XCJwYWdlci5wYWdlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0xIH1cIiBjbGFzcz1cIml0ZW0gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKDEpIFwiPkZpcnN0PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0xIH1cIiBjbGFzcz1cIml0ZW0gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLmN1cnJlbnRQYWdlIC0gMSlcIj5QcmV2aW91czwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXIucGFnZXNcIiBbbmdDbGFzc109XCJ7YWN0aXZlOnBhZ2VyLmN1cnJlbnRQYWdlPT09cGFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZSlcIiBjbGFzcz1cIml0ZW1cIj57e3BhZ2V9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYWdlKHBhZ2VyLmN1cnJlbnRQYWdlICsgMSlcIiBjbGFzcz1cIml0ZW1cIj5OZXh0PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2U9PT0gcGFnZXIudG90YWxQYWdlc31cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZXIudG90YWxQYWdlcylcIiBjbGFzcz1cIml0ZW0gXCI+TGFzdDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs deleted file mode 100644 index 6a7ab62117a..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci-config.model.mjs +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvbW9kZWxzL3VjaS1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSWRpc2N1c3Npb25Db25maWcge1xuICAgIG1lbnVPcHRpb25zPzogQXJyYXk8SU1lbnVPcHRpb25zPlxuICAgIHVzZXJOYW1lOiBzdHJpbmdcbiAgICBjb250ZXh0PzogT2JqZWN0XG4gICAgY2F0ZWdvcmllczogSWNhdGVnb3J5XG4gICAgcGF0aD86IHN0cmluZ1xuICAgIHJvdXRlclNsdWc/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVudU9wdGlvbnMge1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgICBlbmFibGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2F0ZWdvcnkge1xuICAgIHJlc3VsdDogQXJyYXk8c3RyaW5nPlxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs deleted file mode 100644 index 767c11d77b7..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/models/uci.model.mjs +++ /dev/null @@ -1,9 +0,0 @@ -export var UciData; -(function (UciData) { - let IPageName; - (function (IPageName) { - IPageName["HOME"] = "uci-admin"; - IPageName["LIB_ENTRY"] = "lib-entry"; - })(IPageName = UciData.IPageName || (UciData.IPageName = {})); -})(UciData || (UciData = {})); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9tb2RlbHMvdWNpLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxPQUFPLENBdUV2QjtBQXZFRCxXQUFpQixPQUFPO0lBbUV0QixJQUFZLFNBR1g7SUFIRCxXQUFZLFNBQVM7UUFDbkIsK0JBQWtCLENBQUE7UUFDbEIsb0NBQXVCLENBQUE7SUFDekIsQ0FBQyxFQUhXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBR3BCO0FBQ0gsQ0FBQyxFQXZFZ0IsT0FBTyxLQUFQLE9BQU8sUUF1RXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBVY2lEYXRhIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIElVc2VyIHtcbiAgICB1aWQ6IG51bWJlclxuICAgIHVzZXJuYW1lOiBzdHJpbmdcbiAgICBmdWxsbmFtZT86IHN0cmluZ1xuICAgIHVzZXJzbHVnOiBzdHJpbmdcbiAgICByZXB1dGF0aW9uOiBudW1iZXJcbiAgICBwb3N0Y291bnQ6IG51bWJlclxuICAgIHRvcGljY291bnQ/OiBudW1iZXJcbiAgICBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbFxuICAgIHNpZ25hdHVyZT86IHN0cmluZyB8IG51bGxcbiAgICBiYW5uZWQ6IG51bWJlclxuICAgICdiYW5uZWQ6ZXhwaXJlJz86IG51bWJlclxuICAgIHN0YXR1czogc3RyaW5nXG4gICAgbGFzdG9ubGluZT86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWRcbiAgICBncm91cFRpdGxlPzogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZUFycmF5Pzogc3RyaW5nW11cbiAgICAnaWNvbjp0ZXh0Jz86IHN0cmluZ1xuICAgICdpY29uOmJnQ29sb3InPzogc3RyaW5nXG4gICAgbGFzdG9ubGluZUlTTz86IHN0cmluZ1xuICAgIGJhbm5lZF91bnRpbD86IG51bWJlciB8IGJvb2xlYW5cbiAgICBiYW5uZWRfdW50aWxfcmVhZGFibGU/OiBzdHJpbmdcbiAgICBzZWxlY3RlZEdyb3Vwcz86IGFueVtdXG4gICAgY3VzdG9tX3Byb2ZpbGVfaW5mbz86IGFueVtdXG4gIH1cbiAgXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVByb2ZpbGUge1xuICAgIHVpZDogbnVtYmVyXG4gICAgdXNlcm5hbWU6IHN0cmluZ1xuICAgIHVzZXJzbHVnOiBzdHJpbmdcbiAgICBlbWFpbDogc3RyaW5nXG4gICAgJ2VtYWlsOmNvbmZpcm1lZCc6IG51bWJlclxuICAgIGpvaW5kYXRlOiBudW1iZXJcbiAgICBsYXN0b25saW5lOiBudW1iZXJcbiAgICBwaWN0dXJlOiBzdHJpbmdcbiAgICBmdWxsbmFtZTogc3RyaW5nXG4gICAgbG9jYXRpb246IHN0cmluZ1xuICAgIGJpcnRoZGF5OiBzdHJpbmdcbiAgICB3ZWJzaXRlOiBzdHJpbmdcbiAgICBhYm91dG1lOiBzdHJpbmdcbiAgICBzaWduYXR1cmU6IHN0cmluZ1xuICAgIHVwbG9hZGVkcGljdHVyZTogc3RyaW5nXG4gICAgcHJvZmlsZXZpZXdzOiBudW1iZXJcbiAgICByZXB1dGF0aW9uOiBudW1iZXJcbiAgICBwb3N0Y291bnQ6IG51bWJlclxuICAgIHRvcGljY291bnQ6IG51bWJlclxuICAgIGxhc3Rwb3N0dGltZTogbnVtYmVyXG4gICAgYmFubmVkOiBudW1iZXJcbiAgICAnYmFubmVkOmV4cGlyZSc6IG51bWJlclxuICAgIHN0YXR1czogc3RyaW5nXG4gICAgZmxhZ3M6IG51bWJlclxuICAgIGZvbGxvd2VyQ291bnQ6IG51bWJlclxuICAgIGZvbGxvd2luZ0NvdW50OiBudW1iZXJcbiAgICAnY292ZXI6dXJsJzogc3RyaW5nXG4gICAgJ2NvdmVyOnBvc2l0aW9uJzogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZTogc3RyaW5nXG4gICAgZ3JvdXBUaXRsZUFycmF5OiBbXVxuICAgIGpvaW5kYXRlSVNPOiBzdHJpbmdcbiAgICBsYXN0b25saW5lSVNPOiBzdHJpbmdcbiAgICBpc0Jsb2NrZWQ6IHRydWVcbiAgICBibG9ja3NDb3VudDogbnVtYmVyXG4gICAgY2FuRWRpdDogdHJ1ZVxuICAgIGNhbkJhbjogdHJ1ZVxuICAgIHRpdGxlOiBzdHJpbmdcbiAgfVxuXG4gIGV4cG9ydCBlbnVtIElQYWdlTmFtZSB7XG4gICAgSE9NRSA9ICd1Y2ktYWRtaW4nLFxuICAgIExJQl9FTlRSWSA9ICdsaWItZW50cnknXG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs deleted file mode 100644 index 99189aca6f8..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/pipes/pipes.module.mjs +++ /dev/null @@ -1,19 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import * as i0 from "@angular/core"; -export class PipesModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [], - imports: [ - CommonModule - ], - exports: [] - }] - }] }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVy9DLE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxZQUpwQixZQUFZO2dIQUlILFdBQVcsWUFKcEIsWUFBWTs7NEZBSUgsV0FBVztrQkFQdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgUGlwZXNNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs deleted file mode 100644 index b30245b7c5c..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/base.service.mjs +++ /dev/null @@ -1,69 +0,0 @@ -import { catchError, map } from 'rxjs/operators'; -import { Injectable } from '@angular/core'; -import { throwError } from 'rxjs'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/common/http"; -import * as i2 from "./global.service"; -export class BaseService { - constructor(http, globalService) { - this.http = http; - this.globalService = globalService; - } - getDefaultHeaders() { - const headers = {}; - const user = this.globalService.getUser(); - if (user && user.id) { - headers.ownerID = user.id; - } - if (user && user.rootOrgId) { - headers.ownerOrgID = user.rootOrgId; - } - return headers; - } - getRequest(url, params = {}, headers = {}) { - headers = { - ...headers, - ...this.getDefaultHeaders() - }; - return this.http.get(url, { params, headers }).pipe(map((res) => { - return res.result; - }), catchError(err => { - return this.handleError(err); - })); - } - postRequest(url, data = {}, headers = {}) { - headers = { - ...headers, - ...this.getDefaultHeaders() - }; - return this.http.post(url, data, { headers }).pipe(map((res) => { - return res.result; - }), catchError(err => { - return this.handleError(err); - })); - } - handleError(error) { - if (error instanceof ErrorEvent) { - return throwError(error['error']['message']); - } - return throwError(error.error); - } - toFormData(formValue) { - const formData = new FormData(); - console.error("[UCI Console]", JSON.stringify(formValue)); - for (const key of Object.keys(formValue)) { - const value = formValue[key]; - formData.append(key, value); - } - return formData; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7QUFLaEMsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsSUFBZ0IsRUFBUyxhQUE0QjtRQUFyRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDeEUsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsU0FBYyxFQUFFLEVBQUUsVUFBZSxFQUFFO1FBQ3RELE9BQU8sR0FBRztZQUNOLEdBQUcsT0FBTztZQUNWLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzlCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFVBQWUsRUFBRTtRQUNoRCxPQUFPLEdBQUc7WUFDTixHQUFHLE9BQU87WUFDVixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtTQUM5QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2IsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUdNLFdBQVcsQ0FBQyxLQUF3QjtRQUN2QyxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDN0IsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7UUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFVBQVUsQ0FBSSxTQUFZO1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBRXpELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOytHQXBFUSxXQUFXO21IQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi9nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBHbG9iYWxTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0SGVhZGVycygpIHtcbiAgICAgICAgY29uc3QgaGVhZGVyczogYW55ID0ge307XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdsb2JhbFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgICBpZiAodXNlciAmJiB1c2VyLmlkKSB7XG4gICAgICAgICAgICBoZWFkZXJzLm93bmVySUQgPSB1c2VyLmlkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyICYmIHVzZXIucm9vdE9yZ0lkKSB7XG4gICAgICAgICAgICBoZWFkZXJzLm93bmVyT3JnSUQgPSB1c2VyLnJvb3RPcmdJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZXF1ZXN0KHVybCwgcGFyYW1zOiBhbnkgPSB7fSwgaGVhZGVyczogYW55ID0ge30pIHtcbiAgICAgICAgaGVhZGVycyA9IHtcbiAgICAgICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIZWFkZXJzKClcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtwYXJhbXMsIGhlYWRlcnN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMucmVzdWx0O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvc3RSZXF1ZXN0KHVybCwgZGF0YSA9IHt9LCBoZWFkZXJzOiBhbnkgPSB7fSkge1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhlYWRlcnMoKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGRhdGEsIHtoZWFkZXJzfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnJlc3VsdDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuXG4gICAgcHVibGljIGhhbmRsZUVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvclsnZXJyb3InXVsnbWVzc2FnZSddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yLmVycm9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Gb3JtRGF0YTxUPihmb3JtVmFsdWU6IFQpIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIltVQ0kgQ29uc29sZV1cIiwgSlNPTi5zdHJpbmdpZnkoZm9ybVZhbHVlKSlcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmb3JtVmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZvcm1WYWx1ZVtrZXldO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhO1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs deleted file mode 100644 index 04dd24ae80c..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/config.service.mjs +++ /dev/null @@ -1,58 +0,0 @@ -import { Injectable } from '@angular/core'; -import * as _ from 'lodash'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -import * as i2 from "./uci.service"; -export class ConfigService { - constructor(activatedRoute, UciService) { - this.activatedRoute = activatedRoute; - this.UciService = UciService; - } - ngOnInit() { - } - setConfig(activatedRoute) { - activatedRoute.data.subscribe((config) => { - this._config = config.data; - }); - } - setConfigFromParams(activatedRoute) { - activatedRoute.queryParams.subscribe((params) => { - const obj = { - userName: _.get(params, 'userName'), - categories: JSON.parse(_.get(params, 'categories')) - }; - this._config = obj; - }); - } - getConfig() { - return this._config; - } - getCategories() { - this.getParams = this.getConfig(); - return _.get(this.getParams, 'categories'); - } - hasContext() { - this.hasContextData = this.getCategories() ? - (this.getCategories().result ? this.getCategories().result.length : null) - : null; - return this.hasContextData; - } - getContext() { - this.getContextData = this.getCategories() ? - (this.getCategories().result ? this.getCategories().result : null) - : null; - return this.getContextData; - } - getRouterSlug() { - return this._config.routerSlug ? this._config.routerSlug : ''; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1.ActivatedRoute }, { token: i2.UciService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.UciService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7QUFNM0IsTUFBTSxPQUFPLGFBQWE7SUFXeEIsWUFDUyxjQUE4QixFQUM3QixVQUFzQjtRQUR2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM1QixDQUFDO0lBRUwsUUFBUTtJQUVSLENBQUM7SUFFRCxTQUFTLENBQUMsY0FBYztRQUN0QixjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxjQUFjO1FBQ2hDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUMsTUFBTSxHQUFHLEdBQXNCO2dCQUM3QixRQUFRLEVBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUNwQyxVQUFVLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNyRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNqQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUIsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDOytHQTdEVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVjaVNlcnZpY2UgfSBmcm9tICcuL3VjaS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IElkaXNjdXNzaW9uQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3VjaS1jb25maWcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwYXJhbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfY29uZmlnOiBJZGlzY3Vzc2lvbkNvbmZpZztcbiAgcHVibGljIGNoZWNrQ29udGV4dDogYm9vbGVhbjtcbiAgcHVibGljIHF1ZXJ5UGFyYW1zO1xuICBnZXRDb250ZXh0RGF0YTogYW55O1xuICBoYXNDb250ZXh0RGF0YTogYW55O1xuICBnZXRQYXJhbXM6IElkaXNjdXNzaW9uQ29uZmlnO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIFVjaVNlcnZpY2U6IFVjaVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG4gIHNldENvbmZpZyhhY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZy5kYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q29uZmlnRnJvbVBhcmFtcyhhY3RpdmF0ZWRSb3V0ZSkge1xuICAgIGFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBvYmo6IElkaXNjdXNzaW9uQ29uZmlnID0ge1xuICAgICAgICB1c2VyTmFtZSA6IF8uZ2V0KHBhcmFtcywgJ3VzZXJOYW1lJyksXG4gICAgICAgIGNhdGVnb3JpZXMgOiBKU09OLnBhcnNlKF8uZ2V0KHBhcmFtcywgJ2NhdGVnb3JpZXMnKSlcbiAgICAgIH07XG4gICAgICB0aGlzLl9jb25maWcgPSBvYmo7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLmdldFBhcmFtcyA9IHRoaXMuZ2V0Q29uZmlnKClcbiAgICByZXR1cm4gXy5nZXQodGhpcy5nZXRQYXJhbXMsICdjYXRlZ29yaWVzJylcbiAgfVxuXG4gIHB1YmxpYyBoYXNDb250ZXh0KCkge1xuICAgIHRoaXMuaGFzQ29udGV4dERhdGEgPSB0aGlzLmdldENhdGVnb3JpZXMoKSA/XG4gICAgICAodGhpcy5nZXRDYXRlZ29yaWVzKCkucmVzdWx0ID8gdGhpcy5nZXRDYXRlZ29yaWVzKCkucmVzdWx0Lmxlbmd0aCA6IG51bGwpXG4gICAgICA6IG51bGxcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZXh0RGF0YVxuICB9XG5cbiAgcHVibGljIGdldENvbnRleHQoKSB7XG4gICAgdGhpcy5nZXRDb250ZXh0RGF0YSA9IHRoaXMuZ2V0Q2F0ZWdvcmllcygpID9cbiAgICAgICh0aGlzLmdldENhdGVnb3JpZXMoKS5yZXN1bHQgPyB0aGlzLmdldENhdGVnb3JpZXMoKS5yZXN1bHQgOiBudWxsKVxuICAgICAgOiBudWxsXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dERhdGFcbiAgfVxuXG4gIHB1YmxpYyBnZXRSb3V0ZXJTbHVnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcucm91dGVyU2x1ZyA/IHRoaXMuX2NvbmZpZy5yb3V0ZXJTbHVnIDogJyc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs deleted file mode 100644 index b6154d93ccf..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/global.service.mjs +++ /dev/null @@ -1,32 +0,0 @@ -import { Injectable } from '@angular/core'; -import { BehaviorSubject } from 'rxjs'; -import * as i0 from "@angular/core"; -export class GlobalService { - constructor() { - this.user = new BehaviorSubject(undefined); - this.user$ = this.user.asObservable(); - this.baseUrl = new BehaviorSubject(undefined); - this.baseUrl$ = this.baseUrl.asObservable(); - } - setUser(user) { - this.user.next(user); - } - getUser() { - return this.user.value; - } - setBaseUrl(baseUrl) { - this.baseUrl.next(baseUrl); - } - getBaseUrl() { - return this.baseUrl.value; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return []; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL2dsb2JhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFLckMsTUFBTSxPQUFPLGFBQWE7SUFNdEI7UUFMUSxTQUFJLEdBQXlCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLFlBQU8sR0FBeUIsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFHdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDOytHQXZCUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VydmljZSB7XG4gICAgcHJpdmF0ZSB1c2VyOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlciQgPSB0aGlzLnVzZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBiYXNlVXJsOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZVVybCQgPSB0aGlzLmJhc2VVcmwuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBzZXRVc2VyKHVzZXIpIHtcbiAgICAgICAgdGhpcy51c2VyLm5leHQodXNlcik7XG4gICAgfVxuXG4gICAgZ2V0VXNlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlci52YWx1ZTtcbiAgICB9XG5cbiAgICBzZXRCYXNlVXJsKGJhc2VVcmwpIHtcbiAgICAgICAgdGhpcy5iYXNlVXJsLm5leHQoYmFzZVVybCk7XG4gICAgfVxuXG4gICAgZ2V0QmFzZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVVybC52YWx1ZTtcbiAgICB9XG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs deleted file mode 100644 index 2538a84ce3c..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci-graph-ql.service.mjs +++ /dev/null @@ -1,99 +0,0 @@ -import { Injectable } from '@angular/core'; -import { BaseService } from './base.service'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/common/http"; -import * as i2 from "./global.service"; -export class UciGraphQlService extends BaseService { - constructor(http, globalService) { - super(http, globalService); - this.http = http; - this.globalService = globalService; - this.globalService.baseUrl$.subscribe(value => { - if (value) { - this.BASE_URL = value + '/v1/graphql'; - } - }); - } - getState() { - return this.baseRequest({ - query: `query getListOfStates{ - organisation(distinct_on:state){ - state}}` - }); - } - getDistrict(param) { - return this.baseRequest({ - query: `query getListOfDistrictInState($state:String){ - organisation(where:{state:{_eq:$state}}, distinct_on:district){ - state - district}}`, - variables: param - }); - } - getBlock(param) { - return this.baseRequest({ - query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){ - blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){ - block - district - state - } - }`, - variables: param - }); - } - getSchoolDetails(param) { - return this.baseRequest({ - query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){ - schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){ - school - school_code - block - district - state - } - }`, - variables: param - }); - } - getClusters(param) { - return this.baseRequest({ - query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){ - clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){ - cluster - } - }`, - variables: param - }); - } - getRole() { - return this.baseRequest({ - query: `query fetchListOfRoles{ - role{ - id - name - } - }` - }); - } - getBoards() { - return this.baseRequest({ - query: `query listOfBoards{ - board{ - id - name}}` - }); - } - baseRequest(body) { - return this.http.post(this.BASE_URL, body, {}); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWdyYXBoLXFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL3VjaS1ncmFwaC1xbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBRzlDLFlBQW1CLElBQWdCLEVBQVMsYUFBNEI7UUFDcEUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQURaLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsYUFBYSxDQUFDO2FBQ3pDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNwQixLQUFLLEVBQUU7O29CQUVDO1NBQ1gsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7O3VCQUdJO1lBQ1gsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7Ozs7O2NBTUw7WUFDRixTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEIsS0FBSyxFQUFFOzs7Ozs7OztjQVFMO1lBQ0YsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7OztjQUlMO1lBQ0YsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEIsS0FBSyxFQUFFOzs7OztxQkFLRTtTQUNaLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BCLEtBQUssRUFBRTs7O3lCQUdNO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBSTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBM0ZRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmFzZVNlcnZpY2V9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7R2xvYmFsU2VydmljZX0gZnJvbSAnLi9nbG9iYWwuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVY2lHcmFwaFFsU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcbiAgICBCQVNFX1VSTDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgZ2xvYmFsU2VydmljZTogR2xvYmFsU2VydmljZSkge1xuICAgICAgICBzdXBlcihodHRwLCBnbG9iYWxTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmJhc2VVcmwkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkJBU0VfVVJMID0gdmFsdWUgKyAnL3YxL2dyYXBocWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZTdGF0ZXN7XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24oZGlzdGluY3Rfb246c3RhdGUpe1xuICAgICAgICAgICAgc3RhdGV9fWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0RGlzdHJpY3QocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZEaXN0cmljdEluU3RhdGUoJHN0YXRlOlN0cmluZyl7XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfX0sICBkaXN0aW5jdF9vbjpkaXN0cmljdCl7XG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICAgZGlzdHJpY3R9fWAsXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHBhcmFtXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEJsb2NrKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VSZXF1ZXN0KHtcbiAgICAgICAgICAgIHF1ZXJ5OiBgcXVlcnkgZ2V0TGlzdE9mQmxvY2tzVW5kZXJEaXN0cmljdCgkZGlzdHJpY3Q6W1N0cmluZyFdLCRzdGF0ZTpTdHJpbmcpe1xuICAgICAgICAgICAgYmxvY2tzOiBvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH19LGRpc3RpbmN0X29uOmJsb2NrKXtcbiAgICAgICAgICAgIGJsb2NrXG4gICAgICAgICAgICBkaXN0cmljdFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBwYXJhbVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTY2hvb2xEZXRhaWxzKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VSZXF1ZXN0KHtcbiAgICAgICAgICAgIHF1ZXJ5OiBgcXVlcnkgZ2V0TGlzdE9mU2Nob29sc1VuZGVyQmxvY2tzQW5kRGlzdHJpY3QoJGRpc3RyaWN0OltTdHJpbmchXSwkc3RhdGU6U3RyaW5nLCRibG9jazpbU3RyaW5nIV0pe1xuICAgICAgICAgICAgc2Nob29sczpvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH0sYmxvY2s6e19pbjokYmxvY2t9fSl7XG4gICAgICAgICAgICBzY2hvb2xcbiAgICAgICAgICAgIHNjaG9vbF9jb2RlXG4gICAgICAgICAgICBibG9ja1xuICAgICAgICAgICAgZGlzdHJpY3RcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogcGFyYW1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Q2x1c3RlcnMocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZVJlcXVlc3Qoe1xuICAgICAgICAgICAgcXVlcnk6IGBxdWVyeSBnZXRMaXN0T2ZDbHVzdGVyc1VuZGVyQmxvY2tBbmREaXN0cmljdCgkYmxvY2s6W1N0cmluZyFdLCRkaXN0cmljdDpbU3RyaW5nIV0sJHN0YXRlOlN0cmluZyl7XG4gICAgICAgICAgICBjbHVzdGVyczpvcmdhbmlzYXRpb24od2hlcmU6e3N0YXRlOntfZXE6JHN0YXRlfSxkaXN0cmljdDp7X2luOiRkaXN0cmljdH0sYmxvY2s6e19pbjokYmxvY2t9fSxkaXN0aW5jdF9vbjpjbHVzdGVyKXtcbiAgICAgICAgICAgIGNsdXN0ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBwYXJhbVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRSb2xlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVxdWVzdCh7XG4gICAgICAgICAgICBxdWVyeTogYHF1ZXJ5IGZldGNoTGlzdE9mUm9sZXN7XG4gICAgICAgICAgICAgICAgICAgcm9sZXtcbiAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgfWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Qm9hcmRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVxdWVzdCh7XG4gICAgICAgICAgICBxdWVyeTogYHF1ZXJ5IGxpc3RPZkJvYXJkc3tcbiAgICAgICAgICAgICAgICAgIGJvYXJke1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIG5hbWV9fWBcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiYXNlUmVxdWVzdChib2R5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMLCBib2R5LCB7fSk7XG4gICAgfVxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs deleted file mode 100644 index 29d9c5f0d35..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/services/uci.service.mjs +++ /dev/null @@ -1,87 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpHeaders } from '@angular/common/http'; -import { BaseService } from './base.service'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/common/http"; -import * as i2 from "./global.service"; -export class UciService extends BaseService { - constructor(http, globalService) { - super(http, globalService); - this.http = http; - this.globalService = globalService; - this.FORM_BASE_URL = 'https://dev.sunbirded.org/'; - this.globalService.baseUrl$.subscribe(value => { - if (value) { - this.BASE_URL = value + '/admin/v1/'; - } - }); - } - fetchConversation(params) { - return this.getRequest(this.BASE_URL + 'bot/get', params, { asset: 'bot' }); - } - searchConversation(params) { - return this.getRequest(this.BASE_URL + 'bot/search', params, { asset: 'bot' }); - } - pauseConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, { asset: 'bot' }); - } - startConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, { asset: 'bot' }); - } - deleteConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, { asset: 'bot' }); - } - getBotUserDetails(id) { - return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, { asset: 'bot' }); - } - getCheckStartingMessage(param) { - return this.getRequest(this.BASE_URL + `bot/getByParam`, param, { asset: 'bot' }); - } - botCreate(data) { - return this.postRequest(this.BASE_URL + 'bot/create', data, { asset: 'bot' }); - } - botUpdate(id, data) { - return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, { asset: 'bot' }); - } - // User Segment APIs - fetchUserSegment(params) { - return this.getRequest(this.BASE_URL + 'userSegment/get', params, { asset: 'userSegment' }); - } - searchUserSegment(params) { - return this.getRequest(this.BASE_URL + 'userSegment/search', params, { asset: 'userSegment' }); - } - createUserSegment(data) { - return this.postRequest(this.BASE_URL + 'userSegment/create', data, { asset: 'userSegment' }); - } - userSegmentQueryBuilder(data) { - return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, { asset: 'userSegment' }); - } - // Conversation APIs - createLogic(data) { - return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, { asset: 'conversationLogic' }); - } - updateLogic(id, data) { - return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, { asset: 'conversationLogic' }); - } - deleteLogic(id) { - return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, { asset: 'conversationLogic' }); - } - // Mis APIs - uploadFile(obj) { - let headers = new HttpHeaders(); - headers = headers.set('Content-Type', 'multipart/form-data'); - return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), { headers }); - } - readForm(data) { - return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.GlobalService }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3NlcnZpY2VzL3VjaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU8zQyxNQUFNLE9BQU8sVUFBVyxTQUFRLFdBQVc7SUFJdkMsWUFBbUIsSUFBZ0IsRUFBUyxhQUE0QjtRQUNwRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRFosU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRnhFLGtCQUFhLEdBQUcsNEJBQTRCLENBQUM7UUFJekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksS0FBSyxFQUFFO2dCQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQzthQUN4QztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQU07UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFNO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztJ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QUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUU7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVUsQ0FBQyxHQUFHO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBeEZRLFVBQVU7bUhBQVYsVUFBVSxjQUZQLE1BQU07OzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmFzZVNlcnZpY2V9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0dsb2JhbFNlcnZpY2V9IGZyb20gJy4vZ2xvYmFsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVjaVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gICAgQkFTRV9VUkw7XG4gICAgRk9STV9CQVNFX1VSTCA9ICdodHRwczovL2Rldi5zdW5iaXJkZWQub3JnLyc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cDogSHR0cENsaWVudCwgcHVibGljIGdsb2JhbFNlcnZpY2U6IEdsb2JhbFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaHR0cCwgZ2xvYmFsU2VydmljZSk7XG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5iYXNlVXJsJC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5CQVNFX1VSTCA9IHZhbHVlICsgJy9hZG1pbi92MS8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmZXRjaENvbnZlcnNhdGlvbihwYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnYm90L2dldCcsIHBhcmFtcywge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIHNlYXJjaENvbnZlcnNhdGlvbihwYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnYm90L3NlYXJjaCcsIHBhcmFtcywge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIHBhdXNlQ29udmVyc2F0aW9uKGJvdElkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC9wYXVzZS8ke2JvdElkfWAsIHt9LCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgc3RhcnRDb252ZXJzYXRpb24oYm90SWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgYm90L3N0YXJ0LyR7Ym90SWR9YCwge30sIHthc3NldDogJ2JvdCd9KTtcbiAgICB9XG5cbiAgICBkZWxldGVDb252ZXJzYXRpb24oYm90SWQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgYm90L2RlbGV0ZS8ke2JvdElkfWAsIHt9LCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgZ2V0Qm90VXNlckRldGFpbHMoaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC9nZXQvJHtpZH1gLCB7fSwge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIGdldENoZWNrU3RhcnRpbmdNZXNzYWdlKHBhcmFtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArIGBib3QvZ2V0QnlQYXJhbWAsIHBhcmFtLCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgYm90Q3JlYXRlKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICdib3QvY3JlYXRlJywgZGF0YSwge2Fzc2V0OiAnYm90J30pO1xuICAgIH1cblxuICAgIGJvdFVwZGF0ZShpZCwgZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3N0UmVxdWVzdCh0aGlzLkJBU0VfVVJMICsgYGJvdC91cGRhdGUvJHtpZH1gLCBkYXRhLCB7YXNzZXQ6ICdib3QnfSk7XG4gICAgfVxuXG4gICAgLy8gVXNlciBTZWdtZW50IEFQSXNcbiAgICBmZXRjaFVzZXJTZWdtZW50KHBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9nZXQnLCBwYXJhbXMsIHthc3NldDogJ3VzZXJTZWdtZW50J30pO1xuICAgIH1cblxuICAgIHNlYXJjaFVzZXJTZWdtZW50KHBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9zZWFyY2gnLCBwYXJhbXMsIHthc3NldDogJ3VzZXJTZWdtZW50J30pO1xuICAgIH1cblxuICAgIGNyZWF0ZVVzZXJTZWdtZW50KGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArICd1c2VyU2VnbWVudC9jcmVhdGUnLCBkYXRhLCB7YXNzZXQ6ICd1c2VyU2VnbWVudCd9KTtcbiAgICB9XG5cbiAgICB1c2VyU2VnbWVudFF1ZXJ5QnVpbGRlcihkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAndXNlclNlZ21lbnQvcXVlcnlCdWlsZGVyJywgZGF0YSwge2Fzc2V0OiAndXNlclNlZ21lbnQnfSk7XG4gICAgfVxuXG4gICAgLy8gQ29udmVyc2F0aW9uIEFQSXNcbiAgICBjcmVhdGVMb2dpYyhkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyAnY29udmVyc2F0aW9uTG9naWMvY3JlYXRlJywgZGF0YSwge2Fzc2V0OiAnY29udmVyc2F0aW9uTG9naWMnfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlTG9naWMoaWQsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5CQVNFX1VSTCArIGBjb252ZXJzYXRpb25Mb2dpYy91cGRhdGUvJHtpZH1gLCBkYXRhLCB7YXNzZXQ6ICdjb252ZXJzYXRpb25Mb2dpYyd9KTtcbiAgICB9XG5cbiAgICBkZWxldGVMb2dpYyhpZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSZXF1ZXN0KHRoaXMuQkFTRV9VUkwgKyBgY29udmVyc2F0aW9uTG9naWMvZGVsZXRlLyR7aWR9YCwge30sIHthc3NldDogJ2NvbnZlcnNhdGlvbkxvZ2ljJ30pO1xuICAgIH1cblxuICAgIC8vIE1pcyBBUElzXG4gICAgdXBsb2FkRmlsZShvYmopOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLkJBU0VfVVJMICsgJ2Zvcm1zL3VwbG9hZCcsIHRoaXMudG9Gb3JtRGF0YShvYmopLCB7aGVhZGVyc30pO1xuICAgIH1cblxuICAgIHJlYWRGb3JtKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFJlcXVlc3QodGhpcy5GT1JNX0JBU0VfVVJMICsgJ2FwaS9kYXRhL3YxL2Zvcm0vcmVhZCcsIGRhdGEpO1xuICAgIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs deleted file mode 100644 index 787f0764d18..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/telemetry-utils.service.mjs +++ /dev/null @@ -1,103 +0,0 @@ -import { Injectable } from '@angular/core'; -/* tslint:disable */ -import * as _ from 'lodash'; -import * as i0 from "@angular/core"; -import * as i1 from "./uci-events.service"; -import * as i2 from "@angular/router"; -export class TelemetryUtilsService { - constructor(discussionEvents, router) { - this.discussionEvents = discussionEvents; - this.router = router; - this._context = []; - this.currentObj = {}; - } - setContext(context) { - this._context = context; - this.currentObj = _.last(context); - } - uppendContext(data) { - const matchedC = _.find(this._context, { id: data.id }); - if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) { - this._context.push(data); - } - this.currentObj = _.last(this._context); - } - deleteContext(prevTopic) { - const topic = _.find(this._context, prevTopic); - if (topic) { - this._context = _.reject(this._context, topic); - } - } - getContext() { - return this._context; - } - logImpression(pageId) { - this.discussionEvents.emitTelemetry({}); - const impressionEvent = { - eid: 'IMPRESSION', - edata: { - type: 'view', - pageid: pageId, - uri: this.router.url - } - }; - if (this.currentObj) { - impressionEvent.context = { cdata: [{ - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type') - } - ] }; - } - this.discussionEvents.emitTelemetry(impressionEvent); - } - logInteract(event, pageId) { - const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') || - _.get(event, 'srcElement.attributes.id'); - const interactEvent = { - eid: 'INTERACT', - edata: { - id: _.get(target, 'value') || _.get(event, 'action'), - type: 'CLICK', - pageid: pageId - } - }; - if (this.currentObj) { - const object = { - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type'), - ver: '1' - }; - object['rollup'] = this._context.length > 1 ? this.getRollUp() : {}; - interactEvent.context = { - cdata: [{ - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type') - }], object - }; - } - this.discussionEvents.emitTelemetry(interactEvent); - } - getRollUp() { - const rollUp = {}; - const data = _.reject(this._context, this.currentObj); - if (this._context.length > 1) { - data.forEach((element, index) => { - // console.log('rollup', element); - rollUp['l' + (index + 1)] = element.toString(); - }); - } - if (_.get(this.currentObj, 'type') !== 'Post') { - return rollUp; - } - return {}; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, deps: [{ token: i1.UciEventsService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.UciEventsService }, { type: i2.Router }]; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y2ktY29uc29sZS9zcmMvbGliL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0Msb0JBQW9CO0FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7O0FBVzNCLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxnQkFBa0MsRUFDbEMsTUFBYztRQURkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUx4QixhQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2IsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQUtaLENBQUM7SUFFTCxVQUFVLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxR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QUNyQyxDQUFDLEVBQUUsTUFBTTthQUNYLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVM7UUFFTCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM5QixrQ0FBa0M7Z0JBQ2xDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRTtZQUM3QyxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFFZCxDQUFDOytHQXJHVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBVY2lFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi91Y2ktZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCdcbi8qIHRzbGludDplbmFibGUgKi9cbmludGVyZmFjZSBJVGVsZW1ldHJ5T2JqIHtcbiAgZWlkOiBzdHJpbmcsXG4gIGVkYXRhOiB7fSxcbiAgY29udGV4dD86IHt9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeVV0aWxzU2VydmljZSB7XG5cbiAgX2NvbnRleHQgPSBbXVxuICBjdXJyZW50T2JqID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaXNjdXNzaW9uRXZlbnRzOiBVY2lFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBzZXRDb250ZXh0KGNvbnRleHQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmN1cnJlbnRPYmogPSBfLmxhc3QoY29udGV4dCk7XG4gIH1cblxuICB1cHBlbmRDb250ZXh0KGRhdGEpIHtcbiAgICBjb25zdCBtYXRjaGVkQyA9IF8uZmluZCh0aGlzLl9jb250ZXh0LCB7IGlkOiBkYXRhLmlkIH0pO1xuICAgIGlmICghXy5pc0VtcHR5KGRhdGEpICYmICFfLmlzRXF1YWwoZGF0YSwgbWF0Y2hlZEMpKSB7XG4gICAgICB0aGlzLl9jb250ZXh0LnB1c2goZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudE9iaiA9IF8ubGFzdCh0aGlzLl9jb250ZXh0KTtcbiAgfVxuXG4gIGRlbGV0ZUNvbnRleHQocHJldlRvcGljKSB7XG4gICAgY29uc3QgdG9waWMgPSBfLmZpbmQodGhpcy5fY29udGV4dCwgcHJldlRvcGljKTtcbiAgICBpZiAodG9waWMpIHtcbiAgICAgIHRoaXMuX2NvbnRleHQgPSBfLnJlamVjdCh0aGlzLl9jb250ZXh0LCB0b3BpYyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIGxvZ0ltcHJlc3Npb24ocGFnZUlkKSB7XG4gICAgdGhpcy5kaXNjdXNzaW9uRXZlbnRzLmVtaXRUZWxlbWV0cnkoe30pO1xuICAgIGNvbnN0IGltcHJlc3Npb25FdmVudDogSVRlbGVtZXRyeU9iaiA9IHtcbiAgICAgIGVpZDogJ0lNUFJFU1NJT04nLFxuICAgICAgZWRhdGE6IHtcbiAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICBwYWdlaWQ6IHBhZ2VJZCxcbiAgICAgICAgdXJpOiB0aGlzLnJvdXRlci51cmxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudE9iaikge1xuICAgICAgaW1wcmVzc2lvbkV2ZW50LmNvbnRleHQgPSB7IGNkYXRhOiBbe1xuICAgICAgICBpZDogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAnaWQnKS50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiBfLmdldCh0aGlzLmN1cnJlbnRPYmosICd0eXBlJykgfVxuICAgICAgXX07XG4gICAgfVxuICAgIHRoaXMuZGlzY3Vzc2lvbkV2ZW50cy5lbWl0VGVsZW1ldHJ5KGltcHJlc3Npb25FdmVudCk7XG4gIH1cblxuICBsb2dJbnRlcmFjdChldmVudCwgcGFnZUlkKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gXy5nZXQoZXZlbnQsICdjdXJyZW50VGFyZ2V0LmF0dHJpYnV0ZXMuaWQnKSB8fCAgXy5nZXQoZXZlbnQsICd0YXJnZXQuYXR0cmlidXRlcy5pZCcpIHx8XG4gICAgIF8uZ2V0KGV2ZW50LCAnc3JjRWxlbWVudC5hdHRyaWJ1dGVzLmlkJyk7XG4gICAgY29uc3QgaW50ZXJhY3RFdmVudDogSVRlbGVtZXRyeU9iaiA9IHtcbiAgICAgIGVpZDogJ0lOVEVSQUNUJyxcbiAgICAgIGVkYXRhOiB7XG4gICAgICAgIGlkOiBfLmdldCh0YXJnZXQsICd2YWx1ZScpIHx8IF8uZ2V0KGV2ZW50LCAnYWN0aW9uJyksXG4gICAgICAgIHR5cGU6ICdDTElDSycsXG4gICAgICAgIHBhZ2VpZDogcGFnZUlkXG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRPYmopIHtcbiAgICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgICAgaWQ6IF8uZ2V0KHRoaXMuY3VycmVudE9iaiwgJ2lkJykudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAndHlwZScpLFxuICAgICAgICB2ZXI6ICcxJ1xuICAgICAgfTtcbiAgICAgIG9iamVjdFsncm9sbHVwJ10gPSB0aGlzLl9jb250ZXh0Lmxlbmd0aCA+IDEgPyAgdGhpcy5nZXRSb2xsVXAoKSA6IHt9O1xuICAgICAgaW50ZXJhY3RFdmVudC5jb250ZXh0ID0ge1xuICAgICAgICBjZGF0YTogW3tcbiAgICAgICAgICBpZDogXy5nZXQodGhpcy5jdXJyZW50T2JqLCAnaWQnKS50b1N0cmluZygpLFxuICAgICAgICAgIHR5cGU6IF8uZ2V0KHRoaXMuY3VycmVudE9iaiwgJ3R5cGUnKVxuICAgICAgICB9XSwgb2JqZWN0XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuZGlzY3Vzc2lvbkV2ZW50cy5lbWl0VGVsZW1ldHJ5KGludGVyYWN0RXZlbnQpO1xuICB9XG5cbiAgZ2V0Um9sbFVwKCkge1xuXG4gICAgICBjb25zdCByb2xsVXAgPSB7fTtcbiAgICAgIGNvbnN0IGRhdGEgPSBfLnJlamVjdCh0aGlzLl9jb250ZXh0LCB0aGlzLmN1cnJlbnRPYmopO1xuXG4gICAgICBpZiAodGhpcy5fY29udGV4dC5sZW5ndGggPiAxKSB7XG4gICAgICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygncm9sbHVwJywgZWxlbWVudCk7XG4gICAgICAgICAgcm9sbFVwWydsJyArIChpbmRleCArIDEpXSA9IGVsZW1lbnQudG9TdHJpbmcoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmdldCh0aGlzLmN1cnJlbnRPYmosICd0eXBlJykgIT09ICdQb3N0Jykge1xuICAgICAgICByZXR1cm4gcm9sbFVwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge307XG5cbiAgfVxuXG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs deleted file mode 100644 index 96cca67e43a..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-events.service.mjs +++ /dev/null @@ -1,27 +0,0 @@ -import { Injectable, EventEmitter } from '@angular/core'; -import { Subject } from 'rxjs'; -/* tslint:disable */ -import * as _ from 'lodash'; -import * as i0 from "@angular/core"; -/* tslint:enable */ -export class UciEventsService { - constructor() { - this.telemetryEvent = new Subject(); - this.actionEvent = new EventEmitter(); - } - emitTelemetry(event) { - // console.log('Lib Event', event); - if (!_.isEmpty(event)) { - this.telemetryEvent.next(event); - } - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return []; } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi91Y2ktZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7O0FBQzNCLG1CQUFtQjtBQUluQixNQUFNLE9BQU8sZ0JBQWdCO0lBSzNCO1FBSE8sbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUU3QixDQUFDO0lBRWpCLGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7K0dBWlUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG4vKiB0c2xpbnQ6ZW5hYmxlICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVY2lFdmVudHNTZXJ2aWNlIHtcblxuICBwdWJsaWMgdGVsZW1ldHJ5RXZlbnQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHB1YmxpYyBhY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgZW1pdFRlbGVtZXRyeShldmVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdMaWIgRXZlbnQnLCBldmVudCk7XG4gICAgaWYgKCFfLmlzRW1wdHkoZXZlbnQpKSB7XG4gICAgICB0aGlzLnRlbGVtZXRyeUV2ZW50Lm5leHQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs deleted file mode 100644 index 0fd100e0fbd..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-module.mjs +++ /dev/null @@ -1,34 +0,0 @@ -import { TelemetryUtilsService } from './telemetry-utils.service'; -import { LibEntryComponent } from './components/lib-entry/lib-entry.component'; -import { ComponentsModule } from './components/components.module'; -import { UciRoutingModule } from './uci-routing/uci-routing.module'; -import { NgModule } from '@angular/core'; -import { UciEventsService } from './uci-events.service'; -import * as i0 from "@angular/core"; -export function provideCsModule() { - return window['CsModule']; -} -export class UciModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciModule, declarations: [LibEntryComponent], imports: [ComponentsModule, - UciRoutingModule], exports: [LibEntryComponent] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }], imports: [ComponentsModule, - UciRoutingModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [ - LibEntryComponent - ], - imports: [ - ComponentsModule, - UciRoutingModule - ], - exports: [ - LibEntryComponent - ], - providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }] - }] - }] }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9saWIvdWNpLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQUV0RCxNQUFNLFVBQVUsZUFBZTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBZUQsTUFBTSxPQUFPLFNBQVM7K0dBQVQsU0FBUztnSEFBVCxTQUFTLGlCQVhkLGlCQUFpQixhQUdqQixnQkFBZ0I7WUFDaEIsZ0JBQWdCLGFBR2hCLGlCQUFpQjtnSEFJWixTQUFTLGFBRlAsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBQyxDQUFDLFlBTnBHLGdCQUFnQjtZQUNoQixnQkFBZ0I7OzRGQU9YLFNBQVM7a0JBYnJCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBQyxDQUFDO2lCQUMzRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGVsZW1ldHJ5VXRpbHNTZXJ2aWNlfSBmcm9tICcuL3RlbGVtZXRyeS11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7TGliRW50cnlDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbXBvbmVudHNNb2R1bGV9IGZyb20gJy4vY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZSc7XG5pbXBvcnQge1VjaVJvdXRpbmdNb2R1bGV9IGZyb20gJy4vdWNpLXJvdXRpbmcvdWNpLXJvdXRpbmcubW9kdWxlJztcblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VWNpRXZlbnRzU2VydmljZX0gZnJvbSAnLi91Y2ktZXZlbnRzLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNzTW9kdWxlKCkge1xuICAgIHJldHVybiB3aW5kb3dbJ0NzTW9kdWxlJ107XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIExpYkVudHJ5Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIFVjaVJvdXRpbmdNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTGliRW50cnlDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1VjaUV2ZW50c1NlcnZpY2UsIFRlbGVtZXRyeVV0aWxzU2VydmljZSwge3Byb3ZpZGU6ICdDc01vZHVsZScsIHVzZUZhY3Rvcnk6IHByb3ZpZGVDc01vZHVsZX1dXG59KVxuZXhwb3J0IGNsYXNzIFVjaU1vZHVsZSB7XG59XG4iXX0= \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs deleted file mode 100644 index 15d88b22a70..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/lib/uci-routing/uci-routing.module.mjs +++ /dev/null @@ -1,55 +0,0 @@ -import { LibEntryComponent } from '../components/lib-entry/lib-entry.component'; -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; -import { ConversationListComponent } from '../components/conversation-list/conversation-list.component'; -import { ConversationAddComponent } from '../components/conversation-add/conversation-add.component'; -import { ConversationSuccessComponent } from '../components/conversation-success/conversation-success.component'; -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -const routes = [ - { - path: '', - component: LibEntryComponent, - children: [ - { - path: 'home', - pathMatch: 'full', - component: ConversationListComponent - }, - { - path: 'add', - pathMatch: 'full', - component: ConversationAddComponent, - }, - { - path: ':id/edit', - pathMatch: 'full', - component: ConversationAddComponent, - }, - { - path: 'success', - pathMatch: 'full', - component: ConversationSuccessComponent, - }, - ] - } -]; -export class UciRoutingModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [i1.RouterModule, CommonModule], exports: [RouterModule] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [RouterModule.forChild(routes), - CommonModule, RouterModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [], - imports: [ - RouterModule.forChild(routes), - CommonModule - ], - exports: [RouterModule] - }] - }] }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNpLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL2xpYi91Y2ktcm91dGluZy91Y2ktcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR25HLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDOzs7QUFHL0csTUFBTSxNQUFNLEdBQVc7SUFDbkI7UUFDSSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsUUFBUSxFQUFFO1lBQ047Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLFNBQVMsRUFBRSx5QkFBeUI7YUFDdkM7WUFDRDtnQkFDSSxJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUUsTUFBTTtnQkFDakIsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsTUFBTTtnQkFDakIsU0FBUyxFQUFFLHdCQUF3QjthQUN0QztZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixTQUFTLEVBQUUsNEJBQTRCO2FBQzFDO1NBQ0o7S0FDSjtDQUNKLENBQUM7QUFVRixNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQiw2QkFKckIsWUFBWSxhQUVOLFlBQVk7Z0hBRWIsZ0JBQWdCLFlBTHJCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzdCLFlBQVksRUFFTixZQUFZOzs0RkFFYixnQkFBZ0I7a0JBUjVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaWJFbnRyeUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9saWItZW50cnkvbGliLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29udmVyc2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb252ZXJzYXRpb24tbGlzdC9jb252ZXJzYXRpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb252ZXJzYXRpb25BZGRDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvY29udmVyc2F0aW9uLWFkZC9jb252ZXJzYXRpb24tYWRkLmNvbXBvbmVudCc7XG5pbXBvcnQge1VzZXJTZWdtZW50TGlzdENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy91c2VyLXNlZ21lbnQtbGlzdC91c2VyLXNlZ21lbnQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtVc2VyU2VnbWVudEFkZENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy91c2VyLXNlZ21lbnQtYWRkL3VzZXItc2VnbWVudC1hZGQuY29tcG9uZW50JztcbmltcG9ydCB7Q29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb252ZXJzYXRpb24tc3VjY2Vzcy9jb252ZXJzYXRpb24tc3VjY2Vzcy5jb21wb25lbnQnO1xuXG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogTGliRW50cnlDb21wb25lbnQsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ2hvbWUnLFxuICAgICAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ29udmVyc2F0aW9uTGlzdENvbXBvbmVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnYWRkJyxcbiAgICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJzppZC9lZGl0JyxcbiAgICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbkFkZENvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0aDogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ29udmVyc2F0aW9uU3VjY2Vzc0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBVY2lSb3V0aW5nTW9kdWxlIHtcbn1cbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs deleted file mode 100644 index bed810eb7eb..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/public-api.mjs +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Public API Surface of discussion-ui - */ -export * from './lib/uci-module'; -export * from './lib/uci-events.service'; -export * from './lib/models/uci-config.model'; -export * from './lib/components/lib-entry/lib-entry.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VjaS1jb25zb2xlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWUsK0JBQStCLENBQUM7QUFDL0MsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZGlzY3Vzc2lvbi11aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3VjaS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWNpLWV2ZW50cy5zZXJ2aWNlJztcbmV4cG9ydCAqICBmcm9tICcuL2xpYi9tb2RlbHMvdWNpLWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xpYi1lbnRyeS9saWItZW50cnkuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs b/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs deleted file mode 100644 index 0367f7488ca..00000000000 --- a/src/app/client/src/assets/libs/uci-console/esm2022/samagra-x-uci-console.mjs +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -export * from './public-api'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtYWdyYS14LXVjaS1jb25zb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdWNpLWNvbnNvbGUvc3JjL3NhbWFncmEteC11Y2ktY29uc29sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19 \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs deleted file mode 100644 index 9e4e78d7d98..00000000000 --- a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs +++ /dev/null @@ -1,2195 +0,0 @@ -import * as i0 from '@angular/core'; -import { EventEmitter, Injectable, Component, Input, NgModule, Output, ViewChild } from '@angular/core'; -import * as _ from 'lodash'; -import { Subject, BehaviorSubject, throwError } from 'rxjs'; -import * as i1 from '@angular/router'; -import { RouterModule } from '@angular/router'; -import * as i1$1 from '@angular/common/http'; -import { HttpHeaders, HttpClientModule } from '@angular/common/http'; -import { map, catchError, debounceTime } from 'rxjs/operators'; -import * as i5 from '@angular/common'; -import { CommonModule } from '@angular/common'; -import * as i3 from '@angular/forms'; -import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { TagInputModule } from 'ngx-chips'; -import * as i6 from '@project-sunbird/ng2-semantic-ui'; -import { SuiModule } from '@project-sunbird/ng2-semantic-ui'; -import moment from 'moment/moment'; -import { CommonFormElementsModule } from '@project-sunbird/common-form-elements-full'; - -/* tslint:enable */ -class UciEventsService { - constructor() { - this.telemetryEvent = new Subject(); - this.actionEvent = new EventEmitter(); - } - emitTelemetry(event) { - // console.log('Lib Event', event); - if (!_.isEmpty(event)) { - this.telemetryEvent.next(event); - } - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciEventsService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return []; } }); - -class TelemetryUtilsService { - constructor(discussionEvents, router) { - this.discussionEvents = discussionEvents; - this.router = router; - this._context = []; - this.currentObj = {}; - } - setContext(context) { - this._context = context; - this.currentObj = _.last(context); - } - uppendContext(data) { - const matchedC = _.find(this._context, { id: data.id }); - if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) { - this._context.push(data); - } - this.currentObj = _.last(this._context); - } - deleteContext(prevTopic) { - const topic = _.find(this._context, prevTopic); - if (topic) { - this._context = _.reject(this._context, topic); - } - } - getContext() { - return this._context; - } - logImpression(pageId) { - this.discussionEvents.emitTelemetry({}); - const impressionEvent = { - eid: 'IMPRESSION', - edata: { - type: 'view', - pageid: pageId, - uri: this.router.url - } - }; - if (this.currentObj) { - impressionEvent.context = { cdata: [{ - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type') - } - ] }; - } - this.discussionEvents.emitTelemetry(impressionEvent); - } - logInteract(event, pageId) { - const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') || - _.get(event, 'srcElement.attributes.id'); - const interactEvent = { - eid: 'INTERACT', - edata: { - id: _.get(target, 'value') || _.get(event, 'action'), - type: 'CLICK', - pageid: pageId - } - }; - if (this.currentObj) { - const object = { - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type'), - ver: '1' - }; - object['rollup'] = this._context.length > 1 ? this.getRollUp() : {}; - interactEvent.context = { - cdata: [{ - id: _.get(this.currentObj, 'id').toString(), - type: _.get(this.currentObj, 'type') - }], object - }; - } - this.discussionEvents.emitTelemetry(interactEvent); - } - getRollUp() { - const rollUp = {}; - const data = _.reject(this._context, this.currentObj); - if (this._context.length > 1) { - data.forEach((element, index) => { - // console.log('rollup', element); - rollUp['l' + (index + 1)] = element.toString(); - }); - } - if (_.get(this.currentObj, 'type') !== 'Post') { - return rollUp; - } - return {}; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, deps: [{ token: UciEventsService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TelemetryUtilsService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: UciEventsService }, { type: i1.Router }]; } }); - -var UciData; -(function (UciData) { - let IPageName; - (function (IPageName) { - IPageName["HOME"] = "uci-admin"; - IPageName["LIB_ENTRY"] = "lib-entry"; - })(IPageName = UciData.IPageName || (UciData.IPageName = {})); -})(UciData || (UciData = {})); - -class GlobalService { - constructor() { - this.user = new BehaviorSubject(undefined); - this.user$ = this.user.asObservable(); - this.baseUrl = new BehaviorSubject(undefined); - this.baseUrl$ = this.baseUrl.asObservable(); - } - setUser(user) { - this.user.next(user); - } - getUser() { - return this.user.value; - } - setBaseUrl(baseUrl) { - this.baseUrl.next(baseUrl); - } - getBaseUrl() { - return this.baseUrl.value; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GlobalService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return []; } }); - -class BaseService { - constructor(http, globalService) { - this.http = http; - this.globalService = globalService; - } - getDefaultHeaders() { - const headers = {}; - const user = this.globalService.getUser(); - if (user && user.id) { - headers.ownerID = user.id; - } - if (user && user.rootOrgId) { - headers.ownerOrgID = user.rootOrgId; - } - return headers; - } - getRequest(url, params = {}, headers = {}) { - headers = { - ...headers, - ...this.getDefaultHeaders() - }; - return this.http.get(url, { params, headers }).pipe(map((res) => { - return res.result; - }), catchError(err => { - return this.handleError(err); - })); - } - postRequest(url, data = {}, headers = {}) { - headers = { - ...headers, - ...this.getDefaultHeaders() - }; - return this.http.post(url, data, { headers }).pipe(map((res) => { - return res.result; - }), catchError(err => { - return this.handleError(err); - })); - } - handleError(error) { - if (error instanceof ErrorEvent) { - return throwError(error['error']['message']); - } - return throwError(error.error); - } - toFormData(formValue) { - const formData = new FormData(); - console.error("[UCI Console]", JSON.stringify(formValue)); - for (const key of Object.keys(formValue)) { - const value = formValue[key]; - formData.append(key, value); - } - return formData; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); - -class UciService extends BaseService { - constructor(http, globalService) { - super(http, globalService); - this.http = http; - this.globalService = globalService; - this.FORM_BASE_URL = 'https://dev.sunbirded.org/'; - this.globalService.baseUrl$.subscribe(value => { - if (value) { - this.BASE_URL = value + '/admin/v1/'; - } - }); - } - fetchConversation(params) { - return this.getRequest(this.BASE_URL + 'bot/get', params, { asset: 'bot' }); - } - searchConversation(params) { - return this.getRequest(this.BASE_URL + 'bot/search', params, { asset: 'bot' }); - } - pauseConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, { asset: 'bot' }); - } - startConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, { asset: 'bot' }); - } - deleteConversation(botId) { - return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, { asset: 'bot' }); - } - getBotUserDetails(id) { - return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, { asset: 'bot' }); - } - getCheckStartingMessage(param) { - return this.getRequest(this.BASE_URL + `bot/getByParam`, param, { asset: 'bot' }); - } - botCreate(data) { - return this.postRequest(this.BASE_URL + 'bot/create', data, { asset: 'bot' }); - } - botUpdate(id, data) { - return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, { asset: 'bot' }); - } - // User Segment APIs - fetchUserSegment(params) { - return this.getRequest(this.BASE_URL + 'userSegment/get', params, { asset: 'userSegment' }); - } - searchUserSegment(params) { - return this.getRequest(this.BASE_URL + 'userSegment/search', params, { asset: 'userSegment' }); - } - createUserSegment(data) { - return this.postRequest(this.BASE_URL + 'userSegment/create', data, { asset: 'userSegment' }); - } - userSegmentQueryBuilder(data) { - return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, { asset: 'userSegment' }); - } - // Conversation APIs - createLogic(data) { - return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, { asset: 'conversationLogic' }); - } - updateLogic(id, data) { - return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, { asset: 'conversationLogic' }); - } - deleteLogic(id) { - return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, { asset: 'conversationLogic' }); - } - // Mis APIs - uploadFile(obj) { - let headers = new HttpHeaders(); - headers = headers.set('Content-Type', 'multipart/form-data'); - return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), { headers }); - } - readForm(data) { - return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); - -class ConfigService { - constructor(activatedRoute, UciService) { - this.activatedRoute = activatedRoute; - this.UciService = UciService; - } - ngOnInit() { - } - setConfig(activatedRoute) { - activatedRoute.data.subscribe((config) => { - this._config = config.data; - }); - } - setConfigFromParams(activatedRoute) { - activatedRoute.queryParams.subscribe((params) => { - const obj = { - userName: _.get(params, 'userName'), - categories: JSON.parse(_.get(params, 'categories')) - }; - this._config = obj; - }); - } - getConfig() { - return this._config; - } - getCategories() { - this.getParams = this.getConfig(); - return _.get(this.getParams, 'categories'); - } - hasContext() { - this.hasContextData = this.getCategories() ? - (this.getCategories().result ? this.getCategories().result.length : null) - : null; - return this.hasContextData; - } - getContext() { - this.getContextData = this.getCategories() ? - (this.getCategories().result ? this.getCategories().result : null) - : null; - return this.getContextData; - } - getRouterSlug() { - return this._config.routerSlug ? this._config.routerSlug : ''; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, deps: [{ token: i1.ActivatedRoute }, { token: UciService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: UciService }]; } }); - -var categories = [ - { - cid: 1, - name: "Announcements", - description: "Check here for announcements about NodeBB", - icon: "fa-bullhorn", - slug: "1/announcements", - topic_count: 73, - disabled: 0, - order: 1, - bgColor: "#e57373", - link: "", - "class": "col-lg-4 col-md-6 col-xs-12", - numRecentReplies: 1, - color: "#ffffff", - post_count: 884, - parentCid: 0, - descriptionParsed: "

Check here for announcements about NodeBB

\n", - minTags: 0, - maxTags: 5, - isSection: 0, - totalPostCount: 854, - totalTopicCount: 73, - tagWhitelist: [ - ], - "unread-class": "unread", - children: [ - ], - posts: [ - { - pid: 79553, - timestamp: 1597704130970, - content: "

A bug in our validation logic made it possible to change the password of any user on a running NodeBB forum by sending a specially crafted socket.io call to the server.

\n

We have resolved this in the latest version of NodeBB, and the fix has already been rolled out as a patch on all of our hosted customers.

\n

For more information on the vulnerability as well as instructions on how to resolve this issue, please have a look here: https://github.com/NodeBB/NodeBB/security/advisories/GHSA-hr66-c8pg-5mg7

\n

Click here to see the full blog post

\n", - timestampISO: "2020-08-17T22:42:10.970Z", - user: { - uid: 3, - username: "psychobunny", - userslug: "psychobunny", - picture: "https://i.imgur.com/ltvPqkU.gif", - displayname: "psychobunny", - "icon:text": "P", - "icon:bgColor": "#f44336" - }, - index: 1, - cid: 1, - parentCid: 0, - topic: { - slug: "14967/nodebb-v1-14-3-a-critical-security-update", - title: "NodeBB v1.14.3: A Critical Security Update" - } - } - ], - teaser: { - url: "/post/79553", - timestampISO: "2020-08-17T22:42:10.970Z", - pid: 79553, - topic: { - slug: "14967/nodebb-v1-14-3-a-critical-security-update", - title: "NodeBB v1.14.3: A Critical Security Update" - } - } - }, - { - cid: 2, - name: "General Discussion", - description: "A place to talk about whatever you want", - icon: "fa-comment", - slug: "2/general-discussion", - topic_count: 3188, - order: 2, - bgColor: "#ba68c8", - link: "", - "class": "col-lg-4 col-md-6 col-xs-12", - numRecentReplies: 1, - color: "#ffffff", - post_count: 20024, - descriptionParsed: "

A place to talk about whatever you want

\n", - minTags: 0, - maxTags: 5, - parentCid: 0, - disabled: 0, - isSection: 0, - totalPostCount: 20024, - totalTopicCount: 3188, - tagWhitelist: [ - ], - "unread-class": "", - children: [ - ], - posts: [ - { - pid: 80371, - timestamp: 1605714102926, - content: "

@gotwf pardon the late response, I've adopted your suggestion, thanks!

\n

@julian good to know! And apparently my spammers were all \"human-powered\"; ever since I made the changes suggested by @baris the blacklist hits and spam accounts have dropped to zero!

\n

Hopefully it stays that way so I can focus on content

\n

Cheers

\n", - timestampISO: "2020-11-18T15:41:42.926Z", - user: { - uid: 19985, - username: "Nefarius", - userslug: "nefarius", - picture: "https://i.imgur.com/v798aRw.png", - displayname: "Nefarius", - "icon:text": "N", - "icon:bgColor": "#673ab7" - }, - index: 6, - cid: 2, - parentCid: 0, - topic: { - slug: "15119/spam-registration-amount-and-handling-is-unbearable", - title: "Spam registration amount and handling is unbearable" - } - } - ], - teaser: { - url: "/post/80371", - timestampISO: "2020-11-18T15:41:42.926Z", - pid: 80371, - topic: { - slug: "15119/spam-registration-amount-and-handling-is-unbearable", - title: "Spam registration amount and handling is unbearable" - } - } - }, - { - link: "", - "class": "col-lg-4 col-md-6 col-xs-12", - icon: "fa-github", - description: "Stay tuned here to hear more about new releases and features of NodeBB!", - order: 3, - topic_count: 1158, - name: "NodeBB Development", - cid: 3, - post_count: 6760, - numRecentReplies: 1, - bgColor: "#4fc3f7", - slug: "3/nodebb-development", - color: "#ffffff", - disabled: 0, - descriptionParsed: "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", - isSection: 0, - minTags: 0, - maxTags: 5, - parentCid: 0, - totalPostCount: 17980, - totalTopicCount: 2992, - tagWhitelist: [ - ], - "unread-class": "unread", - children: [ - { - cid: 5, - name: "Feature Requests", - description: "You have a cool idea about NodeBB? Post it here.", - icon: "fa-lightbulb-o", - slug: "5/feature-requests", - topic_count: 692, - order: 1, - bgColor: "#ffb74d", - link: "", - "class": "col-lg-4 col-md-6 col-xs-12", - numRecentReplies: 1, - color: "#ffffff", - post_count: 4176, - parentCid: 3, - disabled: 0, - minTags: 0, - maxTags: 5, - isSection: 0, - totalPostCount: 4176, - totalTopicCount: 692, - descriptionParsed: "You have a cool idea about NodeBB? Post it here.", - tagWhitelist: [ - ], - "unread-class": "unread", - children: [ - ], - parent: { - link: "", - "class": "col-lg-4 col-md-6 col-xs-12", - icon: "fa-github", - description: "Stay tuned here to hear more about new releases and features of NodeBB!", - order: 3, - topic_count: 1158, - name: "NodeBB Development", - cid: 3, - post_count: 6760, - numRecentReplies: 1, - bgColor: "#4fc3f7", - slug: "3/nodebb-development", - color: "#ffffff", - disabled: 0, - descriptionParsed: "

Stay tuned here to hear more about new releases and features of NodeBB!

\n", - isSection: 0, - minTags: 0, - maxTags: 5, - parentCid: 0, - totalPostCount: 6760, - totalTopicCount: 1158, - tagWhitelist: [ - ], - "unread-class": "unread" - }, - posts: [ - { - pid: 80380, - timestamp: 1605820679025, - content: "

@julian if this makes sense to you, do you think this can be a part of \"canned responses\" plugin?

\n", - timestampISO: "2020-11-19T21:17:59.025Z", - user: { - uid: 16848, - username: "crazycells", - userslug: "crazycells", - picture: "https://i.imgur.com/fnkHctr.png", - displayname: "crazycells", - "icon:text": "C", - "icon:bgColor": "#009688" - }, - index: 2, - cid: 5, - parentCid: 3, - topic: { - slug: "15137/canned-explanations-reasons-for-user-ban", - title: "canned explanations(reasons) for user ban" - } - } - ] - } - ] - } -]; -var topics = [ - { - cid: 13, - lastposttime: 1606632795076, - mainPid: 17647, - postcount: 1, - slug: "8917/hello-this-is-my-new-post", - tid: 8917, - timestamp: 1606632795069, - title: "Hello this is my new post", - uid: 104, - viewcount: 1, - deleted: 0, - locked: 0, - pinned: 0, - upvotes: 0, - downvotes: 0, - deleterUid: 0, - titleRaw: "Hello this is my new post", - timestampISO: "2020-11-29T06:53:15.069Z", - lastposttimeISO: "2020-11-29T06:53:15.076Z", - votes: 0, - teaserPid: null, - category: { - cid: 13, - name: "Administration", - slug: "13/administration", - icon: "fa-comments", - backgroundImage: null, - imageClass: "cover", - bgColor: "#DC9656", - color: "#fff", - disabled: 0 - }, - user: { - uid: 104, - username: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - fullname: "arunkumar pilli", - userslug: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - reputation: 0, - postcount: 1, - picture: null, - signature: null, - banned: 0, - status: "online", - "icon:text": "5", - "icon:bgColor": "#1b5e20", - banned_until_readable: "Not Banned" - }, - teaser: { - pid: 17647, - uid: 104, - timestamp: 1606632795076, - tid: 8917, - content: "adding new post in igot discussions\n", - timestampISO: "2020-11-29T06:53:15.076Z", - user: { - uid: 104, - username: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - userslug: "5cad153a-29f0-4cc6-8344-ad5fc06ffb1d", - picture: null, - "icon:text": "5", - "icon:bgColor": "#1b5e20" - }, - index: 1 - }, - tags: [ - ], - isOwner: false, - ignored: false, - unread: true, - bookmark: 3, - unreplied: false, - icons: [ - ], - index: 0 - }, - { - cid: 9, - lastposttime: 1606297869195, - mainPid: 17635, - postcount: 5, - slug: "8912/why-is-bangalore-s-infrastructure-bad", - tid: 8912, - timestamp: 1606134890874, - title: "Why is Bangalore's infrastructure bad?", - uid: 113, - viewcount: 36, - downvotes: 0, - upvotes: 2, - teaserPid: 17646, - deleted: 0, - locked: 0, - pinned: 0, - deleterUid: 0, - titleRaw: "Why is Bangalore's infrastructure bad?", - timestampISO: "2020-11-23T12:34:50.874Z", - lastposttimeISO: "2020-11-25T09:51:09.195Z", - votes: 2, - category: { - cid: 9, - name: "Infrastructure", - slug: "9/infrastructure", - icon: "fa-comments", - backgroundImage: null, - imageClass: "cover", - bgColor: "#86C1B9", - color: "#333", - disabled: 0 - }, - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - fullname: "Manimegalai Mohan", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - reputation: 3, - postcount: 16, - picture: null, - signature: null, - banned: 0, - status: "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - banned_until_readable: "Not Banned" - }, - teaser: { - pid: 17635, - uid: 113, - timestamp: 1606134890882, - tid: 8912, - content: "Why is Bangalore's infrastructure bad?\n", - timestampISO: "2020-11-23T12:34:50.882Z", - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - picture: null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - index: 1 - }, - tags: [ - ], - isOwner: false, - ignored: false, - unread: true, - bookmark: 7, - unreplied: false, - icons: [ - ], - index: 1 - }, - { - cid: 13, - lastposttime: 1606201083049, - mainPid: 17645, - postcount: 1, - slug: "8916/origin-of-solar-system", - tid: 8916, - timestamp: 1606201083043, - title: "Origin of Solar system", - uid: 113, - viewcount: 10, - deleted: 0, - locked: 0, - pinned: 0, - upvotes: 0, - downvotes: 0, - deleterUid: 0, - titleRaw: "Origin of Solar system", - timestampISO: "2020-11-24T06:58:03.043Z", - lastposttimeISO: "2020-11-24T06:58:03.049Z", - votes: 0, - teaserPid: null, - category: { - cid: 13, - name: "Administration", - slug: "13/administration", - icon: "fa-comments", - backgroundImage: null, - imageClass: "cover", - bgColor: "#DC9656", - color: "#fff", - disabled: 0 - }, - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - fullname: "Manimegalai Mohan", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - reputation: 3, - postcount: 16, - picture: null, - signature: null, - banned: 0, - status: "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - banned_until_readable: "Not Banned" - }, - teaser: { - pid: 17645, - uid: 113, - timestamp: 1606201083049, - tid: 8916, - content: "Solar system\n", - timestampISO: "2020-11-24T06:58:03.049Z", - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - picture: null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - index: 1 - }, - tags: [ - ], - isOwner: false, - ignored: false, - unread: true, - bookmark: 3, - unreplied: false, - icons: [ - ], - index: 2 - }, - { - cid: 11, - lastposttime: 1606198830431, - mainPid: 17644, - postcount: 1, - slug: "8915/who-opened-up-the-indian-economy", - tid: 8915, - timestamp: 1606198830424, - title: "Who opened up the indian economy?", - uid: 113, - viewcount: 5, - deleted: 0, - locked: 0, - pinned: 0, - upvotes: 0, - downvotes: 0, - deleterUid: 0, - titleRaw: "Who opened up the indian economy?", - timestampISO: "2020-11-24T06:20:30.424Z", - lastposttimeISO: "2020-11-24T06:20:30.431Z", - votes: 0, - teaserPid: null, - category: { - cid: 11, - name: "Economy", - slug: "11/economy", - icon: "fa-comments", - backgroundImage: null, - imageClass: "cover", - bgColor: "#F7CA88", - color: "#333", - disabled: 0 - }, - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - fullname: "Manimegalai Mohan", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - reputation: 3, - postcount: 16, - picture: null, - signature: null, - banned: 0, - status: "offline", - "icon:text": "1", - "icon:bgColor": "#3f51b5", - banned_until_readable: "Not Banned" - }, - teaser: { - pid: 17644, - uid: 113, - timestamp: 1606198830431, - tid: 8915, - content: "Who opened up the indian economy?\n", - timestampISO: "2020-11-24T06:20:30.431Z", - user: { - uid: 113, - username: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - userslug: "1c2d792e-392b-4d98-b18e-af5ea69340b2", - picture: null, - "icon:text": "1", - "icon:bgColor": "#3f51b5" - }, - index: 1 - }, - tags: [ - ], - isOwner: false, - ignored: false, - unread: true, - bookmark: 3, - unreplied: false, - icons: [ - ], - index: 3 - }, - { - cid: 11, - lastposttime: 1606135442960, - mainPid: 17637, - postcount: 4, - slug: "8914/how-covid-will-impact-indian-economy", - tid: 8914, - timestamp: 1606135371841, - title: "How covid will impact indian economy ?", - uid: 5, - viewcount: 10, - teaserPid: 17640, - deleted: 0, - locked: 0, - pinned: 0, - upvotes: 0, - downvotes: 0, - deleterUid: 0, - titleRaw: "How covid will impact indian economy ?", - timestampISO: "2020-11-23T12:42:51.841Z", - lastposttimeISO: "2020-11-23T12:44:02.960Z", - votes: 0, - category: { - cid: 11, - name: "Economy", - slug: "11/economy", - icon: "fa-comments", - backgroundImage: null, - imageClass: "cover", - bgColor: "#F7CA88", - color: "#333", - disabled: 0 - }, - user: { - uid: 5, - username: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - fullname: "Christopher F'des", - userslug: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - reputation: 8, - postcount: 13, - picture: null, - signature: null, - banned: 0, - status: "offline", - "icon:text": "9", - "icon:bgColor": "#ff5722", - banned_until_readable: "Not Banned" - }, - teaser: { - pid: 17637, - uid: 5, - timestamp: 1606135371849, - tid: 8914, - content: "How covid will impact indian economy ?\n", - timestampISO: "2020-11-23T12:42:51.849Z", - user: { - uid: 5, - username: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - userslug: "9cdd9f76-2584-4ae5-940d-3f51dce020dc", - picture: null, - "icon:text": "9", - "icon:bgColor": "#ff5722" - }, - index: 1 - }, - tags: [ - ], - isOwner: false, - ignored: false, - unread: true, - bookmark: 6, - unreplied: false, - icons: [ - ], - index: 4 - } -]; -var ROUTES = { - UCI: "/uci" -}; -var MENUOPTIONS = [ - { - route: "uci", - label: "Conversations", - enable: true - } -]; -var constants = { - categories: categories, - topics: topics, - ROUTES: ROUTES, - MENUOPTIONS: MENUOPTIONS -}; - -/* tslint:enable */ -class SidePanelComponent { - constructor(router, uciService, activatedRoute, telemetryUtils, configService) { - this.router = router; - this.uciService = uciService; - this.activatedRoute = activatedRoute; - this.telemetryUtils = telemetryUtils; - this.configService = configService; - this.defaultPage = 'categories'; - this.menu = []; - this.showSideMenu = true; - } - ngOnInit() { - // TODO: loader or spinner - this.telemetryUtils.setContext([]); - this.hideSidePanel = document.body.classList.contains('widget'); - this.telemetryUtils.logImpression(UciData.IPageName.HOME); - this.data = this.configService.getConfig(); - const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : MENUOPTIONS; - for (let i = 0; i < menuArr.length; i++) { - if (menuArr[i].enable) { - this.menu.push(menuArr[i]); - } - } - } - isActive(selectedItem) { - if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) { - if (!this.selectedTab) { - this.selectedTab = selectedItem; - } - return true; - } - else if (selectedItem === 'categories' && !this.selectedTab) { - return true; - } - return false; - } - navigate(pageName, event) { - this.selectedTab = pageName; - this.telemetryUtils.setContext([]); - if (event) { - this.telemetryUtils.logInteract(event, UciData.IPageName.HOME); - } - this.router.navigate([`uci-admin`], { queryParamsHandling: 'merge' }); - this.closeNav(); - } - ngOnDestroy() { - if (this.paramsSubscription) { - this.paramsSubscription.unsubscribe(); - } - } - showMenuButton() { - this.showSideMenu = this.showSideMenu ? false : true; - } - closeNav() { - this.showSideMenu = this.showSideMenu ? false : true; - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, deps: [{ token: i1.Router }, { token: UciService }, { token: i1.ActivatedRoute }, { token: TelemetryUtilsService }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SidePanelComponent, selector: "lib-side-panel", ngImport: i0, template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SidePanelComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-side-panel', template: "\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n", styles: [".sb-sidebar-menu{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob{list-style-type:none;margin-bottom:0;height:100%;display:inline}.sb-sidebar-menu li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.openbtn,.overlay-sidebar{display:none}@media (max-width: 768px){.sb-sidebar-menu{display:none}.openbtn{display:inline;border:none;cursor:pointer;height:40px;width:40px;border-radius:16px;font-size:22px;background-color:#fff;box-shadow:3px 3px 2px #0000001a;color:#0245fd}.overlay-sidebar{height:100vh;width:100%;overflow:hidden;background:#0006;inset:0;position:absolute;display:inline;z-index:3;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}.overlay-sidebar__menu{position:relative;top:0;height:100%;width:15rem;right:0;z-index:100000;overflow-y:auto;overflow-x:hidden;background-color:#f5f6fa;color:#000000de;box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #000}.sidebar-menu__content{padding:0 1rem;height:100%}.closebtn{font-size:2.5rem;display:flex;justify-content:flex-end;padding-right:1rem;cursor:pointer}.ua-sidebar-menu-list{margin-bottom:.5rem;position:relative;padding:.675rem;font-size:.875rem}.sb-sidebar-menu-mob li{margin-bottom:0;padding:.75rem 1rem;font-size:14px;color:#333;border-left:.125rem solid transparent;cursor:pointer}.sb-sidebar-menu-mob li.menu-active{background-color:var(--white);font-weight:700;border-left:3px solid #005391;color:#002e50;border-bottom:0px}.sb-sidebar-menu-mob li:hover{background-color:var(--white);font-weight:700;color:#002e50}}\n"] }] - }], ctorParameters: function () { return [{ type: i1.Router }, { type: UciService }, { type: i1.ActivatedRoute }, { type: TelemetryUtilsService }, { type: ConfigService }]; } }); - -class LibEntryComponent { - constructor(activatedRoute, uciService, configService, location, uciEventsService, telemetryUtils, globalService, router) { - this.activatedRoute = activatedRoute; - this.uciService = uciService; - this.configService = configService; - this.location = location; - this.uciEventsService = uciEventsService; - this.telemetryUtils = telemetryUtils; - this.globalService = globalService; - this.router = router; - } - ngOnInit() { - if (this.user) { - this.globalService.setUser(this.user); - } - if (this.baseUrl) { - this.globalService.setBaseUrl(this.baseUrl); - } - if (this.router.url === '/uci-admin') { - this.router.navigate(['uci-admin/home']); - } - } - goBack() { - this.location.back(); - } - close(event) { - const eventAction = { - action: 'DF_CLOSE' - }; - this.uciEventsService.emitTelemetry(eventAction); - this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, deps: [{ token: i1.ActivatedRoute }, { token: UciService }, { token: ConfigService }, { token: i5.Location }, { token: UciEventsService }, { token: TelemetryUtilsService }, { token: GlobalService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LibEntryComponent, selector: "lib-lib-entry", inputs: { user: "user", baseUrl: "baseUrl" }, ngImport: i0, template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"], dependencies: [{ kind: "component", type: SidePanelComponent, selector: "lib-side-panel" }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LibEntryComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-lib-entry', template: "
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n", styles: [".ua-btn-container{display:flex;align-items:center;justify-content:space-between;background:#fff}.ua-btn-close{color:#000;font-weight:700;background:#ef64af}.uci-admin{width:100%;min-height:100vh;position:relative;z-index:unset}.uci-admin-content{display:grid;grid-template-columns:1fr 4fr;margin:0 1.5rem}.uci-admin-left-panel{padding:1.5rem;position:relative;z-index:2}.uci-admin-right-panel{padding:1.5rem}.ui.loader:after{border-color:#fff transparent transparent!important}@media (max-width: 768px){.uci-admin{padding:0 8px;height:100vh;overflow:auto;background:#e9e8d9}.uci-admin-left-panel{padding:1rem 0}.uci-admin-right-panel{padding:0 0 48px}}.font-weight-bold{font-weight:700}.font-weight-normal{font-weight:400}.font-1-2{font-size:1.2rem}.asterisk-color{color:red}.z-index-2{z-index:2!important}@media screen and (min-width: 376px) and (max-width: 768px){.uci-admin-content{grid-template-columns:1fr;margin:0}}@media screen and (min-width: 320px) and (max-width: 375px){.uci-admin-content{grid-template-columns:repeat(auto-fill,minmax(292px,1fr));margin:0}}.d-flex{display:flex}.flex-row{flex-flow:row!important}.flex-column{flex-flow:column!important}.justify-content-center{justify-content:center!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-around{justify-content:space-around!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.align-items-start{align-items:start!important}.align-items-end{align-items:end!important}.text-center{text-align:center!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-right .margin-auto{margin:auto!important}\n"] }] - }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: UciService }, { type: ConfigService }, { type: i5.Location }, { type: UciEventsService }, { type: TelemetryUtilsService }, { type: GlobalService }, { type: i1.Router }]; }, propDecorators: { user: [{ - type: Input - }], baseUrl: [{ - type: Input - }] } }); - -class PipesModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, imports: [CommonModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PipesModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [], - imports: [ - CommonModule - ], - exports: [] - }] - }] }); - -class ConversationListComponent { - constructor(uciService, router, globalService) { - this.uciService = uciService; - this.router = router; - this.globalService = globalService; - this.chatBots = []; - this.pager = { - totalItems: 0, - currentPage: 1, - pageSize: 10, - totalPages: 0, - startPage: 0, - endPage: 0, - startIndex: 0, - endIndex: 0, - pages: [] - }; - this.pageNumber = 1; - this.column = ''; - this.sortDirection = ''; - this.reverse = false; - } - ngOnInit() { - this.user = this.globalService.getUser(); - if (!this.user) { - this.router.navigate(['uci-admin']); - return; - } - this.getAllChatBots(); - } - getAllChatBots() { - const param = { - page: this.pager.currentPage, - perPage: this.pager.pageSize - }; - if (this.search) { - param.name = this.search; - this.uciService.searchConversation(param).subscribe(data => this.parseConversations(data)); - } - else { - this.uciService.fetchConversation(param).subscribe(data => this.parseConversations(data)); - } - } - parseConversations(data) { - this.chatBots = []; - data.data.forEach(bot => { - const obj = { ...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft' }; - obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft'; - const segmentNames = []; - bot.userSegments.forEach(userSegment => { - segmentNames.push(userSegment.name); - obj.userCount += (userSegment.count || 0); - }); - obj.segmentText = segmentNames.join(', '); - this.chatBots.push(obj); - }); - this.pager.totalItems = data.total; - this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); - this.pager.pages = []; - let i = 1; - while (i <= Math.ceil(data.total / this.pager.pageSize)) { - this.pager.pages.push(i); - i++; - } - } - sortColumns(column) { - this.column = column; - this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc'; - this.reverse = !this.reverse; - } - navigateToPage(page) { - if (page < 1 || page > this.pager.totalPages) { - return; - } - this.pageNumber = page; - this.pager.currentPage = page; - this.getAllChatBots(); - } - getSearch() { - this.getAllChatBots(); - } - onAddNew() { - this.router.navigateByUrl('uci-admin/add'); - } - onEdit(conversation) { - this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`); - } - onStatusChange(conversation, index) { - if (conversation.status === 'Live') { - this.uciService.pauseConversation(conversation.id).subscribe(data => { - this.chatBots[index].status = 'Disabled'; - }); - } - else { - this.uciService.startConversation(conversation.id).subscribe(data => { - this.chatBots[index].status = 'Live'; - }); - } - } - onDelete(conversation, index) { - this.uciService.deleteConversation(conversation.id).subscribe(data => { - this.chatBots.splice(index, 1); - }); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, deps: [{ token: UciService }, { token: i1.Router }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationListComponent, selector: "lib-conversation-list", ngImport: i0, template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationListComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-list', template: "
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n", styles: [".ellipsis-icon{font-size:1.2rem}.status-live{color:#3c763d}.status-draft{color:#ffb300}.status-disabled{color:#ff4a2f}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}\n"] }] - }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }, { type: GlobalService }]; } }); - -class UserSegmentListComponent { - constructor(uciService, route) { - this.uciService = uciService; - this.route = route; - this.cancel = new EventEmitter(); - this.add = new EventEmitter(); - this.selectedUserSegments = []; - this.userSegments = []; - this.selectedUserSegmentMap = {}; - this.pager = { - totalItems: 0, - currentPage: 1, - pageSize: 10, - totalPages: 0, - startPage: 0, - endPage: 0, - startIndex: 0, - endIndex: 0, - pages: [] - }; - this.pageNumber = 1; - this.column = ''; - this.reverse = false; - } - ngOnInit() { - this.selectedUserSegments.forEach(selectedUserSegment => { - this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment; - }); - this.getUserSegment(); - } - getUserSegment() { - const param = { - page: this.pager.currentPage, - perPage: this.pager.pageSize - }; - if (this.search) { - param.name = this.search; - this.uciService.searchUserSegment(param).subscribe(data => this.parseUserSegments(data)); - } - else { - this.uciService.fetchUserSegment(param).subscribe(data => this.parseUserSegments(data)); - } - } - parseUserSegments(data) { - this.userSegments = data.data; - this.pager.totalItems = data.total; - this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize); - this.pager.pages = []; - let i = 1; - while (i <= Math.ceil(data.total / this.pager.pageSize)) { - this.pager.pages.push(i); - i++; - } - } - navigateToPage(page) { - if (page < 1 || page > this.pager.totalPages) { - return; - } - this.pageNumber = page; - this.pager.currentPage = page; - this.getUserSegment(); - } - getSearch() { - this.getUserSegment(); - } - onCancel() { - this.cancel.emit(false); - } - onCheck(event, userSegment) { - if (event.target.checked) { - this.selectedUserSegmentMap[userSegment.id] = userSegment; - } - else { - delete this.selectedUserSegmentMap[userSegment.id]; - } - } - onAdd() { - this.add.emit(Object.values(this.selectedUserSegmentMap)); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, deps: [{ token: UciService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: { selectedUserSegments: "selectedUserSegments" }, outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentListComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-user-segment-list', template: "
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-5{font-size:1.5rem}.font-1-2{font-size:1.2rem}\n"] }] - }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }]; }, propDecorators: { cancel: [{ - type: Output - }], add: [{ - type: Output - }], selectedUserSegments: [{ - type: Input - }] } }); - -class UciGraphQlService extends BaseService { - constructor(http, globalService) { - super(http, globalService); - this.http = http; - this.globalService = globalService; - this.globalService.baseUrl$.subscribe(value => { - if (value) { - this.BASE_URL = value + '/v1/graphql'; - } - }); - } - getState() { - return this.baseRequest({ - query: `query getListOfStates{ - organisation(distinct_on:state){ - state}}` - }); - } - getDistrict(param) { - return this.baseRequest({ - query: `query getListOfDistrictInState($state:String){ - organisation(where:{state:{_eq:$state}}, distinct_on:district){ - state - district}}`, - variables: param - }); - } - getBlock(param) { - return this.baseRequest({ - query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){ - blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){ - block - district - state - } - }`, - variables: param - }); - } - getSchoolDetails(param) { - return this.baseRequest({ - query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){ - schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){ - school - school_code - block - district - state - } - }`, - variables: param - }); - } - getClusters(param) { - return this.baseRequest({ - query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){ - clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){ - cluster - } - }`, - variables: param - }); - } - getRole() { - return this.baseRequest({ - query: `query fetchListOfRoles{ - role{ - id - name - } - }` - }); - } - getBoards() { - return this.baseRequest({ - query: `query listOfBoards{ - board{ - id - name}}` - }); - } - baseRequest(body) { - return this.http.post(this.BASE_URL, body, {}); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, deps: [{ token: i1$1.HttpClient }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); } - static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, providedIn: 'root' }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciGraphQlService, decorators: [{ - type: Injectable, - args: [{ - providedIn: 'root' - }] - }], ctorParameters: function () { return [{ type: i1$1.HttpClient }, { type: GlobalService }]; } }); - -class UserSegmentAddComponent { - constructor(uciService, fb, uciGraphQlService) { - this.uciService = uciService; - this.fb = fb; - this.uciGraphQlService = uciGraphQlService; - this.cancel = new EventEmitter(); - this.add = new EventEmitter(); - this.userSegment = {}; - this.isLoaderShow = false; - this.districts = []; - this.blocks = []; - this.schools = []; - this.clusters = []; - this.roles = []; - this.boards = []; - this.grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12]; - this.subjects = []; - this.state = 'Haryana'; - } - ngOnInit() { - this.getUciDistrict(); - this.getUciRole(); - this.getUciBoard(); - this.userSegmentForm = this.fb.group({ - name: ['', Validators.required], - description: [''], - district: [''], - block: [''], - cluster: [''], - school: [''], - role: [''], - board: [''], - grade: [''], - subject: [''] - }); - this.userSegmentForm.get('district').valueChanges.subscribe(item => { - if (item) { - this.userSegmentForm.get('block').patchValue(''); - this.blocks = []; - this.userSegmentForm.get('cluster').patchValue(''); - this.userSegmentForm.get('school').patchValue(''); - this.schools = []; - this.clusters = []; - this.getUciBlock(); - } - }); - this.userSegmentForm.get('block').valueChanges.subscribe(item => { - if (item) { - this.userSegmentForm.get('cluster').patchValue(''); - this.userSegmentForm.get('school').patchValue(''); - this.schools = []; - this.clusters = []; - this.getUciCluster(); - this.getUciSchoolDetails(); - } - }); - } - onCancel() { - this.cancel.emit(false); - } - onAdd() { - if (this.userSegmentForm.invalid) { - return; - } - this.isLoaderShow = true; - const formValue = this.userSegmentForm.value; - const locationData = []; - const blockData = []; - const districtData = []; - for (const school of this.schools) { - if (formValue.school.indexOf(school.school) !== -1) { - locationData.push(school); - if (blockData.indexOf(school.block) === -1) { - blockData.push(school.block); - districtData.push(school.district); - } - } - if (locationData.length === formValue.school) { - break; - } - } - if (blockData.length < formValue.block.length) { - for (const block of this.blocks) { - if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) { - locationData.push(block); - blockData.push(block.block); - districtData.push(block.district); - } - if (blockData.length === formValue.block) { - break; - } - } - } - if (districtData.length < formValue.district.length) { - for (const district of this.districts) { - if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) { - locationData.push(district); - } - } - } - const param = { - data: { - userLocation: locationData, - roles: formValue.role, - userType: { - type: 'student' - }, - framework: { - board: formValue.board, - gradeLevel: formValue.grade - } - } - }; - this.uciService.userSegmentQueryBuilder(param).subscribe(response => { - if (response) { - const items = { - ...response, - name: formValue.name, - description: formValue.description - }; - this.uciService.createUserSegment({ data: items }).subscribe((data) => { - this.isLoaderShow = false; - this.afterAdd(data.inserted); - }, err => { - this.isLoaderShow = false; - }); - } - }, error => { - this.isLoaderShow = false; - }); - } - afterAdd(data) { - this.add.emit(data); - } - getUciState() { - this.uciGraphQlService.getState().subscribe(res => { - }); - } - getUciDistrict() { - const params = { - state: this.state - }; - this.uciGraphQlService.getDistrict(params).subscribe((res) => { - this.districts = []; - if (res && res.data && res.data.organisation && res.data.organisation.length) { - this.districts = res.data.organisation; - } - }); - } - getUciBlock() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district - }; - this.uciGraphQlService.getBlock(params).subscribe((res) => { - this.blocks = []; - if (res && res.data && res.data.blocks && res.data.blocks.length) { - this.blocks = res.data.blocks; - } - }); - } - getUciCluster() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district, block: formVal.block - }; - this.uciGraphQlService.getClusters(params).subscribe((res) => { - this.clusters = []; - if (res && res.data && res.data.clusters && res.data.clusters.length) { - if (res.data.clusters[0].cluster) { - this.clusters = res.data.clusters; - } - } - }); - } - getUciSchoolDetails() { - const formVal = this.userSegmentForm.value; - const params = { - state: this.state, district: formVal.district, block: formVal.block - }; - this.uciGraphQlService.getSchoolDetails(params).subscribe((res) => { - this.schools = []; - if (res && res.data && res.data.schools && res.data.schools.length) { - this.schools = res.data.schools; - } - }); - } - getUciRole() { - this.uciGraphQlService.getRole().subscribe((res) => { - if (res && res.data && res.data.role && res.data.role.length) { - this.roles = res.data.role; - } - }); - } - getUciBoard() { - this.uciGraphQlService.getBoards().subscribe((res) => { - if (res && res.data && res.data.board && res.data.board.length) { - this.boards = res.data.board; - } - }); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, deps: [{ token: UciService }, { token: i3.UntypedFormBuilder }, { token: UciGraphQlService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: { cancel: "cancel", add: "add" }, ngImport: i0, template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "component", type: i6.SuiSelectOption, selector: "sui-select-option", inputs: ["value"], outputs: ["onSelected"] }, { kind: "component", type: i6.SuiMultiSelect, selector: "sui-multi-select", inputs: ["hasLabels", "placeholder", "maxSelected", "zeroSelectionText", "defaultSelectionText"], outputs: ["selectedOptionsChange"] }, { kind: "directive", type: i6.SuiMultiSelectValueAccessor, selector: "sui-multi-select" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserSegmentAddComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-user-segment-add', template: "
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n", styles: [".font-1-2{font-size:1.2rem}.user-segment-form label{font-weight:400!important}.asterisk-color{color:red}button:disabled{background:#89cff0;border-color:#89cff0}\n"] }] - }], ctorParameters: function () { return [{ type: UciService }, { type: i3.UntypedFormBuilder }, { type: UciGraphQlService }]; }, propDecorators: { cancel: [{ - type: Output - }], add: [{ - type: Output - }] } }); - -class TermsConditionsComponent { - constructor() { - } - ngOnInit() { - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TermsConditionsComponent, selector: "lib-terms-conditions", ngImport: i0, template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"], dependencies: [{ kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiTabset, selector: "sui-tabset" }, { kind: "directive", type: i6.SuiTabHeader, selector: "[suiTabHeader]", inputs: ["suiTabHeader", "isActive", "isDisabled"], outputs: ["isActiveChange", "activate", "deactivate"] }, { kind: "directive", type: i6.SuiTabContent, selector: "[suiTabContent]", inputs: ["suiTabContent"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TermsConditionsComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-terms-conditions', template: "
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you\u2019re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators\u2019 compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users\u2019 compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA\u2019s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA\u2019s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n \u2018year of birth\u2019 of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it\u2019s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn\u2019t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn\u2019t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn\u2019t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n", styles: ["a,body,button,div,footer,header,html,label,li,ol,p,span,ul{font-family:Noto Sans,sans-serif!important}.header{border-bottom:.0625rem solid #ccc;position:fixed;top:0;left:0;right:0;z-index:99;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.header-fix{height:8.5rem}h1.logo{margin:0;padding:0}img.logo1{height:2.8125rem}img.logo2{height:3.75rem;margin-top:.3125rem}#initiatorText{display:none!important}.hdrtxt1,.hdrtxt2{line-height:1;color:#333;text-align:center}.hdrtxt1{font-size:.875rem}.hdrtxt1{padding-top:.625rem}#initiatorText1 .hdrtxt2{padding-bottom:.625rem}.hdrtxt2{font-size:1rem;font-weight:600;padding-top:.3125rem}.nav-fix{height:3.625rem;padding:.3125rem 0;box-shadow:0 .125rem .125rem #00000029,0 0 0 .0625rem #00000014;border-bottom:0;transition:all .8s,border .1s,box-shadow .1s,padding .1s}.nav-fix .logo img{max-height:3rem;transition:all .2s ease-in-out}.nav>li{margin-bottom:0}.navbar.bg-white-header{transition:ease-in .25s;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a}.nav .open>a,.nav>li>a{transition:color .25s ease-out;padding:.5rem 1rem;font-size:.875rem}.nav>li>a.btn{padding:.625rem .4375rem!important;margin:0}.nav .open>a:focus,.nav .open>a:hover,.nav>li>a:focus,.nav>li>a:hover{background-color:transparent}.nav>li>a.btn-default{border-color:#ccc;color:#4a4a4a}.nav>li>a.btn-primary{border-color:#2e6da4;background:#337ab7;color:#fff}.nav>li>a.btn-default:focus,.nav>li>a.btn-default:hover,.nav>li>a.btn-primary:focus,.nav>li>a.btn-primary:hover{color:#286090;background-color:#fff;border-color:#204d74;transition:none}.header .navbar-toggle{margin:0;padding:1.25rem .9375rem 0;background-color:#fff!important;font-size:1rem}.navbar-collapse.in{z-index:2;max-height:85vh}.navbar-collapse .btn{margin-bottom:.9375rem!important}.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#4a90e2}.hash-fix:before{display:block;content:\" \";visibility:hidden;margin-top:-3.75rem;height:3.75rem}@media (min-width:480px){.header-fix{height:7.5rem}}@media (min-width:768px){.header-fix{height:8.625rem}img.logo1{height:3.75rem}img.logo2{height:4.6875rem}.hdrtxt1{font-size:1rem}#initiatorText1{display:block!important}.navbar-collapse .btn{margin-bottom:0!important}}@media (min-width:1200px){.header-fix{height:5.125rem}.hdrtxt1,.hdrtxt2{text-align:left}.hdrtxt1{padding-top:0}#initiatorText{display:block!important;padding-top:1.375rem;padding-bottom:1.375rem}#initiatorText1{display:none!important}}@media (min-width:1280px){.hdrtxt1{font-size:1.125rem}}.getStartedBtn{cursor:pointer}.navbar.bg-white-header{position:fixed;top:0;left:0;right:0;z-index:999;background:#fff;box-shadow:0 .125rem .875rem .625rem #0000001a;padding:0 5rem;border-radius:0}.navbar.bg-white-header .btn-header-exp{border:.0625rem solid rgba(2,79,157,.4)}.navbar.bg-white-header .btn-header{width:9.875rem;color:#024f9d;padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5;border-radius:.1875rem}.navbar.bg-white-header .btn-header.active,.navbar.bg-white-header .btn-header:hover{font-weight:700;box-shadow:none}.navbar.bg-white-header .navbar-toggle{border:none;position:relative}.navbar.bg-white-header .navbar-toggle span{display:block;background-color:#024f9d;height:.1875rem;width:1.5625rem;margin-top:.25rem;margin-bottom:.25rem;transform:rotate(0);position:relative;left:0;opacity:1}.navbar.bg-white-header .navbar-toggle span:nth-child(1),.navbar.bg-white-header .navbar-toggle span:nth-child(3){transition:transform .35s ease-in-out}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(1){position:absolute;left:.75rem;top:.625rem;transform:rotate(135deg);opacity:.9}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(2){height:.75rem;visibility:hidden;background-color:transparent}.navbar.bg-white-header .navbar-toggle:not(.collapsed) span:nth-child(3){position:absolute;left:.75rem;top:.625rem;transform:rotate(-135deg);opacity:.9}.header-img{clear:both;display:block;overflow:hidden;padding:.625rem;background:#fff;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.header-img .img{padding:0 .625rem}.section-footer .footer-link{font-size:.875rem;color:#fff;text-align:left;border:none;padding:0 0 .9375rem!important}.section-footer .footer-app-details .txt{font-size:.875rem;text-align:center}.section-footer .footer-app-details .txt label{font-weight:400}.section-footer .footer-app-details .app-img{width:150px;margin:0 auto}.section-footer .footer-app-details .app-img img{border-radius:.3125rem}.section-footer .page-view-count .txt{font-size:.875rem}.section-footer .page-view-count .count{font-size:32px}.section-footer .contact-div .contact-txt label{text-align:left;font-size:.875rem;font-weight:400}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:1px!important}.section-footer .contact-div .contact-txt label .footer-link:hover{color:#fff}.section-footer .contact-div .terms-of-use-txt{text-align:right}.section-footer .contact-div .terms-of-use-txt a{cursor:pointer;font-size:.875rem;color:#fff;padding:0!important}.section-footer .contact-div .terms-of-use-txt a.disabled{opacity:1}.container{width:auto}.header-gap{padding-top:60px}*{box-sizing:border-box}.tabs-content-wrapper{font-family:Lato,sans-serif;font-size:.875rem;line-height:1.5}.tabs-content-wrapper .ui.secondary.menu .item{word-break:break-word;font-size:.875rem;margin-bottom:-.0625rem;border:1px solid #dfe1e5;color:#293845;height:3rem;box-shadow:.375rem .375rem .125rem #0000001a;background:#fff;border-radius:24px;min-height:2rem;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}.tabs-content-wrapper .ui.secondary.menu .active.item{background-color:#024f9d!important;color:#fff!important}h1,h2{font-size:20.25rem;color:#005da2;font-weight:700;margin-bottom:30px}p{font-size:18px;line-height:30px;margin-bottom:1.5625rem}b,strong{font-weight:700}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol li{margin:.625rem 0}.list-circle{list-style-type:circle}.lower-roman{list-style-type:lower-roman}a{text-decoration:none;color:#4a4a4a;cursor:pointer}a.no-underline:active,a.no-underline:focus,a.no-underline:hover,a:active,a:focus,a:hover{text-decoration:none}a:focus{outline:.3125rem auto -webkit-focus-ring-color;outline-offset:-.125rem}.container{margin-right:auto;margin-left:auto}li{overflow-wrap:break-word}ol li ul li{list-style-type:circle}@media (min-width:320px){#terms-of-use ol,#terms-of-use ul{padding-inline-start:2.5rem}.container{max-width:100%!important;width:100%!important}.section-footer .contact-div .contact-txt label,.section-footer .contact-div .terms-of-use-txt{text-align:center}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:block;text-align:center}}@media (min-width:768px){.container{width:45rem!important;max-width:45rem!important}.section-footer .contact-div .contact-txt label .footer-link{padding-bottom:.0625rem!important;display:inline;text-align:left}.section-footer .contact-div .contact-txt label{text-align:left}.section-footer .contact-div .terms-of-use-txt{text-align:right}}@media (min-width:992px){.container{width:60rem!important;max-width:60rem!important}}@media (min-width:1200px){.container{width:71.25rem!important;max-width:71.25rem!important}}ul#termsAndPoliciesTab{padding-inline-start:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-tabs .nav-item{margin-bottom:-.0625rem}.sub-heading{font-size:1.125rem}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .nav-link{border:.0625rem solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-link{display:block;padding:.5rem 1rem}#terms-of-use .nav-tabs .nav-link{border:1px solid #dfe1e5;color:#293845;font-size:.875rem}ul#termsAndPoliciesTab>li>a{height:3rem;font-size:.875rem;background:#fff;color:#008840;border:none;border-radius:24px;min-height:2rem;margin:5px;cursor:pointer;word-wrap:break-word;white-space:normal;outline:0;transform:rotate(0);display:flex;transition:box-shadow .1s ease,width .1s ease;justify-content:space-between;align-items:center}#terms-of-use #termsAndPolicies{margin-top:1.25rem;padding:1.875rem;margin-bottom:1.875rem}#terms-of-use .TermsOfUseClick,#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a,#terms-of-use .tab-pane a:hover{cursor:pointer}#terms-of-use .TermsOfUseClick:hover,#terms-of-use .tab-pane a:hover{text-decoration:underline}#terms-of-use a,#terms-of-use p,#terms-of-use li,#terms-of-use div{word-break:break-word;font-size:.875rem}.arrow-list li{list-style-type:none;position:relative;padding-left:15px}.arrow-list li:before{content:\"\\203a\";font-size:25px;position:absolute;top:-10px;left:-20px;color:#4a4a4a}#terms-of-use .scrollToTop{cursor:pointer}#terms-of-use .scrollToTop .scrollTopWrapper{text-align:center;border-radius:50%;width:3.125rem;height:3.125rem;background:#dfe6ed;position:fixed;padding:.625rem;z-index:1;bottom:.625rem;right:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper i{display:block;font-size:1.5rem;line-height:.625rem}#terms-of-use .scrollToTop .scrollTopWrapper span{display:block;font-size:.875rem}#terms-of-use .early-box{margin-top:8rem;margin-bottom:1.25rem;text-align:center}#terms-of-use .early-box h6{margin-bottom:.9375rem;color:#024f9d;font-weight:700}#terms-of-use .early-box ul{padding-left:0}#terms-of-use .early-box ul li{list-style:none;margin-bottom:1.5625rem;border-left:1px solid #dfe1e5}#terms-of-use .early-box ul li a{color:#024f9d;cursor:pointer}#terms-of-use .early-box ul li a sub{display:block;color:#333;bottom:-.5em}#terms-of-use .showVersions.active{font-size:1.0625rem;font-weight:700}ul#termsAndPoliciesTab{border-bottom:1px solid #dfe1e5;padding-bottom:24px;width:auto}@media only screen and (max-width: 769px){#terms-of-use ul,#terms-of-use ol{padding-inline-start:1.25rem}#terms-of-use.container{max-width:100%}}.navbar.no-sticky-top{position:absolute;background:0 0;z-index:999;width:100%}#terms-of-use h3{font-size:1.25rem;font-weight:600}#terms-of-use label.tagLine{display:block;font-size:.875rem;margin-bottom:1.875rem}.heading-term{color:#4a4a4a;font-size:18px}.pull-right{float:right}.text-right{text-align:right!important}#terms-of-use .nav-tabs{flex-wrap:nowrap;overflow-x:auto}#terms-of-use .nav-tabs .nav-link{white-space:nowrap}#terms-of-use .nav-tabs::-webkit-scrollbar{width:.5rem;height:.5rem;background-color:#f5f5f5}#terms-of-use .nav-tabs::-webkit-scrollbar-thumb{border-radius:.625rem;-webkit-box-shadow:inset 0 0 .375rem rgba(0,0,0,.5)}.dk-copyright-text{font-size:.875rem;color:var(--white);text-align:left;border:none;padding:0!important}ul#termsAndPoliciesTab>li>a.active{background-color:#024f9d!important;color:#fff!important}.first-row-top{margin-top:-30px;margin-bottom:30px}\n"] }] - }], ctorParameters: function () { return []; } }); - -class ConversationAddComponent { - constructor(uciService, router, activatedRoute, fb, globalService) { - this.uciService = uciService; - this.router = router; - this.activatedRoute = activatedRoute; - this.fb = fb; - this.globalService = globalService; - this.currentViewState = 'ADD_CONVERSATION'; - this.stepIndex = 1; - this.selectedLogic = []; - this.userSegments = []; - this.column = ''; - this.sortDirection = ''; - this.reverse = false; - this.collectionListModal = false; - this.isLoaderShow = false; - this.isModalLoaderShow = false; - this.logicFormRequest = {}; - this.isCheckedTermCondition = false; - this.termsAndConditionModal = false; - this.verifyAllItemsModal = false; - this.startMinDate = new Date(); - this.Appropriateness = [ - { - text: 'No Hate speech, Abuse, Violence, Profanity', - checks: false - }, - { - text: 'No Sexual content, Nudity or Vulgarity', - checks: false - }, - { - text: 'No Discrimination or Defamation', - checks: false - }, - { - text: 'Is suitable for children', - checks: false - } - ]; - this.contentDetails = [ - { - text: 'Appropriate Title, Description', - checks: false - }, - { - text: 'Correct Board, Grade, Subject, Medium', - checks: false - }, - { - text: 'Appropriate tags such as Resource Type, Concepts', - checks: false - }, - { - text: 'Relevant keywords', - checks: false - } - ]; - this.usability = [ - { - text: 'Content plays correctly', - checks: false - }, - { - text: 'Can see the content clearly on Desktop and App', - checks: false - }, - { - text: 'Audio (if any) is clear and easy to understand', - checks: false - }, - { - text: 'No spelling mistakes in the text', - checks: false - }, - { - text: 'Language is simple to understand', - checks: false - } - ]; - this.odkFileAlreadyExist = false; - this.isStartingMessageExist = false; - const tempDate = moment().add(1, 'days').format('YYYY-MM-DD'); - this.endMinDate = new Date(tempDate); - } - ngOnInit() { - this.user = this.globalService.getUser(); - if (!this.user) { - this.router.navigate(['uci-admin']); - return; - } - this.conversationForm = this.fb.group({ - name: ['', Validators.required], - description: [''], - purpose: ['', Validators.required], - startingMessage: ['', Validators.required], - startDate: [null], - endDate: [null], - status: ['Draft'] - }); - this.logicForm = this.fb.group({ - id: [null], - name: ['', Validators.required], - description: [''], - formId: ['', Validators.required] - }); - // Edit case - this.conversationId = this.activatedRoute.snapshot.paramMap.get('id'); - if (this.conversationId) { - this.getUserSegmentDetail(); - } - // start date and end date value change - this.conversationForm.get('startDate').valueChanges.subscribe(val => { - this.conversationForm.get('endDate').patchValue(null); - const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD'); - this.endMinDate = new Date(tempDate); - }); - this.conversationForm.get('startingMessage').valueChanges - .pipe(debounceTime(1000)) - .subscribe(value => { - this.onStarringMessageChange(); - }); - } - userSegment() { - this.currentViewState = 'SELECT_SEGMENT'; - } - onUserSegmentCancel() { - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentAddClick() { - this.currentViewState = 'ADD_SEGMENT'; - } - onUserSegmentAdd(segments) { - this.userSegments = segments; - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentCreate(segment) { - this.userSegments.push(segment); - this.currentViewState = 'ADD_CONVERSATION'; - } - onUserSegmentDelete(index) { - this.userSegments.splice(index, 1); - } - nextStep() { - if (this.stepIndex === 1 && this.conversationForm.valid) { - this.stepIndex = 2; - } - } - backToStepOne() { - if (this.stepIndex === 2) { - this.stepIndex = 1; - } - } - onAddCancel() { - this.router.navigate(['uci-admin']); - } - onSubmit(isTriggerBot = false) { - const reqObj = { - ...this.conversationForm.value, - users: [], - logic: [] - }; - this.userSegments.forEach(userSegment => { - reqObj.users.push(userSegment.id); - }); - this.selectedLogic.forEach(logic => { - reqObj.logic.push(logic.id); - }); - this.isLoaderShow = true; - if (this.conversationId) { - this.uciService.botUpdate(this.conversationId, { data: reqObj }).subscribe(data => { - this.closeVerifyModal(); - this.isLoaderShow = false; - this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: this.conversationId } }); - }, error => { - this.isLoaderShow = false; - this.verifyAllItemsModal = true; - }); - } - else { - this.uciService.botCreate({ data: reqObj }).subscribe((data) => { - if (isTriggerBot) { - this.startConversation(data.data); - } - else { - this.closeVerifyModal(); - this.isLoaderShow = false; - this.router.navigate(['uci-admin/success'], { queryParams: { text: reqObj.startingMessage, botId: data.data.id } }); - } - }, error => { - this.isLoaderShow = false; - this.verifyAllItemsModal = true; - }); - } - } - startConversation(bot) { - this.uciService.startConversation(bot.id).subscribe(data => { - this.isLoaderShow = false; - this.closeVerifyModal(); - this.router.navigate(['uci-admin/success'], { - queryParams: { - text: this.conversationForm.value.startingMessage, - botId: bot.id - } - }); - }, error => { - this.verifyAllItemsModal = true; - this.isLoaderShow = false; - }); - } - closeVerifyModal() { - if (this.verifyAllModal) { - this.verifyAllModal.deny('denied'); - } - this.verifyAllItemsModal = false; - } - openModel() { - this.logicFormRequest = {}; - this.collectionListModal = true; - this.logicForm.reset(); - this.fileErrorStatus = null; - this.isStartingMessageExist = false; - } - openTermAndConditionModel() { - this.termsAndConditionModal = true; - } - openItemsVerifyModal(isSubmitBtn) { - this.verifyAllItemsModal = true; - this.isSubmit = isSubmitBtn; - } - onLogicAdd() { - const reqData = { - ...this.logicForm.value, - transformers: [ - { - id: 'bbf56981-b8c9-40e9-8067-468c2c753659', - meta: { - form: 'https://hosted.my.form.here.com', - formID: this.logicForm.value.formId - } - } - ], - adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324' - }; - this.isModalLoaderShow = true; - if (this.logicForm.get('id').value) { - this.uciService.updateLogic(this.logicForm.get('id').value, { data: reqData }).subscribe((data) => { - this.isModalLoaderShow = false; - const existingLogic = reqData; - delete existingLogic.id; - this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic); - }, error => { - this.isModalLoaderShow = false; - }); - } - else { - this.uciService.createLogic({ data: reqData }).subscribe((data) => { - this.isModalLoaderShow = false; - const existingLogic = reqData; - delete existingLogic.id; - this.selectedLogic.push({ - id: data.data.id, - ...existingLogic, - }); - }, error => { - this.isModalLoaderShow = false; - }); - } - } - getEditLogicData(item, index) { - if (item.id) { - this.selectedLogicIndex = index; - this.logicForm.patchValue({ - id: item.id, - name: item.name, - description: item.description, - formId: item.transformers[0].meta.formID - }); - } - } - onFileUpload(event) { - if (!event.target.files.length) { - return; - } - const file = event.target.files[0]; - const obj = { - form: file - }; - this.logicForm.patchValue({ formId: '' }); - this.isModalLoaderShow = true; - this.uciService.uploadFile(obj).subscribe((fileInfo) => { - if (fileInfo.result?.data) { - this.logicForm.patchValue({ formId: fileInfo.result?.data }); - } - this.isModalLoaderShow = false; - this.odkFileAlreadyExist = false; - }, error => { - this.isModalLoaderShow = false; - this.odkFileAlreadyExist = true; - this.fileErrorStatus = error.error.status; - }); - } - onDelete(logic, index) { - this.uciService.deleteLogic(logic.id).subscribe(file => { - this.selectedLogic.splice(index, 1); - }); - } - getUserSegmentDetail() { - this.uciService.getBotUserDetails(this.conversationId).subscribe((val) => { - if (val.data) { - this.conversationForm.patchValue({ - name: val.data.name, - description: val.data.description, - purpose: val.data.purpose, - startingMessage: val.data.startingMessage, - startDate: val.data.startDate ? val.data.startDate : '', - endDate: val.data.endDate ? val.data.endDate : '' - }); - if (val.data.userSegments) { - this.userSegments = val.data.userSegments; - } - if (val.data.logic) { - this.selectedLogic = val.data.logic; - } - } - }); - } - allCheck(isAllCheck = false) { - this.Appropriateness.forEach(val => { - val.checks = isAllCheck; - }); - this.contentDetails.forEach(val => { - val.checks = isAllCheck; - }); - this.usability.forEach(val => { - val.checks = isAllCheck; - }); - } - onStarringMessageChange() { - this.uciService.getCheckStartingMessage({ startingMessage: this.conversationForm.value.startingMessage }).subscribe(val => { - this.isStartingMessageExist = true; - }, error => { - this.isStartingMessageExist = false; - }); - } - manualDownload() { - window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank'); - } - sampleODKDownload() { - window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank'); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, deps: [{ token: UciService }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: GlobalService }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationAddComponent, selector: "lib-conversation-add", viewQueries: [{ propertyName: "verifyAllModal", first: true, predicate: ["verifyAllModal"], descendants: true }], ngImport: i0, template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.SuiRadioManager, selector: "form:not([ngForm]):not([[ngForm]]),ngForm,[ngForm]" }, { kind: "directive", type: i6.SuiDatepickerDirective, selector: "[suiDatepicker]", inputs: ["pickerMode", "pickerInitialDate", "pickerMaxDate", "pickerMinDate", "pickerFirstDayOfWeek", "pickerLocaleOverrides", "pickerPlacement", "pickerTransition", "pickerTransitionDuration"], outputs: ["pickerSelectedDateChange", "pickerValidatorChange"] }, { kind: "directive", type: i6.SuiDatepickerDirectiveValueAccessor, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerDirectiveValidator, selector: "[suiDatepicker]" }, { kind: "directive", type: i6.SuiDatepickerInputDirective, selector: "input[suiDatepicker]", inputs: ["pickerUseNativeOnMobile"] }, { kind: "directive", type: i6.SuiDropdown, selector: "[suiDropdown]", inputs: ["isOpen", "isDisabled", "tabindex", "autoClose"], outputs: ["isOpenChange"] }, { kind: "directive", type: i6.SuiDropdownMenu, selector: "[suiDropdownMenu]", inputs: ["menuTransition", "menuTransitionDuration", "menuAutoSelectFirst", "menuSelectedItemClass"] }, { kind: "directive", type: i6.SuiDropdownMenuItem, selector: ".item" }, { kind: "component", type: i6.SuiModal, selector: "sui-modal", inputs: ["isClosable", "closeResult", "size", "isCentered", "isFullScreen", "isBasic", "mustScroll", "isInverted", "transition", "transitionDuration"], outputs: ["approved", "denied", "dismissed"] }, { kind: "component", type: UserSegmentListComponent, selector: "lib-user-segment-list", inputs: ["selectedUserSegments"], outputs: ["cancel", "add"] }, { kind: "component", type: UserSegmentAddComponent, selector: "lib-user-segment-add", outputs: ["cancel", "add"] }, { kind: "component", type: TermsConditionsComponent, selector: "lib-terms-conditions" }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationAddComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-add', template: "\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n", styles: [".filter_search{border-radius:25px!important}.ellipsis-icon{font-size:1.2rem}.w-50-px{width:50px!important}.font-1-2{font-size:1.2rem}.ui.form .field>label{font-weight:400}.action-dropdown{top:2px;left:-56px;z-index:2;position:absolute}.action-dropdown .item{cursor:pointer}.action-dropdown .item:hover{background-color:#f6f6f6}.steps{width:20px;height:20px;overflow:hidden;border:1px solid #777777;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#e2e2e2;color:#000;margin-right:.7rem;font-size:.75rem}.font-0-75{font-size:.75rem}.line{background-color:#777;width:25%;height:1px}.blue-bg-white-text{background-color:#0c5593!important;color:#fff!important}.green-bg-white-text{background-color:#3c763d!important;color:#fff!important}.w-25-per{width:25%}.delete-icon{color:red;font-size:1.5rem}.delete-icon-sec{display:flex;justify-content:center;align-items:center}button:disabled{background:#89cff0;border-color:#89cff0}.asterisk-color{color:red}.t-and-c-title{cursor:pointer!important}.t-and-c-title:hover{color:#89cff0!important}.sb-modal.ui.modal{box-shadow:none!important}.sb-modal.ui.modal.normal{max-width:45rem;height:0!important}.line-height{line-height:normal}.allCheckBtn{position:absolute;left:1rem}.sample-download{text-decoration:underline!important;cursor:pointer!important}.text-danger{color:red!important}\n"] }] - }], ctorParameters: function () { return [{ type: UciService }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: GlobalService }]; }, propDecorators: { verifyAllModal: [{ - type: ViewChild, - args: ['verifyAllModal'] - }] } }); - -class ConversationSuccessComponent { - constructor(router, activatedRoute) { - this.router = router; - this.activatedRoute = activatedRoute; - this.text = ''; - this.botId = ''; - } - ngOnInit() { - this.text = this.activatedRoute.snapshot.queryParams.text || ''; - this.botId = this.activatedRoute.snapshot.queryParams.botId || ''; - } - onCopy(id) { - const val = document.getElementById(id).innerText; - const selBox = document.createElement('textarea'); - selBox.style.position = 'fixed'; - selBox.style.left = '0'; - selBox.style.top = '0'; - selBox.style.opacity = '0'; - selBox.value = val; - document.body.appendChild(selBox); - selBox.focus(); - selBox.select(); - document.execCommand('copy'); - document.body.removeChild(selBox); - } - onClose() { - this.router.navigate(['/uci-admin']); - } - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); } - static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConversationSuccessComponent, selector: "lib-conversation-success", ngImport: i0, template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConversationSuccessComponent, decorators: [{ - type: Component, - args: [{ selector: 'lib-conversation-success', template: "
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n" }] - }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } }); - -class ComponentsModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, declarations: [SidePanelComponent, - ConversationListComponent, - ConversationAddComponent, - UserSegmentListComponent, - UserSegmentAddComponent, - TermsConditionsComponent, - ConversationSuccessComponent], imports: [CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule], exports: [SidePanelComponent] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, providers: [ - UciService, - ConfigService, - UciGraphQlService - ], imports: [CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ComponentsModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [ - SidePanelComponent, - ConversationListComponent, - ConversationAddComponent, - UserSegmentListComponent, - UserSegmentAddComponent, - TermsConditionsComponent, - ConversationSuccessComponent - ], - imports: [ - CommonModule, - HttpClientModule, - FormsModule, - ReactiveFormsModule, - TagInputModule, - PipesModule, - CommonFormElementsModule, - SuiModule, - ], - exports: [ - SidePanelComponent, - ], - providers: [ - UciService, - ConfigService, - UciGraphQlService - ] - }] - }] }); - -const routes = [ - { - path: '', - component: LibEntryComponent, - children: [ - { - path: 'home', - pathMatch: 'full', - component: ConversationListComponent - }, - { - path: 'add', - pathMatch: 'full', - component: ConversationAddComponent, - }, - { - path: ':id/edit', - pathMatch: 'full', - component: ConversationAddComponent, - }, - { - path: 'success', - pathMatch: 'full', - component: ConversationSuccessComponent, - }, - ] - } -]; -class UciRoutingModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [i1.RouterModule, CommonModule], exports: [RouterModule] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, imports: [RouterModule.forChild(routes), - CommonModule, RouterModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciRoutingModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [], - imports: [ - RouterModule.forChild(routes), - CommonModule - ], - exports: [RouterModule] - }] - }] }); - -function provideCsModule() { - return window['CsModule']; -} -class UciModule { - static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } - static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: UciModule, declarations: [LibEntryComponent], imports: [ComponentsModule, - UciRoutingModule], exports: [LibEntryComponent] }); } - static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }], imports: [ComponentsModule, - UciRoutingModule] }); } -} -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UciModule, decorators: [{ - type: NgModule, - args: [{ - declarations: [ - LibEntryComponent - ], - imports: [ - ComponentsModule, - UciRoutingModule - ], - exports: [ - LibEntryComponent - ], - providers: [UciEventsService, TelemetryUtilsService, { provide: 'CsModule', useFactory: provideCsModule }] - }] - }] }); - -/* - * Public API Surface of discussion-ui - */ - -/** - * Generated bundle index. Do not edit. - */ - -export { LibEntryComponent, UciEventsService, UciModule, provideCsModule }; -//# sourceMappingURL=samagra-x-uci-console.mjs.map diff --git a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map b/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map deleted file mode 100644 index bcefbeacbc4..00000000000 --- a/src/app/client/src/assets/libs/uci-console/fesm2022/samagra-x-uci-console.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"samagra-x-uci-console.mjs","sources":["../../../projects/uci-console/src/lib/uci-events.service.ts","../../../projects/uci-console/src/lib/telemetry-utils.service.ts","../../../projects/uci-console/src/lib/models/uci.model.ts","../../../projects/uci-console/src/lib/services/global.service.ts","../../../projects/uci-console/src/lib/services/base.service.ts","../../../projects/uci-console/src/lib/services/uci.service.ts","../../../projects/uci-console/src/lib/services/config.service.ts","../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.ts","../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.html","../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.ts","../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.html","../../../projects/uci-console/src/lib/pipes/pipes.module.ts","../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.ts","../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.html","../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.ts","../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.html","../../../projects/uci-console/src/lib/services/uci-graph-ql.service.ts","../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.ts","../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.html","../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.ts","../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.html","../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.ts","../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.html","../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.ts","../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.html","../../../projects/uci-console/src/lib/components/components.module.ts","../../../projects/uci-console/src/lib/uci-routing/uci-routing.module.ts","../../../projects/uci-console/src/lib/uci-module.ts","../../../projects/uci-console/src/public-api.ts","../../../projects/uci-console/src/samagra-x-uci-console.ts"],"sourcesContent":["import { Injectable, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\n@Injectable({\n providedIn: 'root'\n})\nexport class UciEventsService {\n\n public telemetryEvent = new Subject();\n public actionEvent = new EventEmitter();\n\n constructor() { }\n\n emitTelemetry(event) {\n // console.log('Lib Event', event);\n if (!_.isEmpty(event)) {\n this.telemetryEvent.next(event);\n }\n }\n}\n","\nimport { UciEventsService } from './uci-events.service';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n/* tslint:disable */\nimport * as _ from 'lodash'\n/* tslint:enable */\ninterface ITelemetryObj {\n eid: string,\n edata: {},\n context?: {}\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TelemetryUtilsService {\n\n _context = []\n currentObj = {};\n\n constructor(\n private discussionEvents: UciEventsService,\n private router: Router\n ) { }\n\n setContext(context) {\n this._context = context;\n this.currentObj = _.last(context);\n }\n\n uppendContext(data) {\n const matchedC = _.find(this._context, { id: data.id });\n if (!_.isEmpty(data) && !_.isEqual(data, matchedC)) {\n this._context.push(data);\n }\n this.currentObj = _.last(this._context);\n }\n\n deleteContext(prevTopic) {\n const topic = _.find(this._context, prevTopic);\n if (topic) {\n this._context = _.reject(this._context, topic);\n }\n }\n\n getContext() {\n return this._context;\n }\n\n logImpression(pageId) {\n this.discussionEvents.emitTelemetry({});\n const impressionEvent: ITelemetryObj = {\n eid: 'IMPRESSION',\n edata: {\n type: 'view',\n pageid: pageId,\n uri: this.router.url\n }\n }\n if (this.currentObj) {\n impressionEvent.context = { cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type') }\n ]};\n }\n this.discussionEvents.emitTelemetry(impressionEvent);\n }\n\n logInteract(event, pageId) {\n const target = _.get(event, 'currentTarget.attributes.id') || _.get(event, 'target.attributes.id') ||\n _.get(event, 'srcElement.attributes.id');\n const interactEvent: ITelemetryObj = {\n eid: 'INTERACT',\n edata: {\n id: _.get(target, 'value') || _.get(event, 'action'),\n type: 'CLICK',\n pageid: pageId\n }\n };\n\n if (this.currentObj) {\n const object = {\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type'),\n ver: '1'\n };\n object['rollup'] = this._context.length > 1 ? this.getRollUp() : {};\n interactEvent.context = {\n cdata: [{\n id: _.get(this.currentObj, 'id').toString(),\n type: _.get(this.currentObj, 'type')\n }], object\n };\n }\n\n this.discussionEvents.emitTelemetry(interactEvent);\n }\n\n getRollUp() {\n\n const rollUp = {};\n const data = _.reject(this._context, this.currentObj);\n\n if (this._context.length > 1) {\n data.forEach((element, index) => {\n // console.log('rollup', element);\n rollUp['l' + (index + 1)] = element.toString();\n });\n }\n\n if (_.get(this.currentObj, 'type') !== 'Post') {\n return rollUp;\n }\n\n return {};\n\n }\n\n}\n","export namespace UciData {\n\n export interface IUser {\n uid: number\n username: string\n fullname?: string\n userslug: string\n reputation: number\n postcount: number\n topiccount?: number\n picture?: string | null\n signature?: string | null\n banned: number\n 'banned:expire'?: number\n status: string\n lastonline?: number | null | undefined\n groupTitle?: string\n groupTitleArray?: string[]\n 'icon:text'?: string\n 'icon:bgColor'?: string\n lastonlineISO?: string\n banned_until?: number | boolean\n banned_until_readable?: string\n selectedGroups?: any[]\n custom_profile_info?: any[]\n }\n \n export interface IProfile {\n uid: number\n username: string\n userslug: string\n email: string\n 'email:confirmed': number\n joindate: number\n lastonline: number\n picture: string\n fullname: string\n location: string\n birthday: string\n website: string\n aboutme: string\n signature: string\n uploadedpicture: string\n profileviews: number\n reputation: number\n postcount: number\n topiccount: number\n lastposttime: number\n banned: number\n 'banned:expire': number\n status: string\n flags: number\n followerCount: number\n followingCount: number\n 'cover:url': string\n 'cover:position': string\n groupTitle: string\n groupTitleArray: []\n joindateISO: string\n lastonlineISO: string\n isBlocked: true\n blocksCount: number\n canEdit: true\n canBan: true\n title: string\n }\n\n export enum IPageName {\n HOME = 'uci-admin',\n LIB_ENTRY = 'lib-entry'\n }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n private user: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly user$ = this.user.asObservable();\n private baseUrl: BehaviorSubject = new BehaviorSubject(undefined);\n public readonly baseUrl$ = this.baseUrl.asObservable();\n\n constructor() {\n }\n\n setUser(user) {\n this.user.next(user);\n }\n\n getUser() {\n return this.user.value;\n }\n\n setBaseUrl(baseUrl) {\n this.baseUrl.next(baseUrl);\n }\n\n getBaseUrl() {\n return this.baseUrl.value;\n }\n}\n","import {HttpClient, HttpErrorResponse} from '@angular/common/http';\nimport {catchError, map} from 'rxjs/operators';\n\nimport {GlobalService} from './global.service';\nimport {Injectable} from '@angular/core';\nimport {throwError} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseService {\n constructor(public http: HttpClient, public globalService: GlobalService) {\n }\n\n private getDefaultHeaders() {\n const headers: any = {};\n const user = this.globalService.getUser();\n if (user && user.id) {\n headers.ownerID = user.id;\n }\n if (user && user.rootOrgId) {\n headers.ownerOrgID = user.rootOrgId;\n }\n\n return headers;\n }\n\n public getRequest(url, params: any = {}, headers: any = {}) {\n headers = {\n ...headers,\n ...this.getDefaultHeaders()\n };\n\n return this.http.get(url, {params, headers}).pipe(\n map((res: any) => {\n return res.result;\n }),\n catchError(err => {\n return this.handleError(err);\n })\n );\n }\n\n public postRequest(url, data = {}, headers: any = {}) {\n headers = {\n ...headers,\n ...this.getDefaultHeaders()\n };\n\n return this.http.post(url, data, {headers}).pipe(\n map((res: any) => {\n return res.result;\n }),\n catchError(err => {\n return this.handleError(err);\n })\n );\n }\n\n\n public handleError(error: HttpErrorResponse) {\n if (error instanceof ErrorEvent) {\n return throwError(error['error']['message']);\n }\n\n return throwError(error.error);\n }\n\n public toFormData(formValue: T) {\n const formData = new FormData();\n console.error(\"[UCI Console]\", JSON.stringify(formValue))\n\n for (const key of Object.keys(formValue)) {\n const value = formValue[key];\n formData.append(key, value);\n }\n\n return formData;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {BaseService} from './base.service';\nimport {Observable} from 'rxjs';\nimport {GlobalService} from './global.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UciService extends BaseService {\n BASE_URL;\n FORM_BASE_URL = 'https://dev.sunbirded.org/';\n\n constructor(public http: HttpClient, public globalService: GlobalService) {\n super(http, globalService);\n this.globalService.baseUrl$.subscribe(value => {\n if (value) {\n this.BASE_URL = value + '/admin/v1/';\n }\n });\n }\n\n fetchConversation(params): Observable {\n return this.getRequest(this.BASE_URL + 'bot/get', params, {asset: 'bot'});\n }\n\n searchConversation(params): Observable {\n return this.getRequest(this.BASE_URL + 'bot/search', params, {asset: 'bot'});\n }\n\n pauseConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/pause/${botId}`, {}, {asset: 'bot'});\n }\n\n startConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/start/${botId}`, {}, {asset: 'bot'});\n }\n\n deleteConversation(botId): Observable {\n return this.getRequest(this.BASE_URL + `bot/delete/${botId}`, {}, {asset: 'bot'});\n }\n\n getBotUserDetails(id) {\n return this.getRequest(this.BASE_URL + `bot/get/${id}`, {}, {asset: 'bot'});\n }\n\n getCheckStartingMessage(param) {\n return this.getRequest(this.BASE_URL + `bot/getByParam`, param, {asset: 'bot'});\n }\n\n botCreate(data) {\n return this.postRequest(this.BASE_URL + 'bot/create', data, {asset: 'bot'});\n }\n\n botUpdate(id, data) {\n return this.postRequest(this.BASE_URL + `bot/update/${id}`, data, {asset: 'bot'});\n }\n\n // User Segment APIs\n fetchUserSegment(params): Observable {\n return this.getRequest(this.BASE_URL + 'userSegment/get', params, {asset: 'userSegment'});\n }\n\n searchUserSegment(params): Observable {\n return this.getRequest(this.BASE_URL + 'userSegment/search', params, {asset: 'userSegment'});\n }\n\n createUserSegment(data) {\n return this.postRequest(this.BASE_URL + 'userSegment/create', data, {asset: 'userSegment'});\n }\n\n userSegmentQueryBuilder(data) {\n return this.postRequest(this.BASE_URL + 'userSegment/queryBuilder', data, {asset: 'userSegment'});\n }\n\n // Conversation APIs\n createLogic(data) {\n return this.postRequest(this.BASE_URL + 'conversationLogic/create', data, {asset: 'conversationLogic'});\n }\n\n updateLogic(id, data) {\n return this.postRequest(this.BASE_URL + `conversationLogic/update/${id}`, data, {asset: 'conversationLogic'});\n }\n\n deleteLogic(id) {\n return this.getRequest(this.BASE_URL + `conversationLogic/delete/${id}`, {}, {asset: 'conversationLogic'});\n }\n\n // Mis APIs\n uploadFile(obj): Observable {\n let headers = new HttpHeaders();\n headers = headers.set('Content-Type', 'multipart/form-data');\n return this.http.post(this.BASE_URL + 'forms/upload', this.toFormData(obj), {headers});\n }\n\n readForm(data) {\n return this.postRequest(this.FORM_BASE_URL + 'api/data/v1/form/read', data);\n }\n}\n","import { UciService } from './uci.service';\nimport { Injectable, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport * as _ from 'lodash'\nimport { IdiscussionConfig } from '../models/uci-config.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService implements OnInit {\n\n paramsSubscription: Subscription;\n private _config: IdiscussionConfig;\n public checkContext: boolean;\n public queryParams;\n getContextData: any;\n hasContextData: any;\n getParams: IdiscussionConfig;\n\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private UciService: UciService,\n ) { }\n\n ngOnInit() {\n\n }\n\n setConfig(activatedRoute) {\n activatedRoute.data.subscribe((config) => {\n this._config = config.data;\n });\n }\n\n setConfigFromParams(activatedRoute) {\n activatedRoute.queryParams.subscribe((params) => {\n const obj: IdiscussionConfig = {\n userName : _.get(params, 'userName'),\n categories : JSON.parse(_.get(params, 'categories'))\n };\n this._config = obj;\n });\n }\n\n public getConfig() {\n return this._config;\n }\n\n public getCategories() {\n this.getParams = this.getConfig()\n return _.get(this.getParams, 'categories')\n }\n\n public hasContext() {\n this.hasContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result.length : null)\n : null\n return this.hasContextData\n }\n\n public getContext() {\n this.getContextData = this.getCategories() ?\n (this.getCategories().result ? this.getCategories().result : null)\n : null\n return this.getContextData\n }\n\n public getRouterSlug() {\n return this._config.routerSlug ? this._config.routerSlug : '';\n }\n}\n","import {UciData} from '../../models/uci.model';\nimport {TelemetryUtilsService} from '../../telemetry-utils.service';\nimport {UciService} from '../../services/uci.service';\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Subscription} from 'rxjs';\nimport * as CONSTANTS from '../../common/constants.json';\n/* tslint:disable */\nimport * as _ from 'lodash';\nimport {ConfigService} from '../../services/config.service';\nimport {IdiscussionConfig, IMenuOptions} from '../../models/uci-config.model';\n\n/* tslint:enable */\n\n@Component({\n selector: 'lib-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.scss']\n})\nexport class SidePanelComponent implements OnInit, OnDestroy {\n\n paramsSubscription: Subscription;\n\n userName: string;\n\n defaultPage = 'categories';\n\n data: IdiscussionConfig;\n hideSidePanel: boolean;\n menu: Array = [];\n selectedTab: string;\n showSideMenu: Boolean = true;\n\n constructor(\n public router: Router,\n public uciService: UciService,\n public activatedRoute: ActivatedRoute,\n private telemetryUtils: TelemetryUtilsService,\n private configService: ConfigService\n ) {\n }\n\n ngOnInit() {\n // TODO: loader or spinner\n this.telemetryUtils.setContext([]);\n this.hideSidePanel = document.body.classList.contains('widget');\n this.telemetryUtils.logImpression(UciData.IPageName.HOME);\n this.data = this.configService.getConfig();\n const menuArr = _.get(this.data, 'menuOptions') && _.get(this.data, 'menuOptions').length > 0 ? this.data.menuOptions : CONSTANTS.MENUOPTIONS;\n for (let i = 0; i < menuArr.length; i++) {\n if (menuArr[i].enable) {\n this.menu.push(menuArr[i]);\n }\n }\n\n }\n\n isActive(selectedItem) {\n if (this.router.url.indexOf(`/${selectedItem}`) > -1 || this.selectedTab === selectedItem) {\n if (!this.selectedTab) {\n this.selectedTab = selectedItem;\n }\n return true;\n } else if (selectedItem === 'categories' && !this.selectedTab) {\n return true;\n }\n return false;\n }\n\n navigate(pageName: string, event?) {\n this.selectedTab = pageName;\n this.telemetryUtils.setContext([]);\n if (event) {\n this.telemetryUtils.logInteract(event, UciData.IPageName.HOME);\n }\n this.router.navigate([`uci-admin`], {queryParamsHandling: 'merge'});\n this.closeNav();\n }\n\n ngOnDestroy() {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n\n showMenuButton() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n closeNav() {\n this.showSideMenu = this.showSideMenu ? false : true;\n }\n\n}\n","\n\n\n\n
\n
\n ×\n
\n \n
\n
\n
\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {Component, Input, OnInit} from '@angular/core';\nimport {Location} from '@angular/common';\nimport {UciEventsService} from '../../uci-events.service';\nimport {IdiscussionConfig} from '../../models/uci-config.model';\nimport {ConfigService} from '../../services/config.service';\nimport {UciService} from '../../services/uci.service';\nimport {TelemetryUtilsService} from '../../telemetry-utils.service';\nimport {UciData} from '../../models/uci.model';\nimport {GlobalService} from '../../services/global.service';\n\n@Component({\n selector: 'lib-lib-entry',\n templateUrl: './lib-entry.component.html',\n styleUrls: ['./lib-entry.component.scss']\n})\nexport class LibEntryComponent implements OnInit {\n @Input() user;\n @Input() baseUrl;\n\n constructor(\n public activatedRoute: ActivatedRoute,\n private uciService: UciService,\n private configService: ConfigService,\n private location: Location,\n private uciEventsService: UciEventsService,\n private telemetryUtils: TelemetryUtilsService,\n private globalService: GlobalService,\n private router: Router\n ) {\n }\n\n ngOnInit(): void {\n if (this.user) {\n this.globalService.setUser(this.user);\n }\n if (this.baseUrl) {\n this.globalService.setBaseUrl(this.baseUrl);\n }\n if (this.router.url === '/uci-admin') {\n this.router.navigate(['uci-admin/home']);\n }\n }\n\n goBack(): void {\n this.location.back();\n }\n\n close(event): void {\n const eventAction = {\n action: 'DF_CLOSE'\n };\n this.uciEventsService.emitTelemetry(eventAction);\n this.telemetryUtils.logInteract(event, UciData.IPageName.LIB_ENTRY);\n }\n}\n","
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ],\n exports: []\n})\nexport class PipesModule { }\n","import {Component, OnInit} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {Router} from '@angular/router';\nimport {GlobalService} from '../../services/global.service';\n\n@Component({\n selector: 'lib-conversation-list',\n templateUrl: './conversation-list.component.html',\n styleUrls: ['./conversation-list.component.css']\n})\nexport class ConversationListComponent implements OnInit {\n chatBots = [];\n pager: any = {\n totalItems: 0,\n currentPage: 1,\n pageSize: 10,\n totalPages: 0,\n startPage: 0,\n endPage: 0,\n startIndex: 0,\n endIndex: 0,\n pages: []\n };\n pageNumber = 1;\n column = '';\n sortDirection = '';\n reverse = false;\n queryParams: any;\n search;\n user;\n constructor(\n private uciService: UciService,\n private router: Router,\n private globalService: GlobalService,\n ) {\n }\n\n ngOnInit() {\n this.user = this.globalService.getUser();\n if (!this.user) {\n this.router.navigate(['uci-admin']);\n return;\n }\n this.getAllChatBots();\n }\n\n getAllChatBots() {\n const param: any = {\n page: this.pager.currentPage,\n perPage: this.pager.pageSize\n };\n\n if (this.search) {\n param.name = this.search;\n this.uciService.searchConversation(param).subscribe(\n data => this.parseConversations(data)\n );\n } else {\n this.uciService.fetchConversation(param).subscribe(\n data => this.parseConversations(data)\n );\n }\n\n }\n\n parseConversations(data) {\n this.chatBots = [];\n data.data.forEach(bot => {\n const obj = {...bot, segmentText: '', userCount: 0, status: bot.status || 'Draft'};\n obj.status = bot.status === 'enabled' ? 'Live' : bot.status === 'disabled' ? 'Disabled' : 'Draft';\n const segmentNames = [];\n bot.userSegments.forEach(userSegment => {\n segmentNames.push(userSegment.name);\n obj.userCount += (userSegment.count || 0);\n });\n obj.segmentText = segmentNames.join(', ');\n\n this.chatBots.push(obj);\n });\n this.pager.totalItems = data.total;\n this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize);\n this.pager.pages = [];\n let i = 1;\n while (i <= Math.ceil(data.total / this.pager.pageSize)) {\n this.pager.pages.push(i);\n i++;\n }\n }\n\n sortColumns(column) {\n this.column = column;\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n this.reverse = !this.reverse;\n }\n\n navigateToPage(page: number): undefined | void {\n if (page < 1 || page > this.pager.totalPages) {\n return;\n }\n this.pageNumber = page;\n this.pager.currentPage = page;\n this.getAllChatBots();\n }\n\n getSearch() {\n this.getAllChatBots();\n }\n\n onAddNew() {\n this.router.navigateByUrl('uci-admin/add');\n }\n\n onEdit(conversation) {\n this.router.navigateByUrl(`uci-admin/${conversation.id}/edit`);\n }\n\n onStatusChange(conversation, index) {\n if (conversation.status === 'Live') {\n this.uciService.pauseConversation(conversation.id).subscribe(\n data => {\n this.chatBots[index].status = 'Disabled';\n }\n );\n } else {\n this.uciService.startConversation(conversation.id).subscribe(\n data => {\n this.chatBots[index].status = 'Live';\n }\n );\n }\n }\n\n onDelete(conversation, index) {\n this.uciService.deleteConversation(conversation.id).subscribe(\n data => {\n this.chatBots.splice(index, 1);\n }\n );\n }\n\n\n}\n","
\n
\n
\n \n\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Name\n \n Status\n \n Description\n \n Starting Message\n \n User Count\n \n Action\n
{{content.name}}{{content.status}}{{content?.description}}{{content.startingMessage}}{{content.userCount}}\n
\n \n
\n
Edit
\n
Delete
\n
{{content.status === 'Live' ? 'Disable' : 'Enable'}}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'lib-user-segment-list',\n templateUrl: './user-segment-list.component.html',\n styleUrls: ['./user-segment-list.component.css']\n})\nexport class UserSegmentListComponent implements OnInit {\n @Output() cancel = new EventEmitter();\n @Output() add = new EventEmitter();\n @Input() selectedUserSegments = [];\n\n userSegments = [];\n selectedUserSegmentMap = {};\n pager: any = {\n totalItems: 0,\n currentPage: 1,\n pageSize: 10,\n totalPages: 0,\n startPage: 0,\n endPage: 0,\n startIndex: 0,\n endIndex: 0,\n pages: []\n };\n pageNumber = 1;\n column = '';\n reverse = false;\n queryParams: any;\n search;\n\n constructor(\n private uciService: UciService,\n private route: Router\n ) {\n }\n\n ngOnInit() {\n this.selectedUserSegments.forEach(selectedUserSegment => {\n this.selectedUserSegmentMap[selectedUserSegment.id] = selectedUserSegment;\n });\n\n this.getUserSegment();\n }\n\n getUserSegment() {\n const param: any = {\n page: this.pager.currentPage,\n perPage: this.pager.pageSize\n };\n\n if (this.search) {\n param.name = this.search;\n this.uciService.searchUserSegment(param).subscribe(\n data => this.parseUserSegments(data)\n );\n } else {\n this.uciService.fetchUserSegment(param).subscribe(\n data => this.parseUserSegments(data)\n );\n }\n }\n\n parseUserSegments(data) {\n this.userSegments = data.data;\n this.pager.totalItems = data.total;\n this.pager.totalPages = Math.ceil(data.total / this.pager.pageSize);\n this.pager.pages = [];\n let i = 1;\n while (i <= Math.ceil(data.total / this.pager.pageSize)) {\n this.pager.pages.push(i);\n i++;\n }\n }\n\n navigateToPage(page: number): undefined | void {\n if (page < 1 || page > this.pager.totalPages) {\n return;\n }\n this.pageNumber = page;\n this.pager.currentPage = page;\n this.getUserSegment();\n }\n\n getSearch() {\n this.getUserSegment();\n }\n\n onCancel() {\n this.cancel.emit(false);\n }\n\n onCheck(event, userSegment) {\n if (event.target.checked) {\n this.selectedUserSegmentMap[userSegment.id] = userSegment;\n } else {\n delete this.selectedUserSegmentMap[userSegment.id];\n }\n }\n\n onAdd() {\n this.add.emit(Object.values(this.selectedUserSegmentMap));\n }\n}\n","
\n
\n
\n Select user segment\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n Name\n \n Category\n \n Total members\n \n Last Updated On\n
\n \n {{content.name}}{{content?.category}}{{content?.count}}{{content?.updated_at | date}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {BaseService} from './base.service';\nimport {GlobalService} from './global.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UciGraphQlService extends BaseService {\n BASE_URL;\n\n constructor(public http: HttpClient, public globalService: GlobalService) {\n super(http, globalService);\n this.globalService.baseUrl$.subscribe(value => {\n if (value) {\n this.BASE_URL = value + '/v1/graphql';\n }\n });\n }\n\n getState() {\n return this.baseRequest({\n query: `query getListOfStates{\n organisation(distinct_on:state){\n state}}`\n });\n }\n\n getDistrict(param) {\n return this.baseRequest({\n query: `query getListOfDistrictInState($state:String){\n organisation(where:{state:{_eq:$state}}, distinct_on:district){\n state\n district}}`,\n variables: param\n });\n }\n\n getBlock(param) {\n return this.baseRequest({\n query: `query getListOfBlocksUnderDistrict($district:[String!],$state:String){\n blocks: organisation(where:{state:{_eq:$state},district:{_in:$district}},distinct_on:block){\n block\n district\n state\n }\n }`,\n variables: param\n });\n }\n\n getSchoolDetails(param) {\n return this.baseRequest({\n query: `query getListOfSchoolsUnderBlocksAndDistrict($district:[String!],$state:String,$block:[String!]){\n schools:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}}){\n school\n school_code\n block\n district\n state\n }\n }`,\n variables: param\n });\n }\n\n getClusters(param) {\n return this.baseRequest({\n query: `query getListOfClustersUnderBlockAndDistrict($block:[String!],$district:[String!],$state:String){\n clusters:organisation(where:{state:{_eq:$state},district:{_in:$district},block:{_in:$block}},distinct_on:cluster){\n cluster\n }\n }`,\n variables: param\n });\n }\n\n getRole() {\n return this.baseRequest({\n query: `query fetchListOfRoles{\n role{\n id\n name\n }\n }`\n });\n }\n\n getBoards() {\n return this.baseRequest({\n query: `query listOfBoards{\n board{\n id\n name}}`\n });\n }\n\n private baseRequest(body) {\n return this.http.post(this.BASE_URL, body, {});\n }\n}\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {UciGraphQlService} from '../../services/uci-graph-ql.service';\nimport {UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\n\n@Component({\n selector: 'lib-user-segment-add',\n templateUrl: './user-segment-add.component.html',\n styleUrls: ['./user-segment-add.component.css']\n})\nexport class UserSegmentAddComponent implements OnInit {\n @Output() cancel = new EventEmitter();\n @Output() add = new EventEmitter();\n formFieldProperties: Array;\n userSegment: any = {};\n isLoaderShow = false;\n districts = [];\n blocks = [];\n schools = [];\n clusters = [];\n roles = [];\n boards = [];\n grade = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12];\n subjects = [];\n userSegmentForm: UntypedFormGroup;\n state = 'Haryana';\n\n constructor(private uciService: UciService,\n private fb: UntypedFormBuilder,\n private uciGraphQlService: UciGraphQlService) {\n }\n\n ngOnInit() {\n this.getUciDistrict();\n this.getUciRole();\n this.getUciBoard();\n this.userSegmentForm = this.fb.group({\n name: ['', Validators.required],\n description: [''],\n district: [''],\n block: [''],\n cluster: [''],\n school: [''],\n role: [''],\n board: [''],\n grade: [''],\n subject: ['']\n });\n\n this.userSegmentForm.get('district').valueChanges.subscribe(item => {\n if (item) {\n this.userSegmentForm.get('block').patchValue('');\n this.blocks = [];\n this.userSegmentForm.get('cluster').patchValue('');\n this.userSegmentForm.get('school').patchValue('');\n this.schools = [];\n this.clusters = [];\n this.getUciBlock();\n }\n });\n this.userSegmentForm.get('block').valueChanges.subscribe(item => {\n if (item) {\n this.userSegmentForm.get('cluster').patchValue('');\n this.userSegmentForm.get('school').patchValue('');\n this.schools = [];\n this.clusters = [];\n this.getUciCluster();\n this.getUciSchoolDetails();\n }\n });\n }\n\n onCancel() {\n this.cancel.emit(false);\n }\n\n onAdd() {\n if (this.userSegmentForm.invalid) {\n return;\n }\n this.isLoaderShow = true;\n const formValue = this.userSegmentForm.value;\n const locationData = [];\n const blockData = [];\n const districtData = [];\n for (const school of this.schools) {\n if (formValue.school.indexOf(school.school) !== -1) {\n locationData.push(school);\n if (blockData.indexOf(school.block) === -1) {\n blockData.push(school.block);\n districtData.push(school.district);\n }\n }\n if (locationData.length === formValue.school) {\n break;\n }\n }\n if (blockData.length < formValue.block.length) {\n for (const block of this.blocks) {\n if (formValue.block.indexOf(block.block) !== -1 && blockData.indexOf(block.block) === -1) {\n locationData.push(block);\n blockData.push(block.block);\n districtData.push(block.district);\n }\n if (blockData.length === formValue.block) {\n break;\n }\n }\n }\n if (districtData.length < formValue.district.length) {\n for (const district of this.districts) {\n if (formValue.district.indexOf(district.district) !== -1 && districtData.indexOf(district.district) === -1) {\n locationData.push(district);\n }\n }\n }\n const param = {\n data: {\n userLocation: locationData,\n roles: formValue.role,\n userType: {\n type: 'student'\n },\n framework: {\n board: formValue.board,\n gradeLevel: formValue.grade\n }\n }\n };\n\n this.uciService.userSegmentQueryBuilder(param).subscribe(response => {\n if (response) {\n const items = {\n ...response,\n name: formValue.name,\n description: formValue.description\n };\n this.uciService.createUserSegment({data: items}).subscribe(\n (data: any) => {\n this.isLoaderShow = false;\n this.afterAdd(data.inserted);\n }, err => {\n this.isLoaderShow = false;\n }\n );\n }\n }, error => {\n this.isLoaderShow = false;\n });\n }\n\n afterAdd(data) {\n this.add.emit(data);\n }\n\n getUciState() {\n this.uciGraphQlService.getState().subscribe(res => {\n });\n }\n\n getUciDistrict() {\n const params = {\n state: this.state\n };\n this.uciGraphQlService.getDistrict(params).subscribe((res: any) => {\n this.districts = [];\n if (res && res.data && res.data.organisation && res.data.organisation.length) {\n this.districts = res.data.organisation;\n }\n });\n }\n\n getUciBlock() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district\n };\n this.uciGraphQlService.getBlock(params).subscribe((res: any) => {\n this.blocks = [];\n if (res && res.data && res.data.blocks && res.data.blocks.length) {\n this.blocks = res.data.blocks;\n }\n });\n }\n\n getUciCluster() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district, block: formVal.block\n };\n this.uciGraphQlService.getClusters(params).subscribe((res: any) => {\n this.clusters = [];\n if (res && res.data && res.data.clusters && res.data.clusters.length) {\n if (res.data.clusters[0].cluster) {\n this.clusters = res.data.clusters;\n }\n }\n });\n }\n\n getUciSchoolDetails() {\n const formVal = this.userSegmentForm.value;\n const params = {\n state: this.state, district: formVal.district, block: formVal.block\n };\n this.uciGraphQlService.getSchoolDetails(params).subscribe((res: any) => {\n this.schools = [];\n if (res && res.data && res.data.schools && res.data.schools.length) {\n this.schools = res.data.schools;\n }\n });\n }\n\n getUciRole() {\n this.uciGraphQlService.getRole().subscribe((res: any) => {\n if (res && res.data && res.data.role && res.data.role.length) {\n this.roles = res.data.role;\n }\n });\n }\n\n getUciBoard() {\n this.uciGraphQlService.getBoards().subscribe((res: any) => {\n if (res && res.data && res.data.board && res.data.board.length) {\n this.boards = res.data.board;\n }\n });\n }\n}\n","
\n
\n
\n Create new segment\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n \n \n
\n\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n\n
\n
\n
\n","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {UciService} from '../../services/uci.service';\nimport {UciGraphQlService} from '../../services/uci-graph-ql.service';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\n\n@Component({\n selector: 'lib-terms-conditions',\n templateUrl: './terms-conditions.component.html',\n styleUrls: ['./terms-conditions.component.css']\n})\nexport class TermsConditionsComponent implements OnInit {\n constructor() {\n }\n\n\n ngOnInit() {\n }\n\n}\n","
\n \n \n\n \n
\n
\n

Terms of Use

\n \n

\n This website is designed, developed and maintained by the National\n Council for Educational Research and Training (NCERT) (Ministry of\n Education (MoE), Government of India) (together referred to as\n \"GoI\").\n

\n

\n These terms of use, as amended, govern the usage of DIKSHA (Digital\n Infrastructure for Knowledge Sharing) by its Users (as defined below)\n (\"Terms\"). DIKSHA is an initiative of the GoI.\n

\n

\n By using DIKSHA, you have accepted and agree to be governed by these\n Terms, as may be amended from time to time. The terms \"you\", \"your\"\n hereinafter refer to any User of DIKSHA, including Registered Users (as\n defined below).\n

\n\n\n

Definitions

\n
    \n
  1. \n Administrator means any natural person who is a\n Registered User and who is authorised to be an administrator by an\n Institutional User on behalf of such Institutional User.\n
  2. \n
  3. \n Content means and includes, as the context\n requires, (i) any text, scripts, graphics, photos, sounds, music,\n videos, audio-visual combinations, interactive content, features\n and other materials you may view, access or contribute, (ii) all\n content and postings that are written, uploaded, submitted,\n stored, sent, received, shared or otherwise provided by Registered\n Users, such as posts, comments, feedback, submissions, responses,\n explanation in forums or groups, for teaching and learning\n materials, and/or using project/ survey/ observation tools, and\n (iii) all types of learning material created, uploaded or consumed\n by a User, such as resources (like teaching or learning content\n consumed by teachers, parents or students), collections (i.e. sets\n of ordered resources bundled together to be consumed as a whole),\n books, e-books, lesson plans, questions, assessments, quizzes,\n challenges, learning activities, projects, courses and other types\n of teaching and learning materials that is meant for wide user\n consumption.\n
  4. \n
  5. \n DIKSHA means Digital\n Infrastructure for Knowledge\n Sharing which is the National Platform for School\n Education, an initiative of the GoI, and is accessible online at\n https://diksha.gov.in,\n through the DIKSHA android application and through the DIKSHA\n desktop application, and any includes other sub-domains / extended\n domains of DIKSHA.\n
  6. \n
  7. \n Institutional User means and includes MoE, any\n Education Departments (of both Central Government and State/UT),\n National Council for Educational Research and Training (NCERT),\n any State Council for Educational Research and Training (SCERT)\n and training statutory body, Government affiliated body,\n autonomous authority set up by the Government, Boards and Councils\n of education (Central, State and others), Schools, Universities,\n Deemed Universities, Autonomous educational institutions, Learning\n Centres or other such institutions or organisations who are\n authorised to operate as a tenant on the DIKSHA digital\n infrastructure.\n
  8. \n
  9. \n Registered Users are (i) Users of DIKSHA, who\n register themselves as users of DIKSHA in accordance with the\n requirements specified on DIKSHA, and (ii) Users of DIKSHA who\n have been registered on DIKSHA by an Administrator with\n permissions to create, curate, review or publish Content for\n DIKSHA, and such users can log in to DIKSHA with their registered\n credentials.\n
  10. \n
  11. \n Users are all natural persons who access DIKSHA\n and access, view or use Content on DIKSHA, and such Users include\n Registered Users of DIKSHA.\n
  12. \n
\n\n\n

Access and Use

\n\n Users -\n
    \n
  1. \n As a User you represent and warrant that you are of legal age\n and are legally competent to form a binding contract (or if\n not, you've received your parent's or guardian's permission\n to use DIKSHA and they have agreed to these Terms on your\n behalf).\n
  2. \n
  3. \n If you are agreeing to these Terms on behalf of a department,\n institution, organization or other legal entity (for example,\n if you’re an Administrator agreeing to the Terms on behalf of\n your school, institution, organisation, government department,\n non-profit entity, etc.), you hereby represent and warrant\n that you are duly authorized to agree to these Terms on behalf\n of that department, institution, organization or entity and\n these Terms are binding on them.\n
  4. \n
  5. \n If you are agreeing to this Terms on behalf of a student who\n is not of legal age, you hereby represent and warrant that you\n consent / have obtained consent from the parent(s) / legal\n guardian(s) on behalf of such student, to access, view and use\n Content on DIKSHA in accordance with these Terms.\n
  6. \n
  7. \n If you are a student who is not of legal age, you are\n accessing DIKSHA with consent of parent/legal guardian, you\n can access, view and use Content on DIKSHA without registering\n yourself on DIKSHA.\n
  8. \n
  9. \n Users can:\n
      \n
    1. access and use Content available on DIKSHA,
    2. \n
    3. create and manage their User profiles, and
    4. \n
    5. share Content with other Users.
    6. \n
    \n
  10. \n
  11. \n DIKSHA should be used for learning and educational purposes.\n As a User, you will be responsible for all your actions and\n activities in relation to your usage of DIKSHA. All Users must\n follow the policies and guidelines of DIKSHA as applicable\n from time to time, such as these\n Terms of\n Use.\n
  12. \n
  13. \n Your access and use of DIKSHA may possibly be disrupted due to\n technical or operational difficulties, without prior notice of\n downtime.\n
  14. \n
\n\n\n Registered Users -\n
    \n
  1. \n DIKSHA allows Users to register themselves on DIKSHA by:\n
      \n
    1. Self-registration;
    2. \n
    3. State led registration.
    4. \n
    \n
  2. \n
  3. \n Depending on your mode of registration, as a Registered User,\n DIKSHA collects certain data and information about you in\n accordance with the\n Privacy\n Policy of DIKSHA. Registered Users may also choose to give their consent for\n certain of their data and information to be accessed by\n Administrators for specified purposes in accordance with the\n relevant policies and guidelines of DIKSHA as applicable from\n time to time.\n
  4. \n
  5. \n Registered Users can use / participate in a variety of\n offerings on DIKSHA including:\n
      \n
    • \n Submitting / posting / uploading / otherwise providing\n Content;\n
    • \n
    • Accessing courses or other collections of Content;
    • \n
    • Creating or participating in DIKSHA Groups.
    • \n
    \n
  6. \n
  7. \n All Registered Users (including Administrators) must follow\n the policies and guidelines of DIKSHA as applicable from time\n to time, including but not limited to these Terms, the Content\n Policy of DIKSHA and Privacy Policy of DIKSHA. Some Registered\n Users may have read, write and edit rights on DIKSHA to\n create, curate, review or publish Content, such rights are\n given by Institutional Users.\n
  8. \n
  9. \n Registered Users are responsible for maintaining the\n confidentiality of their User ID and Password and also\n responsible for all activities that occur under their User ID\n and Password. As a Registered User, you agree,\n inter alia, to provide true, accurate, current and\n complete information about yourself as prompted by the DIKSHA\n registration form or provided by you as a visitor or user of a\n third party site through which you access DIKSHA. If you\n provide any information that is untrue, inappropriate,\n inaccurate, not current or incomplete or there are reasonable\n grounds to suspect that such information is untrue,\n inaccurate, inappropriate, not current or incomplete, or not\n in accordance with these Terms, the administrators and\n technology support providers of DIKSHA have the right to\n indefinitely suspend or terminate your registration or block\n access to and participation in DIKSHA.\n
  10. \n
  11. \n A Registered User may not transfer their registration to\n anyone else.\n
  12. \n
\n\n\n Institutional Users -\n
    \n
  1. \n Institutional Users can operate as a tenant on the DIKSHA\n digital infrastructure.\n
  2. \n
  3. \n Institutional Users shall appoint Administrators and shall be\n responsible for the Administrators’ compliance and enforcement\n of terms and policies of DIKSHA.\n
  4. \n
  5. \n Institutional Users can authorise Registered Users to create,\n curate, review or publish Content or collections of Content\n and shall be responsible for such Registered Users’ compliance\n with the terms and policies of DIKSHA. For more details on the\n role of administrators, creators, contributors, reviewers and\n other roles, please visit the\n Help\n Center.\n
  6. \n
  7. \n Institutional Users may run programs on the DIKSHA digital\n infrastructure, including (i) to source Content through\n programs and tools that invite the participation and\n contributions from the education ecosystem, and (ii) to offer\n courses, conduct quizzes, competitions, assessments, or other\n programs using the various tools available including project /\n survey / observation tools that invite the participation of\n Users of DIKSHA. Such programs and its participants shall be\n governed by the terms and policies of DIKSHA, in addition to\n any specific terms of use prescribed for the same.\n
  8. \n
  9. \n Institutional Users shall be responsible for and shall comply\n with Indian law currently in force, including but not limited\n to the (Indian) Information Technology (Reasonable Security\n Practices and Procedures) Rules, 2011 with respect to any data\n and personal information that is collected during the course\n of running such programs.\n
  10. \n
\n\n\n

Prohibited Content and Use

\n

Registered Users shall not:

\n
    \n
  1. \n use DIKSHA for any purpose other than learning and educational\n purposes;\n
  2. \n
  3. \n post, upload, or distribute any defamatory, libelous, or\n inaccurate Content or other content on DIKSHA;\n
  4. \n
  5. \n post, upload, or distribute any Content or other content that is\n unlawful or that a reasonable person could deem to be\n objectionable, offensive, indecent, pornographic, harassing,\n threatening, vulgar, hateful, racially or ethnically offensive, or\n otherwise inappropriate;\n
  6. \n
  7. \n contribute any Content (including any of the elements that such\n Content comprises such as text, scripts, graphics, photos, sounds,\n music, videos, audio-visual combinations etc.) that infringes upon\n any third party rights including but not limited to intellectual\n property rights such as copyrights or any other legal rights of\n individual(s)/organisation(s);\n
  8. \n
  9. \n use DIKSHA in any manner that is harmful to minors, or in any\n manner that violates the extant\n Terms of\n Use, the\n Privacy\n Policy\n and the\n Content\n Policy;\n
  10. \n
  11. \n impersonate any person or entity, falsely claim an affiliation\n with any person or entity, or access DIKSHA accounts of others\n without permission, or perform any other fraudulent activity;\n
  12. \n
  13. \n delete the copyright or other proprietary rights notices on DIKSHA\n or on any licensed Content;\n
  14. \n
  15. \n assert, or authorize, assist, or encourage any third party to\n assert, against DIKSHA any intellectual property infringement\n claim regarding any Content you have used, submitted, or otherwise\n made available on or through DIKSHA;\n
  16. \n
  17. \n make unsolicited offers, advertisements, proposals, or send junk\n mail or spam to other Users (including, but not limited to,\n unsolicited advertising, promotional materials, offerings or other\n solicitation material, bulk mailing of commercial advertising,\n chain mail, informational announcements, charity requests, and\n petitions for signatures);\n
  18. \n
  19. \n use DIKSHA for any illegal purpose, or in violation of any local,\n state, national, or international law, including, without\n limitation, laws governing intellectual property and other\n proprietary rights, and data protection and privacy;\n
  20. \n
  21. \n defame, harass, abuse, threaten or defraud Users, or collect, or\n attempt to collect, personal information about Users or third\n parties without their consent;\n
  22. \n
  23. \n remove, circumvent, disable, damage or otherwise interfere with\n security-related features of DIKSHA;\n
  24. \n
  25. \n modify, adapt, translate or create derivative works based upon\n Content on DIKSHA or any part thereof, except and only to the\n extent expressly permitted by the license applicable to such\n Content; or\n
  26. \n
  27. \n intentionally interfere with or damage operation of DIKSHA or any\n user's usage of it, by any means, including without limitation by\n participation in any denial-of-service type attacks or by\n uploading or otherwise disseminating viruses, adware, spyware,\n worms, or other malicious code.\n
  28. \n
\n\n\n

Privacy and Personal Information

\n
    \n
  1. \n DIKSHA takes the privacy of its users very seriously. Please\n review the entire\n Privacy\n Policy of DIKSHA.\n
  2. \n
  3. \n By using DIKSHA and/or by providing your information, you consent\n to the collection and use of the information you disclose on\n DIKSHA in accordance with the policies and guidelines of DIKSHA as\n applicable from time to time, including but not limited to the\n Privacy\n Policy of DIKSHA.\n
  4. \n
\n\n\n

Content Policy of DIKSHA

\n
    \n
  1. \n DIKSHA is an open content repository that has been built with the\n purpose to enable greater access to learning and teaching content.\n When you use DIKSHA, you join a vast community of learners and\n teachers using DIKSHA which involves a certain level of trust.\n
  2. \n
  3. \n Users are expected to respect that trust and be responsible about\n their usage of DIKSHA and all its Content and follow all relevant\n terms, policies and guidelines applicable to Content, including\n the\n Content\n Policy of DIKSHA.\n
  4. \n
  5. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content will be\n accessed and used by any individual, institution or organisation\n through various platforms, portals and applications in accordance\n with license conditions.\n
  6. \n
  7. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  8. \n
  9. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n (including all the elements that such Content comprises such as\n text, scripts, graphics, photos, sounds, music, videos,\n audio-visual combinations etc.) contributed on DIKSHA. For any\n legal matter arising out of infringement of such rights by the\n Registered User, such Registered User shall be solely responsible\n for any financial or other damages arising out of such violations\n and disputes.\n
  10. \n
\n\n\n

Changes in DIKSHA Policies

\n

These Terms (including\n any policies, terms and guidelines) may be updated or modified from\n time to time and the revised Terms will be reflected herein. Your\n continued use of DIKSHA constitutes acceptance of the then-current\n Terms. Hence, we encourage you to visit this page periodically to\n review any changes.\n\n

\n

Limited Liability

\n
    \n
  1. \n As a User you shall not collect any personal information or\n sensitive personal data of other Users through DIKSHA, but if you\n do collect such information, you must ensure that such collection,\n storage, transfer and disclosure is in accordance with Indian law\n currently in force, including but not limited to the (Indian)\n Information Technology (Reasonable Security Practices and\n Procedures) Rules, 2011.\n
  2. \n
  3. \n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users do not guarantee the accuracy of any of the\n Content made available on the DIKSHA. GoI, administrators and\n technology support providers of DIKSHA and Institutional Users do\n not take responsibility for any external websites linked on\n DIKSHA, including compliance with Indian Government Web\n Guidelines.\n
  4. \n
  5. \n Registered Users are solely responsible for maintaining the\n security and confidentiality of the username and password. Any\n unauthorised use of your username or password or any other breach\n of security must be notified by sending an email notification to\n support@teamdiksha.org. GoI, administrators and\n technology support providers of DIKSHA\n and Institutional Users will not be liable for any loss or damage\n arising from failure to comply with this provision.\n
  6. \n
  7. \n Registered Users are responsible for any offensive or unlawful\n Content posted, transmitted, sent or communicated through DIKSHA.\n GoI, administrators and technology support providers of DIKSHA and\n Institutional Users shall not be held responsible for any\n offensive or unlawful Content posted, uploaded, transmitted, sent\n and received through DIKSHA.\n
  8. \n
  9. \n In no event will GoI, administrators and technology support\n providers of DIKSHA or Institutional Users be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out\n of or in connection with the access or use of DIKSHA.\n
  10. \n
\n\n\n

Termination

\n

Any violation or breach of these Terms,\n including while investigating complaints or alleged violation of these\n Terms, may lead to suspension or termination of your registration and\n access to DIKSHA.\n

\n\n

Electronic Agreement

\n

This document is a written\n agreement, an electronic record and valid and enforceable electronic\n agreement / contract under Information Technology Act, 2000 (as\n applicable in Republic of India) and rules there under as applicable\n and the amended provisions pertaining to electronic records in various\n statutes under applicable Indian laws. This electronic record is\n generated by a computer system and does not require any physical or\n digital signatures. Your usage of DIKSHA shall be your deemed\n acceptance of these Terms and all the modifications and updates\n thereto.\n

\n\n

Governing Law and Dispute Resolution

\n

These Terms\n shall be governed by and construed in accordance with the Indian law.\n Any dispute arising under these Terms shall be subject to the\n exclusive jurisdiction of the courts of New Delhi, India.\n

\n\n

Disclaimer

\n

DIKSHA IS AVAILABLE ON AN \"AS IS\" BASIS\n AND THERE ARE NO WARRANTIES OF ANY KIND WITH RESPECT TO DIKSHA. GOI\n AND THE ADMINISTRATORS AND TECHNOLOGY SUPPORT PROVIDERS OF DIKSHA\n SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF FITNESS FOR A\n PARTICULAR PURPOSE OR NON-INFRINGEMENT. ACCESS AND USE OF DIKSHA\n (INCLUDING ANY CONTENT OR INFORMATION) IS ENTIRELY AT YOUR OWN RISK.\n IN NO EVENT WILL GOI OR THE ADMINISTRATORS AND TECHNOLOGY SUPPORT\n PROVIDERS OF DIKSHA BE LIABLE FOR ANY EXPENSE, LOSS OR DAMAGE\n INCLUDING, WITHOUT LIMITATION, INDIRECT OR CONSEQUENTIAL LOSS OR\n DAMAGE, OR ANY EXPENSE, LOSS OR DAMAGE WHATSOEVER ARISING FROM USE, OR\n LOSS OF USE, OF DATA, ARISING OUT OF OR IN CONNECTION WITH THE USE OF\n DIKSHA. WHEN YOU SELECT A LINK TO AN OUTSIDE WEBSITE, YOU ARE LEAVING\n DIKSHA AND ARE SUBJECT TO THE PRIVACY AND SECURITY POLICIES OF THE\n OWNERS/SPONSORS OF THE OUTSIDE WEBSITE / DOMAIN.\n

\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Privacy Policy of DIKSHA

\n \n

\n DIKSHA (Digital Infrastructure for Knowledge Sharing ) is the National\n Platform for School Education for the benefit of teachers and learners\n across India. DIKSHA is an initiative of National Council for\n Educational Research and Training (NCERT) (Ministry of Education (MoE),\n Government of India). Users of DIKSHA can access content for learning on\n the web at\n https://diksha.gov.in, through the DIKSHA mobile application, and the desktop application.\n

\n

\n The privacy and protection of data of DIKSHA’s Users is of utmost\n importance and shall be ensured at all times. This Privacy Policy shall\n cover details of data protection and management on DIKSHA, including how\n personal data of users of DIKSHA is managed, used and processed. Users\n are individuals who access and use DIKSHA and broadly comprise (i) users\n who access and use DIKSHA without registering themselves on DIKSHA\n (\"Users\"), (ii) users who access and use DIKSHA after\n registering themselves on DIKSHA (\"Registered Users\"),\n (iii) users who are registered on DIKSHA and are authorised to be\n administrators on behalf of Institutional Users (such as NCERT, State\n Education Departments etc.) (\"Administrators\").\n Institutional Users operate as tenants on DIKSHA. More details on the\n rights and responsibilities of Users and Registered Users are set out in\n the\n Terms of Use.\n

\n

\n By accessing and using DIKSHA, and by providing your information on\n DIKSHA, you consent to the collection and use of the information you\n disclose on DIKSHA by DIKSHA and relevant Administrators of DIKSHA in\n accordance with the policies and guidelines of DIKSHA as applicable from\n time to time, including the\n Terms of Use\n and this\n Privacy Policy. If you do not agree with the contents of this policy, please do not\n access or use DIKSHA.\n

\n

\n This\n Privacy Policy\n should be read in conjunction with the Terms of Use.\n Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n\n\n

Rights of Users:

\n
    \n
  1. \n Right to fair, transparent and lawful collection of your data and\n information on DIKSHA\n
  2. \n
  3. \n Right to be informed about the ways in which your data and\n information that is collected on DIKSHA will be used\n
  4. \n
  5. \n Right to receive all the information you need to provide informed\n consent before collection of your personally identifiable\n information or sensitive personal data or information on DIKSHA\n and sharing of the same with relevant Administrators\n
  6. \n
  7. Right to revoke such consent
  8. \n
  9. \n Right to privacy and confidentiality regarding your personal data\n and information\n
  10. \n
  11. \n Right to proper use of your personal data and information by\n Administrators for specified and legitimate purposes related to\n your use of DIKSHA\n
  12. \n
  13. \n Right to keep your personal information accurate and up to date\n
  14. \n
  15. \n Right to secure collection, handling and storage of your personal\n data and information\n
  16. \n
  17. \n Right to protection from unauthorised or unlawful use of your\n personal data and information\n
  18. \n
  19. Right to view and access DIKSHA’s privacy policy
  20. \n
\n\n\n

Responsibilities of Administrators with respect to User data and\n information

\n
    \n
  1. To respect the privacy and data protection rights of Users
  2. \n
  3. \n To ensure the security of and use of data (especially any personal\n information) shared by Registered Users is limited solely to the\n uses and purposes mentioned here\n
  4. \n
  5. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation\n
  6. \n
  7. \n To ensure their communication (if any) with Registered Users is\n explicitly limited and relevant to the purpose of their usage of\n DIKSHA and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
  8. \n
  9. \n To ensure that their Content and programs on DIKSHA are not used\n for any of the Prohibited Uses set out in the\n Terms of Use.\n
  10. \n
\n\n\n

What User data and information is collected on DIKSHA?

\n
    \n
  1. \n All Users can expect the following data and\n information of theirs to be collected on DIKSHA:\n
      \n
    1. \n Basic Information: User Type (eg. teacher,\n student, other)\n
    2. \n
    3. \n Geographical Information: State and District\n
    4. \n
    5. \n Preferences: Board of interest, Medium of\n instruction, Classes of interest, Subjects of interest\n
    6. \n
    7. \n DIKSHA Usage: Usage history, time spent on\n Content, Content created/ contributed / published and its\n usage, progress in trackable collections of Content (eg.\n courses), scores & assessment results, question-wise\n answers and other telemetry data in relation to usage of\n DIKSHA, badges generated, certificates issued.\n
    8. \n
    9. \n IP Address: The IP address of a User is\n collected once for the limited purpose of determining your\n approximate location - the State, City and District of origin.\n The IP address is not stored in the database of Registered\n Users and the precise location of any User cannot be\n determined. The User can confirm or modify the State and\n District details determined on the basis of the IP address.\n
    10. \n
    11. \n DIKSHA uses hash digest functions and fingerprinting to create\n unique identifiers for different devices. DIKSHA also uses FCM\n tokens to enable push notifications to your devices, should\n you choose to opt for the same.\n
    12. \n
    13. \n DIKSHA also generates a unique identifier for each device used\n to access DIKSHA.\n
    14. \n
    \n
  2. \n
  3. \n In case of Registered Users, they can expect the\n following additional information of theirs to be collected on\n DIKSHA:\n
      \n
    1. Name
    2. \n
    3. Email Address / Mobile number, and
    4. \n
    5. DIKSHA Password
    6. \n
    \n
  4. \n
  5. \n Registered Users have an option to provide the\n following information of theirs (\"Declared Information\"), namely:\n
      \n
    1. Both Email Address and Mobile Number,
    2. \n
    3. Block,
    4. \n
    5. School or Organisation name,
    6. \n
    7. School U-DISE code or Organisation code / number,
    8. \n
    9. ID as provided by your state/board/organisation.
    10. \n
    \n
  6. \n
  7. \n No other personally identifiable information or sensitive personal\n data or information of the User is collected.\n
  8. \n
  9. \n All Users (using the DIKSHA mobile app to access\n DIKSHA) have a profile which specifies the User type, Geographical\n Information and Preferences. They may choose to customise their\n profile by changing these details at any time as well as providing\n their name. If Users are using DIKSHA as a guest User, i.e.\n without registering on DIKSHA, your User type and Preferences are\n stored locally on your device. Only Registered Users can view\n their profile on both the DIKSHA mobile app as well as the DIKSHA\n web portal, and their profiles specify all the additional\n information provided by such a Registered User.\n
  10. \n
  11. \n Children as Registered Users: DIKSHA collects the\n ‘year of birth’ of a User in order to determine whether a User is\n below 18 years. In the event a person under 18 years of age is\n registering on DIKSHA, DIKSHA prompts the User to provide the\n email address or mobile number of a parent / guardian for the\n purposes of registration. Children under 18 years of age are\n neither required to nor encouraged to provide their personal\n information.\n
  12. \n
  13. \n You represent to us that the data and information you provide on\n DIKSHA from time to time is and shall be correct, current and\n updated and you have all the rights, permissions and consents to\n provide such data and information. Your providing the information\n or data and the consequent storage, collection, usage, transfer,\n access or processing of the same in accordance with the\n Terms of Use\n and this\n Privacy Policy\n shall not be in violation of any third party agreement, laws,\n charter documents, judgments, orders and decrees.\n
  14. \n
\n\n

How is User data and information collected?

\n
    \n
  1. \n Basic Information, Geographical Information and Preferences are\n collected when a User accesses and uses DIKSHA for the first time.\n These details can be updated by the User from their profile.\n
  2. \n
  3. \n Usage data of Users is collected as and when a User accesses, uses\n and navigates DIKSHA.\n
  4. \n
  5. \n The additional information provided by Registered Users, namely,\n (i) Name (ii) Email Address / Mobile Number (iii) Password, is\n collected when a User creates a registered account on DIKSHA and\n becomes a Registered User or when a Registered User updates their\n profile.\n
  6. \n
  7. \n Declared Information of Registered Users is collected with their\n explicit consent when they choose to provide the same on DIKSHA,\n through their profile or otherwise.\n
  8. \n
\n\n\n

Who has access to User data and information?

\n
    \n
  1. \n DIKSHA Usage data (including Usage across the States and\n Districts) is a part of anonymised and aggregated data sets that\n is accessible to relevant Administrators of DIKSHA and to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA.\n
  2. \n
  3. \n If you are a User, your Basic Information, Geographical\n Information, Preferences, and Usage data is accessible to the\n employees, contractors or subcontractors of the technology service\n providers of DIKSHA (under strict confidentiality obligations) if\n they need to access the data to process it on behalf of DIKSHA or\n an Administrator or to provide the services available on DIKSHA.\n For Registered Users, your Name is also accessible in this manner.\n
  4. \n
  5. \n Registered Users also have an option to explicitly consent to give\n relevant Administrators access to their Name, Basic Information,\n Preferences, Usage data, and Declared Information for specified\n purposes such as implementation of programs on DIKSHA like\n courses. Note that Institutional Users are required to ensure that\n their respective Administrators comply with and Administrators are\n responsible to comply with the relevant policies and guidelines of\n DIKSHA as applicable from time to time, including the\n Terms of Use\n and this\n Privacy Policy.\n
  6. \n
  7. \n Usage data which is anonymised and aggregated by State and\n District is also available publicly on DIKSHA.\n
  8. \n
  9. \n In order to provide and improve DIKSHA, a limited number of\n third-party services require access to some of your personal data\n and information, eg. FreshDesk, Google PlayStore. Third party\n services are contractually prohibited from using your information\n except to provide the service.\n
  10. \n
  11. \n Your data and information is only accessible outside of the DIKSHA\n platform when it is necessary to offer the service, comply with\n law, or with your permission.\n
  12. \n
\n\n\n

What is User data and information used for?

\n
    \n
  1. \n DIKSHA processes your data and information when necessary for\n providing access to Content for educational purposes and running\n programs on DIKSHA. These purposes are legitimate. The uses of\n your data are set out below:\n
      \n
    1. \n To create a profile for you to have a customised experience on\n DIKSHA,\n
    2. \n
    3. \n To suggest relevant Content for you to conveniently discover\n Content based on your preferences, activities on DIKSHA, and\n Content you are viewing on DIKSHA;\n
    4. \n
    5. To enable you to access and use Content on DIKSHA;
    6. \n
    7. \n To enable you to participate in programs run by Institutional\n Users on DIKSHA;\n
    8. \n
    9. \n To provide you push notifications on your hand-held devices,\n only if you have provided permission for the same during app\n installation;\n
    10. \n
    11. \n To track your progress in collections of Content for which\n progress is tracked / recorded such as courses, TV\n collections, textbooks;\n
    12. \n
    13. \n To generate badges for or issue certificates to you upon\n completion of milestones;\n
    14. \n
    15. \n To maintain records of your progress and certificates/badges\n in relation to collections of Content you have accessed and\n used;\n
    16. \n
    17. \n To measure interest in the offerings on DIKSHA and to improve\n DIKSHA over time;\n
    18. \n
    19. \n To track and analyse usage of Content on DIKSHA by\n Administrators and Content providers to improve DIKSHA and its\n offerings over time;\n
    20. \n
    21. \n To assess, evaluate, validate Content submitted / posted /\n uploaded by Registered Users;\n
    22. \n
    23. \n To report anonymised usage of DIKSHA and its Content by\n Administrators to improve DIKSHA over time;\n
    24. \n
    25. \n To contact you and deliver information, administrative\n notices, seek feedback or other communications in connection\n with your usage of DIKSHA. By accepting the\n Terms of Use\n including the Privacy Policy, you expressly agree to receive\n this information;\n
    26. \n
    27. \n To suggest details for your profile such as your declared\n State and District;\n
    28. \n
    29. \n To resolve disputes, troubleshoot problems, detect and protect\n you against fraud and other criminal activity, enforce the\n Terms of Use and any other agreements;\n
    30. \n
    31. \n At times multiple users may be looked at to identify problems\n or resolve disputes, and in particular may examine your\n information or data to identify users using multiple User IDs\n or aliases. Your information or data may be compared or\n reviewed for errors, omissions and for accuracy; and\n
    32. \n
    33. \n For any other use that may be described to you at the time of\n collection.\n
    34. \n
    \n
  2. \n
  3. \n The administrators and technology support providers of DIKSHA may\n use third parties as service providers to facilitate or outsource\n one or more aspects of service operations that are provided on\n DIKSHA (e.g., search technology, discussion boards, technical\n service providers, affiliate) and therefore some of your\n information or data may be provided directly to these service\n providers. These service providers are subject to confidentiality\n and other legal restrictions that prohibit their use of the\n information provided to them for any purpose other than to\n facilitate specific website related operations.\n
  4. \n
  5. \n If we wish to use your data and information for a new purpose, not\n covered by this Privacy Policy, then we will provide you with a\n new notice explaining this new use prior to commencing the\n processing and setting out the relevant purposes and processing\n conditions. Where and whenever necessary, we will seek your prior\n consent to the new processing, unless authorized by law.\n
  6. \n
  7. \n In any event, your data will not be used for any of the following\n purposes:\n
      \n
    1. Rent or sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to your usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    10. \n
    11. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    12. \n
    \n
  8. \n
  9. \n Administrators are responsible for any use of data and information\n outside the proper use and shall be held accountable for the\n violation of the terms and policies of DIKSHA, as well as\n applicable laws and policies of India for any misuse.\n Administrators shall be liable for such actions and for any loss\n or damage arising from failure to comply with the obligation of\n proper use of your data and information. Should you believe that\n your data or information is being used in a manner inconsistent\n with this Privacy Policy, please contact the DIKSHA support team\n with the details of your concern by sending an email to\n support@teamdiksha.org.\n
  10. \n
  11. \n As a User, you understand, agree and acknowledge that the\n collection, storage and processing of your information or data on\n DIKSHA is for a lawful purpose connected with a function or\n activity of DIKSHA. You further understand, agree and acknowledge\n that your information or data which is classified as personal\n information as per applicable laws is considered necessary for us\n to provide various services on and in relation to DIKSHA to you\n and for your usage of DIKSHA.\n
  12. \n
\n\n\n

How is User data and information stored?

\n
    \n
  1. \n Reasonable and appropriate security practices and procedures are\n being adopted to secure your personal data and information in\n accordance with Indian laws currently in force, including the\n Information Technology (Reasonable Security Practices and\n Procedures and Sensitive Personal Data or Information) Rules,\n 2011. These measures include administrative, physical security,\n and technical controls in order to safeguard your personal data\n and information.\n
  2. \n
  3. \n Your data, including your Declared Information, any personally\n identifiable information or sensitive personal data or information\n is securely stored using Microsoft Azure cloud services which have\n it’s servers in India. Your data and information will primarily be\n stored in electronic form however certain data may also be stored\n in physical form.\n
  4. \n
  5. \n Third party service providers are engaged to store and process\n your data. These service providers are contractually bound to\n follow reasonable security standards to safeguard your data.\n
  6. \n
  7. \n Your email address and mobile number and any other personally\n identifiable information is only collected should you choose to\n provide the same and it is encrypted and stored securely.\n Personally identifiable information is only shared with\n Administrators for purposes specified to you, with your explicit\n consent and under the obligation that the Administrators will use\n such information only in connection with your usage of DIKSHA.\n
  8. \n
  9. \n Your IP address is only collected once for the limited purpose of\n ascertaining and suggesting your State and District. Your IP\n address is not stored on DIKSHA at any time.\n
  10. \n
  11. \n Additionally, a variety of methods such as network and\n infrastructure security, encryption and manual security procedures\n are used to secure your information and data against loss or\n damage and to help protect the accuracy and security of your\n personal information / general information / usage data and to\n prevent unauthorized access or improper use. If you think that\n DIKSHA or any your personal information / general information /\n usage data is not secure or that there has been unauthorized\n access to the website or your personal data, please contact\n support@teamdiksha.org\n immediately.\n
  12. \n
  13. \n Although DIKSHA strives to protect your personal information and\n data, it cannot guarantee the security of your data while it is\n being transmitted to its site; any transmission is at your own\n risk. Once your information has been received, reasonable\n procedures and security features are in place to reasonably\n endeavor to prevent unauthorized access in accordance with Indian\n law.\n
  14. \n
\n\n\n

How long is User data and information stored?

\n
    \n
  1. \n Your data will not be retained for a period more than necessary to\n fulfill the purposes outlined in this Privacy Policy, unless a\n longer retention period is required by law or for directly related\n legitimate purposes.\n
  2. \n
\n\n

What are the system permissions required by the DIKSHA?

\n
    \n
  1. \n Microphone - Your system Microphone will be used if voice\n recording is explicitly requested as part of a Content for the\n purposes of practice. This voice recording is only stored locally\n on your system. Your system Microphone will be used if a\n Registered User creating Content wants to add a voice recording to\n Content. This voice recording will become part of the Content.\n
  2. \n
  3. \n Camera - Your system Camera will only be used if you want to scan\n QR codes to access Content on DIKSHA.\n
  4. \n
  5. \n Access to file manager - This is used by the DIKSHA android\n application to transfer Content to an external storage space.\n Additionally, on the DIKSHA desktop app, this is used to transfer\n Content to and from an external storage device like a pendrive or\n SD card.\n
  6. \n
\n\n\n

Cookies: How are they used? What types of cookies are used? How to\n manage your cookies?

\n
    \n
  1. \n Out of all the consumption clients, only the DIKSHA web portal\n uses cookies. DIKSHA only uses session cookies, none of the other\n types of cookies. DIKSHA session cookies are used to store URLs in\n order to better redirect users to the right pages. For example,\n when a User signs-in to DIKSHA from the courses page, they'll\n need to be redirected back to the courses page at the end of\n sign-in for a cleaner user experience. Session cookies are also\n used to store whether to use the Content Delivery Network (CDN) to\n pull images, plugins and other assets that are shown on the user\n interface. This is to enable faster loading of the pages the User\n interacts with. No personal information, or user preferences are\n stored in cookies.\n
  2. \n
  3. \n Users can clear their cookies by going to their browser settings\n and clearing their browsing data (by specifically checking off the\n option to clear cookies). Doing so, does not impact their user\n experience on DIKSHA as usage of DIKSHA sets the cookies again.\n Users can also choose to block cookies from the settings as well.\n Doing so, will mean that certain things on DIKSHA will not\n function properly. For eg., images/plugins may take a long time to\n load and the user will not be taken to the right pages after\n login.\n
  4. \n
\n\n\n

Data and information DIKSHA is not responsible for

\n
    \n
  1. \n DIKSHA may have Content, webpages, cookies, files, software, data\n or other information or communication links that are originated,\n created or posted by third parties that may have the capability to\n collect, store or use your data or information. The administrators\n and technology support providers of DIKSHA are not responsible for\n such data or information collected, stored or used by third\n parties even if such third parties use DIKSHA to collect, store or\n use such data or information.\n
  2. \n
  3. \n If you access DIKSHA through a third party QR code scanner or\n through a web browser, the administrators and technology support\n providers of DIKSHA are not responsible for the data or\n information collected by such third parties.\n
  4. \n
  5. \n DIKSHA is not responsible for the privacy practices of other\n websites and users need to be aware of the data privacy practices\n of such sites should they choose to use these links.\n
  6. \n
\n\n\n

Compliance with laws and law enforcement

\n
    \n
  1. \n The administrators and technology support providers of DIKSHA\n cooperate with governments and law enforcement agencies or any\n third party by any order under law for the time being in force to\n enforce and comply with the law. Any information about you will be\n disclosed to the government or law enforcement officials or\n private parties as, in the sole discretion of the administrators\n and technology support providers, if they believe necessary or\n appropriate to respond to claims and legal process, to protect\n their property and rights or a third party, to protect the safety\n of the public or any person, or to prevent or stop any illegal,\n unethical or legally actionable activity.\n
  2. \n
  3. \n Your information or data may also be provided to various tax\n authorities upon any demand or request from them. You acknowledge\n that DIKSHA can be accessed from anywhere in the world and it will\n have users from all over the world and therefore governments,\n judiciaries or law enforcement authorities in various parts of the\n world may have or assume jurisdiction over DIKSHA and DIKSHA may\n be subject to the laws, rules, regulations and judgments of\n various countries, states, municipalities or provinces where it\n may not have a direct presence to store, process, collect, use or\n keep your information or data. You acknowledge that government or\n law enforcement authorities in the countries where your data or\n information is stored may have the right to decrypt, collect,\n monitor or access your data or information, which actions are\n completely out of the control of the administrators and technology\n support providers of DIKSHA. The administrators and technology\n support providers of DIKSHA do not take any responsibility for\n such actions.\n
  4. \n
\n\n\n

Deleting your information

\n
    \n
  1. \n If you wish to have the information or data that you have provided\n deleted, you can always do so by sending an email request to\n support@teamdiksha.org. You may note that deletion of certain information or data may\n lead to cancellation of your registration with DIKSHA and your\n access to certain features of DIKSHA. You also agree and\n acknowledge that certain data or information cannot be deleted or\n may be prohibited to be deleted as required under any applicable\n law, law enforcement requests or under any judicial proceedings.\n
  2. \n
\n\n\n

Changes to this Privacy Policy

\n
    \n
  1. \n DIKSHA reserves the right to modify this privacy statement at any\n time, so please review it frequently. If a material change is made\n to the practices regarding your personally identifiable\n information, you will be notified, by means of a notice on DIKSHA.\n
  2. \n
\n\n\n

How to contact us?

\n
    \n
  1. \n If you have any queries, comments, or requests, please contact us\n by sending an email to\n support@teamdiksha.org.\n
  2. \n
\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Content Policy of DIKSHA

\n \n

\n This Content Policy sets out the guidelines for content to be followed\n on DIKSHA. The DIKSHA Strategy and Approach Paper clearly articulates\n one of the intentions of DIKSHA - to create a common repository of open\n education resources for easy access to teachers across the country. This\n Content Policy sets out the principles and process to achieve this end.\n

\n

\n The content creation and curation process on DIKSHA is envisaged to be\n an open process with low barriers to entry. It celebrates and encourages\n participation by making it simple to create and share content on the\n platform. It avoids creating barriers to entry in the form of\n centralized review workflows and federates that process to the community\n to police itself. Institutional Users, through their Administrators,\n being the custodians of DIKSHA, frame the guidelines and curation rules,\n and delegate the authority to curate to the community. This creates a\n platform that is open, has low barrier to entry, while the quality of\n content is ensured by the federated process.\n

\n

\n Set out below are some common-sense rules that all Users must comply\n with respect to Content on DIKSHA. These rules are to be taken seriously\n as Administrators are required to enforce the same strictly. Users are\n requested not to look for loopholes or ways around these guidelines and\n respect the spirit in which they have been created.\n

\n

\n Please read this Content Policy carefully, to learn more about the rules\n on appropriateness, accuracy, intellectual property rights and licensing\n that govern Content on DIKSHA.\n

\n

\n This Content Policy should be read in conjunction and together with the\n Terms of Use. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n

Principles for Content on DIKSHA

\n
    \n
  1. \n Content on the DIKSHA will be contributed by various content\n contributors across the country. The intent is to enable access to\n a wide range and diverse content from across the country so as to\n enable better contextualisation of content and wide access for end\n users.\n
  2. \n
  3. \n All content published on DIKSHA belongs to the creators of content\n be it individuals or organisations that have made content\n available on the platform, they are responsible for use by open\n learning platforms and applications therefore, content creators\n are responsibles for ensuring accuracy and appropriateness of\n content.\n
  4. \n
  5. \n Users can make multilingual and diverse content available on\n DIKSHA ranging from courses for in-service and pre-service\n teachers to classroom resources to tools for assessment and\n evaluation both of teachers and learners.\n
  6. \n
  7. \n Content on DIKSHA means and includes, (i) content that is written,\n uploaded, submitted, stored, sent, received or shared using\n DIKSHA, teaching and learning content in the context of school\n education, courses, lesson plans, worksheets, supplemental\n materials for classroom and other such learning materials meant\n for wide user consumption, and (iii) other types of Content\n described in the\n Terms of Use.\n
  8. \n
  9. \n Registered Users are solely responsible for the accuracy,\n appropriateness and violations of any privacy rights, third party\n rights including intellectual property rights with regards to\n their Content.\n
  10. \n
  11. \n Different types of Content are submitted/ posted/ uploaded /\n published on DIKSHA following different processes and workflows\n based on the purpose of the Content. Certain Content, such as\n posts, comments, feedback, submissions, responses, explanations in\n forums/groups or using project/ survey/ observation tools etc.,\n are directly submitted/ posted/ uploaded. Certain Content\n contributed by Registered Users that is meant for wider user\n consumption is published by Institutional Users after following a\n review process described below.\n
  12. \n
\n\n

Content Contribution

Content that is published on\n DIKSHA for wider user consumption can only be created by Registered\n Users who are authorised by an Institutional User to have read, write\n and edit rights to create Content. This authorisation may happen at\n central level or state level. Each Institutional User has their own\n guidelines for such authorisation. Registered Users who create Content\n are responsible for creating and contributing Content that complies\n with this\n Content Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n Registered Users shall have exercised reasonable diligence to satisfy\n themselves that their Content is ready for public consumption prior to\n being submitted for review and use on DIKSHA.

\n\n

Content Review & Publishing

All Content published\n on DIKSHA for wider user consumption is curated, reviewed and\n published by Registered Users who are authorised by an Institutional\n to have read, write and edit rights to curate, review or publish\n Content. This authorisation may happen at central level or state\n level. Each Institutional User has their own guidelines for such\n authorisation. Registered Users who curate, review or publish Content\n shall ensure that the Content they accept complies with this Content\n Policy, the\n Terms of Use\n and\n Privacy Policy, and any other policies and guidelines prescribed from time to time.\n

\n\n

Accuracy and Appropriateness

- Registered Users must\n ensure that all the Content they have created, contributed, reviewed\n or published is appropriate and accurate and meets their pedagogical\n and usability requirements as prescribed by Institutional Users.\n Content identified as inappropriate or inaccurate, as per this Content\n Policy, will not be published and can be unilaterally removed from\n DIKSHA.\n
    \n
  1. \n Accurate Content - All Content must:\n
      \n
    1. Be factually correct,
    2. \n
    3. \n Use language in text, audio, video and interactive materials\n that is simple and easy to understand, and\n
    4. \n
    5. \n Be contextual and relevant to the needs of the intended User.\n
    6. \n
    \n
  2. \n
  3. \n Inappropriate Content includes, but is not\n limited to:\n
      \n
    1. \n Hate Speech - by words either written or spoken or by signs or\n by visible representation or otherwise promotes or attempts to\n promote feelings of enmity, hatred or ill-will against persons\n of a:\n
        \n
      • Caste
      • \n
      • Class
      • \n
      • Tribe
      • \n
      • Race
      • \n
      • Ethnicity
      • \n
      • Sex, gender, or gender identity
      • \n
      • National origin
      • \n
      • Religious affiliation
      • \n
      • Sexual orientation, or
      • \n
      • Disabilities or diseases
      • \n
      \n
    2. \n
    3. \n Sexually explicit content\n
        \n
      • Pornography
      • \n
      • \n Explicit text/images/illustrations/sounds of sexual\n content\n
      • \n
      • Descriptions of sexual acts
      • \n
      \n
    4. \n
    5. \n Depiction of sexual violence and exploitation\n
        \n
      • \n Includes sexual exploitation of minors, and sexual\n assault.\n
      • \n
      • \n Photographs/ Illustrations/videos depicting incidents of\n sexual violence\n
      • \n
      \n
    6. \n
    7. \n Depiction of nudity\n
        \n
      • \n Nudity would mean displaying genitals, breasts or buttocks\n (clothed or unclothed) for the purpose of sexual\n gratification.\n
      • \n
      • \n Other than the depiction of body parts which isn’t\n gratuitously graphic and is educational, documentary,\n scientific, or artistic - paintings, sculptures, and other\n art that depicts nude figures, which is posted for\n educational purposes. Providing context will help users\n determine the purpose of the content/asset.\n
      • \n
      \n
    8. \n
    9. \n Content that promotes violence, including\n
        \n
      • \n Promoting, encouraging, supporting, praising, or condoning\n violent actions, activities and behaviour - verbal,\n physical or emotional.\n
      • \n
      • \n Threatening or inciting others to commit acts of violence\n
      • \n
      • \n Expressing support or praise for groups, people that are\n involved in violent or criminal behaviour\n
      • \n
      \n
    10. \n
    11. \n Content that promotes/depicts/reflects discrimination and\n bullying or encouraging such behaviour, including:\n
        \n
      • \n Targeting individuals with the intention of degrading or\n shaming them.\n
      • \n
      • \n Illustrations or Images altered to degrade individuals\n
      • \n
      • Photos or videos of physical or verbal bullying
      • \n
      • Sharing personal information or harassing people
      • \n
      • \n Repeatedly targeting other people with unwanted requests\n or messages.\n
      • \n
      \n
    12. \n
    13. \n Comprises harmful or dangerous content\n
        \n
      • \n which intends to incite violence or encourage dangerous or\n illegal activities that have an inherent risk of serious\n physical harm or death.\n
      • \n
      • \n Encourages dangerous or illegal activities for instance -\n money laundering, gambling, performing stunts, high risk\n activities, choking games, drug use, or other acts where\n serious injury or harm may result. Content that depicts\n dangerous acts may be allowed if the primary purpose is\n educational, documentary, scientific, or artistic (EDSA),\n and isn’t gratuitously graphic.\n
      • \n
      \n
    14. \n
    15. \n Other possibilities:\n
        \n
      • \n Content which violates the law for the time being in\n force,\n
      • \n
      • \n Content which infringes any trademark, copyright, or other\n intellectual property rights,\n
      • \n
      • \n Content which deceives or misleads the User about the\n origin of such Content and conveys information which is\n grossly offensive or menacing,\n
      • \n
      • \n Content which contains software viruses or any other\n computer code, files or programs designed to interrupt,\n destroy or limit the functionality of any computer\n resource,\n
      • \n
      • \n Content which threatens the unity, integrity, defence,\n security or sovereignty of India, friendly relations with\n foreign states, or public order, or causes incitement to\n the commission of any cognisable offence or prevents\n investigation of any offence or is insulting any other\n nation,\n
      • \n
      • \n Content involvings minors/ children in violence as victims\n or perpetrators or as forced witnesses to violence, or\n showing children as being subjected to any form of child\n abuse,\n
      • \n
      • \n Content involving abuse or ridicule of people with\n disabilities (physical or mental),\n
      • \n
      • Content involving cruelty to, or abuse of animals,
      • \n
      • \n depiction of violence, cruelty and horror, scenes of\n violence primarily,\n
      • \n
      • \n Content involving images/text/ illustrations have the\n effect of encouraging, justifying, glorifying, glamorising\n alcohol drinking, drugs and substance abuse; consumption\n of tobacco or smoking,\n
      • \n
      • \n Content involving degrading or denigrating women in any\n manner,\n
      • \n
      • \n Content involving vulgarity, obscenity or depravity,\n
      • \n
      • \n Content involving dual meaning words as obviously cater to\n baser instincts,\n
      • \n
      • \n Content involving visuals or words contemptuous of racial,\n religious or other groups,\n
      • \n
      • \n Content involving visuals or words which promote\n superstition, communal, obscurantist, anti-scientific\n attitude, and\n
      • \n
      • \n Content involving visuals or words involving defamation of\n an individual or a body of individuals.\n
      • \n
      \n
    16. \n
    \n
  4. \n
\n\n

Intellectual Property Rights

\n
    \n
  1. \n Registered Users are solely responsible for Content they have\n created, uploaded, sourced, linked, streamed, curated, reviewed,\n or published on DIKSHA.\n
  2. \n
  3. \n Registered Users must ensure that Content (meant for wider user\n consumption) that they create, upload, source, link, stream,\n curate, review or publish on DIKSHA accurately reflects:\n
      \n
    1. Author
    2. \n
    3. Copyright holder
    4. \n
    5. Year of copyright
    6. \n
    7. \n Attributions to creators whose content has been relied on,\n used in, or referred to in the Content (if any) and sources\n and citations.\n
    8. \n
    9. The relevant license, as per the Licensing Policy
    10. \n
    \n
  4. \n
  5. \n Registered Users who have copyright in the Content they have\n contributed, consent to publication of their Content in accordance\n with the\n Terms of Use\n and this\n Content Policy.\n
  6. \n
  7. \n In relation to Content being contributed by any person other than\n the copyright holder of the Content, Registered Users must ensure\n that they have the necessary authorisation, consent, license, or\n permission to publish such Content in accordance with the\n Terms of Use\n and this\n Content Policy.\n
  8. \n
  9. \n If Content includes copyrighted materials (including text, images,\n photos, illustrations, sounds, music, videos, audio-visual\n combinations, etc.), Registered Users (creators, curators,\n reviewers and publishers) must ensure compliance with the license\n terms, proper attribution and any other third party intellectual\n property rights. Infringement of copyright or any other\n intellectual property rights is not acceptable, the proper\n attributions and acknowledgement of authors and creators for open\n education resource community and creative commons community must\n be respected and upheld at all times. Administrators and\n technology support providers of DIKSHA will remove any Content if\n properly notified that such Content infringes on another's\n intellectual property rights or violates this Content Policy,\n Terms of Use\n and / or the\n Privacy Policy.\n
  10. \n
  11. \n By submitting / uploading / creating/ publishing Content on DIKSHA\n and following the open license frameworks adopted by DIKSHA,\n Registered Users recognise and accept that the Content (including\n all the elements that such Content comprises such as text,\n scripts, graphics, photos, sounds, music, videos, audio-visual\n combinations etc.) is placed in public domain will be accessed and\n used by any individual, institution or organisation through\n various platforms, portals and applications in accordance with the\n license conditions.\n
  12. \n
  13. \n It shall be the sole responsibility of Registered Users to ensure\n that proper and correct attributions, acknowledgements and\n sourcing references are given to the Content and individual(s)/\n institution(s) that have been involved in the development and\n creation of Content and wherever Content has been quoted/used.\n
  14. \n
  15. \n It shall be the responsibility of Registered Users not to infringe\n upon any third party rights including but not limited to\n intellectual property rights such as copyrights or any other legal\n rights of individual(s)/organisation(s) with regards to Content\n contributed on DIKSHA. For any legal matter arising out of\n infringement of such rights by the Registered User, such\n Registered User shall be solely responsible for any financial or\n other damages arising out of such violations and disputes.\n
  16. \n
  17. \n GoI and/or the administrators and technology support providers of\n DIKSHA are not responsible for the violations of any third party\n rights including intellectual property rights by any User.\n
  18. \n
  19. \n Any violations of intellectual property rights will be the\n responsibility of the concerned Users. Any disputes will be\n settled by the respective parties.\n
  20. \n
  21. \n GoI and/or the administrators and technology support providers of\n DIKSHA do not endorse any Content published on DIKSHA, or any\n opinion, recommendation, or advice expressed therein, and DIKSHA\n expressly disclaims any and all liability in connection with\n Content.\n
  22. \n
\n\n

Open Licensing Policy - Creative Commons Framework

\n
    \n
  1. \n DIKSHA follows principles of open access, open licensing and is a\n platform for open education resources. Registered Users must\n ensure that they follow these licensing terms. Content which does\n not follow these licensing terms shall be rejected.\n
  2. \n
  3. \n Content must be made available under the Creative Commons Licence\n Framework. Creative Commons licenses provide an easy way to manage\n the copyright terms that attach automatically to all creative\n material under copyright. Creative Commons licenses allow that\n material to be shared and reused under terms that are flexible and\n legally sound. Creative Commons offers a core suite of six\n copyright licenses. Anyone can use Creative Commons licensed\n materials as long as the license conditions are followed. One\n condition of all Creative Commons licenses is attribution. DIKSHA\n permits the use of the following licences:\n
      \n
    1. \n CC BY4.0\n (Attribution)\n
    2. \n
    3. \n CC BY-SA 4.0\n (Attribution-ShareAlike)\n
    4. \n
    5. \n CC BY-NC 4.0\n (Attribution-NonCommercial)\n
    6. \n
    7. \n CC BY-NC-SA 4.0\n (Attribution-NonCommercial-ShareAlike)\n
    8. \n
    9. \n CC BY-ND 4.0\n (Attribution-Non-Derivative)\n
    10. \n
    11. YouTube License
    12. \n
    \n
  4. \n
  5. \n Registered Users must ensure that the Content submitted to be\n published on the DIKSHA for wider user consumption specifies:\n
      \n
    1. \n the relevant license under which such Content will be\n available to the Users.\n
    2. \n
    3. \n That the appropriate license terms and well as attributions\n relating to such Content are properly followed, including\n details of the creator and source/ citations;\n
    4. \n
    5. \n That license options mentioned herein are followed in all\n cases, and that the relevant license should be compatible with\n the copyright license applicable to the original piece of\n content.\n
    6. \n
    \n
  6. \n
  7. \n Registered Users acknowledge and accept that since the Content\n provided herein follows open licensing norms such as creative\n commons licenses or other open licenses, the use of the Content\n shall not be limited to specific Institutional Users/ Registered\n Users that have published the Content and they shall be made\n available for discovery, access and use by any organisation,\n institution, platform, application and individual in general.\n
  8. \n
  9. \n Registered Users recognise and accept that once Content is\n submitted and placed in the public domain for use, they cannot\n unilaterally withdraw the Content or change the licensing terms.\n
  10. \n
\n\n

Bad Practices:

Registered Users must not indulge in\n any of the following bad practices in relation to their Content,\n including:\n
    \n
  1. \n Uploading Content (including photos or videos) of individuals\n without their consent: Photos or videos which include other people who are not the\n subject of the photo and have not signed a consent / release form\n to share those photos or videos, are not permitted. Any person\n that appears in the photo or video (whose face is visible) must\n have signed a consent / release form where they consent to the\n sharing of such photo(s) with third parties. If the individual is\n a child under the age of 18 years, the parents or guardians of\n such child must have signed such consent/ release form.\n
  2. \n
  3. \n Uploading Content (including photos or videos) with ethical\n issues: Photographs or videos containing violent, pornographic, sensitive\n content or other inappropriate Content described in this Content\n Policy that could, in some way, offend our Users are not\n permitted.\n
  4. \n
  5. \n Uploading Content (including photos, videos or documents) which\n require authorisation from the author / owner: Certain types of Content (including photographs, videos or\n documents) require the permission of the author / owner such as\n copyrighted works (eg. logos, literary or artworks), or\n confidential documents. It is important that before uploading such\n Content, appropriate written permissions are taken.\n
  6. \n
  7. \n Uploading Content which doesn’t meet specified technical or\n visual requirements.\n \n
  8. \n
  9. Uploading repeats of the same Content.
  10. \n
  11. Uploading files that contain viruses or malware.
  12. \n
\n\n

Takedown Policy -

\n
    \n
  1. \n If a User believes that certain Content published on DIKSHA is in\n violation of this Content Policy or any applicable laws please\n contact us at\n support@teamdiksha.org\n and necessary action will be taken to review and / or remove such\n content as quickly as possible.\n
  2. \n
  3. \n Administrators and technology support providers of DIKSHA reserve\n the right to remove Content from DIKSHA without any prior notice\n for any violation of the Content Policy,\n Privacy Policy, or the\n Terms of Use. They may at their sole and absolute discretion delete, remove,\n disable access or otherwise deal with information, data or Content\n to comply with laws currently in force, including the Information\n Technology Act, 2000.\n
  4. \n
\n\n\n

\n DISCLAIMER: Though all efforts have been made to ensure the accuracy\n and currency of the Content on DIKSHA, the same should not be\n construed as a statement of law or used for any legal purposes. In no\n event will the Government of India, MoE or NCERT be liable for any\n expense, loss or damage including, without limitation, indirect or\n consequential loss or damage, or any expense, loss or damage\n whatsoever arising from use, or loss of use, of data, arising out of\n or in connection with the use of DIKSHA. Links to other websites that\n have been included on this platform are provided for public\n convenience only.\n

\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Group Guidelines

\n \n

\n These Group Guidelines specify the rights and responsibilities of\n Registered Users who use and participate in Groups. These Group\n Guidelines should be read in conjunction with the\n Terms of Use,\n Content Policy\n and\n Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the\n Terms of Use.\n

\n
    \n\n

    What is a Group?\n
      \n
    1. A Group is a set of Registered Users
    2. \n
    3. \n A Group can be created by a Group Admin and comprises Group\n Members\n
    4. \n
    5. \n Groups are only visible to the Group Admin who has created the\n Group and the Group Members assigned to the Group. Groups are not\n searchable.\n
    6. \n
    7. \n Group Admins can assign activities on DIKSHA to the Group Members\n (visible on the Group).\n
    8. \n
    \n\n\n

    Who is a Group Admin?

    \n

    \n A Registered User who has created a Group or has been assigned to be\n a Group Admin by another Group Admin\n

    \n\n\n

    Who is a Group Member?

    \n

    \n A Registered User who has been added to Group as a Group Member by a\n Group Admin.\n

    \n\n

    What can a Group Admin do on DIKSHA?

    \n
      \n
    1. Create a Group
    2. \n
    3. Add / Remove Group Members
    4. \n
    5. Mark another Group Member as a Group Admin
    6. \n
    7. View, search and suggest activities on DIKSHA to the Group
    8. \n
    9. \n View the progress of individual Group Members in relation to\n activities of the Group\n
    10. \n
    11. \n Communicate with the Group Members (as a Group and individually)\n
    12. \n
    13. Delete the Group
    14. \n
    \n\n\n

    What Registered User data does the Group Admin have access to?

    \n
      \n
    1. Name
    2. \n
    3. \n Progress and milestones achieved by Group Members in relation to\n the activities of the Group\n
    4. \n
    \n\n\n

    What are the responsibilities of the Group Admin?

    \n
      \n
    1. \n To ensure that activities of the Group are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To use the data and information of Registered Users only for the\n purposes of tracking the progress of Group Members, and for no\n other purpose.\n
    4. \n
    5. \n To ensure that any communication with Group Members is relevant to\n the purpose of the Group and meets the Appropriateness standards\n set out in the\n Content Policy of DIKSHA.\n
    6. \n
    7. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    8. \n
    \n\n\n

    What can a Group Member do once assigned to a Group?

    \n
      \n
    1. \n View, participate and communicate in relation to the activities of\n the Group on DIKSHA\n
    2. \n
    3. \n View their own progress in relation to the activities of the Group\n on DIKSHA\n
    4. \n
    5. View a list of other Group Members
    6. \n
    7. Opt out of any Group
    8. \n
    \n\n\n

    What are the responsibilities of the Group Member?

    \n
      \n
    1. \n To ensure that any communication with other Group Members or the\n Group Admin is relevant to the purpose of the Group and meet the\n Appropriateness standards set out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To refrain from using the Group for any of the Prohibited Uses set\n out in the\n Terms of Use.\n
    4. \n
    \n\n
\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

DIKSHA Course Terms

\n \n

\n These Course Terms specify the rights and responsibilities of Registered\n Users who choose to join a course on DIKSHA and Administrators of\n courses on DIKSHA. Administrators of a course are Registered Users\n authorised by Institutional Users to offer courses on DIKSHA.\n

\n

For Registered Users

\n
    \n\n A Registered User that chooses to join a course on DIKSHA\n can:\n
      \n
    1. Access the course and its Content
    2. \n
    3. View their own progress
    4. \n
    5. \n Access and download any certificates received on achieving\n milestones in the course\n
    6. \n
    7. Opt out of the course at any time
    8. \n
    9. \n Provide consent for sharing personal information with\n Administrators of a course\n
    10. \n
    11. \n Revoke consent for sharing personal information with\n Administrators of a course\n
    12. \n
    \n\n Access and Revocation of access to data and information of\n Registered User:\n \n
      \n
    1. \n By choosing to join a course, the Registered User agrees to give\n the Administrators of the course access to their Name, State,\n District, progress in the course and milestones achieved for the\n purposes of analysing usage of Content to improve content and\n other offerings.\n
    2. \n
    3. \n Upon joining a course, a Registered User has the option to provide\n their explicit consent to give the Administrators of the course\n access to the following additional information, namely: (i) User\n ID (Teacher ID) (ii) Block (iii) School U-DISE code / Organisation\n ID or number (iv) School/Organisation name (v) mobile number and\n (vi) email address. This consent can be given either when prompted\n by a pop-up or by changing their data sharing settings. This\n additional information can only be used by the Administrators of\n the course for the purpose of:\n
        \n
      1. tracking progress of the Registered User ;
      2. \n
      3. \n analysing usage to improve the course, Content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    4. \n
    5. \n Registered Users can revoke their consent to sharing additional\n information at any time by changing their data sharing settings.\n
    6. \n
    \n\n\n Responsibilities of Registered Users: \n
      \n
    1. \n To ensure that any of their communication is relevant to the\n purpose of the course and meet the Appropriateness standards set\n out in the\n Content Policy of DIKSHA.\n
    2. \n
    3. \n To ensure that their use of courses does not violate any of the\n Prohibited Uses set out in the Terms of Use.\n
    4. \n
    \n\n

    For Administrators of the course

    \n\n Administrators of a course on DIKSHA can: \n
      \n
    1. Create, review or publish courses on DIKSHA
    2. \n
    3. \n Access data and information of courses created by or assigned to\n them, which contain:\n
        \n
      1. \n Name, State, District and progress data of the Registered\n Users who have chosen to join the course,\n
      2. \n
      3. \n User ID (Teacher ID), Block, School U-DISE code / Organisation\n ID or number, School/Organisation name, mobile number, and\n email address of Registered Users, only if the Registered\n Users have given their explicit consent,\n
      4. \n
      5. \n Course usage data such as progress and completion details and\n other related matters\n
      6. \n
      \n
    4. \n
    5. \n View and use such data and information. Reports with this\n additional information will be available only for a limited period\n of time and will expire in 15 days.\n
    6. \n
    7. \n Use the data and information of the Registered Users only for the\n purposes of:\n
        \n
      1. tracking their progress;
      2. \n
      3. \n analysing usage of Content to improve content and other\n offerings;\n
      4. \n
      5. validating contact details;
      6. \n
      7. issuing certificates; and
      8. \n
      9. \n contacting Registered Users to send relevant information or\n seek feedback.\n
      10. \n
      \n
    8. \n
    9. \n Create and issue certificates for Registered Users who have\n achieved milestones in the course.\n
    10. \n
    \n\n\n Responsibilities of Administrators of a course: \n
      \n
    1. \n To ensure that the courses created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards.\n
    2. \n
    3. \n To respect the privacy and data protection rights of Registered\n Users.\n
    4. \n
    5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users is limited solely to the purposes\n mentioned here.\n
    6. \n
    7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
    8. \n
    9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purpose of the course\n and meets the Appropriateness standards set out in the\n Content Policy of DIKSHA. The email address and phone number of Registered Users shall\n only be used to share information in connection with the course\n and shall not under any circumstance be used for any other\n matters.\n
    10. \n
    11. \n To ensure that their courses are not used for any of the\n Prohibited Uses set out in the\n Terms of Use of DIKSHA.\n
    12. \n
    \n\n
\n

\n These Course Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n
\n \n\n \n
\n
\n

Administrator Guidelines

\n \n

\n These Administrator Guidelines specify the rights and responsibilities\n of Registered Users who are Administrators on DIKSHA. Administrators are\n Registered Users authorised by Institutional Users to be administrators\n on DIKSHA on their behalf.\n

\n\n\n

Administrators on DIKSHA can:

\n \n Access the following data and information of Registered Users:\n
    \n
  1. \n Name, State, District and\n course progress data of the\n Registered Users who have chosen to join courses offered by\n the the Institutional User that the Administrator belongs to,\n
  2. \n
  3. \n User ID (16 digit randomised system\n generated identifier for every Registered User),\n external ID (ID entered by the\n Registered User when they choose to submit additional details\n from their profile), Block,\n School U-DISE code / Organisation ID or number, School/Organisation name, mobile number(s), and email address(s) linked to\n the profile of the Registered Users or additionally provided\n by the Registered User, only if the\n Registered Users have given their explicit consent to share\n these details with the Administrators. This Administrator will\n belong to the same Institutional User that the Registered User\n belongs to.\n
  4. \n
\n\n \n Access data and information in relation to usage of DIKSHA and its\n Content, which includes: \n
    \n
  1. \n Content plays (i.e. any Content played / viewed / used for at\n least 10 seconds)\n
  2. \n
  3. Content play time (in minutes)
  4. \n
  5. \n QR code scans (including using the DIAL Code directly) and\n failed scans\n
  6. \n
  7. User ratings and feedback for Content
  8. \n
  9. Number and types of unique devices
  10. \n
  11. Transactions per second on DIKSHA
  12. \n
  13. \n Reports that compile the above mentioned data and information\n by board, medium, grade, subject, location, creator, device\n type, number of unique devices, energised textbook so as to\n enable Administrators to learn about usage of DIKSHA and its\n Content in different contexts\n
  14. \n
  15. \n Reports that compile the Content provided by Registered Users\n using tools like surveys, observations, and projects\n
  16. \n
\n\n Use the data and information only for the purposes of:\n
    \n
  1. \n Gaining insights through analysis of data to improve quality,\n effectiveness, relevance, usage of Content, courses,\n textbooks, programs and other offerings over time based on\n Content usage, interest, user feedback, popularity, completion\n rates, identified misconceptions;\n
  2. \n
  3. \n Assessing, evaluating, validating Content submitted / posted /\n uploaded / otherwise provided by Registered Users;\n
  4. \n
  5. \n Downloading details submitted and expressly shared by\n Registered Users only for the purposes mentioned herein and in\n accordance with the policies of DIKSHA;\n
  6. \n
\n \n Grant or revoke rights to create, curate, review or publish\n Content on DIKSHA to Registered Users.\n \n\n\n\n

Responsibilities of Administrators:

\n
    \n
  1. \n To ensure that the Content created, reviewed or published by them\n are in line with the\n Content Policy of DIKSHA, and accordingly meet the Accuracy and Appropriateness\n standards;\n
  2. \n
  3. \n To respect the privacy and data protection rights of Registered\n Users;\n
  4. \n
  5. \n To ensure the security of and use of data (especially personal\n data) shared by Registered Users or obtained from DIKSHA is\n limited solely to the purposes mentioned here and is not used for:\n
      \n
    1. Sale or other commercial purposes;
    2. \n
    3. Advertising or marketing;
    4. \n
    5. \n Phone calls or other forms of unsolicited communication that\n is not related to usage of DIKSHA;\n
    6. \n
    7. \n Building a personal profile, other than for educational\n purposes on DIKSHA;\n
    8. \n
    9. \n Defaming, harassing, abusing, threatening or defrauding any\n Registered Users,\n
    10. \n
    11. \n Impersonating any person or entity, falsely claiming an\n affiliation with any person or entity, or accessing DIKSHA\n accounts without permission, or perform any other fraudulent\n activity;\n
    12. \n
    13. \n Sending junk mail or spam, informational announcements,\n charity requests, and petitions for signatures etc.\n
    14. \n
    15. \n Any of the Prohibited Purposes set out in the\n Terms of Use; and\n
    16. \n
    17. \n Any purpose that is not disclosed in this policy or on DIKSHA.\n
    18. \n
    \n
  6. \n
  7. \n To know that any use of data for purposes outside of the proper\n use shall be considered violation of the terms of the policies of\n DIKSHA as well as applicable laws and policies of India and they\n shall be responsible and liable for such actions and for any loss\n or damage arising from failure to comply with this obligation.\n
  8. \n
  9. \n To ensure that their communication (if any) with Registered Users\n is explicitly limited and relevant to the purposes specified here\n and meets the Appropriateness standards set out in the\n Content Policy. The email address and phone number of Registered Users shall\n only be used to share information in connection with uses\n specified here and shall not under any circumstance be used for\n any other matters.\n
  10. \n
\n\n\n

\n These Administrator Guidelines should be read in conjunction with the\n policies and guidelines of DIKSHA, including the Terms of Use, Content Policy and Privacy Policy. Defined terms used but not defined herein shall have the meaning\n ascribed to them in the Terms of Use. \n

\n\n\n\n\n\n\n\n
\n
\n \n
\n
\n","import {ActivatedRoute, Router} from '@angular/router';\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\n\nimport {GlobalService} from '../../services/global.service';\nimport {UciService} from '../../services/uci.service';\nimport moment from 'moment/moment';\nimport {debounceTime} from 'rxjs/operators';\n\n@Component({\n selector: 'lib-conversation-add',\n templateUrl: './conversation-add.component.html',\n styleUrls: ['./conversation-add.component.css']\n})\nexport class ConversationAddComponent implements OnInit {\n @ViewChild('verifyAllModal') verifyAllModal;\n currentViewState = 'ADD_CONVERSATION';\n stepIndex = 1;\n selectedLogic = [];\n userSegments = [];\n column = '';\n sortDirection = '';\n reverse = false;\n collectionListModal = false;\n isLoaderShow = false;\n isModalLoaderShow = false;\n logicFormRequest = {};\n isCheckedTermCondition = false;\n conversationForm: UntypedFormGroup;\n logicForm: UntypedFormGroup;\n termsAndConditionModal = false;\n verifyAllItemsModal = false;\n conversationId;\n selectedLogicIndex;\n startMinDate = new Date();\n endMinDate;\n Appropriateness = [\n {\n text: 'No Hate speech, Abuse, Violence, Profanity',\n checks: false\n },\n {\n text: 'No Sexual content, Nudity or Vulgarity',\n checks: false\n },\n {\n text: 'No Discrimination or Defamation',\n checks: false\n },\n {\n text: 'Is suitable for children',\n checks: false\n }\n ];\n contentDetails = [\n {\n text: 'Appropriate Title, Description',\n checks: false\n },\n {\n text: 'Correct Board, Grade, Subject, Medium',\n checks: false\n },\n {\n text: 'Appropriate tags such as Resource Type, Concepts',\n checks: false\n },\n {\n text: 'Relevant keywords',\n checks: false\n }\n ];\n usability = [\n {\n text: 'Content plays correctly',\n checks: false\n },\n {\n text: 'Can see the content clearly on Desktop and App',\n checks: false\n },\n {\n text: 'Audio (if any) is clear and easy to understand',\n checks: false\n },\n {\n text: 'No spelling mistakes in the text',\n checks: false\n },\n {\n text: 'Language is simple to understand',\n checks: false\n }\n ];\n isSubmit: boolean;\n odkFileAlreadyExist: boolean = false;\n isStartingMessageExist = false;\n fileErrorStatus;\n user;\n\n constructor(\n private uciService: UciService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private fb: UntypedFormBuilder,\n private globalService: GlobalService\n ) {\n const tempDate = moment().add(1, 'days').format('YYYY-MM-DD');\n this.endMinDate = new Date(tempDate);\n }\n\n ngOnInit() {\n this.user = this.globalService.getUser();\n if (!this.user) {\n this.router.navigate(['uci-admin']);\n return;\n }\n this.conversationForm = this.fb.group({\n name: ['', Validators.required],\n description: [''],\n purpose: ['', Validators.required],\n startingMessage: ['', Validators.required],\n startDate: [null],\n endDate: [null],\n status: ['Draft']\n });\n\n this.logicForm = this.fb.group({\n id: [null],\n name: ['', Validators.required],\n description: [''],\n formId: ['', Validators.required]\n });\n\n // Edit case\n this.conversationId = this.activatedRoute.snapshot.paramMap.get('id');\n if (this.conversationId) {\n this.getUserSegmentDetail();\n }\n\n // start date and end date value change\n this.conversationForm.get('startDate').valueChanges.subscribe(val => {\n this.conversationForm.get('endDate').patchValue(null);\n const tempDate = moment(val).add(1, 'days').format('YYYY-MM-DD');\n this.endMinDate = new Date(tempDate);\n });\n\n this.conversationForm.get('startingMessage').valueChanges\n .pipe(debounceTime(1000))\n .subscribe(\n value => {\n this.onStarringMessageChange();\n }\n );\n }\n\n userSegment() {\n this.currentViewState = 'SELECT_SEGMENT';\n }\n\n onUserSegmentCancel() {\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentAddClick() {\n this.currentViewState = 'ADD_SEGMENT';\n }\n\n onUserSegmentAdd(segments) {\n this.userSegments = segments;\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentCreate(segment) {\n this.userSegments.push(segment);\n this.currentViewState = 'ADD_CONVERSATION';\n }\n\n onUserSegmentDelete(index) {\n this.userSegments.splice(index, 1);\n }\n\n nextStep() {\n if (this.stepIndex === 1 && this.conversationForm.valid) {\n this.stepIndex = 2;\n }\n }\n\n backToStepOne() {\n if (this.stepIndex === 2) {\n this.stepIndex = 1;\n }\n }\n\n onAddCancel() {\n this.router.navigate(['uci-admin']);\n }\n\n onSubmit(isTriggerBot = false) {\n const reqObj = {\n ...this.conversationForm.value,\n users: [],\n logic: []\n };\n this.userSegments.forEach(userSegment => {\n reqObj.users.push(userSegment.id);\n });\n this.selectedLogic.forEach(logic => {\n reqObj.logic.push(logic.id);\n });\n\n this.isLoaderShow = true;\n\n if (this.conversationId) {\n this.uciService.botUpdate(this.conversationId, {data: reqObj}).subscribe(\n data => {\n this.closeVerifyModal();\n this.isLoaderShow = false;\n this.router.navigate(['uci-admin/success'], {queryParams: {text: reqObj.startingMessage, botId: this.conversationId}});\n }, error => {\n this.isLoaderShow = false;\n this.verifyAllItemsModal = true;\n }\n );\n } else {\n this.uciService.botCreate({data: reqObj}).subscribe(\n (data: any) => {\n if (isTriggerBot) {\n this.startConversation(data.data);\n } else {\n this.closeVerifyModal();\n this.isLoaderShow = false;\n this.router.navigate(['uci-admin/success'], {queryParams: {text: reqObj.startingMessage, botId: data.data.id}});\n }\n\n }, error => {\n this.isLoaderShow = false;\n this.verifyAllItemsModal = true;\n }\n );\n }\n }\n\n startConversation(bot) {\n this.uciService.startConversation(bot.id).subscribe(\n data => {\n this.isLoaderShow = false;\n this.closeVerifyModal();\n this.router.navigate(['uci-admin/success'], {\n queryParams: {\n text: this.conversationForm.value.startingMessage,\n botId: bot.id\n }\n });\n }, error => {\n this.verifyAllItemsModal = true;\n this.isLoaderShow = false;\n }\n );\n }\n\n closeVerifyModal() {\n if (this.verifyAllModal) {\n this.verifyAllModal.deny('denied');\n }\n this.verifyAllItemsModal = false;\n }\n\n openModel() {\n this.logicFormRequest = {};\n this.collectionListModal = true;\n this.logicForm.reset();\n this.fileErrorStatus = null;\n this.isStartingMessageExist = false;\n }\n\n openTermAndConditionModel() {\n this.termsAndConditionModal = true;\n }\n\n openItemsVerifyModal(isSubmitBtn: boolean) {\n this.verifyAllItemsModal = true;\n this.isSubmit = isSubmitBtn;\n }\n\n onLogicAdd() {\n const reqData = {\n ...this.logicForm.value,\n transformers: [\n {\n id: 'bbf56981-b8c9-40e9-8067-468c2c753659',\n meta: {\n form: 'https://hosted.my.form.here.com',\n formID: this.logicForm.value.formId\n }\n }\n ],\n adapter: '44a9df72-3d7a-4ece-94c5-98cf26307324'\n };\n\n this.isModalLoaderShow = true;\n if (this.logicForm.get('id').value) {\n this.uciService.updateLogic(this.logicForm.get('id').value, {data: reqData}).subscribe(\n (data: any) => {\n this.isModalLoaderShow = false;\n const existingLogic = reqData;\n delete existingLogic.id;\n this.selectedLogic[this.selectedLogicIndex] = Object.assign(this.selectedLogic[this.selectedLogicIndex], existingLogic);\n }, error => {\n this.isModalLoaderShow = false;\n }\n );\n } else {\n this.uciService.createLogic({data: reqData}).subscribe(\n (data: any) => {\n this.isModalLoaderShow = false;\n const existingLogic = reqData;\n delete existingLogic.id;\n this.selectedLogic.push({\n id: data.data.id,\n ...existingLogic,\n });\n }, error => {\n this.isModalLoaderShow = false;\n }\n );\n }\n\n }\n\n getEditLogicData(item, index) {\n if (item.id) {\n this.selectedLogicIndex = index;\n this.logicForm.patchValue(\n {\n id: item.id,\n name: item.name,\n description: item.description,\n formId: item.transformers[0].meta.formID\n }\n );\n }\n }\n\n onFileUpload(event) {\n if (!event.target.files.length) {\n return;\n }\n const file = event.target.files[0];\n const obj = {\n form: file\n };\n this.logicForm.patchValue({formId: ''});\n this.isModalLoaderShow = true;\n this.uciService.uploadFile(obj).subscribe((fileInfo: any) => {\n if (fileInfo.result?.data) {\n this.logicForm.patchValue({formId: fileInfo.result?.data});\n }\n this.isModalLoaderShow = false;\n this.odkFileAlreadyExist = false;\n }, error => {\n this.isModalLoaderShow = false;\n this.odkFileAlreadyExist = true;\n this.fileErrorStatus = error.error.status;\n }\n );\n }\n\n onDelete(logic, index) {\n this.uciService.deleteLogic(logic.id).subscribe(\n file => {\n this.selectedLogic.splice(index, 1);\n }\n );\n }\n\n getUserSegmentDetail() {\n this.uciService.getBotUserDetails(this.conversationId).subscribe((val: any) => {\n if (val.data) {\n this.conversationForm.patchValue({\n name: val.data.name,\n description: val.data.description,\n purpose: val.data.purpose,\n startingMessage: val.data.startingMessage,\n startDate: val.data.startDate ? val.data.startDate : '',\n endDate: val.data.endDate ? val.data.endDate : ''\n });\n if (val.data.userSegments) {\n this.userSegments = val.data.userSegments;\n }\n if (val.data.logic) {\n this.selectedLogic = val.data.logic;\n }\n }\n });\n }\n\n allCheck(isAllCheck: boolean = false) {\n this.Appropriateness.forEach(val => {\n val.checks = isAllCheck;\n });\n this.contentDetails.forEach(val => {\n val.checks = isAllCheck;\n });\n this.usability.forEach(val => {\n val.checks = isAllCheck;\n });\n }\n\n onStarringMessageChange() {\n this.uciService.getCheckStartingMessage({startingMessage: this.conversationForm.value.startingMessage}).subscribe(val => {\n this.isStartingMessageExist = true;\n }, error => {\n this.isStartingMessageExist = false;\n });\n\n }\n\n manualDownload() {\n window.open(this.globalService.getBaseUrl() + '/UCI%20_%20ODK%20Instruction%20Manual.pdf', '_blank');\n }\n\n sampleODKDownload() {\n window.open(this.globalService.getBaseUrl() + '/Sample_ODK.xlsx', '_blank');\n }\n}\n","\n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n \n
\n
Conversation setup
\n
\n
\n \n
\n
Conversation flow
\n
\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n Add new conversation\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n This starting message has already been taken\n
\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
User segments
\n

{{userSegments.length}} segments added

\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{userSegment.name}}\n
User count {{userSegment.count}}
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n
\n Conversation flow\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n \"Search\n
\n
\n No logic Added\n
\n
\n \n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Step\n \n Name\n \n Description\n \n Action\n
{{i + 1}}{{logic?.name}}{{logic?.description}}\n
\n \n
\n
Edit\n
\n
Delete
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
\n {{logicForm.get('id').value ? ' Update' : 'Add'}} Conversation Logic\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{fileErrorStatus}}\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n\n\n
\n Terms and Conditions\n
\n
\n \n
\n
\n \n
\n
\n\n
\n

\n Please confirm that ALL the following items are verified (by ticking the check-boxes) before you can submit:\n

\n
\n
\n
\n
\n
\n

Appropriateness

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Content Details

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n

Usability

\n
\n
\n
\n
\n \n
\n
\n {{list.text}}\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\n\n@Component({\n selector: 'lib-conversation-success',\n templateUrl: './conversation-success.component.html',\n styleUrls: ['./conversation-success.component.css']\n})\nexport class ConversationSuccessComponent implements OnInit {\n text = '';\n botId = '';\n\n constructor(private router: Router, private activatedRoute: ActivatedRoute) {\n }\n\n ngOnInit(): void {\n this.text = this.activatedRoute.snapshot.queryParams.text || '';\n this.botId = this.activatedRoute.snapshot.queryParams.botId || '';\n }\n\n onCopy(id) {\n const val = document.getElementById(id).innerText;\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = val;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n\n onClose() {\n this.router.navigate(['/uci-admin']);\n }\n\n}\n","
\n
\n
\n
\n
\n \"Search\n
\n\n
\n Congratulations! You have successfully created a new conversation\n
\n\n
\n Use the following URL to use DIKSHA bot:\n https://api.whatsapp.com/send?text={{text}}&phone=+912249757677\n
\n\n
\n or share the following ID with DiKSHA team:\n {{botId}}\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n
\n","import {PipesModule} from '../pipes/pipes.module';\nimport {UciService} from '../services/uci.service';\nimport {ConfigService} from '../services/config.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SidePanelComponent} from './side-panel/side-panel.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TagInputModule} from 'ngx-chips';\nimport {ConversationListComponent} from './conversation-list/conversation-list.component';\nimport {ConversationAddComponent} from './conversation-add/conversation-add.component';\nimport {UserSegmentListComponent} from './user-segment-list/user-segment-list.component';\nimport {CommonFormElementsModule} from '@project-sunbird/common-form-elements-full';\nimport {UserSegmentAddComponent} from './user-segment-add/user-segment-add.component';\nimport {SuiModule} from '@project-sunbird/ng2-semantic-ui';\nimport {ConversationSuccessComponent} from './conversation-success/conversation-success.component';\nimport {UciGraphQlService} from '../services/uci-graph-ql.service';\nimport {TermsConditionsComponent} from './terms-conditions/terms-conditions.component';\n\n@NgModule({\n declarations: [\n SidePanelComponent,\n ConversationListComponent,\n ConversationAddComponent,\n UserSegmentListComponent,\n UserSegmentAddComponent,\n TermsConditionsComponent,\n ConversationSuccessComponent\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n TagInputModule,\n PipesModule,\n CommonFormElementsModule,\n SuiModule,\n ],\n exports: [\n SidePanelComponent,\n ],\n providers: [\n UciService,\n ConfigService,\n UciGraphQlService\n ]\n})\nexport class ComponentsModule {\n}\n","import {LibEntryComponent} from '../components/lib-entry/lib-entry.component';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ConversationListComponent} from '../components/conversation-list/conversation-list.component';\nimport {ConversationAddComponent} from '../components/conversation-add/conversation-add.component';\nimport {UserSegmentListComponent} from '../components/user-segment-list/user-segment-list.component';\nimport {UserSegmentAddComponent} from '../components/user-segment-add/user-segment-add.component';\nimport {ConversationSuccessComponent} from '../components/conversation-success/conversation-success.component';\n\n\nconst routes: Routes = [\n {\n path: '',\n component: LibEntryComponent,\n children: [\n {\n path: 'home',\n pathMatch: 'full',\n component: ConversationListComponent\n },\n {\n path: 'add',\n pathMatch: 'full',\n component: ConversationAddComponent,\n },\n {\n path: ':id/edit',\n pathMatch: 'full',\n component: ConversationAddComponent,\n },\n {\n path: 'success',\n pathMatch: 'full',\n component: ConversationSuccessComponent,\n },\n ]\n }\n];\n\n@NgModule({\n declarations: [],\n imports: [\n RouterModule.forChild(routes),\n CommonModule\n ],\n exports: [RouterModule]\n})\nexport class UciRoutingModule {\n}\n","import {TelemetryUtilsService} from './telemetry-utils.service';\nimport {LibEntryComponent} from './components/lib-entry/lib-entry.component';\nimport {ComponentsModule} from './components/components.module';\nimport {UciRoutingModule} from './uci-routing/uci-routing.module';\n\nimport {NgModule} from '@angular/core';\n\nimport {UciEventsService} from './uci-events.service';\n\nexport function provideCsModule() {\n return window['CsModule'];\n}\n\n@NgModule({\n declarations: [\n LibEntryComponent\n ],\n imports: [\n ComponentsModule,\n UciRoutingModule\n ],\n exports: [\n LibEntryComponent\n ],\n providers: [UciEventsService, TelemetryUtilsService, {provide: 'CsModule', useFactory: provideCsModule}]\n})\nexport class UciModule {\n}\n","/*\n * Public API Surface of discussion-ui\n */\n\nexport * from './lib/uci-module';\nexport * from './lib/uci-events.service';\nexport * from './lib/models/uci-config.model';\nexport * from './lib/components/lib-entry/lib-entry.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UciEventsService","i2","i1","i2.GlobalService","i2.UciService","CONSTANTS.MENUOPTIONS","i3.TelemetryUtilsService","i4.ConfigService","i3.ConfigService","i4","i5.UciEventsService","i6.TelemetryUtilsService","i7.GlobalService","i8.SidePanelComponent","i1.UciService","i3.GlobalService","i5","i3","i3.UciGraphQlService","i4.GlobalService","i7.UserSegmentListComponent","i8.UserSegmentAddComponent","i9.TermsConditionsComponent"],"mappings":"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"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/index.d.ts b/src/app/client/src/assets/libs/uci-console/index.d.ts deleted file mode 100644 index f34fca7db63..00000000000 --- a/src/app/client/src/assets/libs/uci-console/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -/// -export * from './public-api'; -//# sourceMappingURL=samagra-x-uci-console.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts deleted file mode 100644 index 97dae0af5af..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as i0 from "@angular/core"; -import * as i1 from "./side-panel/side-panel.component"; -import * as i2 from "./conversation-list/conversation-list.component"; -import * as i3 from "./conversation-add/conversation-add.component"; -import * as i4 from "./user-segment-list/user-segment-list.component"; -import * as i5 from "./user-segment-add/user-segment-add.component"; -import * as i6 from "./terms-conditions/terms-conditions.component"; -import * as i7 from "./conversation-success/conversation-success.component"; -import * as i8 from "@angular/common"; -import * as i9 from "@angular/common/http"; -import * as i10 from "@angular/forms"; -import * as i11 from "ngx-chips"; -import * as i12 from "../pipes/pipes.module"; -import * as i13 from "@project-sunbird/common-form-elements-full"; -import * as i14 from "@project-sunbird/ng2-semantic-ui"; -export declare class ComponentsModule { - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵmod: i0.ɵɵNgModuleDeclaration; - static ɵinj: i0.ɵɵInjectorDeclaration; -} -//# sourceMappingURL=components.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map deleted file mode 100644 index dad1e5bec78..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/components.module.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"components.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/components/components.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBA,qBA6Ba,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAC5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts deleted file mode 100644 index efea7f8b3f0..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { ActivatedRoute, Router } from '@angular/router'; -import { OnInit } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; -import { GlobalService } from '../../services/global.service'; -import { UciService } from '../../services/uci.service'; -import * as i0 from "@angular/core"; -export declare class ConversationAddComponent implements OnInit { - private uciService; - private router; - private activatedRoute; - private fb; - private globalService; - verifyAllModal: any; - currentViewState: string; - stepIndex: number; - selectedLogic: any[]; - userSegments: any[]; - column: string; - sortDirection: string; - reverse: boolean; - collectionListModal: boolean; - isLoaderShow: boolean; - isModalLoaderShow: boolean; - logicFormRequest: {}; - isCheckedTermCondition: boolean; - conversationForm: UntypedFormGroup; - logicForm: UntypedFormGroup; - termsAndConditionModal: boolean; - verifyAllItemsModal: boolean; - conversationId: any; - selectedLogicIndex: any; - startMinDate: Date; - endMinDate: any; - Appropriateness: { - text: string; - checks: boolean; - }[]; - contentDetails: { - text: string; - checks: boolean; - }[]; - usability: { - text: string; - checks: boolean; - }[]; - isSubmit: boolean; - odkFileAlreadyExist: boolean; - isStartingMessageExist: boolean; - fileErrorStatus: any; - user: any; - constructor(uciService: UciService, router: Router, activatedRoute: ActivatedRoute, fb: UntypedFormBuilder, globalService: GlobalService); - ngOnInit(): void; - userSegment(): void; - onUserSegmentCancel(): void; - onUserSegmentAddClick(): void; - onUserSegmentAdd(segments: any): void; - onUserSegmentCreate(segment: any): void; - onUserSegmentDelete(index: any): void; - nextStep(): void; - backToStepOne(): void; - onAddCancel(): void; - onSubmit(isTriggerBot?: boolean): void; - startConversation(bot: any): void; - closeVerifyModal(): void; - openModel(): void; - openTermAndConditionModel(): void; - openItemsVerifyModal(isSubmitBtn: boolean): void; - onLogicAdd(): void; - getEditLogicData(item: any, index: any): void; - onFileUpload(event: any): void; - onDelete(logic: any, index: any): void; - getUserSegmentDetail(): void; - allCheck(isAllCheck?: boolean): void; - onStarringMessageChange(): void; - manualDownload(): void; - sampleODKDownload(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=conversation-add.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map deleted file mode 100644 index 0022f8934a4..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-add/conversation-add.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"conversation-add.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-add/conversation-add.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAY,MAAM,EAAY,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;;AAItD,qBAKa,wBAAyB,YAAW,MAAM;IAuF/C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,aAAa;IA1FI,cAAc,MAAC;IAC5C,gBAAgB,SAAsB;IACtC,SAAS,SAAK;IACd,aAAa,QAAM;IACnB,YAAY,QAAM;IAClB,MAAM,SAAM;IACZ,aAAa,SAAM;IACnB,OAAO,UAAS;IAChB,mBAAmB,UAAS;IAC5B,YAAY,UAAS;IACrB,iBAAiB,UAAS;IAC1B,gBAAgB,KAAM;IACtB,sBAAsB,UAAS;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,sBAAsB,UAAS;IAC/B,mBAAmB,UAAS;IAC5B,cAAc,MAAC;IACf,kBAAkB,MAAC;IACnB,YAAY,OAAc;IAC1B,UAAU,MAAC;IACX,eAAe;;;QAiBb;IACF,cAAc;;;QAiBZ;IACF,SAAS;;;QAqBP;IACF,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAS;IACrC,sBAAsB,UAAS;IAC/B,eAAe,MAAC;IAChB,IAAI,MAAC;gBAGO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,EAAE,EAAE,kBAAkB,EACtB,aAAa,EAAE,aAAa;IAMxC,QAAQ;IA6CR,WAAW;IAIX,mBAAmB;IAInB,qBAAqB;IAIrB,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,mBAAmB,CAAC,OAAO,KAAA;IAK3B,mBAAmB,CAAC,KAAK,KAAA;IAIzB,QAAQ;IAMR,aAAa;IAMb,WAAW;IAIX,QAAQ,CAAC,YAAY,UAAQ;IA6C7B,iBAAiB,CAAC,GAAG,KAAA;IAkBrB,gBAAgB;IAOhB,SAAS;IAQT,yBAAyB;IAIzB,oBAAoB,CAAC,WAAW,EAAE,OAAO;IAKzC,UAAU;IA6CV,gBAAgB,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAc5B,YAAY,CAAC,KAAK,KAAA;IAwBlB,QAAQ,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAQrB,oBAAoB;IAqBpB,QAAQ,CAAC,UAAU,GAAE,OAAe;IAYpC,uBAAuB;IASvB,cAAc;IAId,iBAAiB;yCAxZR,wBAAwB;2CAAxB,wBAAwB;CA2ZpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts deleted file mode 100644 index 672a9159fe3..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { OnInit } from '@angular/core'; -import { UciService } from '../../services/uci.service'; -import { Router } from '@angular/router'; -import { GlobalService } from '../../services/global.service'; -import * as i0 from "@angular/core"; -export declare class ConversationListComponent implements OnInit { - private uciService; - private router; - private globalService; - chatBots: any[]; - pager: any; - pageNumber: number; - column: string; - sortDirection: string; - reverse: boolean; - queryParams: any; - search: any; - user: any; - constructor(uciService: UciService, router: Router, globalService: GlobalService); - ngOnInit(): void; - getAllChatBots(): void; - parseConversations(data: any): void; - sortColumns(column: any): void; - navigateToPage(page: number): undefined | void; - getSearch(): void; - onAddNew(): void; - onEdit(conversation: any): void; - onStatusChange(conversation: any, index: any): void; - onDelete(conversation: any, index: any): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=conversation-list.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map deleted file mode 100644 index 6b7f3a31493..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-list/conversation-list.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"conversation-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-list/conversation-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;;AAE5D,qBAKa,yBAA0B,YAAW,MAAM;IAqBhD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IAtBzB,QAAQ,QAAM;IACd,KAAK,EAAE,GAAG,CAUR;IACF,UAAU,SAAK;IACf,MAAM,SAAM;IACZ,aAAa,SAAM;IACnB,OAAO,UAAS;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,MAAC;IACP,IAAI,MAAC;gBAEO,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAIxC,QAAQ;IASR,cAAc;IAmBd,kBAAkB,CAAC,IAAI,KAAA;IAwBvB,WAAW,CAAC,MAAM,KAAA;IAMlB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS9C,SAAS;IAIT,QAAQ;IAIR,MAAM,CAAC,YAAY,KAAA;IAInB,cAAc,CAAC,YAAY,KAAA,EAAE,KAAK,KAAA;IAgBlC,QAAQ,CAAC,YAAY,KAAA,EAAE,KAAK,KAAA;yCA1HnB,yBAAyB;2CAAzB,yBAAyB;CAmIrC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts deleted file mode 100644 index c6e1647cd8d..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import * as i0 from "@angular/core"; -export declare class ConversationSuccessComponent implements OnInit { - private router; - private activatedRoute; - text: string; - botId: string; - constructor(router: Router, activatedRoute: ActivatedRoute); - ngOnInit(): void; - onCopy(id: any): void; - onClose(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=conversation-success.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map deleted file mode 100644 index ff24f980b99..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/conversation-success/conversation-success.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"conversation-success.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/conversation-success/conversation-success.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AAEvD,qBAKa,4BAA6B,YAAW,MAAM;IAI3C,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,cAAc;IAH1D,IAAI,SAAM;IACV,KAAK,SAAM;gBAES,MAAM,EAAE,MAAM,EAAU,cAAc,EAAE,cAAc;IAG1E,QAAQ,IAAI,IAAI;IAKhB,MAAM,CAAC,EAAE,KAAA;IAeT,OAAO;yCA3BE,4BAA4B;2CAA5B,4BAA4B;CA+BxC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts deleted file mode 100644 index a243671bc46..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ActivatedRoute, Router } from '@angular/router'; -import { OnInit } from '@angular/core'; -import { Location } from '@angular/common'; -import { UciEventsService } from '../../uci-events.service'; -import { ConfigService } from '../../services/config.service'; -import { UciService } from '../../services/uci.service'; -import { TelemetryUtilsService } from '../../telemetry-utils.service'; -import { GlobalService } from '../../services/global.service'; -import * as i0 from "@angular/core"; -export declare class LibEntryComponent implements OnInit { - activatedRoute: ActivatedRoute; - private uciService; - private configService; - private location; - private uciEventsService; - private telemetryUtils; - private globalService; - private router; - user: any; - baseUrl: any; - constructor(activatedRoute: ActivatedRoute, uciService: UciService, configService: ConfigService, location: Location, uciEventsService: UciEventsService, telemetryUtils: TelemetryUtilsService, globalService: GlobalService, router: Router); - ngOnInit(): void; - goBack(): void; - close(event: any): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=lib-entry.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map deleted file mode 100644 index 89bba41662e..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/lib-entry/lib-entry.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"lib-entry.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/lib-entry/lib-entry.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmB,MAAM,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;;AAE5D,qBAKa,iBAAkB,YAAW,MAAM;IAKjC,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAXT,IAAI,MAAC;IACL,OAAO,MAAC;gBAGN,cAAc,EAAE,cAAc,EAC7B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAI1B,QAAQ,IAAI,IAAI;IAYhB,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,KAAA,GAAG,IAAI;yCAhCT,iBAAiB;2CAAjB,iBAAiB;CAuC7B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts deleted file mode 100644 index 2ac748eaa75..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { TelemetryUtilsService } from '../../telemetry-utils.service'; -import { UciService } from '../../services/uci.service'; -import { OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { ConfigService } from '../../services/config.service'; -import { IdiscussionConfig, IMenuOptions } from '../../models/uci-config.model'; -import * as i0 from "@angular/core"; -export declare class SidePanelComponent implements OnInit, OnDestroy { - router: Router; - uciService: UciService; - activatedRoute: ActivatedRoute; - private telemetryUtils; - private configService; - paramsSubscription: Subscription; - userName: string; - defaultPage: string; - data: IdiscussionConfig; - hideSidePanel: boolean; - menu: Array; - selectedTab: string; - showSideMenu: Boolean; - constructor(router: Router, uciService: UciService, activatedRoute: ActivatedRoute, telemetryUtils: TelemetryUtilsService, configService: ConfigService); - ngOnInit(): void; - isActive(selectedItem: any): boolean; - navigate(pageName: string, event?: any): void; - ngOnDestroy(): void; - showMenuButton(): void; - closeNav(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=side-panel.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map deleted file mode 100644 index 4abf0edb53b..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/side-panel/side-panel.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"side-panel.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/side-panel/side-panel.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAY,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAIlC,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAE,YAAY,EAAC,MAAM,+BAA+B,CAAC;;AAI9E,qBAKa,kBAAmB,YAAW,MAAM,EAAE,SAAS;IAe7C,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,UAAU;IACtB,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IAjBzB,kBAAkB,EAAE,YAAY,CAAC;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,SAAgB;IAE3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAM;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAQ;gBAGlB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC7B,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,aAAa;IAIxC,QAAQ;IAeR,QAAQ,CAAC,YAAY,KAAA;IAYrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,KAAA;IAUjC,WAAW;IAMX,cAAc;IAId,QAAQ;yCAtEC,kBAAkB;2CAAlB,kBAAkB;CA0E9B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts deleted file mode 100644 index e042c7c4b67..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { OnInit } from '@angular/core'; -import * as i0 from "@angular/core"; -export declare class TermsConditionsComponent implements OnInit { - constructor(); - ngOnInit(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=terms-conditions.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map deleted file mode 100644 index 6793c48ec9a..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/terms-conditions/terms-conditions.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"terms-conditions.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/terms-conditions/terms-conditions.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,EAAS,MAAM,eAAe,CAAC;;AAKtE,qBAKa,wBAAyB,YAAW,MAAM;;IAKnD,QAAQ;yCALC,wBAAwB;2CAAxB,wBAAwB;CAQpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts deleted file mode 100644 index 15d8a194e80..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { EventEmitter, OnInit } from '@angular/core'; -import { UciService } from '../../services/uci.service'; -import { UciGraphQlService } from '../../services/uci-graph-ql.service'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; -import * as i0 from "@angular/core"; -export declare class UserSegmentAddComponent implements OnInit { - private uciService; - private fb; - private uciGraphQlService; - cancel: EventEmitter; - add: EventEmitter; - formFieldProperties: Array; - userSegment: any; - isLoaderShow: boolean; - districts: any[]; - blocks: any[]; - schools: any[]; - clusters: any[]; - roles: any[]; - boards: any[]; - grade: number[]; - subjects: any[]; - userSegmentForm: UntypedFormGroup; - state: string; - constructor(uciService: UciService, fb: UntypedFormBuilder, uciGraphQlService: UciGraphQlService); - ngOnInit(): void; - onCancel(): void; - onAdd(): void; - afterAdd(data: any): void; - getUciState(): void; - getUciDistrict(): void; - getUciBlock(): void; - getUciCluster(): void; - getUciSchoolDetails(): void; - getUciRole(): void; - getUciBoard(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=user-segment-add.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map deleted file mode 100644 index f92548e821a..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-add/user-segment-add.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"user-segment-add.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/user-segment-add/user-segment-add.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;;AAEhF,qBAKa,uBAAwB,YAAW,MAAM;IAiBtC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IAlB3B,MAAM,wBAA+B;IACrC,GAAG,oBAA2B;IACxC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,WAAW,EAAE,GAAG,CAAM;IACtB,YAAY,UAAS;IACrB,SAAS,QAAM;IACf,MAAM,QAAM;IACZ,OAAO,QAAM;IACb,QAAQ,QAAM;IACd,KAAK,QAAM;IACX,MAAM,QAAM;IACZ,KAAK,WAAuC;IAC5C,QAAQ,QAAM;IACd,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,SAAa;gBAEE,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,iBAAiB,EAAE,iBAAiB;IAGxD,QAAQ;IAwCR,QAAQ;IAIR,KAAK;IA2EL,QAAQ,CAAC,IAAI,KAAA;IAIb,WAAW;IAKX,cAAc;IAYd,WAAW;IAaX,aAAa;IAeb,mBAAmB;IAanB,UAAU;IAQV,WAAW;yCAnNF,uBAAuB;2CAAvB,uBAAuB;CA0NnC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts deleted file mode 100644 index a76a152fc7b..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { EventEmitter, OnInit } from '@angular/core'; -import { UciService } from '../../services/uci.service'; -import { Router } from '@angular/router'; -import * as i0 from "@angular/core"; -export declare class UserSegmentListComponent implements OnInit { - private uciService; - private route; - cancel: EventEmitter; - add: EventEmitter; - selectedUserSegments: any[]; - userSegments: any[]; - selectedUserSegmentMap: {}; - pager: any; - pageNumber: number; - column: string; - reverse: boolean; - queryParams: any; - search: any; - constructor(uciService: UciService, route: Router); - ngOnInit(): void; - getUserSegment(): void; - parseUserSegments(data: any): void; - navigateToPage(page: number): undefined | void; - getSearch(): void; - onCancel(): void; - onCheck(event: any, userSegment: any): void; - onAdd(): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} -//# sourceMappingURL=user-segment-list.component.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map deleted file mode 100644 index 65a39f3c023..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/components/user-segment-list/user-segment-list.component.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"user-segment-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/uci-console/src/lib/components/user-segment-list/user-segment-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAS,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AAEvC,qBAKa,wBAAyB,YAAW,MAAM;IAyB/C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,KAAK;IAzBP,MAAM,wBAA+B;IACrC,GAAG,oBAA2B;IAC/B,oBAAoB,QAAM;IAEnC,YAAY,QAAM;IAClB,sBAAsB,KAAM;IAC5B,KAAK,EAAE,GAAG,CAUR;IACF,UAAU,SAAK;IACf,MAAM,SAAM;IACZ,OAAO,UAAS;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,MAAC;gBAGK,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM;IAIzB,QAAQ;IAQR,cAAc;IAkBd,iBAAiB,CAAC,IAAI,KAAA;IAYtB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS9C,SAAS;IAIT,QAAQ;IAIR,OAAO,CAAC,KAAK,KAAA,EAAE,WAAW,KAAA;IAQ1B,KAAK;yCA7FI,wBAAwB;2CAAxB,wBAAwB;CAgGpC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts deleted file mode 100644 index 27fb667f4ef..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface IdiscussionConfig { - menuOptions?: Array; - userName: string; - context?: Object; - categories: Icategory; - path?: string; - routerSlug?: string; -} -export interface IMenuOptions { - route: string; - enable: boolean; -} -export interface Icategory { - result: Array; -} -//# sourceMappingURL=uci-config.model.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map deleted file mode 100644 index 611f093f2e5..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/models/uci-config.model.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci-config.model.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/models/uci-config.model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,SAAS,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACxB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts deleted file mode 100644 index cd442466251..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts +++ /dev/null @@ -1,70 +0,0 @@ -export declare namespace UciData { - interface IUser { - uid: number; - username: string; - fullname?: string; - userslug: string; - reputation: number; - postcount: number; - topiccount?: number; - picture?: string | null; - signature?: string | null; - banned: number; - 'banned:expire'?: number; - status: string; - lastonline?: number | null | undefined; - groupTitle?: string; - groupTitleArray?: string[]; - 'icon:text'?: string; - 'icon:bgColor'?: string; - lastonlineISO?: string; - banned_until?: number | boolean; - banned_until_readable?: string; - selectedGroups?: any[]; - custom_profile_info?: any[]; - } - interface IProfile { - uid: number; - username: string; - userslug: string; - email: string; - 'email:confirmed': number; - joindate: number; - lastonline: number; - picture: string; - fullname: string; - location: string; - birthday: string; - website: string; - aboutme: string; - signature: string; - uploadedpicture: string; - profileviews: number; - reputation: number; - postcount: number; - topiccount: number; - lastposttime: number; - banned: number; - 'banned:expire': number; - status: string; - flags: number; - followerCount: number; - followingCount: number; - 'cover:url': string; - 'cover:position': string; - groupTitle: string; - groupTitleArray: []; - joindateISO: string; - lastonlineISO: string; - isBlocked: true; - blocksCount: number; - canEdit: true; - canBan: true; - title: string; - } - enum IPageName { - HOME = "uci-admin", - LIB_ENTRY = "lib-entry" - } -} -//# sourceMappingURL=uci.model.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map deleted file mode 100644 index 8bb3f92a79d..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/models/uci.model.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci.model.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/models/uci.model.ts"],"names":[],"mappings":"AAAA,yBAAiB,OAAO,CAAC;IAEvB,UAAiB,KAAK;QACpB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;QACtC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;QAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,cAAc,CAAC,EAAE,GAAG,EAAE,CAAA;QACtB,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAA;KAC5B;IAED,UAAiB,QAAQ;QACvB,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,iBAAiB,EAAE,MAAM,CAAA;QACzB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,EAAE,MAAM,CAAA;QACvB,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,EAAE,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,IAAI,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,OAAO,EAAE,IAAI,CAAA;QACb,MAAM,EAAE,IAAI,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd;IAED,KAAY,SAAS;QACnB,IAAI,cAAc;QAClB,SAAS,cAAc;KACxB;CACF"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts deleted file mode 100644 index 26ee571ae41..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as i0 from "@angular/core"; -import * as i1 from "@angular/common"; -export declare class PipesModule { - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵmod: i0.ɵɵNgModuleDeclaration; - static ɵinj: i0.ɵɵInjectorDeclaration; -} -//# sourceMappingURL=pipes.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map deleted file mode 100644 index f3cc1da3b37..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/pipes/pipes.module.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pipes.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/pipes/pipes.module.ts"],"names":[],"mappings":";;AAKA,qBAOa,WAAW;yCAAX,WAAW;0CAAX,WAAW;0CAAX,WAAW;CAAI"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts deleted file mode 100644 index 52fc1275483..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { HttpClient, HttpErrorResponse } from '@angular/common/http'; -import { GlobalService } from './global.service'; -import * as i0 from "@angular/core"; -export declare class BaseService { - http: HttpClient; - globalService: GlobalService; - constructor(http: HttpClient, globalService: GlobalService); - private getDefaultHeaders; - getRequest(url: any, params?: any, headers?: any): import("rxjs").Observable; - postRequest(url: any, data?: {}, headers?: any): import("rxjs").Observable; - handleError(error: HttpErrorResponse): import("rxjs").Observable; - toFormData(formValue: T): FormData; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=base.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map deleted file mode 100644 index 78d26a1fbdc..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/base.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAI/C,qBAGa,WAAW;IACD,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;gBAArD,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IAGxE,OAAO,CAAC,iBAAiB;IAalB,UAAU,CAAC,GAAG,KAAA,EAAE,MAAM,GAAE,GAAQ,EAAE,OAAO,GAAE,GAAQ;IAgBnD,WAAW,CAAC,GAAG,KAAA,EAAE,IAAI,KAAK,EAAE,OAAO,GAAE,GAAQ;IAiB7C,WAAW,CAAC,KAAK,EAAE,iBAAiB;IAQpC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;yCA1DxB,WAAW;6CAAX,WAAW;CAqEvB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts deleted file mode 100644 index 4bc343cc6a4..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { UciService } from './uci.service'; -import { OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { Subscription } from 'rxjs'; -import { IdiscussionConfig } from '../models/uci-config.model'; -import * as i0 from "@angular/core"; -export declare class ConfigService implements OnInit { - activatedRoute: ActivatedRoute; - private UciService; - paramsSubscription: Subscription; - private _config; - checkContext: boolean; - queryParams: any; - getContextData: any; - hasContextData: any; - getParams: IdiscussionConfig; - constructor(activatedRoute: ActivatedRoute, UciService: UciService); - ngOnInit(): void; - setConfig(activatedRoute: any): void; - setConfigFromParams(activatedRoute: any): void; - getConfig(): IdiscussionConfig; - getCategories(): any; - hasContext(): any; - getContext(): any; - getRouterSlug(): string; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=config.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map deleted file mode 100644 index 4bbd8cf4e71..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/config.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/config.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;;AAE/D,qBAGa,aAAc,YAAW,MAAM;IAYjC,cAAc,EAAE,cAAc;IACrC,OAAO,CAAC,UAAU;IAXpB,kBAAkB,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,OAAO,CAAoB;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,MAAC;IACnB,cAAc,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;gBAIpB,cAAc,EAAE,cAAc,EAC7B,UAAU,EAAE,UAAU;IAGhC,QAAQ;IAIR,SAAS,CAAC,cAAc,KAAA;IAMxB,mBAAmB,CAAC,cAAc,KAAA;IAU3B,SAAS;IAIT,aAAa;IAKb,UAAU;IAOV,UAAU;IAOV,aAAa;yCA3DT,aAAa;6CAAb,aAAa;CA8DzB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts deleted file mode 100644 index 6eb9eb26bc9..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as i0 from "@angular/core"; -export declare class GlobalService { - private user; - readonly user$: import("rxjs").Observable; - private baseUrl; - readonly baseUrl$: import("rxjs").Observable; - constructor(); - setUser(user: any): void; - getUser(): any; - setBaseUrl(baseUrl: any): void; - getBaseUrl(): any; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=global.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map deleted file mode 100644 index ffac3287edf..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/global.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"global.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/global.service.ts"],"names":[],"mappings":";AAGA,qBAGa,aAAa;IACtB,OAAO,CAAC,IAAI,CAAwD;IACpE,SAAgB,KAAK,iCAA4B;IACjD,OAAO,CAAC,OAAO,CAAwD;IACvE,SAAgB,QAAQ,iCAA+B;;IAKvD,OAAO,CAAC,IAAI,KAAA;IAIZ,OAAO;IAIP,UAAU,CAAC,OAAO,KAAA;IAIlB,UAAU;yCArBD,aAAa;6CAAb,aAAa;CAwBzB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts deleted file mode 100644 index c1523e1e801..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { BaseService } from './base.service'; -import { GlobalService } from './global.service'; -import * as i0 from "@angular/core"; -export declare class UciGraphQlService extends BaseService { - http: HttpClient; - globalService: GlobalService; - BASE_URL: any; - constructor(http: HttpClient, globalService: GlobalService); - getState(): import("rxjs").Observable; - getDistrict(param: any): import("rxjs").Observable; - getBlock(param: any): import("rxjs").Observable; - getSchoolDetails(param: any): import("rxjs").Observable; - getClusters(param: any): import("rxjs").Observable; - getRole(): import("rxjs").Observable; - getBoards(): import("rxjs").Observable; - private baseRequest; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=uci-graph-ql.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map deleted file mode 100644 index 62090cc0a61..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/uci-graph-ql.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci-graph-ql.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/uci-graph-ql.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAG/C,qBAGa,iBAAkB,SAAQ,WAAW;IAG3B,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;IAFxE,QAAQ,MAAC;gBAEU,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IASxE,QAAQ;IAQR,WAAW,CAAC,KAAK,KAAA;IAUjB,QAAQ,CAAC,KAAK,KAAA;IAad,gBAAgB,CAAC,KAAK,KAAA;IAetB,WAAW,CAAC,KAAK,KAAA;IAWjB,OAAO;IAWP,SAAS;IAST,OAAO,CAAC,WAAW;yCAzFV,iBAAiB;6CAAjB,iBAAiB;CA4F7B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts deleted file mode 100644 index 565bd6b3b9e..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { BaseService } from './base.service'; -import { Observable } from 'rxjs'; -import { GlobalService } from './global.service'; -import * as i0 from "@angular/core"; -export declare class UciService extends BaseService { - http: HttpClient; - globalService: GlobalService; - BASE_URL: any; - FORM_BASE_URL: string; - constructor(http: HttpClient, globalService: GlobalService); - fetchConversation(params: any): Observable; - searchConversation(params: any): Observable; - pauseConversation(botId: any): Observable; - startConversation(botId: any): Observable; - deleteConversation(botId: any): Observable; - getBotUserDetails(id: any): Observable; - getCheckStartingMessage(param: any): Observable; - botCreate(data: any): Observable; - botUpdate(id: any, data: any): Observable; - fetchUserSegment(params: any): Observable; - searchUserSegment(params: any): Observable; - createUserSegment(data: any): Observable; - userSegmentQueryBuilder(data: any): Observable; - createLogic(data: any): Observable; - updateLogic(id: any, data: any): Observable; - deleteLogic(id: any): Observable; - uploadFile(obj: any): Observable; - readForm(data: any): Observable; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=uci.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map deleted file mode 100644 index b960845b7f6..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/services/uci.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci.service.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/services/uci.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;;AAE/C,qBAGa,UAAW,SAAQ,WAAW;IAIpB,IAAI,EAAE,UAAU;IAAS,aAAa,EAAE,aAAa;IAHxE,QAAQ,MAAC;IACT,aAAa,SAAgC;gBAE1B,IAAI,EAAE,UAAU,EAAS,aAAa,EAAE,aAAa;IASxE,iBAAiB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,kBAAkB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI3C,iBAAiB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,iBAAiB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,kBAAkB,CAAC,KAAK,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,iBAAiB,CAAC,EAAE,KAAA;IAIpB,uBAAuB,CAAC,KAAK,KAAA;IAI7B,SAAS,CAAC,IAAI,KAAA;IAId,SAAS,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA;IAKlB,gBAAgB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,iBAAiB,CAAC,MAAM,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAI1C,iBAAiB,CAAC,IAAI,KAAA;IAItB,uBAAuB,CAAC,IAAI,KAAA;IAK5B,WAAW,CAAC,IAAI,KAAA;IAIhB,WAAW,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA;IAIpB,WAAW,CAAC,EAAE,KAAA;IAKd,UAAU,CAAC,GAAG,KAAA,GAAG,UAAU,CAAC,GAAG,CAAC;IAMhC,QAAQ,CAAC,IAAI,KAAA;yCAtFJ,UAAU;6CAAV,UAAU;CAyFtB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts deleted file mode 100644 index 93e42294aa1..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { UciEventsService } from './uci-events.service'; -import { Router } from '@angular/router'; -import * as i0 from "@angular/core"; -export declare class TelemetryUtilsService { - private discussionEvents; - private router; - _context: any[]; - currentObj: {}; - constructor(discussionEvents: UciEventsService, router: Router); - setContext(context: any): void; - uppendContext(data: any): void; - deleteContext(prevTopic: any): void; - getContext(): any[]; - logImpression(pageId: any): void; - logInteract(event: any, pageId: any): void; - getRollUp(): {}; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=telemetry-utils.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map deleted file mode 100644 index aba34c6ec41..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/telemetry-utils.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"telemetry-utils.service.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/telemetry-utils.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;;AAUzC,qBAGa,qBAAqB;IAM9B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IALhB,QAAQ,QAAK;IACb,UAAU,KAAM;gBAGN,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM;IAGxB,UAAU,CAAC,OAAO,KAAA;IAKlB,aAAa,CAAC,IAAI,KAAA;IAQlB,aAAa,CAAC,SAAS,KAAA;IAOvB,UAAU;IAIV,aAAa,CAAC,MAAM,KAAA;IAmBpB,WAAW,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IA8BzB,SAAS;yCAnFE,qBAAqB;6CAArB,qBAAqB;CAuGjC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts deleted file mode 100644 index c4ed97cd165..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { EventEmitter } from '@angular/core'; -import { Subject } from 'rxjs'; -import * as i0 from "@angular/core"; -export declare class UciEventsService { - telemetryEvent: Subject; - actionEvent: EventEmitter; - constructor(); - emitTelemetry(event: any): void; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵprov: i0.ɵɵInjectableDeclaration; -} -//# sourceMappingURL=uci-events.service.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map deleted file mode 100644 index f56fe298d1f..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-events.service.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci-events.service.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/uci-events.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;;AAI/B,qBAGa,gBAAgB;IAEpB,cAAc,eAAsB;IACpC,WAAW,oBAA2B;;IAI7C,aAAa,CAAC,KAAK,KAAA;yCAPR,gBAAgB;6CAAhB,gBAAgB;CAa5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts deleted file mode 100644 index 4dc4de30fb4..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as i0 from "@angular/core"; -import * as i1 from "./components/lib-entry/lib-entry.component"; -import * as i2 from "./components/components.module"; -import * as i3 from "./uci-routing/uci-routing.module"; -export declare function provideCsModule(): any; -export declare class UciModule { - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵmod: i0.ɵɵNgModuleDeclaration; - static ɵinj: i0.ɵɵInjectorDeclaration; -} -//# sourceMappingURL=uci-module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map deleted file mode 100644 index a9278f08ed1..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-module.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci-module.d.ts","sourceRoot":"","sources":["../../../projects/uci-console/src/lib/uci-module.ts"],"names":[],"mappings":";;;;AASA,wBAAgB,eAAe,QAE9B;AAED,qBAaa,SAAS;yCAAT,SAAS;0CAAT,SAAS;0CAAT,SAAS;CACrB"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts deleted file mode 100644 index e2e5419c41f..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as i0 from "@angular/core"; -import * as i1 from "@angular/router"; -import * as i2 from "@angular/common"; -export declare class UciRoutingModule { - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵmod: i0.ɵɵNgModuleDeclaration; - static ɵinj: i0.ɵɵInjectorDeclaration; -} -//# sourceMappingURL=uci-routing.module.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map b/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map deleted file mode 100644 index 57fca10406e..00000000000 --- a/src/app/client/src/assets/libs/uci-console/lib/uci-routing/uci-routing.module.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uci-routing.module.d.ts","sourceRoot":"","sources":["../../../../projects/uci-console/src/lib/uci-routing/uci-routing.module.ts"],"names":[],"mappings":";;;AAwCA,qBAQa,gBAAgB;yCAAhB,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAC5B"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/package.json b/src/app/client/src/assets/libs/uci-console/package.json deleted file mode 100644 index 70b2c324222..00000000000 --- a/src/app/client/src/assets/libs/uci-console/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@samagra-x/uci-console", - "version": "8.0.0", - "repository": { - "type": "git", - "url": "git+https://github.com/samagra-development/uci-console.git" - }, - "keywords": [ - "angular", - "components", - "sunbird" - ], - "bugs": { - "url": "https://github.com/samagra-development/uci-console/issues" - }, - "homepage": "https://github.com/samagra-development/uci-console.git#readme", - "peerDependencies": { - "@angular/common": ">=16.2.12", - "@angular/core": ">=16.2.12", - "@project-sunbird/client-services": ">=5.1.2", - "lodash-es": ">=4.17.20", - "ngx-chips": ">=2.2.0" - }, - "description": "This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.", - "author": "Bharat Kashyap", - "dependencies": { - "tslib": "^2.0.0" - }, - "license": "ISC", - "module": "fesm2022/samagra-x-uci-console.mjs", - "typings": "index.d.ts", - "exports": { - "./package.json": { - "default": "./package.json" - }, - ".": { - "types": "./index.d.ts", - "esm2022": "./esm2022/samagra-x-uci-console.mjs", - "esm": "./esm2022/samagra-x-uci-console.mjs", - "default": "./fesm2022/samagra-x-uci-console.mjs" - } - }, - "sideEffects": false -} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/public-api.d.ts b/src/app/client/src/assets/libs/uci-console/public-api.d.ts deleted file mode 100644 index 50a3eb9e5b9..00000000000 --- a/src/app/client/src/assets/libs/uci-console/public-api.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './lib/uci-module'; -export * from './lib/uci-events.service'; -export * from './lib/models/uci-config.model'; -export * from './lib/components/lib-entry/lib-entry.component'; -//# sourceMappingURL=public-api.d.ts.map \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map b/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map deleted file mode 100644 index b45a2149af5..00000000000 --- a/src/app/client/src/assets/libs/uci-console/public-api.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/uci-console/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAe,+BAA+B,CAAC;AAC/C,cAAc,gDAAgD,CAAC"} \ No newline at end of file diff --git a/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map b/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map deleted file mode 100644 index 33cf1632d7c..00000000000 --- a/src/app/client/src/assets/libs/uci-console/samagra-x-uci-console.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"samagra-x-uci-console.d.ts","sourceRoot":"","sources":["../../projects/uci-console/src/samagra-x-uci-console.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"} \ No newline at end of file diff --git a/src/app/client/yarn.lock b/src/app/client/yarn.lock index c8b02dab545..fc774a09e5d 100644 --- a/src/app/client/yarn.lock +++ b/src/app/client/yarn.lock @@ -3421,11 +3421,6 @@ dependencies: tslib "^2.0.0" -"@samagra-x/uci-console@file:src/assets/libs/uci-console": - version "8.0.0" - dependencies: - tslib "^2.0.0" - "@schematics/angular@16.2.12": version "16.2.12" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-16.2.12.tgz#13e00e7390903cfc00eb8d5c2e74986262aff6ec" @@ -12429,6 +12424,13 @@ typescript@4.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +uci-console-v16@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/uci-console-v16/-/uci-console-v16-8.0.0.tgz#f30aea7d5f4626c1323d477a3cf1e8d01de13f3e" + integrity sha512-mzu//0AQIrPuzi0rL/M8EKRDuUV2IK8UD2/A/3KvNvocgugL/FvOSLPhIZ7FhSCa5AlRx0SOCRBm1oBPeho09Q== + dependencies: + tslib "^2.0.0" + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" From d939f67dacabc3f3e6d34258ade3656d63d80933 Mon Sep 17 00:00:00 2001 From: zooldev Date: Mon, 22 Apr 2024 16:21:14 +0530 Subject: [PATCH 016/123] Issue #ED-4076 fix: SCSS support for angular Migration While migrating Sunbird ED-Portal from Angular v14 to v15. - Share modal and Form fields --- .../data-chart/data-chart.component.html | 66 +++---- .../data-chart/data-chart.component.ts | 1 + .../program-datasets.component.html | 183 ++++++++---------- .../material-auto-complete.component.html | 4 +- .../share-link/share-link.component.html | 8 +- 5 files changed, 121 insertions(+), 141 deletions(-) diff --git a/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.html b/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.html index f915da9e355..48533ece1a0 100644 --- a/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.html +++ b/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.html @@ -109,42 +109,40 @@
-
- diff --git a/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.ts b/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.ts index e4f339d13b6..206085e0e3e 100644 --- a/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.ts +++ b/src/app/client/src/app/modules/dashboard/components/data-chart/data-chart.component.ts @@ -490,6 +490,7 @@ export class DataChartComponent implements OnInit, OnDestroy { if (this.filterPopUpMat) { this.dialogRef = this.dialog.open(this.filterPopUpMat, { data: this.chartData['selectedFilters'], + panelClass: 'material-modal' }); } } diff --git a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.html b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.html index ea8533a6cca..956009dcee9 100644 --- a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.html +++ b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.html @@ -266,143 +266,124 @@

{{reso - + -
-
-