diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 90d24f45881a7cf427c163994e5462895b64a443..bdf30b512fc46fd6d90b8ceaabe835bd2f49c97d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,8 @@ image: node:18-slim stages: - environment - build + - alt_build + - release # --------------------------------------------------------------- # Global variables @@ -17,9 +19,11 @@ variables: CI_BUILD_IMAGE: $CI_REGISTRY_IMAGE/build:develop BUILD_CACHE_DIR: /tmp/.build-cache BUILD_ENVIRONMENT: prod + DOCKER_BUILDKIT: 1 + ARTIFACT_ZIP_FILES: ${OUTPUT_DIR}/${CI_PROJECT_NAME}-*.zip ENV_FILE: variables.env - IONIC_CLI_VERSION: 7.1.1 - ANGULAR_CLI_VERSION: 7.1.5 + IONIC_CLI_VERSION: 7.2.0 + ANGULAR_CLI_VERSION: 17.0.3 # --------------------------------------------------------------- # Jobs templates @@ -39,9 +43,9 @@ variables: services: - docker:dind before_script: - - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} +# - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} after_script: - - docker logout ${CI_REGISTRY} + # - docker logout ${CI_REGISTRY} allow_failure: false # --------------------------------------------------------------- @@ -82,6 +86,9 @@ build:env: # Show version #- ng version - npm version + script: + # Build + - npm run build:${BUILD_ENVIRONMENT} after_script: # Remember version - APP_VERSION=$(node -e "console.log(require('./package.json').version)") @@ -96,19 +103,154 @@ build:env: build: extends: .build image: ${CI_BUILD_IMAGE} - script: - # Build - - npm run build:${BUILD_ENVIRONMENT} only: - develop build:feature: extends: .build image: ${CI_BUILD_IMAGE} - script: - # Build - - npm run build:${BUILD_ENVIRONMENT} only: - /^feature\/.*/ - /^features\/.*/ when: manual + + +failsafe-build: + extends: .build + stage: alt_build + when: on_failure + before_script: + # Install global dependencies + - npm install -g @ionic/cli@${IONIC_CLI_VERSION} @angular/cli@${ANGULAR_CLI_VERSION} + # Update project dependencies + - npm install --force + only: + - develop + - /^feature\/.*/ + - /^features\/.*/ + +# --------------------------------------------------------------- +# Release jobs +# --------------------------------------------------------------- +.release: + <<: *git-setup + stage: release + script: + - if [[ "_${RELEASE_VERSION}" == "_" ]]; then echo "ERROR: Missing environment variable 'RELEASE_VERSION'" ; exit 1; fi + - echo "--- Release in progress" + - git checkout -b release/${RELEASE_VERSION} + - echo "--- Manage app version" + - 'current=`grep -oP "version\": \"\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?" package.json | grep -m 1 -oP "\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?"`' + - 'currentAndroidVersionCode=`grep -oP "versionCode [0-9]+" android/app/build.gradle | grep -oP "\d+"`' + - 'currentAndroidVersionName=`grep -oP "versionName \"\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?\"" android/app/build.gradle | grep -oP "\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?"`' + - 'currentManifestVersion=`grep -oP "version\": \"\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?\"" src/manifest.json | grep -oP "\d+.\d+.\d+(-(alpha|beta|rc)[0-9]+)?"`' + - 'IFS="."' + - 'read -ra SPLITED_VERSION <<< "${RELEASE_VERSION}"' + - 'IFS="-"' + - 'read -ra SPLITED_PATCH <<< "${SPLITED_VERSION[2]}"' + - 'major2d=$(printf %02d ${SPLITED_VERSION[0]}) ; minor2d=$(printf %02d ${SPLITED_VERSION[1]}) ; patch2d=$(printf %02d ${SPLITED_PATCH[0]})' + - 'androidVersionCode=$major2d$minor2d$patch2d' + - 'sed -i "s/version\": \"$current\"/version\": \"${RELEASE_VERSION}\"/g" package.json' + - 'sed -i "s/versionCode $currentAndroidVersionCode\"/ versionCode $androidVersionCode\"/g" android/app/build.gradle' + - 'sed -i "s/versionName \"$currentAndroidVersionName\"/ versionName \"${RELEASE_VERSION}\"/g" android/app/build.gradle' + - 'sed -i "s/version\": \"$currentManifestVersion\"/version\": \"${RELEASE_VERSION}\"/g" src/manifest.json' + - 'sed -i "s/echo \".*\" #lastest/echo \"${RELEASE_VERSION}\" #lastest/g" install.sh' + # Copy cached dependencies and build + - ls -artl "${BUILD_CACHE_DIR}" + - cp -R "${BUILD_CACHE_DIR}/node_modules" . + # Show version + # FIXME fail since 13/11/2023 + #- ng version + - npm version + # Build + - export NODE_OPTIONS=--max-old-space-size=4096 + - npm run build:prod + # Git process for release (ISO gitflow) + - git add . + - git commit -m "Prepare release ${RELEASE_VERSION}" + - git checkout master + - git merge --no-ff --no-edit -m "Release ${RELEASE_VERSION}" "release/${RELEASE_VERSION}" + - git tag -a "${RELEASE_VERSION}" -m "${RELEASE_VERSION}" + - git checkout develop + - git merge --no-ff --no-edit -m "[skip ci] Release ${RELEASE_VERSION}" "release/${RELEASE_VERSION}" + - git push origin develop + - git push origin master + - git push --tags + - git branch -D "release/${RELEASE_VERSION}" + after_script: + # Remember version + - APP_VERSION=$(node -e "console.log(require('./package.json').version)") + - echo "APP_VERSION=${APP_VERSION}" > ${ENV_FILE} + # Zip output + - fileName=${CI_PROJECT_NAME}-${APP_VERSION}.zip + - currentDir=$(pwd) + - mkdir -p ${currentDir}/dist + - zipFile=${currentDir}/dist/${fileName} + - if [[ -f "${zipFile}" ]]; then rm "${zipFile}"; fi + - cd www || exit 1 + - if ! zip -q -r "${zipFile}" . ; then echo "Cannot create the archive for the web artifact"; exit 1; fi + - cd .. + - targetUrl="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${APP_VERSION}/${fileName}" + - echo "Deploy to gitlab generic package :" + - echo " File= ${zipFile}" + - echo " Url= ${targetUrl}" + - 'if ! curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file "${zipFile}" "${targetUrl}"; then exit 1; fi' + artifacts: + paths: + - www + reports: + dotenv: ${ENV_FILE} + expire_in: 24 hours + allow_failure: false + only: + - develop + when: manual + +release: + extends: .release + image: ${CI_BUILD_IMAGE} + needs: [build] + +failsafe-release: + extends: .release + needs: [failsafe-build] + +release:tags: + <<: *git-setup + image: ${CI_BUILD_IMAGE} + stage: release + script: + - echo "--- Release in progress" + - git checkout -b release/${CI_COMMIT_TAG} + # Copy cached dependencies and build + - ls -artl "${BUILD_CACHE_DIR}" + - cp -R "${BUILD_CACHE_DIR}/node_modules" . + # Show version + # FIXME fail since 13/11/2023 + #- ng version + - npm version + # Build + - export NODE_OPTIONS=--max-old-space-size=4096 + - npm run build:prod + artifacts: + paths: + - www + expire_in: 24 hours + allow_failure: false + when: manual + only: + - tags + +gitlab-release: + stage: release + tags: [kepler] + image: registry.gitlab.com/gitlab-org/release-cli:latest + script: + - echo "running release for ${CI_COMMIT_TAG}" + release: + name: "Release ${CI_PROJECT_NAME}-${CI_COMMIT_TAG}" + description: "Created using the release-cli $EXTRA_DESCRIPTION" + tag_name: "${CI_COMMIT_TAG}" + ref: "${CI_COMMIT_TAG}" + only: + - tags diff --git a/.graphqlconfig b/.graphqlconfig deleted file mode 100644 index 6247d6a0bdf4dffcf953b490b9106904c5230afb..0000000000000000000000000000000000000000 --- a/.graphqlconfig +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Duniter Indexer GraphQL Schema", - "schemaPath": "src/schema.graphql", - "extensions": { - "endpoints": { - "Default GraphQL Endpoint": { - "url": "http://localhost:8080/graphql", - "headers": { - "user-agent": "JS GraphQL" - }, - "introspect": false - }, - "Other GraphQL Endpoint": { - "url": "http://192.168.0.107:8080/graphql", - "headers": { - "user-agent": "JS GraphQL" - }, - "introspect": false - } - } - } -} diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml index 0ad17cbd33a2f389d524bc4bfef9c52e1f7ab490..8978d23db569daa721cb26dde7923f4c673d1fc9 100644 --- a/android/.idea/misc.xml +++ b/android/.idea/misc.xml @@ -1,4 +1,3 @@ -<?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index bda97d590fc98c14907869010444ecbd18dfdfa9..059245d1b5695049346fe6755b9602be6f10b0ca 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -16,6 +16,7 @@ dependencies { implementation project(':capacitor-clipboard') implementation project(':capacitor-haptics') implementation project(':capacitor-keyboard') + implementation project(':capacitor-network') implementation project(':capacitor-splash-screen') implementation project(':capacitor-status-bar') diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 107eb466740a0cef085b10d2f2a75761c4e392af..9d870f3b343dc826b787b4383a09c0d7f9410d01 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="app.cesium"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle index 921a79a5b752233b682a510a6b1cac0c05795824..a370f4ec0b9d11d9fda8f62a03798ae67c23393e 100644 --- a/android/capacitor.settings.gradle +++ b/android/capacitor.settings.gradle @@ -23,6 +23,9 @@ project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/ include ':capacitor-keyboard' project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android') +include ':capacitor-network' +project(':capacitor-network').projectDir = new File('../node_modules/@capacitor/network/android') + include ':capacitor-splash-screen' project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android') diff --git a/angular.json b/angular.json index da4ff663e7b399ba855dc3f64d457ef56d6f1e76..4d359e62de0a7a6c9c2bb032ced6a5d615eddeff 100644 --- a/angular.json +++ b/angular.json @@ -30,13 +30,15 @@ "store", "bn.js", "ip-regexp", + "tweetnacl", "eventemitter3", "qrcode", "localforage", - "localforage-cordovasqlitedriver", "moment-timezone", - "tweetnacl", - "moment" + "moment", + "apollo-link-serialize", + "apollo-link-queue", + "apollo-link-logger" ], "assets": [ { @@ -51,7 +53,7 @@ }, { "glob": "manifest.json", - "input": "src/assets", + "input": "src", "output": "/" } ], diff --git a/codegen.yml b/codegen.yml new file mode 100644 index 0000000000000000000000000000000000000000..d1b476992cc4d16caac41ee527435365978bc693 --- /dev/null +++ b/codegen.yml @@ -0,0 +1,23 @@ +overwrite: true +schema: "src/app/network/indexer-schema.graphql" +documents: "src/app/**/*!(.generated).{ts,graphql}" +generates: + src/app/network/indexer-types.generated.ts: + plugins: + - "add" + - "typescript" + - "typescript-operations" + - "typescript-apollo-angular" + - "fragment-matcher" + config: + content: "// Auto-generated via `npx graphql-codegen`, do not edit\n/* eslint-disable */" + nameSuffix: "Document" + sdkClass: true + serviceName: "IndexerGraphqlService" + namedClient: 'indexer' + src/app/network/indexer-helpers.generated.ts: + plugins: + - "add" + - "typescript-apollo-client-helpers" + config: + content: "// Auto-generated via `npx graphql-codegen`, do not edit\n/* eslint-disable */" diff --git a/graphql.config.yml b/graphql.config.yml new file mode 100644 index 0000000000000000000000000000000000000000..bbc76da04a13d39b252ab4501d009be9ad8d9ade --- /dev/null +++ b/graphql.config.yml @@ -0,0 +1,8 @@ +schema: src/app/network/indexer-schema.graphql +extensions: + endpoints: + Gdev GraphQL Endpoint: + url: https://subsquid.gdev.coinduf.eu/graphql + headers: + user-agent: JS GraphQL + introspect: false diff --git a/install.sh b/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..412444a89af87890934b13f110629f0ac484446b --- /dev/null +++ b/install.sh @@ -0,0 +1,94 @@ +#!/bin/bash + +{ # this ensures the entire script is downloaded # + +is_installed() { + type "$1" > /dev/null 2>&1 +} + +PROJECT_NAME=cesium +PROJECT_REPO="duniter/cesium2s" +INSTALL_DIR=${1:-$(pwd)/${PROJECT_NAME}} + +# --- For DEV only +INSTALL_ENV=testing + +latest_version() { + echo "2.0.0-alpha1" #lastest +} + +api_release_url() { + echo "https://api.github.com/repos/${PROJECT_REPO}/releases/tags/$(latest_version)" +} + +download() { + if is_installed "curl"; then + curl -qkL $* + elif is_installed "wget"; then + # Emulate curl with wget + ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') + wget ${ARGS} + fi +} + +install_from_github() { + + local RELEASE=$(curl -XGET -i "$(api_release_url)") + local ARCHIVE_URL=$(echo "$RELEASE" | grep -P "\"browser_download_url\": \"[^\"]+" | grep -oP "https://[a-zA-Z0-9/.-]+-web.zip" | head -n 1) + local TMP_DIR="/tmp/${PROJECT_NAME}" + local ARCHIVE_FILE=${TMP_DIR}/${PROJECT_NAME}-$(latest_version)-web.zip + if [[ ! -d "$INSTALL_DIR" ]]; then + mkdir -p "$INSTALL_DIR" + fi + if [[ -d "${TMP_DIR}" ]]; then + echo "WARNING: Deleting existing temp directory [$TMP_DIR]" + rm -rf ${TMP_DIR} + fi + mkdir -p "${TMP_DIR}" + + echo "Downloading [${ARCHIVE_URL}]" + download "${ARCHIVE_URL}" -o "${ARCHIVE_FILE}" || { + echo >&2 "Failed to download '$ARCHIVE_URL'" + return 4 + } + + echo "Unzip to ${INSTALL_DIR}" + unzip -o ${ARCHIVE_FILE} -d ${TMP_DIR} + cp -rf ${TMP_DIR}/* ${INSTALL_DIR} + rm -rf ${TMP_DIR} + + echo "" + echo "Successfully installed at ${INSTALL_DIR}" +} + +do_install() { + + if ! is_installed "curl" && ! is_installed "wget"; then + echo "=> Neither 'curl' nor 'wget' is available. Please install one of them." + exit 1 + fi + if ! is_installed "unzip"; then + echo "=> 'unzip' is not available. You will likely need to install the 'unzip' package." + exit 1 + fi + + install_from_github +} + +# +# Unsets the various functions defined +# during the execution of the install script +# +reset() { + unset -f reset is_installed latest_version \ + api_release_url download install_from_github do_install +} + +[[ "_${INSTALL_ENV}" = "_testing" ]] || do_install $1 + +} # this ensures the entire script is downloaded # diff --git a/package-lock.json b/package-lock.json index bedd0740c97ae43ad0302be79d242f916dbcaab5..81c7230ac38d5fe09e360247d05b2fae4dfb9a4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@angular/platform-browser": "^17.0.4", "@angular/platform-browser-dynamic": "^17.0.4", "@angular/router": "^17.0.4", - "@apollo/client": "~3.8.8", + "@apollo/client": "~3.8.5", "@capacitor-community/barcode-scanner": "~4.0.1", "@capacitor/android": "^5.0.0", "@capacitor/app": "^5.0.0", @@ -27,6 +27,7 @@ "@capacitor/core": "^5.0.0", "@capacitor/haptics": "^5.0.0", "@capacitor/keyboard": "^5.0.0", + "@capacitor/network": "^5.0.6", "@capacitor/splash-screen": "^5.0.0", "@capacitor/status-bar": "^5.0.0", "@ionic/angular": "^7.6.3", @@ -47,12 +48,15 @@ "@rx-angular/state": "^17.0.0", "@rx-angular/template": "^17.0.0", "apollo-angular": "~6.0.0", + "apollo-link-logger": "~2.0.1", + "apollo-link-queue": "~3.1.0", + "apollo-link-serialize": "~4.0.0", + "apollo3-cache-persist": "~0.14.1", "graphql-tag": "~2.12.6", "graphql-ws": "~5.14.3", "ionicons": "~7.2.2", "jdenticon": "^3.2.0", "localforage": "~1.10.0", - "localforage-cordovasqlitedriver": "~1.8.0", "moment": "^2.30.1", "moment-timezone": "^0.5.44", "ng-qrcode": "^17.0.0", @@ -65,6 +69,7 @@ "stream-browserify": "^3.0.0", "swiper": "^11.0.5", "tslib": "^2.6.2", + "uuid": "^9.0.1", "zone.js": "~0.14.2" }, "devDependencies": { @@ -79,14 +84,22 @@ "@angular/compiler-cli": "^17.0.4", "@angular/language-service": "^17.0.4", "@capacitor/cli": "^5.0.0", + "@graphql-codegen/add": "^5.0.0", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/fragment-matcher": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-apollo-angular": "^4.0.0", + "@graphql-codegen/typescript-apollo-client-helpers": "^3.0.0", + "@graphql-codegen/typescript-operations": "^4.0.1", "@ionic/angular-toolkit": "^10.0.0", "@ionic/cli": "^7.2.0", - "@polkadot/typegen": "^10.11.1", - "@polkadot/types": "^10.11.1", + "@polkadot/typegen": "^10.11.2", + "@polkadot/types": "^10.11.2", "@rx-angular/eslint-plugin": "~2.0.0", "@types/jasmine": "~4.0.3", "@types/jasminewd2": "~2.0.10", "@types/node": "^18.18.13", + "@types/react": "^18.2.47", "@typescript-eslint/eslint-plugin": "6.17.0", "@typescript-eslint/parser": "6.17.0", "eslint": "^8.56.0", @@ -116,6 +129,7 @@ "yarn": ">= 1.22.19" }, "peerDependencies": { + "@apollo/client": "~3.8.5", "localforage": "~1.10.0", "rxjs": "~7.5.7" } @@ -711,6 +725,194 @@ } } }, + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@ardatan/sync-fetch": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", + "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", @@ -1200,6 +1402,43 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -1275,6 +1514,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", + "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", @@ -1329,6 +1583,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -1693,6 +1962,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", + "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-flow": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", @@ -2050,6 +2335,40 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", @@ -2593,6 +2912,14 @@ "@capacitor/core": "^5.0.0" } }, + "node_modules/@capacitor/network": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-5.0.6.tgz", + "integrity": "sha512-E//cq9NEvFFiLyptK0ha4B8OytdWpSqvtUo5L2uiqcoADWUnl5d7aK45M09eyd347HchICeEdIkO31n6CNxyYA==", + "peerDependencies": { + "@capacitor/core": "^5.0.0" + } + }, "node_modules/@capacitor/splash-screen": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-5.0.6.tgz", @@ -3013,101 +3340,1539 @@ "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@graphql-codegen/add": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-5.0.0.tgz", + "integrity": "sha512-ynWDOsK2yxtFHwcJTB9shoSkUd7YXd6ZE57f0nk7W5cu/nAgxZZpEsnTPEpZB/Mjf14YRGe2uJHQ7AfElHjqUQ==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/add/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-5.0.0.tgz", + "integrity": "sha512-A7J7+be/a6e+/ul2KI5sfJlpoqeqwX8EzktaKCeduyVKgOLA6W5t+NUGf6QumBDXU8PEOqXk3o3F+RAwCWOiqA==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.18.13", + "@babel/template": "^7.18.10", + "@babel/types": "^7.18.13", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/plugin-helpers": "^5.0.1", + "@graphql-tools/apollo-engine-loader": "^8.0.0", + "@graphql-tools/code-file-loader": "^8.0.0", + "@graphql-tools/git-loader": "^8.0.0", + "@graphql-tools/github-loader": "^8.0.0", + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/json-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.0.0", + "@graphql-tools/prisma-loader": "^8.0.0", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.8.0", + "chalk": "^4.1.0", + "cosmiconfig": "^8.1.3", + "debounce": "^1.2.0", + "detect-indent": "^6.0.0", + "graphql-config": "^5.0.2", + "inquirer": "^8.0.0", + "is-glob": "^4.0.1", + "jiti": "^1.17.1", + "json-to-pretty-yaml": "^1.2.2", + "listr2": "^4.0.5", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.5", + "shell-quote": "^1.7.3", + "string-env-interpolation": "^1.0.1", + "ts-log": "^2.2.3", + "tslib": "^2.4.0", + "yaml": "^2.3.1", + "yargs": "^17.0.0" + }, + "bin": { + "gql-gen": "cjs/bin.js", + "graphql-code-generator": "cjs/bin.js", + "graphql-codegen": "cjs/bin.js", + "graphql-codegen-esm": "esm/bin.js" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + } + } + }, + "node_modules/@graphql-codegen/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@graphql-codegen/cli/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/@graphql-codegen/cli/node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/@graphql-codegen/cli/node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-4.0.0.tgz", + "integrity": "sha512-JAGRn49lEtSsZVxeIlFVIRxts2lWObR+OQo7V2LHDJ7ohYYw3ilv7nJ8pf8P4GTg/w6ptcYdSdVVdkI8kUHB/Q==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/fragment-matcher": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/fragment-matcher/-/fragment-matcher-5.0.0.tgz", + "integrity": "sha512-mbash9E8eY6RSMSNrrO+C9JJEn8rdr8ORaxMpgdWL2qe2q/TlLUCE3ZvQvHkSc7GjBnMEk36LncA8ApwHR2BHg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/fragment-matcher/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.1.tgz", + "integrity": "sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-4.0.0.tgz", + "integrity": "sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.1.tgz", + "integrity": "sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/schema-ast": "^4.0.0", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-apollo-angular/-/typescript-apollo-angular-4.0.0.tgz", + "integrity": "sha512-uZQGvZBXJrgJ+9KKeRrKcB8wHCsailJ1WaCizNLf2YsTBUELVX0SQRrSFptAul9qYzsS84LRs6ndJsmSUnER6w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.0.0", + "@graphql-codegen/visitor-plugin-common": "2.13.1", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz", + "integrity": "sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^8.8.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^8.8.0", + "change-case-all": "1.0.14", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", + "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", + "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", + "dev": true, + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-angular/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-apollo-client-helpers/-/typescript-apollo-client-helpers-3.0.0.tgz", + "integrity": "sha512-4qAJ34Ebz0G0u0zt0boXHG3ktLp1P+DrCvYSI2dKJXF09VUDW+PqJfTzvDnxCRBgIvAfXrcZc1DJOx+tBDYKOg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.0.0", + "@graphql-codegen/visitor-plugin-common": "2.13.1", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz", + "integrity": "sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.7.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^8.8.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz", + "integrity": "sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^8.8.0", + "change-case-all": "1.0.14", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", + "integrity": "sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.4.0.tgz", + "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", + "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", + "dev": true, + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-apollo-client-helpers/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-operations": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.0.1.tgz", + "integrity": "sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/visitor-plugin-common": "4.0.1", + "auto-bind": "~4.0.0", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.1.tgz", + "integrity": "sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/optimize": "^2.0.0", + "@graphql-tools/relay-operation-optimizer": "^7.0.0", + "@graphql-tools/utils": "^10.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.5.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.0.tgz", + "integrity": "sha512-axQTbN5+Yxs1rJ6cWQBOfw3AEeC+fvIuZSfJLPLLvFJLj4pUm9fhxey/g6oQZAAQJqKPfw+tLDUQvnfvRK8Kmg==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz", + "integrity": "sha512-2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.0", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz", + "integrity": "sha512-toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz", + "integrity": "sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.5", + "dataloader": "^2.2.2", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-8.0.3.tgz", + "integrity": "sha512-gVnnlWs0Ua+5FkuHHEriFUOI3OIbHv6DS1utxf28n6NkfGMJldC4j0xlJRY0LS6dWK34IGYgD4HelKYz2l8KiA==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "8.1.0", + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz", + "integrity": "sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==", + "dev": true, + "dependencies": { + "@graphql-tools/batch-execute": "^9.0.1", + "@graphql-tools/executor": "^1.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.5", + "dataloader": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz", + "integrity": "sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "@graphql-typed-document-node/core": "3.2.0", + "@repeaterjs/repeater": "^3.0.4", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.0.tgz", + "integrity": "sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.2", + "@types/ws": "^8.0.0", + "graphql-ws": "^5.14.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.7.tgz", + "integrity": "sha512-/MoRYzQS50Tz5mxRfq3ZmeZ2SOins9wGZAGetsJ55F3PxL0PmHdSGlCq12KzffZDbwHV5YMlwigBsSGWq4y9Iw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.2", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/fetch": "^0.9.0", + "extract-files": "^11.0.0", + "meros": "^1.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/fetch": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz", + "integrity": "sha512-2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.0", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/node-fetch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz", + "integrity": "sha512-toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, + "node_modules/@graphql-tools/executor-legacy-ws": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.5.tgz", + "integrity": "sha512-w54AZ7zkNuvpyV09FH+eGHnnAmaxhBVHg4Yh2ICcsMfRg0brkLt77PlbjBuxZ4HY8XZnKJaYWf+tKazQZtkQtg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "@types/ws": "^8.0.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "ws": "^8.15.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/git-loader": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-8.0.3.tgz", + "integrity": "sha512-Iz9KbRUAkuOe8JGTS0qssyJ+D5Snle17W+z9anwWrLFrkBhHrRFUy5AdjZqgJuhls0x30QkZBnnCtnHDBdQ4nA==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "8.1.0", + "@graphql-tools/utils": "^10.0.0", + "is-glob": "4.0.3", + "micromatch": "^4.0.4", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/github-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-8.0.0.tgz", + "integrity": "sha512-VuroArWKcG4yaOWzV0r19ElVIV6iH6UKDQn1MXemND0xu5TzrFme0kf3U9o0YwNo0kUYEk9CyFM0BYg4he17FA==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/executor-http": "^1.0.0", + "@graphql-tools/graphql-tag-pluck": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz", + "integrity": "sha512-2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.0", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz", + "integrity": "sha512-toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.0.tgz", + "integrity": "sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==", + "dev": true, + "dependencies": { + "@graphql-tools/import": "7.0.0", + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.1.0.tgz", + "integrity": "sha512-kt5l6H/7QxQcIaewInTcune6NpATojdFEW98/8xWcgmy7dgXx5vU9e0AicFZIH+ewGyZzTpwFqO2RI03roxj2w==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/parser": "^7.16.8", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/import": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.0.tgz", + "integrity": "sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "resolve-from": "5.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/json-file-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.0.tgz", + "integrity": "sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/load": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.1.tgz", + "integrity": "sha512-qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw==", + "dev": true, + "dependencies": { + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.11", + "p-limit": "3.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/load/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", + "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^10.0.10", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-2.0.0.tgz", + "integrity": "sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-8.0.2.tgz", + "integrity": "sha512-8d28bIB0bZ9Bj0UOz9sHagVPW+6AHeqvGljjERtwCnWl8OCQw2c2pNboYXISLYUG5ub76r4lDciLLTU+Ks7Q0w==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.8", + "@types/js-yaml": "^4.0.0", + "@types/json-stable-stringify": "^1.0.32", + "@whatwg-node/fetch": "^0.9.0", + "chalk": "^4.1.0", + "debug": "^4.3.1", + "dotenv": "^16.0.0", + "graphql-request": "^6.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "jose": "^5.0.0", + "js-yaml": "^4.0.0", + "json-stable-stringify": "^1.0.1", + "lodash": "^4.17.20", + "scuid": "^1.1.0", + "tslib": "^2.4.0", + "yaml-ast-parser": "^0.0.43" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", "dev": true, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz", + "integrity": "sha512-2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@whatwg-node/node-fetch": "^0.5.0", + "urlpattern-polyfill": "^9.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz", + "integrity": "sha512-toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@graphql-tools/prisma-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { + "node_modules/@graphql-tools/prisma-loader/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@graphql-tools/prisma-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/@graphql-tools/prisma-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "color-name": "~1.1.4" }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "node_modules/@graphql-tools/prisma-loader/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", @@ -3119,52 +4884,165 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/@graphql-tools/prisma-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.0.tgz", + "integrity": "sha512-UNlJi5y3JylhVWU4MBpL0Hun4Q7IoJwv9xYtmAz+CgRa066szzY7dcuPfxrA7cIGgG/Q6TVsKsYaiF4OHPs1Fw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0" }, "engines": { - "node": "*" + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@graphql-tools/schema": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", + "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", "dev": true, + "dependencies": { + "@graphql-tools/merge": "^9.0.1", + "@graphql-tools/utils": "^10.0.10", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, "engines": { - "node": ">=10" + "node": ">=16.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "node_modules/@graphql-tools/url-loader": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.1.tgz", + "integrity": "sha512-B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ==", + "dev": true, + "dependencies": { + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/executor-graphql-ws": "^1.0.0", + "@graphql-tools/executor-http": "^1.0.5", + "@graphql-tools/executor-legacy-ws": "^1.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", + "@types/ws": "^8.0.0", + "@whatwg-node/fetch": "^0.9.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.11", + "ws": "^8.12.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.15.tgz", + "integrity": "sha512-2wIUcolUthZt0nsPRj+pT7K9h/EO3t/j09IBuq0FtITCsASc2fRCmRw2JHS6hk9fzUQrz2+YYrA1ZDpV7+vLsQ==", "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.5.0", + "urlpattern-polyfill": "^9.0.0" + }, "engines": { - "node": ">=14" + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.3.tgz", + "integrity": "sha512-toMC8N53RxgprcuU7Fc05KOrJhZV49njJCHPZvXBsjZMQBKrDm9o14Y56CsrUC85cvjQu862MaYOjd8rKgHdDw==", + "dev": true, + "dependencies": { + "@kamilkisiela/fast-url-parser": "^1.1.4", + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, + "node_modules/@graphql-tools/utils": { + "version": "10.0.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.12.tgz", + "integrity": "sha512-+yS1qlFwXlwU3Gv8ek/h2aJ95quog4yF22haC11M0zReMSTddbGJZ5yXKkE3sXoY2BcL1utilSFjylJ9uXpSNQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/wrap": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz", + "integrity": "sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==", + "dev": true, + "dependencies": { + "@graphql-tools/delegate": "^10.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-typed-document-node/core": { @@ -4223,6 +6101,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@kamilkisiela/fast-url-parser": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", + "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==", + "dev": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -4803,6 +6687,45 @@ "node": ">= 10" } }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", + "integrity": "sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==", + "dev": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", + "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -7030,6 +8953,12 @@ "prettier": ">=2.4.0" } }, + "node_modules/@repeaterjs/repeater": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", + "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==", + "dev": true + }, "node_modules/@rx-angular/cdk": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@rx-angular/cdk/-/cdk-17.0.0.tgz", @@ -7602,12 +9531,24 @@ "@types/jasmine": "*" } }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, + "node_modules/@types/json-stable-stringify": { + "version": "1.0.36", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.36.tgz", + "integrity": "sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -7673,6 +9614,12 @@ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true + }, "node_modules/@types/qs": { "version": "6.9.11", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", @@ -7685,12 +9632,29 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, + "node_modules/@types/react": { + "version": "18.2.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", + "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", @@ -8289,8 +10253,40 @@ "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", + "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", + "dev": true + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", + "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", + "dev": true, + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "@whatwg-node/node-fetch": "^0.3.6", + "busboy": "^1.6.0", + "urlpattern-polyfill": "^8.0.0", + "web-streams-polyfill": "^3.2.1" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", + "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.0.3", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" } }, "node_modules/@wry/caches": { @@ -8693,6 +10689,57 @@ "rxjs": "^6.0.0 || ^7.0.0" } }, + "node_modules/apollo-link-logger": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/apollo-link-logger/-/apollo-link-logger-2.0.1.tgz", + "integrity": "sha512-4KkdwCqWtlOc0vx0W/5o+UfotyZtcJZicraKNyo2KTaCmAGSJ8vDnNRyDlv6o5XtSgdv4NA36cSe6dt49OkGWA==", + "engines": { + "node": ">= 10", + "npm": "> 3" + }, + "peerDependencies": { + "@apollo/client": "^3.0.0" + } + }, + "node_modules/apollo-link-queue": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/apollo-link-queue/-/apollo-link-queue-3.1.0.tgz", + "integrity": "sha512-9zu6MZHKBN2iChhfnvmqSaqnAnhS5taKVS+fzJDEPfxXF2K1S5P84ykOyWr2LuBLOSm6/eDWkE1kIuClPIeI9A==", + "dependencies": { + "@apollo/client": "^3.2.4" + } + }, + "node_modules/apollo-link-serialize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/apollo-link-serialize/-/apollo-link-serialize-4.0.0.tgz", + "integrity": "sha512-GQJkwj1Fm/OQyte5+y64GsWBIL89AaALlJGc4plMzTttfMxMREXIttXdaP4BzU5xvC/PwVP0khKS/5CbEX8pjw==", + "dependencies": { + "@apollo/client": "^3.3.20", + "zen-observable-ts": "^0.8.11" + } + }, + "node_modules/apollo-link-serialize/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/apollo-link-serialize/node_modules/zen-observable-ts": { + "version": "0.8.21", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", + "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "dependencies": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } + }, + "node_modules/apollo3-cache-persist": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/apollo3-cache-persist/-/apollo3-cache-persist-0.14.1.tgz", + "integrity": "sha512-p/jNzN/MmSd0TmY7/ts0B3qi0SdQ3w9yNLQdKqB3GGb9xATUlAum2v4hSrTeWd/DZKK2Z7Xg5kFXTH6nNVnKSQ==", + "peerDependencies": { + "@apollo/client": "^3.2.5" + } + }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -8874,6 +10921,20 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -8923,6 +10984,18 @@ "node": ">= 4.0.0" } }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/autoprefixer": { "version": "10.4.16", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", @@ -9076,6 +11149,50 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -9547,6 +11664,15 @@ "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -9605,6 +11731,18 @@ "semver": "^7.0.0" } }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -9691,6 +11829,16 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -9743,6 +11891,17 @@ "@types/node": "*" } }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -9756,6 +11915,44 @@ "node": ">=4" } }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -10119,6 +12316,15 @@ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -10241,6 +12447,17 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -10767,6 +12984,18 @@ "node-fetch": "^2.6.12" } }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10853,6 +13082,12 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -11400,6 +13635,12 @@ "node": ">= 14" } }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", + "dev": true + }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", @@ -11423,6 +13664,12 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "optional": true }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -11756,6 +14003,15 @@ "node": ">= 0.8" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -11775,6 +14031,15 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/detect-libc": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", @@ -11947,6 +14212,16 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -11979,6 +14254,15 @@ "node": ">=12" } }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -13535,6 +15819,24 @@ "node": ">=0.6.0" } }, + "node_modules/extract-files": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", + "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", + "dev": true, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -13578,12 +15880,36 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, "node_modules/fastq": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", @@ -13604,6 +15930,36 @@ "node": ">=0.8.0" } }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -14457,6 +16813,72 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, + "node_modules/graphql-config": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-5.0.3.tgz", + "integrity": "sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/json-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.0.0", + "@graphql-tools/merge": "^9.0.0", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "cosmiconfig": "^8.1.0", + "jiti": "^1.18.2", + "minimatch": "^4.2.3", + "string-env-interpolation": "^1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "cosmiconfig-toml-loader": "^1.0.0", + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "cosmiconfig-toml-loader": { + "optional": true + } + } + }, + "node_modules/graphql-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/graphql-config/node_modules/minimatch": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", + "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graphql-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, "node_modules/graphql-tag": { "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", @@ -14628,6 +17050,16 @@ "he": "bin/he" } }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/heap": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", @@ -15024,6 +17456,18 @@ "node": ">=4" } }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -15189,6 +17633,15 @@ "node": ">= 0.10" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ionicons": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz", @@ -15212,6 +17665,19 @@ "node": ">= 10" } }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -15378,6 +17844,15 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -15486,6 +17961,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -15572,6 +18059,18 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-unicode-supported": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", @@ -15584,6 +18083,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -15602,6 +18110,15 @@ "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -15645,6 +18162,15 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -16048,6 +18574,15 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jose": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.0.tgz", + "integrity": "sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -16108,6 +18643,24 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/json-stable-stringify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz", + "integrity": "sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -16119,6 +18672,19 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, + "node_modules/json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", + "dev": true, + "dependencies": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + }, + "engines": { + "node": ">= 0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -16147,6 +18713,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -17052,14 +19627,6 @@ "lie": "3.1.1" } }, - "node_modules/localforage-cordovasqlitedriver": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.8.0.tgz", - "integrity": "sha512-AeYiVPURow8gPAGHNOiGMS9rlgv81wUuQLtnyCP6Eh1mq+IsqNl9fwAOP+RiTi6aO/Wfy3TTWiW2WtbTdJaUnQ==", - "dependencies": { - "localforage": ">=1.5.0" - } - }, "node_modules/localtunnel": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", @@ -17581,6 +20148,24 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -17664,6 +20249,15 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", @@ -17916,6 +20510,23 @@ "web-worker": "^1.2.0" } }, + "node_modules/meros": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz", + "integrity": "sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==", + "dev": true, + "engines": { + "node": ">=13" + }, + "peerDependencies": { + "@types/node": ">=13" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -19082,6 +21693,16 @@ "node-gyp-build": "^4.2.2" } }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/nock": { "version": "13.4.0", "resolved": "https://registry.npmjs.org/nock/-/nock-13.4.0.tgz", @@ -19313,6 +21934,12 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, "node_modules/node-machine-id": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", @@ -19604,6 +22231,12 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, "node_modules/nx": { "version": "17.1.3", "resolved": "https://registry.npmjs.org/nx/-/nx-17.1.3.tgz", @@ -20395,6 +23028,16 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -20407,6 +23050,20 @@ "node": ">=6" } }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -20485,11 +23142,31 @@ "node": ">= 0.8" } }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -20519,6 +23196,27 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", @@ -21032,6 +23730,15 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -21174,6 +23881,24 @@ "node": ">=6" } }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -21407,6 +24132,19 @@ "node": ">=0.10.0" } }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "optional": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -21808,6 +24546,38 @@ "jsesc": "bin/jsesc" } }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", + "dev": true + }, "node_modules/replace": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/replace/-/replace-1.2.2.tgz", @@ -22434,6 +25204,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", + "dev": true + }, "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -22588,6 +25364,17 @@ "node": ">= 0.6" } }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/serialize-javascript": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", @@ -22730,6 +25517,12 @@ "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -22839,6 +25632,12 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", + "dev": true + }, "node_modules/sigstore": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", @@ -23028,6 +25827,16 @@ "ws": "^8.8.1" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/socket.io": { "version": "4.7.3", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.3.tgz", @@ -23314,6 +26123,15 @@ "readable-stream": "^3.0.0" } }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -23486,6 +26304,15 @@ "node": ">= 4.0.0" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/streamx": { "version": "2.15.6", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", @@ -23512,6 +26339,12 @@ "node": ">=0.6.19" } }, + "node_modules/string-env-interpolation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", + "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", + "dev": true + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -23733,6 +26566,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/swiper": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.5.tgz", @@ -24135,6 +26977,15 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", "optional": true }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -24280,6 +27131,12 @@ "node": ">=8" } }, + "node_modules/ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==", + "dev": true + }, "node_modules/ts-morph": { "version": "21.0.1", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-21.0.1.tgz", @@ -24552,6 +27409,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -24670,6 +27536,30 @@ "node": ">= 10.0.0" } }, + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -24717,6 +27607,24 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -24725,6 +27633,12 @@ "punycode": "^2.1.0" } }, + "node_modules/urlpattern-polyfill": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", + "dev": true + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -24747,7 +27661,6 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], - "optional": true, "bin": { "uuid": "dist/bin/uuid" } @@ -24820,6 +27733,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -25326,6 +28248,19 @@ "integrity": "sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==", "optional": true }, + "node_modules/webcrypto-core": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", + "dev": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -26089,6 +29024,12 @@ "node": ">= 14" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index a2fe7ef09c27d15e0419bd0a8c784379ea82b1b9..907afd669d1b6b174b4cb081be2e82e80f370860 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "scripts": { "ng": "ng", + "clean": "rm -rf www .angular/cache", "start": "ng serve", "start:dev": "ng serve --host 0.0.0.0 --disable-host-check", "start:prod": "ng serve --configuration production", @@ -18,28 +19,33 @@ "build:prod": "ng build --configuration production", "build:ci": "ng build --configuration ci", "i18n:build": "node scripts/node/build-i18n.js", - "android:init": "npx cap add android && npm run resources", - "android:sync": "npx cap sync android", + "android:init": "ionic capacitor add android && npm run resources", + "android:sync": "ionic capacitor sync android", "android:start": "ionic capacitor run android -l --external", - "android:build": "ionic capacitor build android --no-open", - "android:build:prod": "ionic capacitor build android --no-open --configuration production --release && npm run android:i18n:build", + "android:build": "ionic capacitor build android --no-open && npm run android:assemble", + "android:build:prod": "ionic capacitor build android --no-open --configuration production --release && npm run android:i18n:build && npm run android:assemble:prod", "android:i18n:build": "node scripts/node/build-i18n.js android/app/src/main/assets/public/assets/i18n", - "android:bundle:sign": "node scripts/node/android-sign.js", - "android:bundle": "cd android && ./gradlew bundleDebug --warning-mode all", - "android:bundle:release": "cd android && ./gradlew bundleRelease", + "android:apk:sign": "node scripts/node/android-apk-sign.js", + "android:assemble": "cd android && ./gradlew assembleDebug --warning-mode all", + "android:assemble:prod": "cd android && ./gradlew assembleRelease", "android:prepare": "node scripts/node/android-prepare.js", "android:install": "cd android && ./gradlew installDebug", "android:install:release": "cd android && ./gradlew installRelease", "android:clean": "cd android && ./gradlew clean", - "android:list": "npx native-run android --list", + "android:list": "native-run android --list", "resources": "cordova-res ios && cordova-res android && node scripts/node/resources.js", "test": "ng test", "lint": "ng lint", "lint:fix": "ng lint --fix", - "typegen": "yarn get:meta && yarn generate:defs && yarn generate:meta", - "get:meta": "curl -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9933 > ./src/interfaces/types.json", - "generate:defs": "ts-node --skip-project node_modules/.bin/polkadot-types-from-defs --package @duniter/types/interfaces --input ./src/interfaces --endpoint ./src/interfaces/types.json", - "generate:meta": "ts-node --skip-project node_modules/.bin/polkadot-types-from-chain --package @duniter/types/interfaces --output ./src/interfaces --endpoint ./src/interfaces/types.json", + "typegen": "npm run typegen:prod", + "typegen:dev": "npm run get:meta:dev && npm run generate", + "typegen:prod": "npm run get:meta:prod && npm run generate", + "get:meta:dev": "curl -H \\\"Content-Type: application/json\\\" -d '{\\\"id\\\":\\\"1\\\", \\\"jsonrpc\\\":\\\"2.0\\\", \\\"method\\\": \\\"state_getMetadata\\\", \\\"params\\\":[]}' http://localhost:9933 > src/interfaces/types.json", + "get:meta:prod": "curl -H \\\"Content-Type: application/json\\\" -d '{\\\"id\\\":\\\"1\\\", \\\"jsonrpc\\\":\\\"2.0\\\", \\\"method\\\": \\\"state_getMetadata\\\", \\\"params\\\":[]}' http://gdev.cgeek.fr:9933 > src/interfaces/types.json", + "generate": "npm run generate:defs && npm run generate:meta && npm run generate:graphql", + "generate:defs": "ts-node --skip-project node_modules/.bin/polkadot-types-from-defs --package @duniter/interfaces --input src/interfaces --endpoint src/interfaces/types.json", + "generate:meta": "ts-node --skip-project node_modules/.bin/polkadot-types-from-chain --package @duniter/interfaces --output src/interfaces --endpoint src/interfaces/types.json", + "generate:graphql": "graphql-codegen", "prepare": "husky install" }, "lint-staged": { @@ -50,6 +56,7 @@ "src/**/*.{css,json,md,scss}": "prettier --write" }, "peerDependencies": { + "@apollo/client": "~3.8.5", "localforage": "~1.10.0", "rxjs": "~7.5.7" }, @@ -61,7 +68,7 @@ "@angular/platform-browser": "^17.0.4", "@angular/platform-browser-dynamic": "^17.0.4", "@angular/router": "^17.0.4", - "@apollo/client": "~3.8.8", + "@apollo/client": "~3.8.5", "@capacitor-community/barcode-scanner": "~4.0.1", "@capacitor/android": "^5.0.0", "@capacitor/app": "^5.0.0", @@ -72,6 +79,7 @@ "@capacitor/core": "^5.0.0", "@capacitor/haptics": "^5.0.0", "@capacitor/keyboard": "^5.0.0", + "@capacitor/network": "^5.0.6", "@capacitor/splash-screen": "^5.0.0", "@capacitor/status-bar": "^5.0.0", "@ionic/angular": "^7.6.3", @@ -92,12 +100,15 @@ "@rx-angular/state": "^17.0.0", "@rx-angular/template": "^17.0.0", "apollo-angular": "~6.0.0", + "apollo-link-logger": "~2.0.1", + "apollo-link-queue": "~3.1.0", + "apollo-link-serialize": "~4.0.0", + "apollo3-cache-persist": "~0.14.1", "graphql-tag": "~2.12.6", "graphql-ws": "~5.14.3", "ionicons": "~7.2.2", "jdenticon": "^3.2.0", "localforage": "~1.10.0", - "localforage-cordovasqlitedriver": "~1.8.0", "moment": "^2.30.1", "moment-timezone": "^0.5.44", "ng-qrcode": "^17.0.0", @@ -110,6 +121,7 @@ "stream-browserify": "^3.0.0", "swiper": "^11.0.5", "tslib": "^2.6.2", + "uuid": "^9.0.1", "zone.js": "~0.14.2" }, "devDependencies": { @@ -124,14 +136,22 @@ "@angular/compiler-cli": "^17.0.4", "@angular/language-service": "^17.0.4", "@capacitor/cli": "^5.0.0", + "@graphql-codegen/add": "^5.0.0", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/fragment-matcher": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-apollo-angular": "^4.0.0", + "@graphql-codegen/typescript-apollo-client-helpers": "^3.0.0", + "@graphql-codegen/typescript-operations": "^4.0.1", "@ionic/angular-toolkit": "^10.0.0", "@ionic/cli": "^7.2.0", - "@polkadot/typegen": "^10.11.1", - "@polkadot/types": "^10.11.1", + "@polkadot/typegen": "^10.11.2", + "@polkadot/types": "^10.11.2", "@rx-angular/eslint-plugin": "~2.0.0", "@types/jasmine": "~4.0.3", "@types/jasminewd2": "~2.0.10", "@types/node": "^18.18.13", + "@types/react": "^18.2.47", "@typescript-eslint/eslint-plugin": "6.17.0", "@typescript-eslint/parser": "6.17.0", "eslint": "^8.56.0", diff --git a/scripts/node/android-sign.js b/scripts/node/android-apk-sign.js similarity index 100% rename from scripts/node/android-sign.js rename to scripts/node/android-apk-sign.js diff --git a/scripts/node/build-i18n.js b/scripts/node/build-i18n.js index 7a170f207e76e18c99ce3d1fefdb89895e7a75d9..fade342da2e6fec3f62f57941ee6ee27120b3274 100644 --- a/scripts/node/build-i18n.js +++ b/scripts/node/build-i18n.js @@ -6,8 +6,6 @@ const { readdirSync, readFileSync, copyFileSync, existsSync, rmSync, mkdirSync } let pkgStr = readFileSync('./package.json', {encoding: 'UTF-8'}); const pkg = JSON.parse(pkgStr); -//console.info() - const targetI18nDir = process.argv[2] || './www/assets/i18n/'; const sourceI18nDir = './src/assets/i18n/'; if (!existsSync(targetI18nDir)) { diff --git a/src/app/account/account.model.ts b/src/app/account/account.model.ts index 2600896681c75d849001ad6ebc42da631be5975e..a8089411b3ead7e4be85f4872c6750efc5f513c7 100644 --- a/src/app/account/account.model.ts +++ b/src/app/account/account.model.ts @@ -18,26 +18,24 @@ export interface AccountMeta { isTesting?: boolean; // Cesium properties + self?: boolean; default?: boolean; publicKeyV1?: string; uid?: string; avatar?: string; email?: string; + isMember?: boolean; [key: string]: unknown; } -export interface Tx { - // TODO -} - export interface AccountData { randomId?: string; free?: number; reserved?: number; feeFrozen?: number; - txs: Tx[]; + txs?: any[]; } export class AccountUtils { @@ -47,7 +45,11 @@ export class AccountUtils { } static getDisplayName(account: Partial<Account>) { - return account?.meta?.name || formatAddress(account?.address) || ''; + return account?.meta?.name || account?.meta?.uid || formatAddress(account?.address) || ''; + } + + static isEquals(a1: Account, a2: Account) { + return a1 === a2 || (a1 && a1.address && a1.address === a2?.address); } } diff --git a/src/app/account/accounts.service.ts b/src/app/account/accounts.service.ts index 1a8f6ae4b946779f39c0160053fa52766e09f3ff..55ea659a4e3f965a67db9f7a46a1920b59e570a7 100644 --- a/src/app/account/accounts.service.ts +++ b/src/app/account/accounts.service.ts @@ -6,10 +6,20 @@ import { keyring } from '@polkadot/ui-keyring'; import { environment } from '@environments/environment'; import { KeyringStorage } from '@app/shared/services/storage/keyring-storage'; import { base58Encode, cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto'; -import { isEmptyArray, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, sleep } from '@app/shared/functions'; +import { + firstArrayValue, + isEmptyArray, + isNil, + isNilOrBlank, + isNilOrNaN, + isNotEmptyArray, + isNotNil, + isNotNilOrBlank, + sleep, +} from '@app/shared/functions'; import { APP_STORAGE, IStorage } from '@app/shared/services/storage/storage.utils'; -import { debounceTime, firstValueFrom, from, map, Observable, Subscription, switchMap, timer } from 'rxjs'; -import { Currency } from '@app/network/currency.model'; +import { debounceTime, firstValueFrom, from, map, mergeMap, Observable, Subscription, switchMap, timer } from 'rxjs'; +import { Currency } from '@app/currency/currency.model'; import { SettingsService } from '@app/settings/settings.service'; import { scryptEncode } from '@polkadot/util-crypto/scrypt/encode'; import { u8aToHex } from '@polkadot/util'; @@ -19,14 +29,17 @@ import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.deco import { ED25519_SEED_LENGTH, SCRYPT_PARAMS } from '@app/account/crypto.utils'; import { KeyringPair } from '@polkadot/keyring/types'; import { AppEvent } from '@app/shared/types'; +import { IndexerService } from '@app/network/indexer.service'; export interface LoadAccountDataOptions { reload?: boolean; withTx?: boolean; withCert?: boolean; withBalance?: boolean; + withMembership?: boolean; emitEvent?: boolean; } +export interface WatchAccountDataOptions extends LoadAccountDataOptions {} export interface AccountsState { accounts: Account[]; @@ -54,6 +67,7 @@ export class AccountsService extends RxStartableService<AccountsState> { constructor( protected network: NetworkService, + protected indexer: IndexerService, protected settings: SettingsService, @Inject(APP_STORAGE) protected storage: IStorage, @Inject(APP_AUTH_CONTROLLER) protected authController: IAuthController @@ -146,6 +160,7 @@ export class AccountsService extends RxStartableService<AccountsState> { publicKey: ka.publicKey, meta: { ...ka.meta, + self: true, }, }; }); @@ -163,7 +178,7 @@ export class AccountsService extends RxStartableService<AccountsState> { // DEBUG console.info(this._logPrefix + `Loading accounts [OK] ${accounts.length} accounts loaded in ${Date.now() - now}ms`); accounts.forEach((a) => { - console.info(` - ${a.meta?.name || formatAddress(a.address)} {free: ${a.data?.free / 100}, reserved: ${a.data?.reserved / 100}}`); + console.info(` - ${AccountUtils.getDisplayName(a)} {free: ${a.data?.free / 100}, reserved: ${a.data?.reserved / 100}}`); }); return accounts; @@ -188,6 +203,7 @@ export class AccountsService extends RxStartableService<AccountsState> { isTesting: true, default: true, ...data.meta, + self: true, }; const { pair, account } = await this.createAccount(data); @@ -408,6 +424,10 @@ export class AccountsService extends RxStartableService<AccountsState> { return (accounts || this.accounts || []).some((a) => a.address === address); } + isAvailableSync(address: string, accounts?: Account[]): boolean { + return (accounts || this.accounts || []).some((a) => a.address === address); + } + async getByAddress(address: string, opts?: LoadAccountDataOptions): Promise<Account> { if (!this.started) await this.ready(); @@ -421,16 +441,34 @@ export class AccountsService extends RxStartableService<AccountsState> { return await this.loadData(account, opts); } - watchByAddress(address: string): Observable<Account> { - return this.accounts$.pipe(map((accounts) => accounts?.find((a) => a.address === address))); + watchByAddress(address: string, opts?: WatchAccountDataOptions): Observable<Account> { + // Wait start if need, then loop + if (!this.started) return from(this.ready()).pipe(switchMap(() => this.watchByAddress(address))); + + if (this.isAvailableSync(address)) { + return this.accounts$.pipe(map((accounts) => accounts?.find((a) => a.address === address))); + } + + return this.indexer.wotSearch({ address }, { limit: 1 }).pipe( + map(({ data }) => firstArrayValue(data)), + mergeMap(async (account) => this.loadData(account, { ...opts, withMembership: false })) + ); } + /** + * + * @param from + * @param to + * @param amount the TX amount, using decimals + * @param fee the TX fee, using decimals + */ async transfer(from: Partial<Account>, to: Partial<Account>, amount: number, fee?: number): Promise<string> { if (!from || !to) throw new Error("Missing argument 'from' or 'to' !"); const currency = this.network.currency; // Check currency if (!currency) throw new Error('ERROR.CHECK_NETWORK_CONNECTION'); + const powBase = Math.pow(10, currency.decimals || 0); // Check amount if (isNilOrNaN(amount)) { @@ -440,7 +478,11 @@ export class AccountsService extends RxStartableService<AccountsState> { throw new Error('ERROR.AMOUNT_NEGATIVE'); } - // Check fee + // Remove decimals, in amount and fee + amount = amount * powBase; + if (fee) fee = fee * powBase; + + // Check fee validity fee = fee || currency.fees?.tx || 0; if (fee < 0) { throw new Error('ERROR.FEE_NEGATIVE'); @@ -459,11 +501,9 @@ export class AccountsService extends RxStartableService<AccountsState> { throw new Error('ERROR.NOT_ENOUGH_CREDIT'); } - console.info(`[account-service] Sending ${amount} ${currency.symbol} (fee: ${fee}):\nfrom: ${from.address}\nto ${to.address}`); - - // Compute total amount (with fee) and remove decimals - const powBase = Math.pow(10, currency.decimals || 0); - const totalAmount = Math.floor((amount + fee) * powBase); + console.info( + `[account-service] Sending ${amount / powBase} ${currency.symbol} (fee: ${fee / powBase}):\nfrom: ${from.address}\nto ${to.address}` + ); // Get pair, and unlock it const issuerPair = keyring.getPair(issuerAccount.address); @@ -476,29 +516,31 @@ export class AccountsService extends RxStartableService<AccountsState> { try { // Sign and send a transfer from Alice to Bob - const txHash = await this.api.tx.balances.transfer(to.address, totalAmount).signAndSend(issuerPair, async ({ status, events }) => { + const txHash = await this.api.tx.balances.transfer(to.address, amount).signAndSend(issuerPair, async ({ status, events }) => { if (status.isInBlock) { console.info(`${this._logPrefix}Completed at block hash #${status.hash.toHuman()}`); if (this._debug) console.debug(`${this._logPrefix}Block events:`, JSON.stringify(events)); + // List of outdated accounts const outdatedAccounts = [issuerAccount]; - // Update receiver account + // Add receiver to outdated account if (await this.isAvailable(to.address)) { const toAccount = await this.getByAddress(to.address); outdatedAccounts.push(toAccount); } - await sleep(200); + await sleep(200); // Wait 200ms + await this.refreshData(outdatedAccounts, { reload: true }); } else { - console.info(`Current status`, status.toHuman()); + console.info(`${this._logPrefix}Current status: `, status.toHuman()); } }); // Show the hash - console.info(`Submitted with hash ${txHash}`); + console.info(`${this._logPrefix}Finalized hash ${txHash}`); return txHash.toString(); } catch (err) { @@ -532,13 +574,28 @@ export class AccountsService extends RxStartableService<AccountsState> { const { data } = await this.api.query.system.account(account.address); account.data = { ...account.data, - ...JSON.parse(data.toString()), + ...data.toJSON(), }; changed = true; + //console.log('TODO', Object.keys(this.api.query)); //await this.api.query.udAccountsStorage.udAccounts(account.address); } + if (opts.withMembership === true && (isNil(account.meta.isMember) || opts.reload === true)) { + const indexedAccount = await firstValueFrom( + this.indexer + .wotSearch({ address: account.address }, { limit: 1, fetchPolicy: 'network-only' }) + .pipe(map(({ data }) => firstArrayValue(data))) + ); + account.meta = { + ...account.meta, + uid: indexedAccount.meta?.uid, + isMember: indexedAccount.meta?.isMember, + }; + changed = true; + } + // Load TX if (opts.withTx === true && (isNil(account.data?.txs) || opts.reload === true)) { console.debug(`${this._logPrefix} Loading ${formatAddress(account.address)} TX history...`); @@ -556,7 +613,7 @@ export class AccountsService extends RxStartableService<AccountsState> { // Emit change event if (changed && this.accounts) { - console.debug(`${this._logPrefix} Loading ${formatAddress(account.address)} data [OK] in ${Date.now() - now}ms`, account.data); + console.debug(`${this._logPrefix} Loading ${formatAddress(account.address)} data [OK] in ${Date.now() - now}ms`, account); } } catch (err) { console.error(`${this._logPrefix}Failed to load ${formatAddress(account.address)} data:`, err); diff --git a/src/app/account/auth.controller.ts b/src/app/account/auth.controller.ts index 9e06bb12f67bdb425db29e94dfeee122ae032162..b7b0114cd06e0b376bc72e868c8b21638e64cd97 100644 --- a/src/app/account/auth.controller.ts +++ b/src/app/account/auth.controller.ts @@ -13,6 +13,7 @@ import { UnlockModal } from '@app/account/unlock/unlock.modal'; import { AccountListComponent, AccountListComponentInputs } from '@app/account/list/account-list.component'; import { AppEvent } from '@app/shared/types'; import { setTimeout } from '@rx-angular/cdk/zone-less/browser'; + @Injectable() export class AuthController implements IAuthController { private readonly _mobile = this.platform.mobile; diff --git a/src/app/account/list/account-list.component.html b/src/app/account/list/account-list.component.html index 185afab4897c8adc9a2862e77ef7357d26d4177e..02bdf7c54c342184bb57769e823919cfeda6e78f 100644 --- a/src/app/account/list/account-list.component.html +++ b/src/app/account/list/account-list.component.html @@ -1,11 +1,15 @@ <ion-header> <ion-toolbar color="secondary"> <ion-title translate>ACCOUNT.WALLET_LIST.TITLE</ion-title> + + <ion-buttons slot="end" *ngIf="mobile"> + <ion-button (click)="cancel()" translate>COMMON.BTN_CLOSE</ion-button> + </ion-buttons> </ion-toolbar> </ion-header> <ion-content> <ion-list *rxIf="accounts$; let accounts; suspense: listSkeleton"> - <ion-item *rxFor="let account of accounts; trackBy: 'address'" (click)="selectAccount(account)"> + <ion-item *rxFor="let account of accounts; index as index; trackBy: 'address'" (click)="selectAccount(account)" [style.--animation-order]="index"> <ion-avatar slot="start"> <svg width="40" width="40" [data-jdenticon-value]="account.data?.randomId || account.address"></svg> </ion-avatar> diff --git a/src/app/account/list/account-list.component.ts b/src/app/account/list/account-list.component.ts index a1152796bde4c68e52e34b92fb9b34cab19a6e7e..649456de2a8bb6d046537d1cebc1fcc9b52f1143 100644 --- a/src/app/account/list/account-list.component.ts +++ b/src/app/account/list/account-list.component.ts @@ -2,22 +2,17 @@ import { Component, Input } from '@angular/core'; import { RxState } from '@rx-angular/state'; import { ModalController } from '@ionic/angular'; import { animate, query, stagger, style, transition, trigger } from '@angular/animations'; -import { Account } from '@app/account/account.model'; +import { Account, SelectAccountOptions } from '@app/account/account.model'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; import { AccountsService } from '@app/account/accounts.service'; import { Observable } from 'rxjs'; import { AppPage, AppPageState } from '@app/shared/pages/base-page.class'; -import { debounceTime } from 'rxjs/operators'; interface AccountListComponentState extends AppPageState { accounts: Account[]; } -export interface AccountListComponentInputs { - minBalance: number; - showBalance: boolean; - positiveBalanceFirst: boolean; -} +export interface AccountListComponentInputs extends SelectAccountOptions {} @Component({ selector: 'app-account-list', @@ -52,7 +47,11 @@ export class AccountListComponent extends AppPage<AccountListComponentState> imp ngOnInit() { super.ngOnInit(); - this._state.connect('accounts', this.accountsService.watchAll({ positiveBalanceFirst: this.positiveBalanceFirst }).pipe(debounceTime(2000))); + this._state.connect( + 'accounts', + this.accountsService.watchAll({ positiveBalanceFirst: this.positiveBalanceFirst }) + //.pipe(debounceTime(2000)) + ); } protected async ngOnLoad(): Promise<Partial<AccountListComponentState>> { @@ -62,4 +61,8 @@ export class AccountListComponent extends AppPage<AccountListComponentState> imp selectAccount(account: Account) { return this.modalController.dismiss(account); } + + cancel() { + this.modalController.dismiss(); + } } diff --git a/src/app/account/register/register.form.ts b/src/app/account/register/register.form.ts index ff8b36abed240e6c63f9ec12677b23893be800e0..55e4e698d0cae55f16f4c41ab8e3ce1652cbd135 100644 --- a/src/app/account/register/register.form.ts +++ b/src/app/account/register/register.form.ts @@ -5,7 +5,7 @@ import { SettingsService } from '@app/settings/settings.service'; import { environment } from '@environments/environment'; import { AppForm } from '@app/shared/form.class'; import { NetworkService } from '@app/network/network.service'; -import { Currency } from '@app/network/currency.model'; +import { Currency } from '@app/currency/currency.model'; import { AccountMeta, AuthData } from '@app/account/account.model'; import { Swiper, SwiperOptions } from 'swiper/types'; import { IonicSlides } from '@ionic/angular'; @@ -80,14 +80,14 @@ export class RegisterForm extends AppForm<AuthData> implements OnInit { ngOnInit() { // For DEV only ------------------------ if (!environment.production) { - this.form.setValue({ - words: 'search average amateur muffin inspire lake resist width intact viable stone barrel'.split(' '), - wordNumber: 1, - code: 'AAAAA', - codeConfirmation: null, - name: null, - address: null, - }); + // this.form.setValue({ + // words: 'search average amateur muffin inspire lake resist width intact viable stone barrel'.split(' '), + // wordNumber: 1, + // code: 'AAAAA', + // codeConfirmation: null, + // name: null, + // address: null, + // }); } } diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 769b994e78ae384b483f410903caf3bcd135da0f..406efa8374a67d2c5f077c1bd9592e7f52b2ad91 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -13,21 +13,30 @@ const routes: Routes = [ }, { path: 'wallet', - loadChildren: () => import('./wallet/wallet.module').then((m) => m.AppWalletModule), + loadChildren: () => import('./wallet/wallet-routing.module').then((m) => m.AppWalletRoutingModule), + }, + { + path: 'history', + loadChildren: () => import('./history/wallet-tx-routing.module').then((m) => m.AppWalletTxRoutingModule), }, { path: 'transfer', - loadChildren: () => import('./transfer/transfer.module').then((m) => m.AppTransferModule), + loadChildren: () => import('./transfer/transfer-routing.module').then((m) => m.AppTransferRoutingModule), }, { path: 'wot', - loadChildren: () => import('./wot/wot.module').then((m) => m.WotModule), + loadChildren: () => import('./wot/wot-routing.module').then((m) => m.AppWotRoutingModule), + }, + { + path: 'block', + loadChildren: () => import('./block/block-routing.module').then((m) => m.AppBlockRoutingModule), }, { path: 'settings', - loadChildren: () => import('./settings/settings.module').then((m) => m.SettingsPageModule), + loadChildren: () => import('./settings/settings-routing.module').then((m) => m.AppSettingsRoutingModule), }, - // DEV only + + // -- DEV only { path: 'playground', loadChildren: () => import('./playground/playground.module').then((m) => m.PlaygroundModule), diff --git a/src/app/app.component.html b/src/app/app.component.html index 0dd12a88267fe8538cd5dac767c88845fa54bd56..8c9583968465f46de8a5a02c0b5f11b5df582097 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -26,8 +26,7 @@ (click)="p.handle($event)" lines="none" detail="false" - tappable - class="ion-activatable" + class="ion-activatable ion-focusable" tappable @fadeInAnimation > diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 626bbce34290ebcbfc5d1dccb3223c84c263db9a..966c50d46172105cb238b5093b19fa4c918fccb5 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -14,7 +14,7 @@ export interface IMenuItem { url?: string; icon: string; disabled?: () => boolean; - handle?: (event) => Promise<any>; + handle?: (event: Event) => Promise<void | unknown>; visible?: () => boolean; color?: PredefinedColors; } @@ -30,7 +30,8 @@ export class AppComponent { appName = 'COMMON.APP_NAME'; appPages: IMenuItem[] = [ { title: 'MENU.HOME', url: '/home', icon: 'home' }, - { title: 'MENU.ACCOUNT', url: '/wallet', icon: 'card' }, + { title: 'MENU.ACCOUNT', url: '/wallet', icon: 'person' }, + { title: 'MENU.TRANSACTIONS', url: '/history', icon: 'card' }, { title: 'COMMON.BTN_SEND_MONEY', url: '/transfer', icon: 'paper-plane', visible: () => this.platform.mobile }, { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index fc4a786172a95becf3e868409a66fe82021d04e5..97a5f771ca1e6eef697148ed7922512c424375ea 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -19,9 +19,11 @@ import { JDENTICON_CONFIG } from 'ngx-jdenticon'; import { APP_LOCALES } from '@app/settings/settings.model'; import { APP_STORAGE } from '@app/shared/services/storage/storage.utils'; import { StorageService } from '@app/shared/services/storage/storage.service'; -import { AppTransferModule } from '@app/transfer/transfer.module'; -import { AppAccountModule } from '@app/account/account.module'; import { AccountsService } from '@app/account/accounts.service'; +import { AppAccountModule } from '@app/account/account.module'; +import { AppTransferModule } from '@app/transfer/transfer.module'; +import { APP_GRAPHQL_TYPE_POLICIES } from '@app/shared/services/network/graphql/graphql.service'; +import { INDEXER_GRAPHQL_TYPE_POLICIES } from '@app/network/indexer.config'; export function createTranslateLoader(http: HttpClient) { if (environment.production) { @@ -63,6 +65,12 @@ export function createTranslateLoader(http: HttpClient) { AccountsService, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + { + provide: APP_GRAPHQL_TYPE_POLICIES, + useValue: { + ...INDEXER_GRAPHQL_TYPE_POLICIES, + }, + }, { provide: APP_STORAGE, useExisting: StorageService }, { provide: APP_BASE_HREF, useValue: environment.baseUrl || '/' }, diff --git a/src/app/block/block-routing.module.ts b/src/app/block/block-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..4f9f88fae00427605678d5e1808ff84fb8d0fe8e --- /dev/null +++ b/src/app/block/block-routing.module.ts @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { BlockPage } from '@app/block/block.page'; +import { AppBlockModule } from '@app/block/block.module'; + +const routes: Routes = [ + // { + // path: '', + // pathMatch: 'full', + // component: BlockLookupPage + // }, + { + path: ':height', + pathMatch: 'full', + component: BlockPage, + }, + { + path: 'id/:id', + pathMatch: 'full', + component: BlockPage, + }, +]; + +@NgModule({ + imports: [AppBlockModule, RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AppBlockRoutingModule {} diff --git a/src/app/block/block.model.ts b/src/app/block/block.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..4f1242455b813d2b44179fbfc556bfbce45863eb --- /dev/null +++ b/src/app/block/block.model.ts @@ -0,0 +1,28 @@ +import { Moment } from 'moment/moment'; +import { equals, isNil, isNilOrBlank } from '@app/shared/functions'; + +export interface Block { + id: string; + height: number; + hash: string; + timestamp: Moment; + callsCount: number; + eventsCount: number; + extrinsicsCount: number; +} + +export interface BlockSearchFilter { + id?: string; + height: number; + hash?: string; +} + +export class BlockSearchFilterUtils { + static isEquals(f1: BlockSearchFilter, f2: BlockSearchFilter) { + return f1 === f2 || equals(f1, f2); + } + + static isEmpty(filter: BlockSearchFilter) { + return !filter || (isNil(filter.id) && isNil(filter.height) && isNilOrBlank(filter.hash)); + } +} diff --git a/src/app/block/block.module.ts b/src/app/block/block.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..15c0ab11ec5f368162796199380ca8705d448bd1 --- /dev/null +++ b/src/app/block/block.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; +import { BlockPage } from '@app/block/block.page'; +import { AppSharedModule } from '@app/shared/shared.module'; + +@NgModule({ + imports: [AppSharedModule, TranslateModule.forChild()], + declarations: [BlockPage], + exports: [TranslateModule, BlockPage], +}) +export class AppBlockModule {} diff --git a/src/app/network/currency.model.ts b/src/app/currency/currency.model.ts similarity index 76% rename from src/app/network/currency.model.ts rename to src/app/currency/currency.model.ts index 218031b22c6aa9d8a67286f0db381a0eb4f4c245..ef697088a0bd41ff036358272902e45a1c36d61b 100644 --- a/src/app/network/currency.model.ts +++ b/src/app/currency/currency.model.ts @@ -1,4 +1,5 @@ import { HexString } from '@polkadot/util/types'; +import { Moment } from 'moment'; export interface Currency { network: string; @@ -6,6 +7,8 @@ export interface Currency { symbol: string; prefix: number; genesis: HexString | null; + startTime: Moment | string; + powBase: number; fees: { identity: number; tx: number; diff --git a/src/app/history/wallet-tx-routing.module.ts b/src/app/history/wallet-tx-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..251a50af840a30685ada8cf5ce59f18229961a7a --- /dev/null +++ b/src/app/history/wallet-tx-routing.module.ts @@ -0,0 +1,29 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AuthGuardService } from '@app/account/auth-guard.service'; +import { WalletTxPage } from '@app/history/wallet-tx.page'; +import { AppWalletTxModule } from '@app/history/wallet-tx.module'; + +const routes: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'default', + }, + { + path: ':address', + component: WalletTxPage, + canActivate: [AuthGuardService], + }, + { + path: ':address/:name', + component: WalletTxPage, + canActivate: [AuthGuardService], + }, +]; + +@NgModule({ + imports: [AppWalletTxModule, RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AppWalletTxRoutingModule {} diff --git a/src/app/history/wallet-tx.module.ts b/src/app/history/wallet-tx.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..7468b684d9560f523dc14a7a74d739e7a1bc3d2f --- /dev/null +++ b/src/app/history/wallet-tx.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { AppSharedModule } from '@app/shared/shared.module'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgxJdenticonModule } from 'ngx-jdenticon'; +import { AppAccountModule } from '@app/account/account.module'; +import { AppAuthModule } from '@app/account/auth/auth.module'; +import { RouterModule } from '@angular/router'; +import { WalletTxPage } from '@app/history/wallet-tx.page'; + +@NgModule({ + imports: [AppSharedModule, AppAuthModule, TranslateModule.forChild(), RouterModule, AppAccountModule, NgxJdenticonModule], + declarations: [WalletTxPage], + exports: [WalletTxPage], +}) +export class AppWalletTxModule { + constructor() { + console.debug('[wallet-tx] Creating module'); + } +} diff --git a/src/app/history/wallet-tx.page.html b/src/app/history/wallet-tx.page.html new file mode 100644 index 0000000000000000000000000000000000000000..b36471508708f6de458c78726860725122752464 --- /dev/null +++ b/src/app/history/wallet-tx.page.html @@ -0,0 +1,152 @@ +<ion-header [translucent]="true"> + <ion-toolbar color="primary"> + <ion-buttons slot="start"> + <ion-menu-button *ngIf="!canGoBack"></ion-menu-button> + <ion-back-button></ion-back-button> + </ion-buttons> + <ion-title translate>WOT.OPERATIONS.TITLE</ion-title> + </ion-toolbar> + <ion-progress-bar type="indeterminate" *rxIf="loading$"></ion-progress-bar> +</ion-header> + +<ion-content> + <ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)" *ngIf="mobile"> + <ion-refresher-content></ion-refresher-content> + </ion-refresher> + + <ion-header collapse="condense"> + <ion-toolbar> + <ion-title size="large" translate>WOT.OPERATIONS.TITLE</ion-title> + </ion-toolbar> + </ion-header> + + <ion-header [translucent]="true"> + <ion-item color="secondary" lines="none"> + <ion-avatar slot="start" [style.background-color]="'white'"> + <ng-container *rxIf="account$; let account"> + <ion-img *ngIf="account.meta?.avatar; let avatar; else: svgIcon" [src]="avatar"></ion-img> + <ng-template #svgIcon> + <svg [data-jdenticon-value]="account.data?.randomId || account.address"></svg> + </ng-template> + </ng-container> + </ion-avatar> + + @if (account$ | push | isUserAccount) { + <ion-select + [(ngModel)]="account" + [interface]="mobile ? 'action-sheet' : 'popover'" + [interfaceOptions]="mobile ? actionSheetOptions : popoverOptions" + [okText]="'COMMON.BTN_OK' | translate" + [cancelText]="'COMMON.BTN_CANCEL' | translate" + > + <ion-select-option *rxFor="let account of accounts$" [value]="account"> + {{ account | accountName }} + </ion-select-option> + <ion-select-option [value]="'new'" translate>ACCOUNT.WALLET_LIST.BTN_NEW_DOTS</ion-select-option> + </ion-select> + } @else { + <ion-label>{{ account | accountName }}</ion-label> + } + + <div slot="end"> + <ion-label class="ion-text-end"> + <p translate>ACCOUNT.BALANCE</p> + <h2> + <b *rxIf="account$; let account">{{ account | balance | amountFormat }}</b> + </h2> + </ion-label> + </div> + </ion-item> + </ion-header> + + <ion-list> + <ion-item *rxIf="error$; let error" lines="none" color="light"> + <ion-icon slot="start" name="alert-circle" color="danger"></ion-icon> + <ion-label color="danger">{{ error | translate }}</ion-label> + </ion-item> + + <!-- wot identities --> + <ion-item *rxFor="let item of items$; index as index; trackBy: 'id'"> + @if (item.account.meta?.avatar) { + <ion-avatar slot="start"> + <ion-img [src]="item.meta.avatar"></ion-img> + </ion-avatar> + } @else { + <ion-avatar slot="start"> + <svg width="40" width="40" [data-jdenticon-value]="item.account.data?.randomId || item.account.address"></svg> + </ion-avatar> + } + <ion-label *rxLet="item.account | isMemberAccount; let isMember"> + <h3> + <a + [routerLink]="['/wot', item.account.address]" + routerDirection="forward" + (click)="showAccount($event, item.account)" + class="tx-account" + [class.member]="isMember" + > + <small> + <ion-icon [name]="item.account.meta?.uid ? 'person' : 'key'"></ion-icon> + </small> + {{ item.account | accountName }} + </a> + </h3> + <p> + <a [routerLink]="['/block', item.blockNumber]" routerDirection="forward" (click)="$event.preventDefault()" class="tx-timestamp"> + {{ item.timestamp | dateFromNow }} | {{ item.timestamp | dateFormat }} + </a> + </p> + </ion-label> + + <ion-badge [color]="item.amount > 0 ? 'secondary' : 'light'" slot="end">{{ item.amount | amountFormat }}</ion-badge> + </ion-item> + + <!-- loading spinner --> + <ng-container *rxIf="loading$; else noResult"> + <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> + </ng-container> + + <!-- no result --> + <ng-template #noResult> + <ion-item *rxIf="(count$ | push) === 0" lines="none"> + <ion-text color="danger" class="text-italic" translate>COMMON.SEARCH_NO_RESULT</ion-text> + </ion-item> + </ng-template> + </ion-list> + + <!-- infinite scroll --> + <ion-infinite-scroll + [disabled]="(canFetchMore$ | async) === false" + [threshold]="mobile ? '100px' : '2%'" + position="bottom" + (ionInfinite)="fetchMore($event)" + > + <ion-infinite-scroll-content loading-spinner="none"> + <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> + </ion-infinite-scroll-content> + </ion-infinite-scroll> +</ion-content> + +<ion-modal #authModal [backdropDismiss]="false"> + <ng-template> + <ion-content scrollY="false"> + <app-auth-modal></app-auth-modal> + </ion-content> + </ng-template> +</ion-modal> + +<ion-fab slot="fixed" vertical="bottom" horizontal="end" *ngIf="mobile"> + <ion-fab-button color="danger" (click)="transfer()"> + <ion-icon name="send"></ion-icon> + </ion-fab-button> +</ion-fab> + +<ng-template #itemSkeleton> + <ion-item> + <ion-icon slot="start" name="card"></ion-icon> + <ion-label> + <h3><ion-skeleton-text animated style="width: 20%"></ion-skeleton-text></h3> + <p><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></p> + </ion-label> + </ion-item> +</ng-template> diff --git a/src/app/history/wallet-tx.page.scss b/src/app/history/wallet-tx.page.scss new file mode 100644 index 0000000000000000000000000000000000000000..ab2ce46ec83127c23f099ba2cbf821a159a0c3b0 --- /dev/null +++ b/src/app/history/wallet-tx.page.scss @@ -0,0 +1,28 @@ +ion-toolbar { + div[slot='end'], + ion-buttons[slot='end'] { + padding-inline-end: var(--ion-padding); + color: var(--ion-text-color, #000); + } +} + +ion-item { + h2, + h3, + h4 { + a.tx-account { + color: var(--ion-color-dark); + + &.member { + color: var(--ion-color-primary) !important; + } + } + } + p a.tx-timestamp { + color: var(--ion-color-medium); + + &:hover { + text-decoration: underline; + } + } +} diff --git a/src/app/history/wallet-tx.page.ts b/src/app/history/wallet-tx.page.ts new file mode 100644 index 0000000000000000000000000000000000000000..297d465351aa2630fa404448c183d8198b977265 --- /dev/null +++ b/src/app/history/wallet-tx.page.ts @@ -0,0 +1,270 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnInit, Output, ViewChild } from '@angular/core'; +import { AppPage, AppPageState } from '@app/shared/pages/base-page.class'; +import { Account, AccountUtils } from '@app/account/account.model'; +import { arraySize, isNil, isNotEmptyArray, isNotNilOrBlank, toNumber } from '@app/shared/functions'; +import { NetworkService } from '@app/network/network.service'; +import { ActionSheetOptions, InfiniteScrollCustomEvent, IonModal, PopoverOptions, RefresherCustomEvent } from '@ionic/angular'; +import { ActivatedRoute, Router } from '@angular/router'; +import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; +import { filter, map, mergeMap, tap } from 'rxjs/operators'; +import { AccountsService } from '@app/account/accounts.service'; +import { firstValueFrom, merge, Observable } from 'rxjs'; +import { RxState } from '@rx-angular/state'; +import { + APP_TRANSFER_CONTROLLER, + ITransferController, + Transfer, + TransferFormOptions, + TransferSearchFilter, + TransferSearchFilterUtils, +} from '@app/transfer/transfer.model'; +import { IndexerService } from '@app/network/indexer.service'; +import { FetchMoreFn, LoadResult } from '@app/shared/services/service.model'; + +export interface WalletTxState extends AppPageState { + accounts: Account[]; + account: Account; + owner: boolean; // is owned by user ? + address: string; + currency: string; + balance: number; + + filter: TransferSearchFilter; + limit: number; + items: Transfer[]; + count: number; + canFetchMore: boolean; + fetchMoreFn: FetchMoreFn<LoadResult<Transfer>>; +} + +@Component({ + selector: 'app-wallet-tx', + templateUrl: './wallet-tx.page.html', + styleUrls: ['./wallet-tx.page.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + providers: [RxState], +}) +export class WalletTxPage extends AppPage<WalletTxState> implements OnInit { + @RxStateSelect() protected items$: Observable<Transfer[]>; + @RxStateSelect() protected count$: Observable<number>; + @RxStateSelect() protected accounts$: Observable<Account[]>; + @RxStateSelect() protected account$: Observable<Account>; + @RxStateSelect() protected address$: Observable<string>; + @RxStateSelect() protected owner$: Observable<boolean>; + @RxStateSelect() protected canFetchMore$: Observable<boolean>; + + @RxStateProperty() currency: string; + @RxStateProperty() accounts: Account[]; + @RxStateProperty() account: Account; + @RxStateProperty() address: string; + @RxStateProperty() count: number; + @RxStateProperty() fetchMoreFn: FetchMoreFn<LoadResult<Transfer>>; + @RxStateProperty() canFetchMore: boolean; + + @Input() @RxStateProperty() filter: TransferSearchFilter; + @Input() @RxStateProperty() limit: number; + + @Output() refresh = new EventEmitter<RefresherCustomEvent>(); + + get balance(): number { + if (!this.account?.data) return undefined; + return (this.account.data.free || 0) + (this.account.data.reserved || 0); + } + + protected actionSheetOptions: Partial<ActionSheetOptions> = { + cssClass: 'select-account-action-sheet', + }; + protected popoverOptions: Partial<PopoverOptions> = { + cssClass: 'select-account-popover', + }; + + @ViewChild('authModal') authModal: IonModal; + + constructor( + protected router: Router, + protected route: ActivatedRoute, + protected networkService: NetworkService, + protected indexerService: IndexerService, + protected accountService: AccountsService, + @Inject(APP_TRANSFER_CONTROLLER) protected transferController: ITransferController + ) { + super({ + name: 'wallet-tx-page', + loadDueTime: accountService.started ? 0 : 250, + initialState: { + canFetchMore: false, + }, + }); + + // Watch address from route or account + this._state.connect( + 'address', + merge(this.route.paramMap.pipe(map((paramMap) => paramMap.get('address'))), this.account$.pipe(map((a) => a?.address))).pipe( + filter((address) => isNotNilOrBlank(address) && address !== this.address) + ) + ); + + // Watch accounts + this._state.connect('accounts', this.accountService.watchAll()); + + // Load by address + this._state.connect( + 'account', + this._state + .select(['accounts', 'address'], (res) => res) + .pipe( + filter(({ address }) => isNil(this.account) && isNotNilOrBlank(address)), + mergeMap(async ({ accounts, address }) => { + console.debug(this._logPrefix + 'Loading account from address: ' + address); + + if (isNotEmptyArray(accounts)) { + let account: Account; + if (address === 'default') { + account = await this.accountService.getDefault(); + return account; + } + + // Load by address + const exists = await this.accountService.isAvailable(address); + if (exists) { + return this.accountService.getByAddress(address); + } + + // Try by name + try { + account = await this.accountService.getByName(address); + return account; + } catch (err) { + const { data } = await firstValueFrom(this.indexerService.wotSearch({ address }, { limit: 1 })); + if (data?.length) return data[0]; + throw err; + } + } else { + return (await firstValueFrom(this.indexerService.wotSearch({ address }, { limit: 1 })))?.[0]; + } + }) + ) + ); + + // Create filter + this._state.connect( + 'filter', + this.address$.pipe( + filter((address) => address && address !== 'default'), + map((address) => <TransferSearchFilter>{ address }) + ) + ); + + // Load items + this._state.connect( + 'items', + merge( + this.refresh.pipe( + filter(() => !this.loading), + map(() => ({ filter: this.filter, limit: this.limit })) + ), + this._state.select(['filter', 'limit', 'account'], (res) => res, { + filter: TransferSearchFilterUtils.isEquals, + limit: (l1, l2) => l1 === l2, + account: AccountUtils.isEquals, + }) + ).pipe( + filter(({ filter }) => !TransferSearchFilterUtils.isEmpty(filter)), + mergeMap(({ filter, limit }) => this.search(filter, { offset: 0, limit })), + map(({ data, fetchMore }) => { + this.fetchMoreFn = fetchMore; + this.canFetchMore = !!fetchMore; + return data; + }) + ) + ); + + this._state.connect('count', this.items$.pipe(map(arraySize))); + } + + async ngOnInit() { + console.info(this._logPrefix + 'Initializing...'); + super.ngOnInit(); + + this.limit = toNumber(this.limit, 15); + } + + search(searchFilter?: TransferSearchFilter, options?: { limit: number; offset: number }): Observable<LoadResult<Transfer>> { + try { + this.markAsLoading(); + + return this.indexerService.transferSearch(searchFilter, options).pipe( + filter(() => TransferSearchFilterUtils.isEquals(this.filter, searchFilter)), + tap(() => this.markAsLoaded()) + ); + } catch (err) { + this.setError(err); + this.markAsLoaded(); + } + } + + protected async ngOnLoad(): Promise<WalletTxState> { + await this.accountService.ready(); + + return <WalletTxState>{ + account: null, + address: this.activatedRoute.snapshot.paramMap.get('address'), + currency: this.networkService.currencySymbol, + }; + } + + transfer(opts?: TransferFormOptions) { + return this.transferController.transfer({ account: this.account, modal: true, ...opts }); + } + + async showAccount(event: UIEvent, account: Account) { + if (!account.address) return; // skip + event.preventDefault(); + + // Self account + if (await this.accountService.isAvailable(account?.address)) { + return this.navController.navigateRoot(['wallet', account.address]); + } else { + return this.navController.navigateForward(['wot', account.address]); + } + } + + async fetchMore(event?: InfiniteScrollCustomEvent) { + // Wait end of current load + await this.waitIdle(); + + if (this.canFetchMore) { + console.debug(this._logPrefix + 'Fetching more items...'); + + let { data, fetchMore } = await this.fetchMoreFn(); + + // Fetch more again, since we fetch using a timestamp + while (data.length < this.limit && fetchMore) { + const res = await fetchMore(this.limit); + if (res.data?.length) data = [...data, ...res.data]; + fetchMore = res.fetchMore; + } + if (data?.length) { + this._state.set('items', (s) => [...s.items, ...data]); + } + + this.fetchMoreFn = fetchMore; + this.canFetchMore = !!fetchMore; + } + + if (event?.target && event.target.complete) { + await event.target.complete(); + } + } + + async doRefresh(event?: RefresherCustomEvent) { + this.refresh.emit(event); + + // When end of load + await this.waitIdle(); + + if (event?.target && event.target.complete) { + await event.target.complete(); + } + } +} diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index e00cfead46e88219339469f1612a7d11250497f1..7b5f6af125688896b33252c8ad74f99e4d396e49 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -10,7 +10,7 @@ import { AuthController } from '@app/account/auth.controller'; import { TransferController } from '@app/transfer/transfer.controller'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; import { Observable } from 'rxjs'; -import { Currency } from '@app/network/currency.model'; +import { Currency } from '@app/currency/currency.model'; import { RxState } from '@rx-angular/state'; import { setTimeout } from '@rx-angular/cdk/zone-less/browser'; diff --git a/src/app/network/indexer-helpers.generated.ts b/src/app/network/indexer-helpers.generated.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5738c5f8085cc4185a6f75364164c2e22deb306 --- /dev/null +++ b/src/app/network/indexer-helpers.generated.ts @@ -0,0 +1,928 @@ +// Auto-generated via `npx graphql-codegen`, do not edit +/* eslint-disable */ +import { FieldPolicy, FieldReadFunction, TypePolicies, TypePolicy } from '@apollo/client/cache'; +export type AccountKeySpecifier = ( + | 'id' + | 'identity' + | 'linkedIdentity' + | 'transfersIssued' + | 'transfersReceived' + | 'wasIdentity' + | AccountKeySpecifier +)[]; +export type AccountFieldPolicy = { + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; + linkedIdentity?: FieldPolicy<any> | FieldReadFunction<any>; + transfersIssued?: FieldPolicy<any> | FieldReadFunction<any>; + transfersReceived?: FieldPolicy<any> | FieldReadFunction<any>; + wasIdentity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type AccountEdgeKeySpecifier = ('cursor' | 'node' | AccountEdgeKeySpecifier)[]; +export type AccountEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type AccountsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | AccountsConnectionKeySpecifier)[]; +export type AccountsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlockKeySpecifier = ( + | 'calls' + | 'callsCount' + | 'events' + | 'eventsCount' + | 'extrinsics' + | 'extrinsicsCount' + | 'extrinsicsicRoot' + | 'hash' + | 'height' + | 'id' + | 'implName' + | 'implVersion' + | 'parentHash' + | 'specName' + | 'specVersion' + | 'stateRoot' + | 'timestamp' + | 'validator' + | BlockKeySpecifier +)[]; +export type BlockFieldPolicy = { + calls?: FieldPolicy<any> | FieldReadFunction<any>; + callsCount?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + eventsCount?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsics?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsCount?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsicRoot?: FieldPolicy<any> | FieldReadFunction<any>; + hash?: FieldPolicy<any> | FieldReadFunction<any>; + height?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + implName?: FieldPolicy<any> | FieldReadFunction<any>; + implVersion?: FieldPolicy<any> | FieldReadFunction<any>; + parentHash?: FieldPolicy<any> | FieldReadFunction<any>; + specName?: FieldPolicy<any> | FieldReadFunction<any>; + specVersion?: FieldPolicy<any> | FieldReadFunction<any>; + stateRoot?: FieldPolicy<any> | FieldReadFunction<any>; + timestamp?: FieldPolicy<any> | FieldReadFunction<any>; + validator?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlockEdgeKeySpecifier = ('cursor' | 'node' | BlockEdgeKeySpecifier)[]; +export type BlockEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlocksConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | BlocksConnectionKeySpecifier)[]; +export type BlocksConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallKeySpecifier = ( + | 'address' + | 'args' + | 'argsStr' + | 'block' + | 'error' + | 'events' + | 'extrinsic' + | 'id' + | 'name' + | 'pallet' + | 'parent' + | 'subcalls' + | 'success' + | CallKeySpecifier +)[]; +export type CallFieldPolicy = { + address?: FieldPolicy<any> | FieldReadFunction<any>; + args?: FieldPolicy<any> | FieldReadFunction<any>; + argsStr?: FieldPolicy<any> | FieldReadFunction<any>; + block?: FieldPolicy<any> | FieldReadFunction<any>; + error?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsic?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + pallet?: FieldPolicy<any> | FieldReadFunction<any>; + parent?: FieldPolicy<any> | FieldReadFunction<any>; + subcalls?: FieldPolicy<any> | FieldReadFunction<any>; + success?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallEdgeKeySpecifier = ('cursor' | 'node' | CallEdgeKeySpecifier)[]; +export type CallEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CallsConnectionKeySpecifier)[]; +export type CallsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertKeySpecifier = ( + | 'active' + | 'createdOn' + | 'creation' + | 'expireOn' + | 'id' + | 'issuer' + | 'receiver' + | 'removal' + | 'renewal' + | CertKeySpecifier +)[]; +export type CertFieldPolicy = { + active?: FieldPolicy<any> | FieldReadFunction<any>; + createdOn?: FieldPolicy<any> | FieldReadFunction<any>; + creation?: FieldPolicy<any> | FieldReadFunction<any>; + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + issuer?: FieldPolicy<any> | FieldReadFunction<any>; + receiver?: FieldPolicy<any> | FieldReadFunction<any>; + removal?: FieldPolicy<any> | FieldReadFunction<any>; + renewal?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertCreationKeySpecifier)[]; +export type CertCreationFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationEdgeKeySpecifier = ('cursor' | 'node' | CertCreationEdgeKeySpecifier)[]; +export type CertCreationEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertCreationsConnectionKeySpecifier)[]; +export type CertCreationsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertEdgeKeySpecifier = ('cursor' | 'node' | CertEdgeKeySpecifier)[]; +export type CertEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertRemovalKeySpecifier)[]; +export type CertRemovalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalEdgeKeySpecifier = ('cursor' | 'node' | CertRemovalEdgeKeySpecifier)[]; +export type CertRemovalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertRemovalsConnectionKeySpecifier)[]; +export type CertRemovalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertRenewalKeySpecifier)[]; +export type CertRenewalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalEdgeKeySpecifier = ('cursor' | 'node' | CertRenewalEdgeKeySpecifier)[]; +export type CertRenewalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertRenewalsConnectionKeySpecifier)[]; +export type CertRenewalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertsConnectionKeySpecifier)[]; +export type CertsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeyKeySpecifier = ('blockNumber' | 'id' | 'identity' | 'next' | 'previous' | ChangeOwnerKeyKeySpecifier)[]; +export type ChangeOwnerKeyFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; + next?: FieldPolicy<any> | FieldReadFunction<any>; + previous?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeyEdgeKeySpecifier = ('cursor' | 'node' | ChangeOwnerKeyEdgeKeySpecifier)[]; +export type ChangeOwnerKeyEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeysConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ChangeOwnerKeysConnectionKeySpecifier)[]; +export type ChangeOwnerKeysConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventKeySpecifier = ( + | 'args' + | 'argsStr' + | 'block' + | 'call' + | 'extrinsic' + | 'id' + | 'index' + | 'name' + | 'pallet' + | 'phase' + | EventKeySpecifier +)[]; +export type EventFieldPolicy = { + args?: FieldPolicy<any> | FieldReadFunction<any>; + argsStr?: FieldPolicy<any> | FieldReadFunction<any>; + block?: FieldPolicy<any> | FieldReadFunction<any>; + call?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsic?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + pallet?: FieldPolicy<any> | FieldReadFunction<any>; + phase?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventEdgeKeySpecifier = ('cursor' | 'node' | EventEdgeKeySpecifier)[]; +export type EventEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | EventsConnectionKeySpecifier)[]; +export type EventsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicKeySpecifier = ( + | 'block' + | 'call' + | 'calls' + | 'error' + | 'events' + | 'fee' + | 'hash' + | 'id' + | 'index' + | 'signature' + | 'success' + | 'tip' + | 'version' + | ExtrinsicKeySpecifier +)[]; +export type ExtrinsicFieldPolicy = { + block?: FieldPolicy<any> | FieldReadFunction<any>; + call?: FieldPolicy<any> | FieldReadFunction<any>; + calls?: FieldPolicy<any> | FieldReadFunction<any>; + error?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + fee?: FieldPolicy<any> | FieldReadFunction<any>; + hash?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + signature?: FieldPolicy<any> | FieldReadFunction<any>; + success?: FieldPolicy<any> | FieldReadFunction<any>; + tip?: FieldPolicy<any> | FieldReadFunction<any>; + version?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicEdgeKeySpecifier = ('cursor' | 'node' | ExtrinsicEdgeKeySpecifier)[]; +export type ExtrinsicEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicSignatureKeySpecifier = ('address' | 'signature' | 'signedExtensions' | ExtrinsicSignatureKeySpecifier)[]; +export type ExtrinsicSignatureFieldPolicy = { + address?: FieldPolicy<any> | FieldReadFunction<any>; + signature?: FieldPolicy<any> | FieldReadFunction<any>; + signedExtensions?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ExtrinsicsConnectionKeySpecifier)[]; +export type ExtrinsicsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentitiesConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | IdentitiesConnectionKeySpecifier)[]; +export type IdentitiesConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentityKeySpecifier = ( + | 'account' + | 'certIssued' + | 'certReceived' + | 'id' + | 'index' + | 'linkedAccount' + | 'membership' + | 'name' + | 'ownerKeyChange' + | 'smithCertIssued' + | 'smithCertReceived' + | 'smithMembership' + | IdentityKeySpecifier +)[]; +export type IdentityFieldPolicy = { + account?: FieldPolicy<any> | FieldReadFunction<any>; + certIssued?: FieldPolicy<any> | FieldReadFunction<any>; + certReceived?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + linkedAccount?: FieldPolicy<any> | FieldReadFunction<any>; + membership?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + ownerKeyChange?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertIssued?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertReceived?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembership?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentityEdgeKeySpecifier = ('cursor' | 'node' | IdentityEdgeKeySpecifier)[]; +export type IdentityEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCounterKeySpecifier = ('id' | 'level' | 'total' | 'type' | ItemsCounterKeySpecifier)[]; +export type ItemsCounterFieldPolicy = { + id?: FieldPolicy<any> | FieldReadFunction<any>; + level?: FieldPolicy<any> | FieldReadFunction<any>; + total?: FieldPolicy<any> | FieldReadFunction<any>; + type?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCounterEdgeKeySpecifier = ('cursor' | 'node' | ItemsCounterEdgeKeySpecifier)[]; +export type ItemsCounterEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCountersConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ItemsCountersConnectionKeySpecifier)[]; +export type ItemsCountersConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipKeySpecifier = ('expireOn' | 'id' | 'identity' | MembershipKeySpecifier)[]; +export type MembershipFieldPolicy = { + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipEdgeKeySpecifier = ('cursor' | 'node' | MembershipEdgeKeySpecifier)[]; +export type MembershipEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | MembershipsConnectionKeySpecifier)[]; +export type MembershipsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type PageInfoKeySpecifier = ('endCursor' | 'hasNextPage' | 'hasPreviousPage' | 'startCursor' | PageInfoKeySpecifier)[]; +export type PageInfoFieldPolicy = { + endCursor?: FieldPolicy<any> | FieldReadFunction<any>; + hasNextPage?: FieldPolicy<any> | FieldReadFunction<any>; + hasPreviousPage?: FieldPolicy<any> | FieldReadFunction<any>; + startCursor?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type QueryKeySpecifier = ( + | 'accountById' + | 'accountByUniqueInput' + | 'accounts' + | 'accountsConnection' + | 'blockById' + | 'blockByUniqueInput' + | 'blocks' + | 'blocksConnection' + | 'callById' + | 'callByUniqueInput' + | 'calls' + | 'callsConnection' + | 'certById' + | 'certByUniqueInput' + | 'certCreationById' + | 'certCreationByUniqueInput' + | 'certCreations' + | 'certCreationsConnection' + | 'certRemovalById' + | 'certRemovalByUniqueInput' + | 'certRemovals' + | 'certRemovalsConnection' + | 'certRenewalById' + | 'certRenewalByUniqueInput' + | 'certRenewals' + | 'certRenewalsConnection' + | 'certs' + | 'certsConnection' + | 'changeOwnerKeyById' + | 'changeOwnerKeyByUniqueInput' + | 'changeOwnerKeys' + | 'changeOwnerKeysConnection' + | 'eventById' + | 'eventByUniqueInput' + | 'events' + | 'eventsConnection' + | 'extrinsicById' + | 'extrinsicByUniqueInput' + | 'extrinsics' + | 'extrinsicsConnection' + | 'identities' + | 'identitiesConnection' + | 'identityById' + | 'identityByUniqueInput' + | 'itemsCounterById' + | 'itemsCounterByUniqueInput' + | 'itemsCounters' + | 'itemsCountersConnection' + | 'membershipById' + | 'membershipByUniqueInput' + | 'memberships' + | 'membershipsConnection' + | 'smithCertById' + | 'smithCertByUniqueInput' + | 'smithCertCreationById' + | 'smithCertCreationByUniqueInput' + | 'smithCertCreations' + | 'smithCertCreationsConnection' + | 'smithCertRemovalById' + | 'smithCertRemovalByUniqueInput' + | 'smithCertRemovals' + | 'smithCertRemovalsConnection' + | 'smithCertRenewalById' + | 'smithCertRenewalByUniqueInput' + | 'smithCertRenewals' + | 'smithCertRenewalsConnection' + | 'smithCerts' + | 'smithCertsConnection' + | 'smithMembershipById' + | 'smithMembershipByUniqueInput' + | 'smithMemberships' + | 'smithMembershipsConnection' + | 'squidStatus' + | 'transferById' + | 'transferByUniqueInput' + | 'transfers' + | 'transfersConnection' + | QueryKeySpecifier +)[]; +export type QueryFieldPolicy = { + accountById?: FieldPolicy<any> | FieldReadFunction<any>; + accountByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + accounts?: FieldPolicy<any> | FieldReadFunction<any>; + accountsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + blockById?: FieldPolicy<any> | FieldReadFunction<any>; + blockByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + blocks?: FieldPolicy<any> | FieldReadFunction<any>; + blocksConnection?: FieldPolicy<any> | FieldReadFunction<any>; + callById?: FieldPolicy<any> | FieldReadFunction<any>; + callByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + calls?: FieldPolicy<any> | FieldReadFunction<any>; + callsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certById?: FieldPolicy<any> | FieldReadFunction<any>; + certByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationById?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certCreations?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalById?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovals?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalById?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewals?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certs?: FieldPolicy<any> | FieldReadFunction<any>; + certsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeyById?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeyByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeys?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeysConnection?: FieldPolicy<any> | FieldReadFunction<any>; + eventById?: FieldPolicy<any> | FieldReadFunction<any>; + eventByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + eventsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicById?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsics?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + identities?: FieldPolicy<any> | FieldReadFunction<any>; + identitiesConnection?: FieldPolicy<any> | FieldReadFunction<any>; + identityById?: FieldPolicy<any> | FieldReadFunction<any>; + identityByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounterById?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounterByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounters?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCountersConnection?: FieldPolicy<any> | FieldReadFunction<any>; + membershipById?: FieldPolicy<any> | FieldReadFunction<any>; + membershipByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + memberships?: FieldPolicy<any> | FieldReadFunction<any>; + membershipsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreations?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovals?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewals?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCerts?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipById?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithMemberships?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + squidStatus?: FieldPolicy<any> | FieldReadFunction<any>; + transferById?: FieldPolicy<any> | FieldReadFunction<any>; + transferByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + transfers?: FieldPolicy<any> | FieldReadFunction<any>; + transfersConnection?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertKeySpecifier = ( + | 'active' + | 'createdOn' + | 'creation' + | 'expireOn' + | 'id' + | 'issuer' + | 'receiver' + | 'removal' + | 'renewal' + | SmithCertKeySpecifier +)[]; +export type SmithCertFieldPolicy = { + active?: FieldPolicy<any> | FieldReadFunction<any>; + createdOn?: FieldPolicy<any> | FieldReadFunction<any>; + creation?: FieldPolicy<any> | FieldReadFunction<any>; + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + issuer?: FieldPolicy<any> | FieldReadFunction<any>; + receiver?: FieldPolicy<any> | FieldReadFunction<any>; + removal?: FieldPolicy<any> | FieldReadFunction<any>; + renewal?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertCreationKeySpecifier)[]; +export type SmithCertCreationFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationEdgeKeySpecifier = ('cursor' | 'node' | SmithCertCreationEdgeKeySpecifier)[]; +export type SmithCertCreationEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertCreationsConnectionKeySpecifier)[]; +export type SmithCertCreationsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertEdgeKeySpecifier = ('cursor' | 'node' | SmithCertEdgeKeySpecifier)[]; +export type SmithCertEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertRemovalKeySpecifier)[]; +export type SmithCertRemovalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalEdgeKeySpecifier = ('cursor' | 'node' | SmithCertRemovalEdgeKeySpecifier)[]; +export type SmithCertRemovalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertRemovalsConnectionKeySpecifier)[]; +export type SmithCertRemovalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertRenewalKeySpecifier)[]; +export type SmithCertRenewalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalEdgeKeySpecifier = ('cursor' | 'node' | SmithCertRenewalEdgeKeySpecifier)[]; +export type SmithCertRenewalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertRenewalsConnectionKeySpecifier)[]; +export type SmithCertRenewalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertsConnectionKeySpecifier)[]; +export type SmithCertsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipKeySpecifier = ('expireOn' | 'id' | 'identity' | SmithMembershipKeySpecifier)[]; +export type SmithMembershipFieldPolicy = { + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipEdgeKeySpecifier = ('cursor' | 'node' | SmithMembershipEdgeKeySpecifier)[]; +export type SmithMembershipEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithMembershipsConnectionKeySpecifier)[]; +export type SmithMembershipsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SquidStatusKeySpecifier = ('height' | SquidStatusKeySpecifier)[]; +export type SquidStatusFieldPolicy = { + height?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransferKeySpecifier = ('amount' | 'blockNumber' | 'comment' | 'from' | 'id' | 'timestamp' | 'to' | TransferKeySpecifier)[]; +export type TransferFieldPolicy = { + amount?: FieldPolicy<any> | FieldReadFunction<any>; + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + comment?: FieldPolicy<any> | FieldReadFunction<any>; + from?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + timestamp?: FieldPolicy<any> | FieldReadFunction<any>; + to?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransferEdgeKeySpecifier = ('cursor' | 'node' | TransferEdgeKeySpecifier)[]; +export type TransferEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransfersConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | TransfersConnectionKeySpecifier)[]; +export type TransfersConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type StrictTypedTypePolicies = { + Account?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountKeySpecifier | (() => undefined | AccountKeySpecifier); + fields?: AccountFieldPolicy; + }; + AccountEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountEdgeKeySpecifier | (() => undefined | AccountEdgeKeySpecifier); + fields?: AccountEdgeFieldPolicy; + }; + AccountsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountsConnectionKeySpecifier | (() => undefined | AccountsConnectionKeySpecifier); + fields?: AccountsConnectionFieldPolicy; + }; + Block?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlockKeySpecifier | (() => undefined | BlockKeySpecifier); + fields?: BlockFieldPolicy; + }; + BlockEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlockEdgeKeySpecifier | (() => undefined | BlockEdgeKeySpecifier); + fields?: BlockEdgeFieldPolicy; + }; + BlocksConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlocksConnectionKeySpecifier | (() => undefined | BlocksConnectionKeySpecifier); + fields?: BlocksConnectionFieldPolicy; + }; + Call?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallKeySpecifier | (() => undefined | CallKeySpecifier); + fields?: CallFieldPolicy; + }; + CallEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallEdgeKeySpecifier | (() => undefined | CallEdgeKeySpecifier); + fields?: CallEdgeFieldPolicy; + }; + CallsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallsConnectionKeySpecifier | (() => undefined | CallsConnectionKeySpecifier); + fields?: CallsConnectionFieldPolicy; + }; + Cert?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertKeySpecifier | (() => undefined | CertKeySpecifier); + fields?: CertFieldPolicy; + }; + CertCreation?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationKeySpecifier | (() => undefined | CertCreationKeySpecifier); + fields?: CertCreationFieldPolicy; + }; + CertCreationEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationEdgeKeySpecifier | (() => undefined | CertCreationEdgeKeySpecifier); + fields?: CertCreationEdgeFieldPolicy; + }; + CertCreationsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationsConnectionKeySpecifier | (() => undefined | CertCreationsConnectionKeySpecifier); + fields?: CertCreationsConnectionFieldPolicy; + }; + CertEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertEdgeKeySpecifier | (() => undefined | CertEdgeKeySpecifier); + fields?: CertEdgeFieldPolicy; + }; + CertRemoval?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalKeySpecifier | (() => undefined | CertRemovalKeySpecifier); + fields?: CertRemovalFieldPolicy; + }; + CertRemovalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalEdgeKeySpecifier | (() => undefined | CertRemovalEdgeKeySpecifier); + fields?: CertRemovalEdgeFieldPolicy; + }; + CertRemovalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalsConnectionKeySpecifier | (() => undefined | CertRemovalsConnectionKeySpecifier); + fields?: CertRemovalsConnectionFieldPolicy; + }; + CertRenewal?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalKeySpecifier | (() => undefined | CertRenewalKeySpecifier); + fields?: CertRenewalFieldPolicy; + }; + CertRenewalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalEdgeKeySpecifier | (() => undefined | CertRenewalEdgeKeySpecifier); + fields?: CertRenewalEdgeFieldPolicy; + }; + CertRenewalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalsConnectionKeySpecifier | (() => undefined | CertRenewalsConnectionKeySpecifier); + fields?: CertRenewalsConnectionFieldPolicy; + }; + CertsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertsConnectionKeySpecifier | (() => undefined | CertsConnectionKeySpecifier); + fields?: CertsConnectionFieldPolicy; + }; + ChangeOwnerKey?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeyKeySpecifier | (() => undefined | ChangeOwnerKeyKeySpecifier); + fields?: ChangeOwnerKeyFieldPolicy; + }; + ChangeOwnerKeyEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeyEdgeKeySpecifier | (() => undefined | ChangeOwnerKeyEdgeKeySpecifier); + fields?: ChangeOwnerKeyEdgeFieldPolicy; + }; + ChangeOwnerKeysConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeysConnectionKeySpecifier | (() => undefined | ChangeOwnerKeysConnectionKeySpecifier); + fields?: ChangeOwnerKeysConnectionFieldPolicy; + }; + Event?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventKeySpecifier | (() => undefined | EventKeySpecifier); + fields?: EventFieldPolicy; + }; + EventEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventEdgeKeySpecifier | (() => undefined | EventEdgeKeySpecifier); + fields?: EventEdgeFieldPolicy; + }; + EventsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventsConnectionKeySpecifier | (() => undefined | EventsConnectionKeySpecifier); + fields?: EventsConnectionFieldPolicy; + }; + Extrinsic?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicKeySpecifier | (() => undefined | ExtrinsicKeySpecifier); + fields?: ExtrinsicFieldPolicy; + }; + ExtrinsicEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicEdgeKeySpecifier | (() => undefined | ExtrinsicEdgeKeySpecifier); + fields?: ExtrinsicEdgeFieldPolicy; + }; + ExtrinsicSignature?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicSignatureKeySpecifier | (() => undefined | ExtrinsicSignatureKeySpecifier); + fields?: ExtrinsicSignatureFieldPolicy; + }; + ExtrinsicsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicsConnectionKeySpecifier | (() => undefined | ExtrinsicsConnectionKeySpecifier); + fields?: ExtrinsicsConnectionFieldPolicy; + }; + IdentitiesConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentitiesConnectionKeySpecifier | (() => undefined | IdentitiesConnectionKeySpecifier); + fields?: IdentitiesConnectionFieldPolicy; + }; + Identity?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentityKeySpecifier | (() => undefined | IdentityKeySpecifier); + fields?: IdentityFieldPolicy; + }; + IdentityEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentityEdgeKeySpecifier | (() => undefined | IdentityEdgeKeySpecifier); + fields?: IdentityEdgeFieldPolicy; + }; + ItemsCounter?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCounterKeySpecifier | (() => undefined | ItemsCounterKeySpecifier); + fields?: ItemsCounterFieldPolicy; + }; + ItemsCounterEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCounterEdgeKeySpecifier | (() => undefined | ItemsCounterEdgeKeySpecifier); + fields?: ItemsCounterEdgeFieldPolicy; + }; + ItemsCountersConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCountersConnectionKeySpecifier | (() => undefined | ItemsCountersConnectionKeySpecifier); + fields?: ItemsCountersConnectionFieldPolicy; + }; + Membership?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipKeySpecifier | (() => undefined | MembershipKeySpecifier); + fields?: MembershipFieldPolicy; + }; + MembershipEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipEdgeKeySpecifier | (() => undefined | MembershipEdgeKeySpecifier); + fields?: MembershipEdgeFieldPolicy; + }; + MembershipsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipsConnectionKeySpecifier | (() => undefined | MembershipsConnectionKeySpecifier); + fields?: MembershipsConnectionFieldPolicy; + }; + PageInfo?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | PageInfoKeySpecifier | (() => undefined | PageInfoKeySpecifier); + fields?: PageInfoFieldPolicy; + }; + Query?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | QueryKeySpecifier | (() => undefined | QueryKeySpecifier); + fields?: QueryFieldPolicy; + }; + SmithCert?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertKeySpecifier | (() => undefined | SmithCertKeySpecifier); + fields?: SmithCertFieldPolicy; + }; + SmithCertCreation?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationKeySpecifier | (() => undefined | SmithCertCreationKeySpecifier); + fields?: SmithCertCreationFieldPolicy; + }; + SmithCertCreationEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationEdgeKeySpecifier | (() => undefined | SmithCertCreationEdgeKeySpecifier); + fields?: SmithCertCreationEdgeFieldPolicy; + }; + SmithCertCreationsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationsConnectionKeySpecifier | (() => undefined | SmithCertCreationsConnectionKeySpecifier); + fields?: SmithCertCreationsConnectionFieldPolicy; + }; + SmithCertEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertEdgeKeySpecifier | (() => undefined | SmithCertEdgeKeySpecifier); + fields?: SmithCertEdgeFieldPolicy; + }; + SmithCertRemoval?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalKeySpecifier | (() => undefined | SmithCertRemovalKeySpecifier); + fields?: SmithCertRemovalFieldPolicy; + }; + SmithCertRemovalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalEdgeKeySpecifier | (() => undefined | SmithCertRemovalEdgeKeySpecifier); + fields?: SmithCertRemovalEdgeFieldPolicy; + }; + SmithCertRemovalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalsConnectionKeySpecifier | (() => undefined | SmithCertRemovalsConnectionKeySpecifier); + fields?: SmithCertRemovalsConnectionFieldPolicy; + }; + SmithCertRenewal?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalKeySpecifier | (() => undefined | SmithCertRenewalKeySpecifier); + fields?: SmithCertRenewalFieldPolicy; + }; + SmithCertRenewalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalEdgeKeySpecifier | (() => undefined | SmithCertRenewalEdgeKeySpecifier); + fields?: SmithCertRenewalEdgeFieldPolicy; + }; + SmithCertRenewalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalsConnectionKeySpecifier | (() => undefined | SmithCertRenewalsConnectionKeySpecifier); + fields?: SmithCertRenewalsConnectionFieldPolicy; + }; + SmithCertsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertsConnectionKeySpecifier | (() => undefined | SmithCertsConnectionKeySpecifier); + fields?: SmithCertsConnectionFieldPolicy; + }; + SmithMembership?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipKeySpecifier | (() => undefined | SmithMembershipKeySpecifier); + fields?: SmithMembershipFieldPolicy; + }; + SmithMembershipEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipEdgeKeySpecifier | (() => undefined | SmithMembershipEdgeKeySpecifier); + fields?: SmithMembershipEdgeFieldPolicy; + }; + SmithMembershipsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipsConnectionKeySpecifier | (() => undefined | SmithMembershipsConnectionKeySpecifier); + fields?: SmithMembershipsConnectionFieldPolicy; + }; + SquidStatus?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SquidStatusKeySpecifier | (() => undefined | SquidStatusKeySpecifier); + fields?: SquidStatusFieldPolicy; + }; + Transfer?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransferKeySpecifier | (() => undefined | TransferKeySpecifier); + fields?: TransferFieldPolicy; + }; + TransferEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransferEdgeKeySpecifier | (() => undefined | TransferEdgeKeySpecifier); + fields?: TransferEdgeFieldPolicy; + }; + TransfersConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransfersConnectionKeySpecifier | (() => undefined | TransfersConnectionKeySpecifier); + fields?: TransfersConnectionFieldPolicy; + }; +}; +export type TypedTypePolicies = StrictTypedTypePolicies & TypePolicies; diff --git a/src/app/network/indexer-schema.graphql b/src/app/network/indexer-schema.graphql new file mode 100644 index 0000000000000000000000000000000000000000..d3277b83fe19f52d11508ce9a14d69e32703e18c --- /dev/null +++ b/src/app/network/indexer-schema.graphql @@ -0,0 +1,2476 @@ +# This file was generated. Do not edit manually. + +schema { + query: Query +} + +type Account { + "Account address is SS58 format" + id: String! + "current account for the identity" + identity: Identity + "linked to the identity" + linkedIdentity: Identity + transfersIssued(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + transfersReceived(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + "was once account of the identity" + wasIdentity(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! +} + +type AccountEdge { + cursor: String! + node: Account! +} + +type AccountsConnection { + edges: [AccountEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Block { + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + callsCount: Int! + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + eventsCount: Int! + extrinsics(limit: Int, offset: Int, orderBy: [ExtrinsicOrderByInput!], where: ExtrinsicWhereInput): [Extrinsic!]! + extrinsicsCount: Int! + extrinsicsicRoot: Bytes! + hash: Bytes! + height: Int! + "BlockHeight-blockHash - e.g. 0001812319-0001c" + id: String! + implName: String! + implVersion: Int! + parentHash: Bytes! + specName: String! + specVersion: Int! + stateRoot: Bytes! + timestamp: DateTime! + validator: Bytes +} + +type BlockEdge { + cursor: String! + node: Block! +} + +type BlocksConnection { + edges: [BlockEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Call { + address: [Int!]! + args: JSON + argsStr: [String] + block: Block! + error: JSON + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + extrinsic: Extrinsic + id: String! + name: String! + pallet: String! + parent: Call + subcalls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + success: Boolean! +} + +type CallEdge { + cursor: String! + node: Call! +} + +type CallsConnection { + edges: [CallEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Certification" +type Cert { + "whether the certification is currently active or not" + active: Boolean! + "the last createdOn value" + createdOn: Int! + creation(limit: Int, offset: Int, orderBy: [CertCreationOrderByInput!], where: CertCreationWhereInput): [CertCreation!]! + "the current expireOn value" + expireOn: Int! + id: String! + issuer: Identity! + receiver: Identity! + removal(limit: Int, offset: Int, orderBy: [CertRemovalOrderByInput!], where: CertRemovalWhereInput): [CertRemoval!]! + renewal(limit: Int, offset: Int, orderBy: [CertRenewalOrderByInput!], where: CertRenewalWhereInput): [CertRenewal!]! +} + +"Certification creation" +type CertCreation { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertCreationEdge { + cursor: String! + node: CertCreation! +} + +type CertCreationsConnection { + edges: [CertCreationEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type CertEdge { + cursor: String! + node: Cert! +} + +"Certification removal" +type CertRemoval { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertRemovalEdge { + cursor: String! + node: CertRemoval! +} + +type CertRemovalsConnection { + edges: [CertRemovalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Certification renewal" +type CertRenewal { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertRenewalEdge { + cursor: String! + node: CertRenewal! +} + +type CertRenewalsConnection { + edges: [CertRenewalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type CertsConnection { + edges: [CertEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"owner key change" +type ChangeOwnerKey { + blockNumber: Int! + id: String! + identity: Identity! + next: Account! + previous: Account! +} + +type ChangeOwnerKeyEdge { + cursor: String! + node: ChangeOwnerKey! +} + +type ChangeOwnerKeysConnection { + edges: [ChangeOwnerKeyEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Event { + args: JSON + argsStr: [String] + block: Block! + call: Call + extrinsic: Extrinsic + "Event id - e.g. 0000000001-000000-272d6" + id: String! + index: Int! + name: String! + pallet: String! + phase: String! +} + +type EventEdge { + cursor: String! + node: Event! +} + +type EventsConnection { + edges: [EventEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Extrinsic { + block: Block! + call: Call! + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + error: JSON + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + fee: BigInt + hash: Bytes! + id: String! + index: Int! + signature: ExtrinsicSignature + success: Boolean + tip: BigInt + version: Int! +} + +type ExtrinsicEdge { + cursor: String! + node: Extrinsic! +} + +type ExtrinsicSignature { + address: JSON + signature: JSON + signedExtensions: JSON +} + +type ExtrinsicsConnection { + edges: [ExtrinsicEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type IdentitiesConnection { + edges: [IdentityEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Identity" +type Identity { + "Current account" + account: Account! + "Certifications issued" + certIssued(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + "Certifications received" + certReceived(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + id: String! + "Identity index" + index: Int! + "linked accounts" + linkedAccount(limit: Int, offset: Int, orderBy: [AccountOrderByInput!], where: AccountWhereInput): [Account!]! + "Membership of the identity" + membership: Membership + "Name" + name: String! + "Owner key changes" + ownerKeyChange(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! + "Smith certifications issued" + smithCertIssued(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + "Smith certifications received" + smithCertReceived(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + "Smith Membership of the identity" + smithMembership: SmithMembership +} + +type IdentityEdge { + cursor: String! + node: Identity! +} + +type ItemsCounter { + id: String! + level: CounterLevel! + total: Int! + type: ItemType! +} + +type ItemsCounterEdge { + cursor: String! + node: ItemsCounter! +} + +type ItemsCountersConnection { + edges: [ItemsCounterEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Membership" +type Membership { + expireOn: Int! + id: String! + identity: Identity! +} + +type MembershipEdge { + cursor: String! + node: Membership! +} + +type MembershipsConnection { + edges: [MembershipEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type PageInfo { + endCursor: String! + hasNextPage: Boolean! + hasPreviousPage: Boolean! + startCursor: String! +} + +type Query { + accountById(id: String!): Account + accountByUniqueInput(where: WhereIdInput!): Account @deprecated(reason: "Use accountById") + accounts(limit: Int, offset: Int, orderBy: [AccountOrderByInput!], where: AccountWhereInput): [Account!]! + accountsConnection(after: String, first: Int, orderBy: [AccountOrderByInput!]!, where: AccountWhereInput): AccountsConnection! + blockById(id: String!): Block + blockByUniqueInput(where: WhereIdInput!): Block @deprecated(reason: "Use blockById") + blocks(limit: Int, offset: Int, orderBy: [BlockOrderByInput!], where: BlockWhereInput): [Block!]! + blocksConnection(after: String, first: Int, orderBy: [BlockOrderByInput!]!, where: BlockWhereInput): BlocksConnection! + callById(id: String!): Call + callByUniqueInput(where: WhereIdInput!): Call @deprecated(reason: "Use callById") + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + callsConnection(after: String, first: Int, orderBy: [CallOrderByInput!]!, where: CallWhereInput): CallsConnection! + certById(id: String!): Cert + certByUniqueInput(where: WhereIdInput!): Cert @deprecated(reason: "Use certById") + certCreationById(id: String!): CertCreation + certCreationByUniqueInput(where: WhereIdInput!): CertCreation @deprecated(reason: "Use certCreationById") + certCreations(limit: Int, offset: Int, orderBy: [CertCreationOrderByInput!], where: CertCreationWhereInput): [CertCreation!]! + certCreationsConnection(after: String, first: Int, orderBy: [CertCreationOrderByInput!]!, where: CertCreationWhereInput): CertCreationsConnection! + certRemovalById(id: String!): CertRemoval + certRemovalByUniqueInput(where: WhereIdInput!): CertRemoval @deprecated(reason: "Use certRemovalById") + certRemovals(limit: Int, offset: Int, orderBy: [CertRemovalOrderByInput!], where: CertRemovalWhereInput): [CertRemoval!]! + certRemovalsConnection(after: String, first: Int, orderBy: [CertRemovalOrderByInput!]!, where: CertRemovalWhereInput): CertRemovalsConnection! + certRenewalById(id: String!): CertRenewal + certRenewalByUniqueInput(where: WhereIdInput!): CertRenewal @deprecated(reason: "Use certRenewalById") + certRenewals(limit: Int, offset: Int, orderBy: [CertRenewalOrderByInput!], where: CertRenewalWhereInput): [CertRenewal!]! + certRenewalsConnection(after: String, first: Int, orderBy: [CertRenewalOrderByInput!]!, where: CertRenewalWhereInput): CertRenewalsConnection! + certs(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + certsConnection(after: String, first: Int, orderBy: [CertOrderByInput!]!, where: CertWhereInput): CertsConnection! + changeOwnerKeyById(id: String!): ChangeOwnerKey + changeOwnerKeyByUniqueInput(where: WhereIdInput!): ChangeOwnerKey @deprecated(reason: "Use changeOwnerKeyById") + changeOwnerKeys(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! + changeOwnerKeysConnection(after: String, first: Int, orderBy: [ChangeOwnerKeyOrderByInput!]!, where: ChangeOwnerKeyWhereInput): ChangeOwnerKeysConnection! + eventById(id: String!): Event + eventByUniqueInput(where: WhereIdInput!): Event @deprecated(reason: "Use eventById") + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + eventsConnection(after: String, first: Int, orderBy: [EventOrderByInput!]!, where: EventWhereInput): EventsConnection! + extrinsicById(id: String!): Extrinsic + extrinsicByUniqueInput(where: WhereIdInput!): Extrinsic @deprecated(reason: "Use extrinsicById") + extrinsics(limit: Int, offset: Int, orderBy: [ExtrinsicOrderByInput!], where: ExtrinsicWhereInput): [Extrinsic!]! + extrinsicsConnection(after: String, first: Int, orderBy: [ExtrinsicOrderByInput!]!, where: ExtrinsicWhereInput): ExtrinsicsConnection! + identities(limit: Int, offset: Int, orderBy: [IdentityOrderByInput!], where: IdentityWhereInput): [Identity!]! + identitiesConnection(after: String, first: Int, orderBy: [IdentityOrderByInput!]!, where: IdentityWhereInput): IdentitiesConnection! + identityById(id: String!): Identity + identityByUniqueInput(where: WhereIdInput!): Identity @deprecated(reason: "Use identityById") + itemsCounterById(id: String!): ItemsCounter + itemsCounterByUniqueInput(where: WhereIdInput!): ItemsCounter @deprecated(reason: "Use itemsCounterById") + itemsCounters(limit: Int, offset: Int, orderBy: [ItemsCounterOrderByInput!], where: ItemsCounterWhereInput): [ItemsCounter!]! + itemsCountersConnection(after: String, first: Int, orderBy: [ItemsCounterOrderByInput!]!, where: ItemsCounterWhereInput): ItemsCountersConnection! + membershipById(id: String!): Membership + membershipByUniqueInput(where: WhereIdInput!): Membership @deprecated(reason: "Use membershipById") + memberships(limit: Int, offset: Int, orderBy: [MembershipOrderByInput!], where: MembershipWhereInput): [Membership!]! + membershipsConnection(after: String, first: Int, orderBy: [MembershipOrderByInput!]!, where: MembershipWhereInput): MembershipsConnection! + smithCertById(id: String!): SmithCert + smithCertByUniqueInput(where: WhereIdInput!): SmithCert @deprecated(reason: "Use smithCertById") + smithCertCreationById(id: String!): SmithCertCreation + smithCertCreationByUniqueInput(where: WhereIdInput!): SmithCertCreation @deprecated(reason: "Use smithCertCreationById") + smithCertCreations(limit: Int, offset: Int, orderBy: [SmithCertCreationOrderByInput!], where: SmithCertCreationWhereInput): [SmithCertCreation!]! + smithCertCreationsConnection(after: String, first: Int, orderBy: [SmithCertCreationOrderByInput!]!, where: SmithCertCreationWhereInput): SmithCertCreationsConnection! + smithCertRemovalById(id: String!): SmithCertRemoval + smithCertRemovalByUniqueInput(where: WhereIdInput!): SmithCertRemoval @deprecated(reason: "Use smithCertRemovalById") + smithCertRemovals(limit: Int, offset: Int, orderBy: [SmithCertRemovalOrderByInput!], where: SmithCertRemovalWhereInput): [SmithCertRemoval!]! + smithCertRemovalsConnection(after: String, first: Int, orderBy: [SmithCertRemovalOrderByInput!]!, where: SmithCertRemovalWhereInput): SmithCertRemovalsConnection! + smithCertRenewalById(id: String!): SmithCertRenewal + smithCertRenewalByUniqueInput(where: WhereIdInput!): SmithCertRenewal @deprecated(reason: "Use smithCertRenewalById") + smithCertRenewals(limit: Int, offset: Int, orderBy: [SmithCertRenewalOrderByInput!], where: SmithCertRenewalWhereInput): [SmithCertRenewal!]! + smithCertRenewalsConnection(after: String, first: Int, orderBy: [SmithCertRenewalOrderByInput!]!, where: SmithCertRenewalWhereInput): SmithCertRenewalsConnection! + smithCerts(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + smithCertsConnection(after: String, first: Int, orderBy: [SmithCertOrderByInput!]!, where: SmithCertWhereInput): SmithCertsConnection! + smithMembershipById(id: String!): SmithMembership + smithMembershipByUniqueInput(where: WhereIdInput!): SmithMembership @deprecated(reason: "Use smithMembershipById") + smithMemberships(limit: Int, offset: Int, orderBy: [SmithMembershipOrderByInput!], where: SmithMembershipWhereInput): [SmithMembership!]! + smithMembershipsConnection(after: String, first: Int, orderBy: [SmithMembershipOrderByInput!]!, where: SmithMembershipWhereInput): SmithMembershipsConnection! + squidStatus: SquidStatus + transferById(id: String!): Transfer + transferByUniqueInput(where: WhereIdInput!): Transfer @deprecated(reason: "Use transferById") + transfers(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + transfersConnection(after: String, first: Int, orderBy: [TransferOrderByInput!]!, where: TransferWhereInput): TransfersConnection! +} + +"Smith certification" +type SmithCert { + active: Boolean! + createdOn: Int! + creation(limit: Int, offset: Int, orderBy: [SmithCertCreationOrderByInput!], where: SmithCertCreationWhereInput): [SmithCertCreation!]! + expireOn: Int! + id: String! + issuer: Identity! + receiver: Identity! + removal(limit: Int, offset: Int, orderBy: [SmithCertRemovalOrderByInput!], where: SmithCertRemovalWhereInput): [SmithCertRemoval!]! + renewal(limit: Int, offset: Int, orderBy: [SmithCertRenewalOrderByInput!], where: SmithCertRenewalWhereInput): [SmithCertRenewal!]! +} + +type SmithCertCreation { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertCreationEdge { + cursor: String! + node: SmithCertCreation! +} + +type SmithCertCreationsConnection { + edges: [SmithCertCreationEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertEdge { + cursor: String! + node: SmithCert! +} + +type SmithCertRemoval { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertRemovalEdge { + cursor: String! + node: SmithCertRemoval! +} + +type SmithCertRemovalsConnection { + edges: [SmithCertRemovalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertRenewal { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertRenewalEdge { + cursor: String! + node: SmithCertRenewal! +} + +type SmithCertRenewalsConnection { + edges: [SmithCertRenewalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertsConnection { + edges: [SmithCertEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Smith membership" +type SmithMembership { + expireOn: Int! + id: String! + identity: Identity! +} + +type SmithMembershipEdge { + cursor: String! + node: SmithMembership! +} + +type SmithMembershipsConnection { + edges: [SmithMembershipEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SquidStatus { + "The height of the processed part of the chain" + height: Int +} + +type Transfer { + amount: BigInt! + blockNumber: Int! + comment: String + from: Account! + id: String! + timestamp: DateTime! + to: Account! +} + +type TransferEdge { + cursor: String! + node: Transfer! +} + +type TransfersConnection { + edges: [TransferEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +enum AccountOrderByInput { + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST + linkedIdentity_id_ASC + linkedIdentity_id_ASC_NULLS_FIRST + linkedIdentity_id_DESC + linkedIdentity_id_DESC_NULLS_LAST + linkedIdentity_index_ASC + linkedIdentity_index_ASC_NULLS_FIRST + linkedIdentity_index_DESC + linkedIdentity_index_DESC_NULLS_LAST + linkedIdentity_name_ASC + linkedIdentity_name_ASC_NULLS_FIRST + linkedIdentity_name_DESC + linkedIdentity_name_DESC_NULLS_LAST +} + +enum BlockOrderByInput { + callsCount_ASC + callsCount_ASC_NULLS_FIRST + callsCount_DESC + callsCount_DESC_NULLS_LAST + eventsCount_ASC + eventsCount_ASC_NULLS_FIRST + eventsCount_DESC + eventsCount_DESC_NULLS_LAST + extrinsicsCount_ASC + extrinsicsCount_ASC_NULLS_FIRST + extrinsicsCount_DESC + extrinsicsCount_DESC_NULLS_LAST + extrinsicsicRoot_ASC + extrinsicsicRoot_ASC_NULLS_FIRST + extrinsicsicRoot_DESC + extrinsicsicRoot_DESC_NULLS_LAST + hash_ASC + hash_ASC_NULLS_FIRST + hash_DESC + hash_DESC_NULLS_LAST + height_ASC + height_ASC_NULLS_FIRST + height_DESC + height_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + implName_ASC + implName_ASC_NULLS_FIRST + implName_DESC + implName_DESC_NULLS_LAST + implVersion_ASC + implVersion_ASC_NULLS_FIRST + implVersion_DESC + implVersion_DESC_NULLS_LAST + parentHash_ASC + parentHash_ASC_NULLS_FIRST + parentHash_DESC + parentHash_DESC_NULLS_LAST + specName_ASC + specName_ASC_NULLS_FIRST + specName_DESC + specName_DESC_NULLS_LAST + specVersion_ASC + specVersion_ASC_NULLS_FIRST + specVersion_DESC + specVersion_DESC_NULLS_LAST + stateRoot_ASC + stateRoot_ASC_NULLS_FIRST + stateRoot_DESC + stateRoot_DESC_NULLS_LAST + timestamp_ASC + timestamp_ASC_NULLS_FIRST + timestamp_DESC + timestamp_DESC_NULLS_LAST + validator_ASC + validator_ASC_NULLS_FIRST + validator_DESC + validator_DESC_NULLS_LAST +} + +enum CallOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + extrinsic_fee_ASC + extrinsic_fee_ASC_NULLS_FIRST + extrinsic_fee_DESC + extrinsic_fee_DESC_NULLS_LAST + extrinsic_hash_ASC + extrinsic_hash_ASC_NULLS_FIRST + extrinsic_hash_DESC + extrinsic_hash_DESC_NULLS_LAST + extrinsic_id_ASC + extrinsic_id_ASC_NULLS_FIRST + extrinsic_id_DESC + extrinsic_id_DESC_NULLS_LAST + extrinsic_index_ASC + extrinsic_index_ASC_NULLS_FIRST + extrinsic_index_DESC + extrinsic_index_DESC_NULLS_LAST + extrinsic_success_ASC + extrinsic_success_ASC_NULLS_FIRST + extrinsic_success_DESC + extrinsic_success_DESC_NULLS_LAST + extrinsic_tip_ASC + extrinsic_tip_ASC_NULLS_FIRST + extrinsic_tip_DESC + extrinsic_tip_DESC_NULLS_LAST + extrinsic_version_ASC + extrinsic_version_ASC_NULLS_FIRST + extrinsic_version_DESC + extrinsic_version_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + pallet_ASC + pallet_ASC_NULLS_FIRST + pallet_DESC + pallet_DESC_NULLS_LAST + parent_id_ASC + parent_id_ASC_NULLS_FIRST + parent_id_DESC + parent_id_DESC_NULLS_LAST + parent_name_ASC + parent_name_ASC_NULLS_FIRST + parent_name_DESC + parent_name_DESC_NULLS_LAST + parent_pallet_ASC + parent_pallet_ASC_NULLS_FIRST + parent_pallet_DESC + parent_pallet_DESC_NULLS_LAST + parent_success_ASC + parent_success_ASC_NULLS_FIRST + parent_success_DESC + parent_success_DESC_NULLS_LAST + success_ASC + success_ASC_NULLS_FIRST + success_DESC + success_DESC_NULLS_LAST +} + +enum CertCreationOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum CertOrderByInput { + active_ASC + active_ASC_NULLS_FIRST + active_DESC + active_DESC_NULLS_LAST + createdOn_ASC + createdOn_ASC_NULLS_FIRST + createdOn_DESC + createdOn_DESC_NULLS_LAST + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + issuer_id_ASC + issuer_id_ASC_NULLS_FIRST + issuer_id_DESC + issuer_id_DESC_NULLS_LAST + issuer_index_ASC + issuer_index_ASC_NULLS_FIRST + issuer_index_DESC + issuer_index_DESC_NULLS_LAST + issuer_name_ASC + issuer_name_ASC_NULLS_FIRST + issuer_name_DESC + issuer_name_DESC_NULLS_LAST + receiver_id_ASC + receiver_id_ASC_NULLS_FIRST + receiver_id_DESC + receiver_id_DESC_NULLS_LAST + receiver_index_ASC + receiver_index_ASC_NULLS_FIRST + receiver_index_DESC + receiver_index_DESC_NULLS_LAST + receiver_name_ASC + receiver_name_ASC_NULLS_FIRST + receiver_name_DESC + receiver_name_DESC_NULLS_LAST +} + +enum CertRemovalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum CertRenewalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum ChangeOwnerKeyOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST + next_id_ASC + next_id_ASC_NULLS_FIRST + next_id_DESC + next_id_DESC_NULLS_LAST + previous_id_ASC + previous_id_ASC_NULLS_FIRST + previous_id_DESC + previous_id_DESC_NULLS_LAST +} + +enum CounterLevel { + Global + Item + Pallet +} + +enum EventOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + call_id_ASC + call_id_ASC_NULLS_FIRST + call_id_DESC + call_id_DESC_NULLS_LAST + call_name_ASC + call_name_ASC_NULLS_FIRST + call_name_DESC + call_name_DESC_NULLS_LAST + call_pallet_ASC + call_pallet_ASC_NULLS_FIRST + call_pallet_DESC + call_pallet_DESC_NULLS_LAST + call_success_ASC + call_success_ASC_NULLS_FIRST + call_success_DESC + call_success_DESC_NULLS_LAST + extrinsic_fee_ASC + extrinsic_fee_ASC_NULLS_FIRST + extrinsic_fee_DESC + extrinsic_fee_DESC_NULLS_LAST + extrinsic_hash_ASC + extrinsic_hash_ASC_NULLS_FIRST + extrinsic_hash_DESC + extrinsic_hash_DESC_NULLS_LAST + extrinsic_id_ASC + extrinsic_id_ASC_NULLS_FIRST + extrinsic_id_DESC + extrinsic_id_DESC_NULLS_LAST + extrinsic_index_ASC + extrinsic_index_ASC_NULLS_FIRST + extrinsic_index_DESC + extrinsic_index_DESC_NULLS_LAST + extrinsic_success_ASC + extrinsic_success_ASC_NULLS_FIRST + extrinsic_success_DESC + extrinsic_success_DESC_NULLS_LAST + extrinsic_tip_ASC + extrinsic_tip_ASC_NULLS_FIRST + extrinsic_tip_DESC + extrinsic_tip_DESC_NULLS_LAST + extrinsic_version_ASC + extrinsic_version_ASC_NULLS_FIRST + extrinsic_version_DESC + extrinsic_version_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + pallet_ASC + pallet_ASC_NULLS_FIRST + pallet_DESC + pallet_DESC_NULLS_LAST + phase_ASC + phase_ASC_NULLS_FIRST + phase_DESC + phase_DESC_NULLS_LAST +} + +enum ExtrinsicOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + call_id_ASC + call_id_ASC_NULLS_FIRST + call_id_DESC + call_id_DESC_NULLS_LAST + call_name_ASC + call_name_ASC_NULLS_FIRST + call_name_DESC + call_name_DESC_NULLS_LAST + call_pallet_ASC + call_pallet_ASC_NULLS_FIRST + call_pallet_DESC + call_pallet_DESC_NULLS_LAST + call_success_ASC + call_success_ASC_NULLS_FIRST + call_success_DESC + call_success_DESC_NULLS_LAST + fee_ASC + fee_ASC_NULLS_FIRST + fee_DESC + fee_DESC_NULLS_LAST + hash_ASC + hash_ASC_NULLS_FIRST + hash_DESC + hash_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + success_ASC + success_ASC_NULLS_FIRST + success_DESC + success_DESC_NULLS_LAST + tip_ASC + tip_ASC_NULLS_FIRST + tip_DESC + tip_DESC_NULLS_LAST + version_ASC + version_ASC_NULLS_FIRST + version_DESC + version_DESC_NULLS_LAST +} + +enum IdentityOrderByInput { + account_id_ASC + account_id_ASC_NULLS_FIRST + account_id_DESC + account_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + membership_expireOn_ASC + membership_expireOn_ASC_NULLS_FIRST + membership_expireOn_DESC + membership_expireOn_DESC_NULLS_LAST + membership_id_ASC + membership_id_ASC_NULLS_FIRST + membership_id_DESC + membership_id_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + smithMembership_expireOn_ASC + smithMembership_expireOn_ASC_NULLS_FIRST + smithMembership_expireOn_DESC + smithMembership_expireOn_DESC_NULLS_LAST + smithMembership_id_ASC + smithMembership_id_ASC_NULLS_FIRST + smithMembership_id_DESC + smithMembership_id_DESC_NULLS_LAST +} + +enum ItemType { + Calls + Events + Extrinsics +} + +enum ItemsCounterOrderByInput { + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + level_ASC + level_ASC_NULLS_FIRST + level_DESC + level_DESC_NULLS_LAST + total_ASC + total_ASC_NULLS_FIRST + total_DESC + total_DESC_NULLS_LAST + type_ASC + type_ASC_NULLS_FIRST + type_DESC + type_DESC_NULLS_LAST +} + +enum MembershipOrderByInput { + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST +} + +enum SmithCertCreationOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithCertOrderByInput { + active_ASC + active_ASC_NULLS_FIRST + active_DESC + active_DESC_NULLS_LAST + createdOn_ASC + createdOn_ASC_NULLS_FIRST + createdOn_DESC + createdOn_DESC_NULLS_LAST + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + issuer_id_ASC + issuer_id_ASC_NULLS_FIRST + issuer_id_DESC + issuer_id_DESC_NULLS_LAST + issuer_index_ASC + issuer_index_ASC_NULLS_FIRST + issuer_index_DESC + issuer_index_DESC_NULLS_LAST + issuer_name_ASC + issuer_name_ASC_NULLS_FIRST + issuer_name_DESC + issuer_name_DESC_NULLS_LAST + receiver_id_ASC + receiver_id_ASC_NULLS_FIRST + receiver_id_DESC + receiver_id_DESC_NULLS_LAST + receiver_index_ASC + receiver_index_ASC_NULLS_FIRST + receiver_index_DESC + receiver_index_DESC_NULLS_LAST + receiver_name_ASC + receiver_name_ASC_NULLS_FIRST + receiver_name_DESC + receiver_name_DESC_NULLS_LAST +} + +enum SmithCertRemovalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithCertRenewalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithMembershipOrderByInput { + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST +} + +enum TransferOrderByInput { + amount_ASC + amount_ASC_NULLS_FIRST + amount_DESC + amount_DESC_NULLS_LAST + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + comment_ASC + comment_ASC_NULLS_FIRST + comment_DESC + comment_DESC_NULLS_LAST + from_id_ASC + from_id_ASC_NULLS_FIRST + from_id_DESC + from_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + timestamp_ASC + timestamp_ASC_NULLS_FIRST + timestamp_DESC + timestamp_DESC_NULLS_LAST + to_id_ASC + to_id_ASC_NULLS_FIRST + to_id_DESC + to_id_DESC_NULLS_LAST +} + +"Big number integer" +scalar BigInt + +"Binary data encoded as a hex string always prefixed with 0x" +scalar Bytes + +"A date-time string in simplified extended ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)" +scalar DateTime + +"A scalar that can represent any JSON value" +scalar JSON + +input AccountWhereInput { + AND: [AccountWhereInput!] + OR: [AccountWhereInput!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean + linkedIdentity: IdentityWhereInput + linkedIdentity_isNull: Boolean + transfersIssued_every: TransferWhereInput + transfersIssued_none: TransferWhereInput + transfersIssued_some: TransferWhereInput + transfersReceived_every: TransferWhereInput + transfersReceived_none: TransferWhereInput + transfersReceived_some: TransferWhereInput + wasIdentity_every: ChangeOwnerKeyWhereInput + wasIdentity_none: ChangeOwnerKeyWhereInput + wasIdentity_some: ChangeOwnerKeyWhereInput +} + +input BlockWhereInput { + AND: [BlockWhereInput!] + OR: [BlockWhereInput!] + callsCount_eq: Int + callsCount_gt: Int + callsCount_gte: Int + callsCount_in: [Int!] + callsCount_isNull: Boolean + callsCount_lt: Int + callsCount_lte: Int + callsCount_not_eq: Int + callsCount_not_in: [Int!] + calls_every: CallWhereInput + calls_none: CallWhereInput + calls_some: CallWhereInput + eventsCount_eq: Int + eventsCount_gt: Int + eventsCount_gte: Int + eventsCount_in: [Int!] + eventsCount_isNull: Boolean + eventsCount_lt: Int + eventsCount_lte: Int + eventsCount_not_eq: Int + eventsCount_not_in: [Int!] + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + extrinsicsCount_eq: Int + extrinsicsCount_gt: Int + extrinsicsCount_gte: Int + extrinsicsCount_in: [Int!] + extrinsicsCount_isNull: Boolean + extrinsicsCount_lt: Int + extrinsicsCount_lte: Int + extrinsicsCount_not_eq: Int + extrinsicsCount_not_in: [Int!] + extrinsics_every: ExtrinsicWhereInput + extrinsics_none: ExtrinsicWhereInput + extrinsics_some: ExtrinsicWhereInput + extrinsicsicRoot_eq: Bytes + extrinsicsicRoot_isNull: Boolean + extrinsicsicRoot_not_eq: Bytes + hash_eq: Bytes + hash_isNull: Boolean + hash_not_eq: Bytes + height_eq: Int + height_gt: Int + height_gte: Int + height_in: [Int!] + height_isNull: Boolean + height_lt: Int + height_lte: Int + height_not_eq: Int + height_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + implName_contains: String + implName_containsInsensitive: String + implName_endsWith: String + implName_eq: String + implName_gt: String + implName_gte: String + implName_in: [String!] + implName_isNull: Boolean + implName_lt: String + implName_lte: String + implName_not_contains: String + implName_not_containsInsensitive: String + implName_not_endsWith: String + implName_not_eq: String + implName_not_in: [String!] + implName_not_startsWith: String + implName_startsWith: String + implVersion_eq: Int + implVersion_gt: Int + implVersion_gte: Int + implVersion_in: [Int!] + implVersion_isNull: Boolean + implVersion_lt: Int + implVersion_lte: Int + implVersion_not_eq: Int + implVersion_not_in: [Int!] + parentHash_eq: Bytes + parentHash_isNull: Boolean + parentHash_not_eq: Bytes + specName_contains: String + specName_containsInsensitive: String + specName_endsWith: String + specName_eq: String + specName_gt: String + specName_gte: String + specName_in: [String!] + specName_isNull: Boolean + specName_lt: String + specName_lte: String + specName_not_contains: String + specName_not_containsInsensitive: String + specName_not_endsWith: String + specName_not_eq: String + specName_not_in: [String!] + specName_not_startsWith: String + specName_startsWith: String + specVersion_eq: Int + specVersion_gt: Int + specVersion_gte: Int + specVersion_in: [Int!] + specVersion_isNull: Boolean + specVersion_lt: Int + specVersion_lte: Int + specVersion_not_eq: Int + specVersion_not_in: [Int!] + stateRoot_eq: Bytes + stateRoot_isNull: Boolean + stateRoot_not_eq: Bytes + timestamp_eq: DateTime + timestamp_gt: DateTime + timestamp_gte: DateTime + timestamp_in: [DateTime!] + timestamp_isNull: Boolean + timestamp_lt: DateTime + timestamp_lte: DateTime + timestamp_not_eq: DateTime + timestamp_not_in: [DateTime!] + validator_eq: Bytes + validator_isNull: Boolean + validator_not_eq: Bytes +} + +input CallWhereInput { + AND: [CallWhereInput!] + OR: [CallWhereInput!] + address_containsAll: [Int!] + address_containsAny: [Int!] + address_containsNone: [Int!] + address_isNull: Boolean + argsStr_containsAll: [String] + argsStr_containsAny: [String] + argsStr_containsNone: [String] + argsStr_isNull: Boolean + args_eq: JSON + args_isNull: Boolean + args_jsonContains: JSON + args_jsonHasKey: JSON + args_not_eq: JSON + block: BlockWhereInput + block_isNull: Boolean + error_eq: JSON + error_isNull: Boolean + error_jsonContains: JSON + error_jsonHasKey: JSON + error_not_eq: JSON + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + extrinsic: ExtrinsicWhereInput + extrinsic_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + pallet_contains: String + pallet_containsInsensitive: String + pallet_endsWith: String + pallet_eq: String + pallet_gt: String + pallet_gte: String + pallet_in: [String!] + pallet_isNull: Boolean + pallet_lt: String + pallet_lte: String + pallet_not_contains: String + pallet_not_containsInsensitive: String + pallet_not_endsWith: String + pallet_not_eq: String + pallet_not_in: [String!] + pallet_not_startsWith: String + pallet_startsWith: String + parent: CallWhereInput + parent_isNull: Boolean + subcalls_every: CallWhereInput + subcalls_none: CallWhereInput + subcalls_some: CallWhereInput + success_eq: Boolean + success_isNull: Boolean + success_not_eq: Boolean +} + +input CertCreationWhereInput { + AND: [CertCreationWhereInput!] + OR: [CertCreationWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertRemovalWhereInput { + AND: [CertRemovalWhereInput!] + OR: [CertRemovalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertRenewalWhereInput { + AND: [CertRenewalWhereInput!] + OR: [CertRenewalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertWhereInput { + AND: [CertWhereInput!] + OR: [CertWhereInput!] + active_eq: Boolean + active_isNull: Boolean + active_not_eq: Boolean + createdOn_eq: Int + createdOn_gt: Int + createdOn_gte: Int + createdOn_in: [Int!] + createdOn_isNull: Boolean + createdOn_lt: Int + createdOn_lte: Int + createdOn_not_eq: Int + createdOn_not_in: [Int!] + creation_every: CertCreationWhereInput + creation_none: CertCreationWhereInput + creation_some: CertCreationWhereInput + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + issuer: IdentityWhereInput + issuer_isNull: Boolean + receiver: IdentityWhereInput + receiver_isNull: Boolean + removal_every: CertRemovalWhereInput + removal_none: CertRemovalWhereInput + removal_some: CertRemovalWhereInput + renewal_every: CertRenewalWhereInput + renewal_none: CertRenewalWhereInput + renewal_some: CertRenewalWhereInput +} + +input ChangeOwnerKeyWhereInput { + AND: [ChangeOwnerKeyWhereInput!] + OR: [ChangeOwnerKeyWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean + next: AccountWhereInput + next_isNull: Boolean + previous: AccountWhereInput + previous_isNull: Boolean +} + +input EventWhereInput { + AND: [EventWhereInput!] + OR: [EventWhereInput!] + argsStr_containsAll: [String] + argsStr_containsAny: [String] + argsStr_containsNone: [String] + argsStr_isNull: Boolean + args_eq: JSON + args_isNull: Boolean + args_jsonContains: JSON + args_jsonHasKey: JSON + args_not_eq: JSON + block: BlockWhereInput + block_isNull: Boolean + call: CallWhereInput + call_isNull: Boolean + extrinsic: ExtrinsicWhereInput + extrinsic_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + pallet_contains: String + pallet_containsInsensitive: String + pallet_endsWith: String + pallet_eq: String + pallet_gt: String + pallet_gte: String + pallet_in: [String!] + pallet_isNull: Boolean + pallet_lt: String + pallet_lte: String + pallet_not_contains: String + pallet_not_containsInsensitive: String + pallet_not_endsWith: String + pallet_not_eq: String + pallet_not_in: [String!] + pallet_not_startsWith: String + pallet_startsWith: String + phase_contains: String + phase_containsInsensitive: String + phase_endsWith: String + phase_eq: String + phase_gt: String + phase_gte: String + phase_in: [String!] + phase_isNull: Boolean + phase_lt: String + phase_lte: String + phase_not_contains: String + phase_not_containsInsensitive: String + phase_not_endsWith: String + phase_not_eq: String + phase_not_in: [String!] + phase_not_startsWith: String + phase_startsWith: String +} + +input ExtrinsicSignatureWhereInput { + address_eq: JSON + address_isNull: Boolean + address_jsonContains: JSON + address_jsonHasKey: JSON + address_not_eq: JSON + signature_eq: JSON + signature_isNull: Boolean + signature_jsonContains: JSON + signature_jsonHasKey: JSON + signature_not_eq: JSON + signedExtensions_eq: JSON + signedExtensions_isNull: Boolean + signedExtensions_jsonContains: JSON + signedExtensions_jsonHasKey: JSON + signedExtensions_not_eq: JSON +} + +input ExtrinsicWhereInput { + AND: [ExtrinsicWhereInput!] + OR: [ExtrinsicWhereInput!] + block: BlockWhereInput + block_isNull: Boolean + call: CallWhereInput + call_isNull: Boolean + calls_every: CallWhereInput + calls_none: CallWhereInput + calls_some: CallWhereInput + error_eq: JSON + error_isNull: Boolean + error_jsonContains: JSON + error_jsonHasKey: JSON + error_not_eq: JSON + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + fee_eq: BigInt + fee_gt: BigInt + fee_gte: BigInt + fee_in: [BigInt!] + fee_isNull: Boolean + fee_lt: BigInt + fee_lte: BigInt + fee_not_eq: BigInt + fee_not_in: [BigInt!] + hash_eq: Bytes + hash_isNull: Boolean + hash_not_eq: Bytes + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + signature: ExtrinsicSignatureWhereInput + signature_isNull: Boolean + success_eq: Boolean + success_isNull: Boolean + success_not_eq: Boolean + tip_eq: BigInt + tip_gt: BigInt + tip_gte: BigInt + tip_in: [BigInt!] + tip_isNull: Boolean + tip_lt: BigInt + tip_lte: BigInt + tip_not_eq: BigInt + tip_not_in: [BigInt!] + version_eq: Int + version_gt: Int + version_gte: Int + version_in: [Int!] + version_isNull: Boolean + version_lt: Int + version_lte: Int + version_not_eq: Int + version_not_in: [Int!] +} + +input IdentityWhereInput { + AND: [IdentityWhereInput!] + OR: [IdentityWhereInput!] + account: AccountWhereInput + account_isNull: Boolean + certIssued_every: CertWhereInput + certIssued_none: CertWhereInput + certIssued_some: CertWhereInput + certReceived_every: CertWhereInput + certReceived_none: CertWhereInput + certReceived_some: CertWhereInput + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + linkedAccount_every: AccountWhereInput + linkedAccount_none: AccountWhereInput + linkedAccount_some: AccountWhereInput + membership: MembershipWhereInput + membership_isNull: Boolean + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + ownerKeyChange_every: ChangeOwnerKeyWhereInput + ownerKeyChange_none: ChangeOwnerKeyWhereInput + ownerKeyChange_some: ChangeOwnerKeyWhereInput + smithCertIssued_every: SmithCertWhereInput + smithCertIssued_none: SmithCertWhereInput + smithCertIssued_some: SmithCertWhereInput + smithCertReceived_every: SmithCertWhereInput + smithCertReceived_none: SmithCertWhereInput + smithCertReceived_some: SmithCertWhereInput + smithMembership: SmithMembershipWhereInput + smithMembership_isNull: Boolean +} + +input ItemsCounterWhereInput { + AND: [ItemsCounterWhereInput!] + OR: [ItemsCounterWhereInput!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + level_eq: CounterLevel + level_in: [CounterLevel!] + level_isNull: Boolean + level_not_eq: CounterLevel + level_not_in: [CounterLevel!] + total_eq: Int + total_gt: Int + total_gte: Int + total_in: [Int!] + total_isNull: Boolean + total_lt: Int + total_lte: Int + total_not_eq: Int + total_not_in: [Int!] + type_eq: ItemType + type_in: [ItemType!] + type_isNull: Boolean + type_not_eq: ItemType + type_not_in: [ItemType!] +} + +input MembershipWhereInput { + AND: [MembershipWhereInput!] + OR: [MembershipWhereInput!] + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean +} + +input SmithCertCreationWhereInput { + AND: [SmithCertCreationWhereInput!] + OR: [SmithCertCreationWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertRemovalWhereInput { + AND: [SmithCertRemovalWhereInput!] + OR: [SmithCertRemovalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertRenewalWhereInput { + AND: [SmithCertRenewalWhereInput!] + OR: [SmithCertRenewalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertWhereInput { + AND: [SmithCertWhereInput!] + OR: [SmithCertWhereInput!] + active_eq: Boolean + active_isNull: Boolean + active_not_eq: Boolean + createdOn_eq: Int + createdOn_gt: Int + createdOn_gte: Int + createdOn_in: [Int!] + createdOn_isNull: Boolean + createdOn_lt: Int + createdOn_lte: Int + createdOn_not_eq: Int + createdOn_not_in: [Int!] + creation_every: SmithCertCreationWhereInput + creation_none: SmithCertCreationWhereInput + creation_some: SmithCertCreationWhereInput + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + issuer: IdentityWhereInput + issuer_isNull: Boolean + receiver: IdentityWhereInput + receiver_isNull: Boolean + removal_every: SmithCertRemovalWhereInput + removal_none: SmithCertRemovalWhereInput + removal_some: SmithCertRemovalWhereInput + renewal_every: SmithCertRenewalWhereInput + renewal_none: SmithCertRenewalWhereInput + renewal_some: SmithCertRenewalWhereInput +} + +input SmithMembershipWhereInput { + AND: [SmithMembershipWhereInput!] + OR: [SmithMembershipWhereInput!] + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean +} + +input TransferWhereInput { + AND: [TransferWhereInput!] + OR: [TransferWhereInput!] + amount_eq: BigInt + amount_gt: BigInt + amount_gte: BigInt + amount_in: [BigInt!] + amount_isNull: Boolean + amount_lt: BigInt + amount_lte: BigInt + amount_not_eq: BigInt + amount_not_in: [BigInt!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + comment_contains: String + comment_containsInsensitive: String + comment_endsWith: String + comment_eq: String + comment_gt: String + comment_gte: String + comment_in: [String!] + comment_isNull: Boolean + comment_lt: String + comment_lte: String + comment_not_contains: String + comment_not_containsInsensitive: String + comment_not_endsWith: String + comment_not_eq: String + comment_not_in: [String!] + comment_not_startsWith: String + comment_startsWith: String + from: AccountWhereInput + from_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + timestamp_eq: DateTime + timestamp_gt: DateTime + timestamp_gte: DateTime + timestamp_in: [DateTime!] + timestamp_isNull: Boolean + timestamp_lt: DateTime + timestamp_lte: DateTime + timestamp_not_eq: DateTime + timestamp_not_in: [DateTime!] + to: AccountWhereInput + to_isNull: Boolean +} + +input WhereIdInput { + id: String! +} diff --git a/src/app/network/indexer-types.generated.ts b/src/app/network/indexer-types.generated.ts new file mode 100644 index 0000000000000000000000000000000000000000..735535bb4cfad262fa4d1b00a8c76e1e3938ba79 --- /dev/null +++ b/src/app/network/indexer-types.generated.ts @@ -0,0 +1,3578 @@ +// Auto-generated via `npx graphql-codegen`, do not edit +/* eslint-disable */ +import { gql } from 'apollo-angular'; +import { Injectable } from '@angular/core'; +import * as Apollo from 'apollo-angular'; +import * as ApolloCore from '@apollo/client/core'; +export type Maybe<T> = T | null; +export type InputMaybe<T> = Maybe<T>; +export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; +export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> }; +export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> }; +export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never }; +export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + /** Big number integer */ + BigInt: { input: any; output: any }; + /** Binary data encoded as a hex string always prefixed with 0x */ + Bytes: { input: any; output: any }; + /** A date-time string in simplified extended ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ) */ + DateTime: { input: any; output: any }; + /** A scalar that can represent any JSON value */ + JSON: { input: any; output: any }; +}; + +export type Account = { + __typename?: 'Account'; + /** Account address is SS58 format */ + id: Scalars['String']['output']; + /** current account for the identity */ + identity?: Maybe<Identity>; + /** linked to the identity */ + linkedIdentity?: Maybe<Identity>; + transfersIssued: Array<Transfer>; + transfersReceived: Array<Transfer>; + /** was once account of the identity */ + wasIdentity: Array<ChangeOwnerKey>; +}; + +export type AccountTransfersIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type AccountTransfersReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type AccountWasIdentityArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type AccountEdge = { + __typename?: 'AccountEdge'; + cursor: Scalars['String']['output']; + node: Account; +}; + +export enum AccountOrderByInput { + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', + LinkedIdentityIdAsc = 'linkedIdentity_id_ASC', + LinkedIdentityIdAscNullsFirst = 'linkedIdentity_id_ASC_NULLS_FIRST', + LinkedIdentityIdDesc = 'linkedIdentity_id_DESC', + LinkedIdentityIdDescNullsLast = 'linkedIdentity_id_DESC_NULLS_LAST', + LinkedIdentityIndexAsc = 'linkedIdentity_index_ASC', + LinkedIdentityIndexAscNullsFirst = 'linkedIdentity_index_ASC_NULLS_FIRST', + LinkedIdentityIndexDesc = 'linkedIdentity_index_DESC', + LinkedIdentityIndexDescNullsLast = 'linkedIdentity_index_DESC_NULLS_LAST', + LinkedIdentityNameAsc = 'linkedIdentity_name_ASC', + LinkedIdentityNameAscNullsFirst = 'linkedIdentity_name_ASC_NULLS_FIRST', + LinkedIdentityNameDesc = 'linkedIdentity_name_DESC', + LinkedIdentityNameDescNullsLast = 'linkedIdentity_name_DESC_NULLS_LAST', +} + +export type AccountWhereInput = { + AND?: InputMaybe<Array<AccountWhereInput>>; + OR?: InputMaybe<Array<AccountWhereInput>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + linkedIdentity?: InputMaybe<IdentityWhereInput>; + linkedIdentity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + transfersIssued_every?: InputMaybe<TransferWhereInput>; + transfersIssued_none?: InputMaybe<TransferWhereInput>; + transfersIssued_some?: InputMaybe<TransferWhereInput>; + transfersReceived_every?: InputMaybe<TransferWhereInput>; + transfersReceived_none?: InputMaybe<TransferWhereInput>; + transfersReceived_some?: InputMaybe<TransferWhereInput>; + wasIdentity_every?: InputMaybe<ChangeOwnerKeyWhereInput>; + wasIdentity_none?: InputMaybe<ChangeOwnerKeyWhereInput>; + wasIdentity_some?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type AccountsConnection = { + __typename?: 'AccountsConnection'; + edges: Array<AccountEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Block = { + __typename?: 'Block'; + calls: Array<Call>; + callsCount: Scalars['Int']['output']; + events: Array<Event>; + eventsCount: Scalars['Int']['output']; + extrinsics: Array<Extrinsic>; + extrinsicsCount: Scalars['Int']['output']; + extrinsicsicRoot: Scalars['Bytes']['output']; + hash: Scalars['Bytes']['output']; + height: Scalars['Int']['output']; + /** BlockHeight-blockHash - e.g. 0001812319-0001c */ + id: Scalars['String']['output']; + implName: Scalars['String']['output']; + implVersion: Scalars['Int']['output']; + parentHash: Scalars['Bytes']['output']; + specName: Scalars['String']['output']; + specVersion: Scalars['Int']['output']; + stateRoot: Scalars['Bytes']['output']; + timestamp: Scalars['DateTime']['output']; + validator?: Maybe<Scalars['Bytes']['output']>; +}; + +export type BlockCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type BlockEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type BlockExtrinsicsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ExtrinsicOrderByInput>>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type BlockEdge = { + __typename?: 'BlockEdge'; + cursor: Scalars['String']['output']; + node: Block; +}; + +export enum BlockOrderByInput { + CallsCountAsc = 'callsCount_ASC', + CallsCountAscNullsFirst = 'callsCount_ASC_NULLS_FIRST', + CallsCountDesc = 'callsCount_DESC', + CallsCountDescNullsLast = 'callsCount_DESC_NULLS_LAST', + EventsCountAsc = 'eventsCount_ASC', + EventsCountAscNullsFirst = 'eventsCount_ASC_NULLS_FIRST', + EventsCountDesc = 'eventsCount_DESC', + EventsCountDescNullsLast = 'eventsCount_DESC_NULLS_LAST', + ExtrinsicsCountAsc = 'extrinsicsCount_ASC', + ExtrinsicsCountAscNullsFirst = 'extrinsicsCount_ASC_NULLS_FIRST', + ExtrinsicsCountDesc = 'extrinsicsCount_DESC', + ExtrinsicsCountDescNullsLast = 'extrinsicsCount_DESC_NULLS_LAST', + ExtrinsicsicRootAsc = 'extrinsicsicRoot_ASC', + ExtrinsicsicRootAscNullsFirst = 'extrinsicsicRoot_ASC_NULLS_FIRST', + ExtrinsicsicRootDesc = 'extrinsicsicRoot_DESC', + ExtrinsicsicRootDescNullsLast = 'extrinsicsicRoot_DESC_NULLS_LAST', + HashAsc = 'hash_ASC', + HashAscNullsFirst = 'hash_ASC_NULLS_FIRST', + HashDesc = 'hash_DESC', + HashDescNullsLast = 'hash_DESC_NULLS_LAST', + HeightAsc = 'height_ASC', + HeightAscNullsFirst = 'height_ASC_NULLS_FIRST', + HeightDesc = 'height_DESC', + HeightDescNullsLast = 'height_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + ImplNameAsc = 'implName_ASC', + ImplNameAscNullsFirst = 'implName_ASC_NULLS_FIRST', + ImplNameDesc = 'implName_DESC', + ImplNameDescNullsLast = 'implName_DESC_NULLS_LAST', + ImplVersionAsc = 'implVersion_ASC', + ImplVersionAscNullsFirst = 'implVersion_ASC_NULLS_FIRST', + ImplVersionDesc = 'implVersion_DESC', + ImplVersionDescNullsLast = 'implVersion_DESC_NULLS_LAST', + ParentHashAsc = 'parentHash_ASC', + ParentHashAscNullsFirst = 'parentHash_ASC_NULLS_FIRST', + ParentHashDesc = 'parentHash_DESC', + ParentHashDescNullsLast = 'parentHash_DESC_NULLS_LAST', + SpecNameAsc = 'specName_ASC', + SpecNameAscNullsFirst = 'specName_ASC_NULLS_FIRST', + SpecNameDesc = 'specName_DESC', + SpecNameDescNullsLast = 'specName_DESC_NULLS_LAST', + SpecVersionAsc = 'specVersion_ASC', + SpecVersionAscNullsFirst = 'specVersion_ASC_NULLS_FIRST', + SpecVersionDesc = 'specVersion_DESC', + SpecVersionDescNullsLast = 'specVersion_DESC_NULLS_LAST', + StateRootAsc = 'stateRoot_ASC', + StateRootAscNullsFirst = 'stateRoot_ASC_NULLS_FIRST', + StateRootDesc = 'stateRoot_DESC', + StateRootDescNullsLast = 'stateRoot_DESC_NULLS_LAST', + TimestampAsc = 'timestamp_ASC', + TimestampAscNullsFirst = 'timestamp_ASC_NULLS_FIRST', + TimestampDesc = 'timestamp_DESC', + TimestampDescNullsLast = 'timestamp_DESC_NULLS_LAST', + ValidatorAsc = 'validator_ASC', + ValidatorAscNullsFirst = 'validator_ASC_NULLS_FIRST', + ValidatorDesc = 'validator_DESC', + ValidatorDescNullsLast = 'validator_DESC_NULLS_LAST', +} + +export type BlockWhereInput = { + AND?: InputMaybe<Array<BlockWhereInput>>; + OR?: InputMaybe<Array<BlockWhereInput>>; + callsCount_eq?: InputMaybe<Scalars['Int']['input']>; + callsCount_gt?: InputMaybe<Scalars['Int']['input']>; + callsCount_gte?: InputMaybe<Scalars['Int']['input']>; + callsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + callsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + callsCount_lt?: InputMaybe<Scalars['Int']['input']>; + callsCount_lte?: InputMaybe<Scalars['Int']['input']>; + callsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + callsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + calls_every?: InputMaybe<CallWhereInput>; + calls_none?: InputMaybe<CallWhereInput>; + calls_some?: InputMaybe<CallWhereInput>; + eventsCount_eq?: InputMaybe<Scalars['Int']['input']>; + eventsCount_gt?: InputMaybe<Scalars['Int']['input']>; + eventsCount_gte?: InputMaybe<Scalars['Int']['input']>; + eventsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + eventsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + eventsCount_lt?: InputMaybe<Scalars['Int']['input']>; + eventsCount_lte?: InputMaybe<Scalars['Int']['input']>; + eventsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + eventsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + extrinsicsCount_eq?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_gt?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_gte?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + extrinsicsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsicsCount_lt?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_lte?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + extrinsics_every?: InputMaybe<ExtrinsicWhereInput>; + extrinsics_none?: InputMaybe<ExtrinsicWhereInput>; + extrinsics_some?: InputMaybe<ExtrinsicWhereInput>; + extrinsicsicRoot_eq?: InputMaybe<Scalars['Bytes']['input']>; + extrinsicsicRoot_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsicsicRoot_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + hash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + height_eq?: InputMaybe<Scalars['Int']['input']>; + height_gt?: InputMaybe<Scalars['Int']['input']>; + height_gte?: InputMaybe<Scalars['Int']['input']>; + height_in?: InputMaybe<Array<Scalars['Int']['input']>>; + height_isNull?: InputMaybe<Scalars['Boolean']['input']>; + height_lt?: InputMaybe<Scalars['Int']['input']>; + height_lte?: InputMaybe<Scalars['Int']['input']>; + height_not_eq?: InputMaybe<Scalars['Int']['input']>; + height_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + implName_contains?: InputMaybe<Scalars['String']['input']>; + implName_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + implName_endsWith?: InputMaybe<Scalars['String']['input']>; + implName_eq?: InputMaybe<Scalars['String']['input']>; + implName_gt?: InputMaybe<Scalars['String']['input']>; + implName_gte?: InputMaybe<Scalars['String']['input']>; + implName_in?: InputMaybe<Array<Scalars['String']['input']>>; + implName_isNull?: InputMaybe<Scalars['Boolean']['input']>; + implName_lt?: InputMaybe<Scalars['String']['input']>; + implName_lte?: InputMaybe<Scalars['String']['input']>; + implName_not_contains?: InputMaybe<Scalars['String']['input']>; + implName_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + implName_not_endsWith?: InputMaybe<Scalars['String']['input']>; + implName_not_eq?: InputMaybe<Scalars['String']['input']>; + implName_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + implName_not_startsWith?: InputMaybe<Scalars['String']['input']>; + implName_startsWith?: InputMaybe<Scalars['String']['input']>; + implVersion_eq?: InputMaybe<Scalars['Int']['input']>; + implVersion_gt?: InputMaybe<Scalars['Int']['input']>; + implVersion_gte?: InputMaybe<Scalars['Int']['input']>; + implVersion_in?: InputMaybe<Array<Scalars['Int']['input']>>; + implVersion_isNull?: InputMaybe<Scalars['Boolean']['input']>; + implVersion_lt?: InputMaybe<Scalars['Int']['input']>; + implVersion_lte?: InputMaybe<Scalars['Int']['input']>; + implVersion_not_eq?: InputMaybe<Scalars['Int']['input']>; + implVersion_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + parentHash_eq?: InputMaybe<Scalars['Bytes']['input']>; + parentHash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + parentHash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + specName_contains?: InputMaybe<Scalars['String']['input']>; + specName_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + specName_endsWith?: InputMaybe<Scalars['String']['input']>; + specName_eq?: InputMaybe<Scalars['String']['input']>; + specName_gt?: InputMaybe<Scalars['String']['input']>; + specName_gte?: InputMaybe<Scalars['String']['input']>; + specName_in?: InputMaybe<Array<Scalars['String']['input']>>; + specName_isNull?: InputMaybe<Scalars['Boolean']['input']>; + specName_lt?: InputMaybe<Scalars['String']['input']>; + specName_lte?: InputMaybe<Scalars['String']['input']>; + specName_not_contains?: InputMaybe<Scalars['String']['input']>; + specName_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + specName_not_endsWith?: InputMaybe<Scalars['String']['input']>; + specName_not_eq?: InputMaybe<Scalars['String']['input']>; + specName_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + specName_not_startsWith?: InputMaybe<Scalars['String']['input']>; + specName_startsWith?: InputMaybe<Scalars['String']['input']>; + specVersion_eq?: InputMaybe<Scalars['Int']['input']>; + specVersion_gt?: InputMaybe<Scalars['Int']['input']>; + specVersion_gte?: InputMaybe<Scalars['Int']['input']>; + specVersion_in?: InputMaybe<Array<Scalars['Int']['input']>>; + specVersion_isNull?: InputMaybe<Scalars['Boolean']['input']>; + specVersion_lt?: InputMaybe<Scalars['Int']['input']>; + specVersion_lte?: InputMaybe<Scalars['Int']['input']>; + specVersion_not_eq?: InputMaybe<Scalars['Int']['input']>; + specVersion_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + stateRoot_eq?: InputMaybe<Scalars['Bytes']['input']>; + stateRoot_isNull?: InputMaybe<Scalars['Boolean']['input']>; + stateRoot_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + timestamp_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + timestamp_isNull?: InputMaybe<Scalars['Boolean']['input']>; + timestamp_lt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_lte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + validator_eq?: InputMaybe<Scalars['Bytes']['input']>; + validator_isNull?: InputMaybe<Scalars['Boolean']['input']>; + validator_not_eq?: InputMaybe<Scalars['Bytes']['input']>; +}; + +export type BlocksConnection = { + __typename?: 'BlocksConnection'; + edges: Array<BlockEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Call = { + __typename?: 'Call'; + address: Array<Scalars['Int']['output']>; + args?: Maybe<Scalars['JSON']['output']>; + argsStr?: Maybe<Array<Maybe<Scalars['String']['output']>>>; + block: Block; + error?: Maybe<Scalars['JSON']['output']>; + events: Array<Event>; + extrinsic?: Maybe<Extrinsic>; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + pallet: Scalars['String']['output']; + parent?: Maybe<Call>; + subcalls: Array<Call>; + success: Scalars['Boolean']['output']; +}; + +export type CallEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type CallSubcallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type CallEdge = { + __typename?: 'CallEdge'; + cursor: Scalars['String']['output']; + node: Call; +}; + +export enum CallOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + ExtrinsicFeeAsc = 'extrinsic_fee_ASC', + ExtrinsicFeeAscNullsFirst = 'extrinsic_fee_ASC_NULLS_FIRST', + ExtrinsicFeeDesc = 'extrinsic_fee_DESC', + ExtrinsicFeeDescNullsLast = 'extrinsic_fee_DESC_NULLS_LAST', + ExtrinsicHashAsc = 'extrinsic_hash_ASC', + ExtrinsicHashAscNullsFirst = 'extrinsic_hash_ASC_NULLS_FIRST', + ExtrinsicHashDesc = 'extrinsic_hash_DESC', + ExtrinsicHashDescNullsLast = 'extrinsic_hash_DESC_NULLS_LAST', + ExtrinsicIdAsc = 'extrinsic_id_ASC', + ExtrinsicIdAscNullsFirst = 'extrinsic_id_ASC_NULLS_FIRST', + ExtrinsicIdDesc = 'extrinsic_id_DESC', + ExtrinsicIdDescNullsLast = 'extrinsic_id_DESC_NULLS_LAST', + ExtrinsicIndexAsc = 'extrinsic_index_ASC', + ExtrinsicIndexAscNullsFirst = 'extrinsic_index_ASC_NULLS_FIRST', + ExtrinsicIndexDesc = 'extrinsic_index_DESC', + ExtrinsicIndexDescNullsLast = 'extrinsic_index_DESC_NULLS_LAST', + ExtrinsicSuccessAsc = 'extrinsic_success_ASC', + ExtrinsicSuccessAscNullsFirst = 'extrinsic_success_ASC_NULLS_FIRST', + ExtrinsicSuccessDesc = 'extrinsic_success_DESC', + ExtrinsicSuccessDescNullsLast = 'extrinsic_success_DESC_NULLS_LAST', + ExtrinsicTipAsc = 'extrinsic_tip_ASC', + ExtrinsicTipAscNullsFirst = 'extrinsic_tip_ASC_NULLS_FIRST', + ExtrinsicTipDesc = 'extrinsic_tip_DESC', + ExtrinsicTipDescNullsLast = 'extrinsic_tip_DESC_NULLS_LAST', + ExtrinsicVersionAsc = 'extrinsic_version_ASC', + ExtrinsicVersionAscNullsFirst = 'extrinsic_version_ASC_NULLS_FIRST', + ExtrinsicVersionDesc = 'extrinsic_version_DESC', + ExtrinsicVersionDescNullsLast = 'extrinsic_version_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + PalletAsc = 'pallet_ASC', + PalletAscNullsFirst = 'pallet_ASC_NULLS_FIRST', + PalletDesc = 'pallet_DESC', + PalletDescNullsLast = 'pallet_DESC_NULLS_LAST', + ParentIdAsc = 'parent_id_ASC', + ParentIdAscNullsFirst = 'parent_id_ASC_NULLS_FIRST', + ParentIdDesc = 'parent_id_DESC', + ParentIdDescNullsLast = 'parent_id_DESC_NULLS_LAST', + ParentNameAsc = 'parent_name_ASC', + ParentNameAscNullsFirst = 'parent_name_ASC_NULLS_FIRST', + ParentNameDesc = 'parent_name_DESC', + ParentNameDescNullsLast = 'parent_name_DESC_NULLS_LAST', + ParentPalletAsc = 'parent_pallet_ASC', + ParentPalletAscNullsFirst = 'parent_pallet_ASC_NULLS_FIRST', + ParentPalletDesc = 'parent_pallet_DESC', + ParentPalletDescNullsLast = 'parent_pallet_DESC_NULLS_LAST', + ParentSuccessAsc = 'parent_success_ASC', + ParentSuccessAscNullsFirst = 'parent_success_ASC_NULLS_FIRST', + ParentSuccessDesc = 'parent_success_DESC', + ParentSuccessDescNullsLast = 'parent_success_DESC_NULLS_LAST', + SuccessAsc = 'success_ASC', + SuccessAscNullsFirst = 'success_ASC_NULLS_FIRST', + SuccessDesc = 'success_DESC', + SuccessDescNullsLast = 'success_DESC_NULLS_LAST', +} + +export type CallWhereInput = { + AND?: InputMaybe<Array<CallWhereInput>>; + OR?: InputMaybe<Array<CallWhereInput>>; + address_containsAll?: InputMaybe<Array<Scalars['Int']['input']>>; + address_containsAny?: InputMaybe<Array<Scalars['Int']['input']>>; + address_containsNone?: InputMaybe<Array<Scalars['Int']['input']>>; + address_isNull?: InputMaybe<Scalars['Boolean']['input']>; + argsStr_containsAll?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsAny?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsNone?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_eq?: InputMaybe<Scalars['JSON']['input']>; + args_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + args_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + args_not_eq?: InputMaybe<Scalars['JSON']['input']>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_eq?: InputMaybe<Scalars['JSON']['input']>; + error_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + error_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + error_not_eq?: InputMaybe<Scalars['JSON']['input']>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + extrinsic?: InputMaybe<ExtrinsicWhereInput>; + extrinsic_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_contains?: InputMaybe<Scalars['String']['input']>; + pallet_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_eq?: InputMaybe<Scalars['String']['input']>; + pallet_gt?: InputMaybe<Scalars['String']['input']>; + pallet_gte?: InputMaybe<Scalars['String']['input']>; + pallet_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_isNull?: InputMaybe<Scalars['Boolean']['input']>; + pallet_lt?: InputMaybe<Scalars['String']['input']>; + pallet_lte?: InputMaybe<Scalars['String']['input']>; + pallet_not_contains?: InputMaybe<Scalars['String']['input']>; + pallet_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_not_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_not_eq?: InputMaybe<Scalars['String']['input']>; + pallet_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_not_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_startsWith?: InputMaybe<Scalars['String']['input']>; + parent?: InputMaybe<CallWhereInput>; + parent_isNull?: InputMaybe<Scalars['Boolean']['input']>; + subcalls_every?: InputMaybe<CallWhereInput>; + subcalls_none?: InputMaybe<CallWhereInput>; + subcalls_some?: InputMaybe<CallWhereInput>; + success_eq?: InputMaybe<Scalars['Boolean']['input']>; + success_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_not_eq?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type CallsConnection = { + __typename?: 'CallsConnection'; + edges: Array<CallEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Certification */ +export type Cert = { + __typename?: 'Cert'; + /** whether the certification is currently active or not */ + active: Scalars['Boolean']['output']; + /** the last createdOn value */ + createdOn: Scalars['Int']['output']; + creation: Array<CertCreation>; + /** the current expireOn value */ + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + issuer: Identity; + receiver: Identity; + removal: Array<CertRemoval>; + renewal: Array<CertRenewal>; +}; + +/** Certification */ +export type CertCreationArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertCreationOrderByInput>>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +/** Certification */ +export type CertRemovalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRemovalOrderByInput>>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +/** Certification */ +export type CertRenewalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRenewalOrderByInput>>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +/** Certification creation */ +export type CertCreation = { + __typename?: 'CertCreation'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertCreationEdge = { + __typename?: 'CertCreationEdge'; + cursor: Scalars['String']['output']; + node: CertCreation; +}; + +export enum CertCreationOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertCreationWhereInput = { + AND?: InputMaybe<Array<CertCreationWhereInput>>; + OR?: InputMaybe<Array<CertCreationWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertCreationsConnection = { + __typename?: 'CertCreationsConnection'; + edges: Array<CertCreationEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type CertEdge = { + __typename?: 'CertEdge'; + cursor: Scalars['String']['output']; + node: Cert; +}; + +export enum CertOrderByInput { + ActiveAsc = 'active_ASC', + ActiveAscNullsFirst = 'active_ASC_NULLS_FIRST', + ActiveDesc = 'active_DESC', + ActiveDescNullsLast = 'active_DESC_NULLS_LAST', + CreatedOnAsc = 'createdOn_ASC', + CreatedOnAscNullsFirst = 'createdOn_ASC_NULLS_FIRST', + CreatedOnDesc = 'createdOn_DESC', + CreatedOnDescNullsLast = 'createdOn_DESC_NULLS_LAST', + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IssuerIdAsc = 'issuer_id_ASC', + IssuerIdAscNullsFirst = 'issuer_id_ASC_NULLS_FIRST', + IssuerIdDesc = 'issuer_id_DESC', + IssuerIdDescNullsLast = 'issuer_id_DESC_NULLS_LAST', + IssuerIndexAsc = 'issuer_index_ASC', + IssuerIndexAscNullsFirst = 'issuer_index_ASC_NULLS_FIRST', + IssuerIndexDesc = 'issuer_index_DESC', + IssuerIndexDescNullsLast = 'issuer_index_DESC_NULLS_LAST', + IssuerNameAsc = 'issuer_name_ASC', + IssuerNameAscNullsFirst = 'issuer_name_ASC_NULLS_FIRST', + IssuerNameDesc = 'issuer_name_DESC', + IssuerNameDescNullsLast = 'issuer_name_DESC_NULLS_LAST', + ReceiverIdAsc = 'receiver_id_ASC', + ReceiverIdAscNullsFirst = 'receiver_id_ASC_NULLS_FIRST', + ReceiverIdDesc = 'receiver_id_DESC', + ReceiverIdDescNullsLast = 'receiver_id_DESC_NULLS_LAST', + ReceiverIndexAsc = 'receiver_index_ASC', + ReceiverIndexAscNullsFirst = 'receiver_index_ASC_NULLS_FIRST', + ReceiverIndexDesc = 'receiver_index_DESC', + ReceiverIndexDescNullsLast = 'receiver_index_DESC_NULLS_LAST', + ReceiverNameAsc = 'receiver_name_ASC', + ReceiverNameAscNullsFirst = 'receiver_name_ASC_NULLS_FIRST', + ReceiverNameDesc = 'receiver_name_DESC', + ReceiverNameDescNullsLast = 'receiver_name_DESC_NULLS_LAST', +} + +/** Certification removal */ +export type CertRemoval = { + __typename?: 'CertRemoval'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertRemovalEdge = { + __typename?: 'CertRemovalEdge'; + cursor: Scalars['String']['output']; + node: CertRemoval; +}; + +export enum CertRemovalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertRemovalWhereInput = { + AND?: InputMaybe<Array<CertRemovalWhereInput>>; + OR?: InputMaybe<Array<CertRemovalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertRemovalsConnection = { + __typename?: 'CertRemovalsConnection'; + edges: Array<CertRemovalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Certification renewal */ +export type CertRenewal = { + __typename?: 'CertRenewal'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertRenewalEdge = { + __typename?: 'CertRenewalEdge'; + cursor: Scalars['String']['output']; + node: CertRenewal; +}; + +export enum CertRenewalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertRenewalWhereInput = { + AND?: InputMaybe<Array<CertRenewalWhereInput>>; + OR?: InputMaybe<Array<CertRenewalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertRenewalsConnection = { + __typename?: 'CertRenewalsConnection'; + edges: Array<CertRenewalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type CertWhereInput = { + AND?: InputMaybe<Array<CertWhereInput>>; + OR?: InputMaybe<Array<CertWhereInput>>; + active_eq?: InputMaybe<Scalars['Boolean']['input']>; + active_isNull?: InputMaybe<Scalars['Boolean']['input']>; + active_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_gt?: InputMaybe<Scalars['Int']['input']>; + createdOn_gte?: InputMaybe<Scalars['Int']['input']>; + createdOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + createdOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_lt?: InputMaybe<Scalars['Int']['input']>; + createdOn_lte?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + creation_every?: InputMaybe<CertCreationWhereInput>; + creation_none?: InputMaybe<CertCreationWhereInput>; + creation_some?: InputMaybe<CertCreationWhereInput>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + issuer?: InputMaybe<IdentityWhereInput>; + issuer_isNull?: InputMaybe<Scalars['Boolean']['input']>; + receiver?: InputMaybe<IdentityWhereInput>; + receiver_isNull?: InputMaybe<Scalars['Boolean']['input']>; + removal_every?: InputMaybe<CertRemovalWhereInput>; + removal_none?: InputMaybe<CertRemovalWhereInput>; + removal_some?: InputMaybe<CertRemovalWhereInput>; + renewal_every?: InputMaybe<CertRenewalWhereInput>; + renewal_none?: InputMaybe<CertRenewalWhereInput>; + renewal_some?: InputMaybe<CertRenewalWhereInput>; +}; + +export type CertsConnection = { + __typename?: 'CertsConnection'; + edges: Array<CertEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** owner key change */ +export type ChangeOwnerKey = { + __typename?: 'ChangeOwnerKey'; + blockNumber: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; + next: Account; + previous: Account; +}; + +export type ChangeOwnerKeyEdge = { + __typename?: 'ChangeOwnerKeyEdge'; + cursor: Scalars['String']['output']; + node: ChangeOwnerKey; +}; + +export enum ChangeOwnerKeyOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', + NextIdAsc = 'next_id_ASC', + NextIdAscNullsFirst = 'next_id_ASC_NULLS_FIRST', + NextIdDesc = 'next_id_DESC', + NextIdDescNullsLast = 'next_id_DESC_NULLS_LAST', + PreviousIdAsc = 'previous_id_ASC', + PreviousIdAscNullsFirst = 'previous_id_ASC_NULLS_FIRST', + PreviousIdDesc = 'previous_id_DESC', + PreviousIdDescNullsLast = 'previous_id_DESC_NULLS_LAST', +} + +export type ChangeOwnerKeyWhereInput = { + AND?: InputMaybe<Array<ChangeOwnerKeyWhereInput>>; + OR?: InputMaybe<Array<ChangeOwnerKeyWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + next?: InputMaybe<AccountWhereInput>; + next_isNull?: InputMaybe<Scalars['Boolean']['input']>; + previous?: InputMaybe<AccountWhereInput>; + previous_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type ChangeOwnerKeysConnection = { + __typename?: 'ChangeOwnerKeysConnection'; + edges: Array<ChangeOwnerKeyEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum CounterLevel { + Global = 'Global', + Item = 'Item', + Pallet = 'Pallet', +} + +export type Event = { + __typename?: 'Event'; + args?: Maybe<Scalars['JSON']['output']>; + argsStr?: Maybe<Array<Maybe<Scalars['String']['output']>>>; + block: Block; + call?: Maybe<Call>; + extrinsic?: Maybe<Extrinsic>; + /** Event id - e.g. 0000000001-000000-272d6 */ + id: Scalars['String']['output']; + index: Scalars['Int']['output']; + name: Scalars['String']['output']; + pallet: Scalars['String']['output']; + phase: Scalars['String']['output']; +}; + +export type EventEdge = { + __typename?: 'EventEdge'; + cursor: Scalars['String']['output']; + node: Event; +}; + +export enum EventOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + CallIdAsc = 'call_id_ASC', + CallIdAscNullsFirst = 'call_id_ASC_NULLS_FIRST', + CallIdDesc = 'call_id_DESC', + CallIdDescNullsLast = 'call_id_DESC_NULLS_LAST', + CallNameAsc = 'call_name_ASC', + CallNameAscNullsFirst = 'call_name_ASC_NULLS_FIRST', + CallNameDesc = 'call_name_DESC', + CallNameDescNullsLast = 'call_name_DESC_NULLS_LAST', + CallPalletAsc = 'call_pallet_ASC', + CallPalletAscNullsFirst = 'call_pallet_ASC_NULLS_FIRST', + CallPalletDesc = 'call_pallet_DESC', + CallPalletDescNullsLast = 'call_pallet_DESC_NULLS_LAST', + CallSuccessAsc = 'call_success_ASC', + CallSuccessAscNullsFirst = 'call_success_ASC_NULLS_FIRST', + CallSuccessDesc = 'call_success_DESC', + CallSuccessDescNullsLast = 'call_success_DESC_NULLS_LAST', + ExtrinsicFeeAsc = 'extrinsic_fee_ASC', + ExtrinsicFeeAscNullsFirst = 'extrinsic_fee_ASC_NULLS_FIRST', + ExtrinsicFeeDesc = 'extrinsic_fee_DESC', + ExtrinsicFeeDescNullsLast = 'extrinsic_fee_DESC_NULLS_LAST', + ExtrinsicHashAsc = 'extrinsic_hash_ASC', + ExtrinsicHashAscNullsFirst = 'extrinsic_hash_ASC_NULLS_FIRST', + ExtrinsicHashDesc = 'extrinsic_hash_DESC', + ExtrinsicHashDescNullsLast = 'extrinsic_hash_DESC_NULLS_LAST', + ExtrinsicIdAsc = 'extrinsic_id_ASC', + ExtrinsicIdAscNullsFirst = 'extrinsic_id_ASC_NULLS_FIRST', + ExtrinsicIdDesc = 'extrinsic_id_DESC', + ExtrinsicIdDescNullsLast = 'extrinsic_id_DESC_NULLS_LAST', + ExtrinsicIndexAsc = 'extrinsic_index_ASC', + ExtrinsicIndexAscNullsFirst = 'extrinsic_index_ASC_NULLS_FIRST', + ExtrinsicIndexDesc = 'extrinsic_index_DESC', + ExtrinsicIndexDescNullsLast = 'extrinsic_index_DESC_NULLS_LAST', + ExtrinsicSuccessAsc = 'extrinsic_success_ASC', + ExtrinsicSuccessAscNullsFirst = 'extrinsic_success_ASC_NULLS_FIRST', + ExtrinsicSuccessDesc = 'extrinsic_success_DESC', + ExtrinsicSuccessDescNullsLast = 'extrinsic_success_DESC_NULLS_LAST', + ExtrinsicTipAsc = 'extrinsic_tip_ASC', + ExtrinsicTipAscNullsFirst = 'extrinsic_tip_ASC_NULLS_FIRST', + ExtrinsicTipDesc = 'extrinsic_tip_DESC', + ExtrinsicTipDescNullsLast = 'extrinsic_tip_DESC_NULLS_LAST', + ExtrinsicVersionAsc = 'extrinsic_version_ASC', + ExtrinsicVersionAscNullsFirst = 'extrinsic_version_ASC_NULLS_FIRST', + ExtrinsicVersionDesc = 'extrinsic_version_DESC', + ExtrinsicVersionDescNullsLast = 'extrinsic_version_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + PalletAsc = 'pallet_ASC', + PalletAscNullsFirst = 'pallet_ASC_NULLS_FIRST', + PalletDesc = 'pallet_DESC', + PalletDescNullsLast = 'pallet_DESC_NULLS_LAST', + PhaseAsc = 'phase_ASC', + PhaseAscNullsFirst = 'phase_ASC_NULLS_FIRST', + PhaseDesc = 'phase_DESC', + PhaseDescNullsLast = 'phase_DESC_NULLS_LAST', +} + +export type EventWhereInput = { + AND?: InputMaybe<Array<EventWhereInput>>; + OR?: InputMaybe<Array<EventWhereInput>>; + argsStr_containsAll?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsAny?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsNone?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_eq?: InputMaybe<Scalars['JSON']['input']>; + args_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + args_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + args_not_eq?: InputMaybe<Scalars['JSON']['input']>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + call?: InputMaybe<CallWhereInput>; + call_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsic?: InputMaybe<ExtrinsicWhereInput>; + extrinsic_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_contains?: InputMaybe<Scalars['String']['input']>; + pallet_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_eq?: InputMaybe<Scalars['String']['input']>; + pallet_gt?: InputMaybe<Scalars['String']['input']>; + pallet_gte?: InputMaybe<Scalars['String']['input']>; + pallet_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_isNull?: InputMaybe<Scalars['Boolean']['input']>; + pallet_lt?: InputMaybe<Scalars['String']['input']>; + pallet_lte?: InputMaybe<Scalars['String']['input']>; + pallet_not_contains?: InputMaybe<Scalars['String']['input']>; + pallet_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_not_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_not_eq?: InputMaybe<Scalars['String']['input']>; + pallet_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_not_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_startsWith?: InputMaybe<Scalars['String']['input']>; + phase_contains?: InputMaybe<Scalars['String']['input']>; + phase_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + phase_endsWith?: InputMaybe<Scalars['String']['input']>; + phase_eq?: InputMaybe<Scalars['String']['input']>; + phase_gt?: InputMaybe<Scalars['String']['input']>; + phase_gte?: InputMaybe<Scalars['String']['input']>; + phase_in?: InputMaybe<Array<Scalars['String']['input']>>; + phase_isNull?: InputMaybe<Scalars['Boolean']['input']>; + phase_lt?: InputMaybe<Scalars['String']['input']>; + phase_lte?: InputMaybe<Scalars['String']['input']>; + phase_not_contains?: InputMaybe<Scalars['String']['input']>; + phase_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + phase_not_endsWith?: InputMaybe<Scalars['String']['input']>; + phase_not_eq?: InputMaybe<Scalars['String']['input']>; + phase_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + phase_not_startsWith?: InputMaybe<Scalars['String']['input']>; + phase_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type EventsConnection = { + __typename?: 'EventsConnection'; + edges: Array<EventEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Extrinsic = { + __typename?: 'Extrinsic'; + block: Block; + call: Call; + calls: Array<Call>; + error?: Maybe<Scalars['JSON']['output']>; + events: Array<Event>; + fee?: Maybe<Scalars['BigInt']['output']>; + hash: Scalars['Bytes']['output']; + id: Scalars['String']['output']; + index: Scalars['Int']['output']; + signature?: Maybe<ExtrinsicSignature>; + success?: Maybe<Scalars['Boolean']['output']>; + tip?: Maybe<Scalars['BigInt']['output']>; + version: Scalars['Int']['output']; +}; + +export type ExtrinsicCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type ExtrinsicEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type ExtrinsicEdge = { + __typename?: 'ExtrinsicEdge'; + cursor: Scalars['String']['output']; + node: Extrinsic; +}; + +export enum ExtrinsicOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + CallIdAsc = 'call_id_ASC', + CallIdAscNullsFirst = 'call_id_ASC_NULLS_FIRST', + CallIdDesc = 'call_id_DESC', + CallIdDescNullsLast = 'call_id_DESC_NULLS_LAST', + CallNameAsc = 'call_name_ASC', + CallNameAscNullsFirst = 'call_name_ASC_NULLS_FIRST', + CallNameDesc = 'call_name_DESC', + CallNameDescNullsLast = 'call_name_DESC_NULLS_LAST', + CallPalletAsc = 'call_pallet_ASC', + CallPalletAscNullsFirst = 'call_pallet_ASC_NULLS_FIRST', + CallPalletDesc = 'call_pallet_DESC', + CallPalletDescNullsLast = 'call_pallet_DESC_NULLS_LAST', + CallSuccessAsc = 'call_success_ASC', + CallSuccessAscNullsFirst = 'call_success_ASC_NULLS_FIRST', + CallSuccessDesc = 'call_success_DESC', + CallSuccessDescNullsLast = 'call_success_DESC_NULLS_LAST', + FeeAsc = 'fee_ASC', + FeeAscNullsFirst = 'fee_ASC_NULLS_FIRST', + FeeDesc = 'fee_DESC', + FeeDescNullsLast = 'fee_DESC_NULLS_LAST', + HashAsc = 'hash_ASC', + HashAscNullsFirst = 'hash_ASC_NULLS_FIRST', + HashDesc = 'hash_DESC', + HashDescNullsLast = 'hash_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + SuccessAsc = 'success_ASC', + SuccessAscNullsFirst = 'success_ASC_NULLS_FIRST', + SuccessDesc = 'success_DESC', + SuccessDescNullsLast = 'success_DESC_NULLS_LAST', + TipAsc = 'tip_ASC', + TipAscNullsFirst = 'tip_ASC_NULLS_FIRST', + TipDesc = 'tip_DESC', + TipDescNullsLast = 'tip_DESC_NULLS_LAST', + VersionAsc = 'version_ASC', + VersionAscNullsFirst = 'version_ASC_NULLS_FIRST', + VersionDesc = 'version_DESC', + VersionDescNullsLast = 'version_DESC_NULLS_LAST', +} + +export type ExtrinsicSignature = { + __typename?: 'ExtrinsicSignature'; + address?: Maybe<Scalars['JSON']['output']>; + signature?: Maybe<Scalars['JSON']['output']>; + signedExtensions?: Maybe<Scalars['JSON']['output']>; +}; + +export type ExtrinsicSignatureWhereInput = { + address_eq?: InputMaybe<Scalars['JSON']['input']>; + address_isNull?: InputMaybe<Scalars['Boolean']['input']>; + address_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + address_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + address_not_eq?: InputMaybe<Scalars['JSON']['input']>; + signature_eq?: InputMaybe<Scalars['JSON']['input']>; + signature_isNull?: InputMaybe<Scalars['Boolean']['input']>; + signature_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + signature_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + signature_not_eq?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_eq?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_isNull?: InputMaybe<Scalars['Boolean']['input']>; + signedExtensions_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_not_eq?: InputMaybe<Scalars['JSON']['input']>; +}; + +export type ExtrinsicWhereInput = { + AND?: InputMaybe<Array<ExtrinsicWhereInput>>; + OR?: InputMaybe<Array<ExtrinsicWhereInput>>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + call?: InputMaybe<CallWhereInput>; + call_isNull?: InputMaybe<Scalars['Boolean']['input']>; + calls_every?: InputMaybe<CallWhereInput>; + calls_none?: InputMaybe<CallWhereInput>; + calls_some?: InputMaybe<CallWhereInput>; + error_eq?: InputMaybe<Scalars['JSON']['input']>; + error_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + error_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + error_not_eq?: InputMaybe<Scalars['JSON']['input']>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + fee_eq?: InputMaybe<Scalars['BigInt']['input']>; + fee_gt?: InputMaybe<Scalars['BigInt']['input']>; + fee_gte?: InputMaybe<Scalars['BigInt']['input']>; + fee_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + fee_isNull?: InputMaybe<Scalars['Boolean']['input']>; + fee_lt?: InputMaybe<Scalars['BigInt']['input']>; + fee_lte?: InputMaybe<Scalars['BigInt']['input']>; + fee_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + fee_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + hash_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + hash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + signature?: InputMaybe<ExtrinsicSignatureWhereInput>; + signature_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_eq?: InputMaybe<Scalars['Boolean']['input']>; + success_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + tip_eq?: InputMaybe<Scalars['BigInt']['input']>; + tip_gt?: InputMaybe<Scalars['BigInt']['input']>; + tip_gte?: InputMaybe<Scalars['BigInt']['input']>; + tip_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + tip_isNull?: InputMaybe<Scalars['Boolean']['input']>; + tip_lt?: InputMaybe<Scalars['BigInt']['input']>; + tip_lte?: InputMaybe<Scalars['BigInt']['input']>; + tip_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + tip_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + version_eq?: InputMaybe<Scalars['Int']['input']>; + version_gt?: InputMaybe<Scalars['Int']['input']>; + version_gte?: InputMaybe<Scalars['Int']['input']>; + version_in?: InputMaybe<Array<Scalars['Int']['input']>>; + version_isNull?: InputMaybe<Scalars['Boolean']['input']>; + version_lt?: InputMaybe<Scalars['Int']['input']>; + version_lte?: InputMaybe<Scalars['Int']['input']>; + version_not_eq?: InputMaybe<Scalars['Int']['input']>; + version_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; +}; + +export type ExtrinsicsConnection = { + __typename?: 'ExtrinsicsConnection'; + edges: Array<ExtrinsicEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type IdentitiesConnection = { + __typename?: 'IdentitiesConnection'; + edges: Array<IdentityEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Identity */ +export type Identity = { + __typename?: 'Identity'; + /** Current account */ + account: Account; + /** Certifications issued */ + certIssued: Array<Cert>; + /** Certifications received */ + certReceived: Array<Cert>; + id: Scalars['String']['output']; + /** Identity index */ + index: Scalars['Int']['output']; + /** linked accounts */ + linkedAccount: Array<Account>; + /** Membership of the identity */ + membership?: Maybe<Membership>; + /** Name */ + name: Scalars['String']['output']; + /** Owner key changes */ + ownerKeyChange: Array<ChangeOwnerKey>; + /** Smith certifications issued */ + smithCertIssued: Array<SmithCert>; + /** Smith certifications received */ + smithCertReceived: Array<SmithCert>; + /** Smith Membership of the identity */ + smithMembership?: Maybe<SmithMembership>; +}; + +/** Identity */ +export type IdentityCertIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +/** Identity */ +export type IdentityCertReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +/** Identity */ +export type IdentityLinkedAccountArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<AccountOrderByInput>>; + where?: InputMaybe<AccountWhereInput>; +}; + +/** Identity */ +export type IdentityOwnerKeyChangeArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +/** Identity */ +export type IdentitySmithCertIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +/** Identity */ +export type IdentitySmithCertReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type IdentityEdge = { + __typename?: 'IdentityEdge'; + cursor: Scalars['String']['output']; + node: Identity; +}; + +export enum IdentityOrderByInput { + AccountIdAsc = 'account_id_ASC', + AccountIdAscNullsFirst = 'account_id_ASC_NULLS_FIRST', + AccountIdDesc = 'account_id_DESC', + AccountIdDescNullsLast = 'account_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + MembershipExpireOnAsc = 'membership_expireOn_ASC', + MembershipExpireOnAscNullsFirst = 'membership_expireOn_ASC_NULLS_FIRST', + MembershipExpireOnDesc = 'membership_expireOn_DESC', + MembershipExpireOnDescNullsLast = 'membership_expireOn_DESC_NULLS_LAST', + MembershipIdAsc = 'membership_id_ASC', + MembershipIdAscNullsFirst = 'membership_id_ASC_NULLS_FIRST', + MembershipIdDesc = 'membership_id_DESC', + MembershipIdDescNullsLast = 'membership_id_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + SmithMembershipExpireOnAsc = 'smithMembership_expireOn_ASC', + SmithMembershipExpireOnAscNullsFirst = 'smithMembership_expireOn_ASC_NULLS_FIRST', + SmithMembershipExpireOnDesc = 'smithMembership_expireOn_DESC', + SmithMembershipExpireOnDescNullsLast = 'smithMembership_expireOn_DESC_NULLS_LAST', + SmithMembershipIdAsc = 'smithMembership_id_ASC', + SmithMembershipIdAscNullsFirst = 'smithMembership_id_ASC_NULLS_FIRST', + SmithMembershipIdDesc = 'smithMembership_id_DESC', + SmithMembershipIdDescNullsLast = 'smithMembership_id_DESC_NULLS_LAST', +} + +export type IdentityWhereInput = { + AND?: InputMaybe<Array<IdentityWhereInput>>; + OR?: InputMaybe<Array<IdentityWhereInput>>; + account?: InputMaybe<AccountWhereInput>; + account_isNull?: InputMaybe<Scalars['Boolean']['input']>; + certIssued_every?: InputMaybe<CertWhereInput>; + certIssued_none?: InputMaybe<CertWhereInput>; + certIssued_some?: InputMaybe<CertWhereInput>; + certReceived_every?: InputMaybe<CertWhereInput>; + certReceived_none?: InputMaybe<CertWhereInput>; + certReceived_some?: InputMaybe<CertWhereInput>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + linkedAccount_every?: InputMaybe<AccountWhereInput>; + linkedAccount_none?: InputMaybe<AccountWhereInput>; + linkedAccount_some?: InputMaybe<AccountWhereInput>; + membership?: InputMaybe<MembershipWhereInput>; + membership_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + ownerKeyChange_every?: InputMaybe<ChangeOwnerKeyWhereInput>; + ownerKeyChange_none?: InputMaybe<ChangeOwnerKeyWhereInput>; + ownerKeyChange_some?: InputMaybe<ChangeOwnerKeyWhereInput>; + smithCertIssued_every?: InputMaybe<SmithCertWhereInput>; + smithCertIssued_none?: InputMaybe<SmithCertWhereInput>; + smithCertIssued_some?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_every?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_none?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_some?: InputMaybe<SmithCertWhereInput>; + smithMembership?: InputMaybe<SmithMembershipWhereInput>; + smithMembership_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export enum ItemType { + Calls = 'Calls', + Events = 'Events', + Extrinsics = 'Extrinsics', +} + +export type ItemsCounter = { + __typename?: 'ItemsCounter'; + id: Scalars['String']['output']; + level: CounterLevel; + total: Scalars['Int']['output']; + type: ItemType; +}; + +export type ItemsCounterEdge = { + __typename?: 'ItemsCounterEdge'; + cursor: Scalars['String']['output']; + node: ItemsCounter; +}; + +export enum ItemsCounterOrderByInput { + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + LevelAsc = 'level_ASC', + LevelAscNullsFirst = 'level_ASC_NULLS_FIRST', + LevelDesc = 'level_DESC', + LevelDescNullsLast = 'level_DESC_NULLS_LAST', + TotalAsc = 'total_ASC', + TotalAscNullsFirst = 'total_ASC_NULLS_FIRST', + TotalDesc = 'total_DESC', + TotalDescNullsLast = 'total_DESC_NULLS_LAST', + TypeAsc = 'type_ASC', + TypeAscNullsFirst = 'type_ASC_NULLS_FIRST', + TypeDesc = 'type_DESC', + TypeDescNullsLast = 'type_DESC_NULLS_LAST', +} + +export type ItemsCounterWhereInput = { + AND?: InputMaybe<Array<ItemsCounterWhereInput>>; + OR?: InputMaybe<Array<ItemsCounterWhereInput>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + level_eq?: InputMaybe<CounterLevel>; + level_in?: InputMaybe<Array<CounterLevel>>; + level_isNull?: InputMaybe<Scalars['Boolean']['input']>; + level_not_eq?: InputMaybe<CounterLevel>; + level_not_in?: InputMaybe<Array<CounterLevel>>; + total_eq?: InputMaybe<Scalars['Int']['input']>; + total_gt?: InputMaybe<Scalars['Int']['input']>; + total_gte?: InputMaybe<Scalars['Int']['input']>; + total_in?: InputMaybe<Array<Scalars['Int']['input']>>; + total_isNull?: InputMaybe<Scalars['Boolean']['input']>; + total_lt?: InputMaybe<Scalars['Int']['input']>; + total_lte?: InputMaybe<Scalars['Int']['input']>; + total_not_eq?: InputMaybe<Scalars['Int']['input']>; + total_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + type_eq?: InputMaybe<ItemType>; + type_in?: InputMaybe<Array<ItemType>>; + type_isNull?: InputMaybe<Scalars['Boolean']['input']>; + type_not_eq?: InputMaybe<ItemType>; + type_not_in?: InputMaybe<Array<ItemType>>; +}; + +export type ItemsCountersConnection = { + __typename?: 'ItemsCountersConnection'; + edges: Array<ItemsCounterEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Membership */ +export type Membership = { + __typename?: 'Membership'; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; +}; + +export type MembershipEdge = { + __typename?: 'MembershipEdge'; + cursor: Scalars['String']['output']; + node: Membership; +}; + +export enum MembershipOrderByInput { + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', +} + +export type MembershipWhereInput = { + AND?: InputMaybe<Array<MembershipWhereInput>>; + OR?: InputMaybe<Array<MembershipWhereInput>>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type MembershipsConnection = { + __typename?: 'MembershipsConnection'; + edges: Array<MembershipEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + endCursor: Scalars['String']['output']; + hasNextPage: Scalars['Boolean']['output']; + hasPreviousPage: Scalars['Boolean']['output']; + startCursor: Scalars['String']['output']; +}; + +export type Query = { + __typename?: 'Query'; + accountById?: Maybe<Account>; + /** @deprecated Use accountById */ + accountByUniqueInput?: Maybe<Account>; + accounts: Array<Account>; + accountsConnection: AccountsConnection; + blockById?: Maybe<Block>; + /** @deprecated Use blockById */ + blockByUniqueInput?: Maybe<Block>; + blocks: Array<Block>; + blocksConnection: BlocksConnection; + callById?: Maybe<Call>; + /** @deprecated Use callById */ + callByUniqueInput?: Maybe<Call>; + calls: Array<Call>; + callsConnection: CallsConnection; + certById?: Maybe<Cert>; + /** @deprecated Use certById */ + certByUniqueInput?: Maybe<Cert>; + certCreationById?: Maybe<CertCreation>; + /** @deprecated Use certCreationById */ + certCreationByUniqueInput?: Maybe<CertCreation>; + certCreations: Array<CertCreation>; + certCreationsConnection: CertCreationsConnection; + certRemovalById?: Maybe<CertRemoval>; + /** @deprecated Use certRemovalById */ + certRemovalByUniqueInput?: Maybe<CertRemoval>; + certRemovals: Array<CertRemoval>; + certRemovalsConnection: CertRemovalsConnection; + certRenewalById?: Maybe<CertRenewal>; + /** @deprecated Use certRenewalById */ + certRenewalByUniqueInput?: Maybe<CertRenewal>; + certRenewals: Array<CertRenewal>; + certRenewalsConnection: CertRenewalsConnection; + certs: Array<Cert>; + certsConnection: CertsConnection; + changeOwnerKeyById?: Maybe<ChangeOwnerKey>; + /** @deprecated Use changeOwnerKeyById */ + changeOwnerKeyByUniqueInput?: Maybe<ChangeOwnerKey>; + changeOwnerKeys: Array<ChangeOwnerKey>; + changeOwnerKeysConnection: ChangeOwnerKeysConnection; + eventById?: Maybe<Event>; + /** @deprecated Use eventById */ + eventByUniqueInput?: Maybe<Event>; + events: Array<Event>; + eventsConnection: EventsConnection; + extrinsicById?: Maybe<Extrinsic>; + /** @deprecated Use extrinsicById */ + extrinsicByUniqueInput?: Maybe<Extrinsic>; + extrinsics: Array<Extrinsic>; + extrinsicsConnection: ExtrinsicsConnection; + identities: Array<Identity>; + identitiesConnection: IdentitiesConnection; + identityById?: Maybe<Identity>; + /** @deprecated Use identityById */ + identityByUniqueInput?: Maybe<Identity>; + itemsCounterById?: Maybe<ItemsCounter>; + /** @deprecated Use itemsCounterById */ + itemsCounterByUniqueInput?: Maybe<ItemsCounter>; + itemsCounters: Array<ItemsCounter>; + itemsCountersConnection: ItemsCountersConnection; + membershipById?: Maybe<Membership>; + /** @deprecated Use membershipById */ + membershipByUniqueInput?: Maybe<Membership>; + memberships: Array<Membership>; + membershipsConnection: MembershipsConnection; + smithCertById?: Maybe<SmithCert>; + /** @deprecated Use smithCertById */ + smithCertByUniqueInput?: Maybe<SmithCert>; + smithCertCreationById?: Maybe<SmithCertCreation>; + /** @deprecated Use smithCertCreationById */ + smithCertCreationByUniqueInput?: Maybe<SmithCertCreation>; + smithCertCreations: Array<SmithCertCreation>; + smithCertCreationsConnection: SmithCertCreationsConnection; + smithCertRemovalById?: Maybe<SmithCertRemoval>; + /** @deprecated Use smithCertRemovalById */ + smithCertRemovalByUniqueInput?: Maybe<SmithCertRemoval>; + smithCertRemovals: Array<SmithCertRemoval>; + smithCertRemovalsConnection: SmithCertRemovalsConnection; + smithCertRenewalById?: Maybe<SmithCertRenewal>; + /** @deprecated Use smithCertRenewalById */ + smithCertRenewalByUniqueInput?: Maybe<SmithCertRenewal>; + smithCertRenewals: Array<SmithCertRenewal>; + smithCertRenewalsConnection: SmithCertRenewalsConnection; + smithCerts: Array<SmithCert>; + smithCertsConnection: SmithCertsConnection; + smithMembershipById?: Maybe<SmithMembership>; + /** @deprecated Use smithMembershipById */ + smithMembershipByUniqueInput?: Maybe<SmithMembership>; + smithMemberships: Array<SmithMembership>; + smithMembershipsConnection: SmithMembershipsConnection; + squidStatus?: Maybe<SquidStatus>; + transferById?: Maybe<Transfer>; + /** @deprecated Use transferById */ + transferByUniqueInput?: Maybe<Transfer>; + transfers: Array<Transfer>; + transfersConnection: TransfersConnection; +}; + +export type QueryAccountByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryAccountByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryAccountsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<AccountOrderByInput>>; + where?: InputMaybe<AccountWhereInput>; +}; + +export type QueryAccountsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<AccountOrderByInput>; + where?: InputMaybe<AccountWhereInput>; +}; + +export type QueryBlockByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryBlockByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryBlocksArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<BlockOrderByInput>>; + where?: InputMaybe<BlockWhereInput>; +}; + +export type QueryBlocksConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<BlockOrderByInput>; + where?: InputMaybe<BlockWhereInput>; +}; + +export type QueryCallByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCallByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type QueryCallsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CallOrderByInput>; + where?: InputMaybe<CallWhereInput>; +}; + +export type QueryCertByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertCreationByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertCreationByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertCreationsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertCreationOrderByInput>>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +export type QueryCertCreationsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertCreationOrderByInput>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +export type QueryCertRemovalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertRemovalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertRemovalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRemovalOrderByInput>>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +export type QueryCertRemovalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertRemovalOrderByInput>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +export type QueryCertRenewalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertRenewalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertRenewalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRenewalOrderByInput>>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +export type QueryCertRenewalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertRenewalOrderByInput>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +export type QueryCertsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +export type QueryCertsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertOrderByInput>; + where?: InputMaybe<CertWhereInput>; +}; + +export type QueryChangeOwnerKeyByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryChangeOwnerKeyByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryChangeOwnerKeysArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type QueryChangeOwnerKeysConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ChangeOwnerKeyOrderByInput>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type QueryEventByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryEventByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type QueryEventsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<EventOrderByInput>; + where?: InputMaybe<EventWhereInput>; +}; + +export type QueryExtrinsicByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryExtrinsicByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryExtrinsicsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ExtrinsicOrderByInput>>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type QueryExtrinsicsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ExtrinsicOrderByInput>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type QueryIdentitiesArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<IdentityOrderByInput>>; + where?: InputMaybe<IdentityWhereInput>; +}; + +export type QueryIdentitiesConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<IdentityOrderByInput>; + where?: InputMaybe<IdentityWhereInput>; +}; + +export type QueryIdentityByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryIdentityByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryItemsCounterByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryItemsCounterByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryItemsCountersArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ItemsCounterOrderByInput>>; + where?: InputMaybe<ItemsCounterWhereInput>; +}; + +export type QueryItemsCountersConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ItemsCounterOrderByInput>; + where?: InputMaybe<ItemsCounterWhereInput>; +}; + +export type QueryMembershipByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryMembershipByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryMembershipsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<MembershipOrderByInput>>; + where?: InputMaybe<MembershipWhereInput>; +}; + +export type QueryMembershipsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<MembershipOrderByInput>; + where?: InputMaybe<MembershipWhereInput>; +}; + +export type QuerySmithCertByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertCreationByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertCreationByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertCreationsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertCreationOrderByInput>>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +export type QuerySmithCertCreationsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertCreationOrderByInput>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +export type QuerySmithCertRemovalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertRemovalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertRemovalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRemovalOrderByInput>>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +export type QuerySmithCertRemovalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertRemovalOrderByInput>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +export type QuerySmithCertRenewalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertRenewalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertRenewalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRenewalOrderByInput>>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type QuerySmithCertRenewalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertRenewalOrderByInput>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type QuerySmithCertsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type QuerySmithCertsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertOrderByInput>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type QuerySmithMembershipByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithMembershipByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithMembershipsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithMembershipOrderByInput>>; + where?: InputMaybe<SmithMembershipWhereInput>; +}; + +export type QuerySmithMembershipsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithMembershipOrderByInput>; + where?: InputMaybe<SmithMembershipWhereInput>; +}; + +export type QueryTransferByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryTransferByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryTransfersArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type QueryTransfersConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<TransferOrderByInput>; + where?: InputMaybe<TransferWhereInput>; +}; + +/** Smith certification */ +export type SmithCert = { + __typename?: 'SmithCert'; + active: Scalars['Boolean']['output']; + createdOn: Scalars['Int']['output']; + creation: Array<SmithCertCreation>; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + issuer: Identity; + receiver: Identity; + removal: Array<SmithCertRemoval>; + renewal: Array<SmithCertRenewal>; +}; + +/** Smith certification */ +export type SmithCertCreationArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertCreationOrderByInput>>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +/** Smith certification */ +export type SmithCertRemovalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRemovalOrderByInput>>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +/** Smith certification */ +export type SmithCertRenewalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRenewalOrderByInput>>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type SmithCertCreation = { + __typename?: 'SmithCertCreation'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertCreationEdge = { + __typename?: 'SmithCertCreationEdge'; + cursor: Scalars['String']['output']; + node: SmithCertCreation; +}; + +export enum SmithCertCreationOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertCreationWhereInput = { + AND?: InputMaybe<Array<SmithCertCreationWhereInput>>; + OR?: InputMaybe<Array<SmithCertCreationWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertCreationsConnection = { + __typename?: 'SmithCertCreationsConnection'; + edges: Array<SmithCertCreationEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertEdge = { + __typename?: 'SmithCertEdge'; + cursor: Scalars['String']['output']; + node: SmithCert; +}; + +export enum SmithCertOrderByInput { + ActiveAsc = 'active_ASC', + ActiveAscNullsFirst = 'active_ASC_NULLS_FIRST', + ActiveDesc = 'active_DESC', + ActiveDescNullsLast = 'active_DESC_NULLS_LAST', + CreatedOnAsc = 'createdOn_ASC', + CreatedOnAscNullsFirst = 'createdOn_ASC_NULLS_FIRST', + CreatedOnDesc = 'createdOn_DESC', + CreatedOnDescNullsLast = 'createdOn_DESC_NULLS_LAST', + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IssuerIdAsc = 'issuer_id_ASC', + IssuerIdAscNullsFirst = 'issuer_id_ASC_NULLS_FIRST', + IssuerIdDesc = 'issuer_id_DESC', + IssuerIdDescNullsLast = 'issuer_id_DESC_NULLS_LAST', + IssuerIndexAsc = 'issuer_index_ASC', + IssuerIndexAscNullsFirst = 'issuer_index_ASC_NULLS_FIRST', + IssuerIndexDesc = 'issuer_index_DESC', + IssuerIndexDescNullsLast = 'issuer_index_DESC_NULLS_LAST', + IssuerNameAsc = 'issuer_name_ASC', + IssuerNameAscNullsFirst = 'issuer_name_ASC_NULLS_FIRST', + IssuerNameDesc = 'issuer_name_DESC', + IssuerNameDescNullsLast = 'issuer_name_DESC_NULLS_LAST', + ReceiverIdAsc = 'receiver_id_ASC', + ReceiverIdAscNullsFirst = 'receiver_id_ASC_NULLS_FIRST', + ReceiverIdDesc = 'receiver_id_DESC', + ReceiverIdDescNullsLast = 'receiver_id_DESC_NULLS_LAST', + ReceiverIndexAsc = 'receiver_index_ASC', + ReceiverIndexAscNullsFirst = 'receiver_index_ASC_NULLS_FIRST', + ReceiverIndexDesc = 'receiver_index_DESC', + ReceiverIndexDescNullsLast = 'receiver_index_DESC_NULLS_LAST', + ReceiverNameAsc = 'receiver_name_ASC', + ReceiverNameAscNullsFirst = 'receiver_name_ASC_NULLS_FIRST', + ReceiverNameDesc = 'receiver_name_DESC', + ReceiverNameDescNullsLast = 'receiver_name_DESC_NULLS_LAST', +} + +export type SmithCertRemoval = { + __typename?: 'SmithCertRemoval'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertRemovalEdge = { + __typename?: 'SmithCertRemovalEdge'; + cursor: Scalars['String']['output']; + node: SmithCertRemoval; +}; + +export enum SmithCertRemovalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertRemovalWhereInput = { + AND?: InputMaybe<Array<SmithCertRemovalWhereInput>>; + OR?: InputMaybe<Array<SmithCertRemovalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertRemovalsConnection = { + __typename?: 'SmithCertRemovalsConnection'; + edges: Array<SmithCertRemovalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertRenewal = { + __typename?: 'SmithCertRenewal'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertRenewalEdge = { + __typename?: 'SmithCertRenewalEdge'; + cursor: Scalars['String']['output']; + node: SmithCertRenewal; +}; + +export enum SmithCertRenewalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertRenewalWhereInput = { + AND?: InputMaybe<Array<SmithCertRenewalWhereInput>>; + OR?: InputMaybe<Array<SmithCertRenewalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertRenewalsConnection = { + __typename?: 'SmithCertRenewalsConnection'; + edges: Array<SmithCertRenewalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertWhereInput = { + AND?: InputMaybe<Array<SmithCertWhereInput>>; + OR?: InputMaybe<Array<SmithCertWhereInput>>; + active_eq?: InputMaybe<Scalars['Boolean']['input']>; + active_isNull?: InputMaybe<Scalars['Boolean']['input']>; + active_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_gt?: InputMaybe<Scalars['Int']['input']>; + createdOn_gte?: InputMaybe<Scalars['Int']['input']>; + createdOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + createdOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_lt?: InputMaybe<Scalars['Int']['input']>; + createdOn_lte?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + creation_every?: InputMaybe<SmithCertCreationWhereInput>; + creation_none?: InputMaybe<SmithCertCreationWhereInput>; + creation_some?: InputMaybe<SmithCertCreationWhereInput>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + issuer?: InputMaybe<IdentityWhereInput>; + issuer_isNull?: InputMaybe<Scalars['Boolean']['input']>; + receiver?: InputMaybe<IdentityWhereInput>; + receiver_isNull?: InputMaybe<Scalars['Boolean']['input']>; + removal_every?: InputMaybe<SmithCertRemovalWhereInput>; + removal_none?: InputMaybe<SmithCertRemovalWhereInput>; + removal_some?: InputMaybe<SmithCertRemovalWhereInput>; + renewal_every?: InputMaybe<SmithCertRenewalWhereInput>; + renewal_none?: InputMaybe<SmithCertRenewalWhereInput>; + renewal_some?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type SmithCertsConnection = { + __typename?: 'SmithCertsConnection'; + edges: Array<SmithCertEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Smith membership */ +export type SmithMembership = { + __typename?: 'SmithMembership'; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; +}; + +export type SmithMembershipEdge = { + __typename?: 'SmithMembershipEdge'; + cursor: Scalars['String']['output']; + node: SmithMembership; +}; + +export enum SmithMembershipOrderByInput { + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', +} + +export type SmithMembershipWhereInput = { + AND?: InputMaybe<Array<SmithMembershipWhereInput>>; + OR?: InputMaybe<Array<SmithMembershipWhereInput>>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type SmithMembershipsConnection = { + __typename?: 'SmithMembershipsConnection'; + edges: Array<SmithMembershipEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SquidStatus = { + __typename?: 'SquidStatus'; + /** The height of the processed part of the chain */ + height?: Maybe<Scalars['Int']['output']>; +}; + +export type Transfer = { + __typename?: 'Transfer'; + amount: Scalars['BigInt']['output']; + blockNumber: Scalars['Int']['output']; + comment?: Maybe<Scalars['String']['output']>; + from: Account; + id: Scalars['String']['output']; + timestamp: Scalars['DateTime']['output']; + to: Account; +}; + +export type TransferEdge = { + __typename?: 'TransferEdge'; + cursor: Scalars['String']['output']; + node: Transfer; +}; + +export enum TransferOrderByInput { + AmountAsc = 'amount_ASC', + AmountAscNullsFirst = 'amount_ASC_NULLS_FIRST', + AmountDesc = 'amount_DESC', + AmountDescNullsLast = 'amount_DESC_NULLS_LAST', + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CommentAsc = 'comment_ASC', + CommentAscNullsFirst = 'comment_ASC_NULLS_FIRST', + CommentDesc = 'comment_DESC', + CommentDescNullsLast = 'comment_DESC_NULLS_LAST', + FromIdAsc = 'from_id_ASC', + FromIdAscNullsFirst = 'from_id_ASC_NULLS_FIRST', + FromIdDesc = 'from_id_DESC', + FromIdDescNullsLast = 'from_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + TimestampAsc = 'timestamp_ASC', + TimestampAscNullsFirst = 'timestamp_ASC_NULLS_FIRST', + TimestampDesc = 'timestamp_DESC', + TimestampDescNullsLast = 'timestamp_DESC_NULLS_LAST', + ToIdAsc = 'to_id_ASC', + ToIdAscNullsFirst = 'to_id_ASC_NULLS_FIRST', + ToIdDesc = 'to_id_DESC', + ToIdDescNullsLast = 'to_id_DESC_NULLS_LAST', +} + +export type TransferWhereInput = { + AND?: InputMaybe<Array<TransferWhereInput>>; + OR?: InputMaybe<Array<TransferWhereInput>>; + amount_eq?: InputMaybe<Scalars['BigInt']['input']>; + amount_gt?: InputMaybe<Scalars['BigInt']['input']>; + amount_gte?: InputMaybe<Scalars['BigInt']['input']>; + amount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + amount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + amount_lt?: InputMaybe<Scalars['BigInt']['input']>; + amount_lte?: InputMaybe<Scalars['BigInt']['input']>; + amount_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + amount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + comment_contains?: InputMaybe<Scalars['String']['input']>; + comment_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + comment_endsWith?: InputMaybe<Scalars['String']['input']>; + comment_eq?: InputMaybe<Scalars['String']['input']>; + comment_gt?: InputMaybe<Scalars['String']['input']>; + comment_gte?: InputMaybe<Scalars['String']['input']>; + comment_in?: InputMaybe<Array<Scalars['String']['input']>>; + comment_isNull?: InputMaybe<Scalars['Boolean']['input']>; + comment_lt?: InputMaybe<Scalars['String']['input']>; + comment_lte?: InputMaybe<Scalars['String']['input']>; + comment_not_contains?: InputMaybe<Scalars['String']['input']>; + comment_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + comment_not_endsWith?: InputMaybe<Scalars['String']['input']>; + comment_not_eq?: InputMaybe<Scalars['String']['input']>; + comment_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + comment_not_startsWith?: InputMaybe<Scalars['String']['input']>; + comment_startsWith?: InputMaybe<Scalars['String']['input']>; + from?: InputMaybe<AccountWhereInput>; + from_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + timestamp_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + timestamp_isNull?: InputMaybe<Scalars['Boolean']['input']>; + timestamp_lt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_lte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + to?: InputMaybe<AccountWhereInput>; + to_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type TransfersConnection = { + __typename?: 'TransfersConnection'; + edges: Array<TransferEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type WhereIdInput = { + id: Scalars['String']['input']; +}; + +export type LightAccountFragment = { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; +}; + +export type WotSearchByTextQueryVariables = Exact<{ + searchText: Scalars['String']['input']; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; +}>; + +export type WotSearchByTextQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }>; +}; + +export type WotSearchByAddressQueryVariables = Exact<{ + address: Scalars['String']['input']; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; +}>; + +export type WotSearchByAddressQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }>; +}; + +export type WotSearchLastQueryVariables = Exact<{ + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; + pending: Scalars['Boolean']['input']; +}>; + +export type WotSearchLastQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }>; +}; + +export type TransferFragment = { + __typename: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; + to: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; +}; + +export type TransferSearchByAddressQueryVariables = Exact<{ + address: Scalars['String']['input']; + limit: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<TransferOrderByInput> | TransferOrderByInput>; + where?: InputMaybe<TransferWhereInput>; +}>; + +export type TransferSearchByAddressQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename: 'Account'; + id: string; + transfersIssued: Array<{ + __typename: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; + to: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; + }>; + transfersReceived: Array<{ + __typename: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; + to: { + __typename: 'Account'; + id: string; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }; + }>; + identity?: { __typename: 'Identity'; id: string; name: string; membership?: { __typename: 'Membership'; id: string } | null } | null; + }>; +}; + +export type LightBlockFragment = { + __typename: 'Block'; + id: string; + height: number; + hash: any; + timestamp: any; + callsCount: number; + eventsCount: number; + extrinsicsCount: number; +}; + +export type BlockByIdQueryVariables = Exact<{ + id: Scalars['String']['input']; +}>; + +export type BlockByIdQuery = { + __typename?: 'Query'; + blockById?: { + __typename: 'Block'; + id: string; + height: number; + hash: any; + timestamp: any; + callsCount: number; + eventsCount: number; + extrinsicsCount: number; + } | null; +}; + +export type BlocksQueryVariables = Exact<{ + where?: InputMaybe<BlockWhereInput>; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<BlockOrderByInput> | BlockOrderByInput>; +}>; + +export type BlocksQuery = { + __typename?: 'Query'; + blocks: Array<{ + __typename: 'Block'; + id: string; + height: number; + hash: any; + timestamp: any; + callsCount: number; + eventsCount: number; + extrinsicsCount: number; + }>; +}; + +export const LightAccountFragmentDoc = gql` + fragment LightAccount on Account { + id + __typename + identity { + __typename + id + name + membership { + __typename + id + } + } + } +`; +export const TransferFragmentDoc = gql` + fragment Transfer on Transfer { + id + __typename + amount + timestamp + blockNumber + from { + ...LightAccount + } + to { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; +export const LightBlockFragmentDoc = gql` + fragment LightBlock on Block { + id + height + hash + timestamp + callsCount + eventsCount + extrinsicsCount + __typename + } +`; +export const WotSearchByTextDocument = gql` + query WotSearchByText($searchText: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_startsWith: $searchText, OR: { identity: { name_containsInsensitive: $searchText } } } + ) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchByTextGQL extends Apollo.Query<WotSearchByTextQuery, WotSearchByTextQueryVariables> { + document = WotSearchByTextDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const WotSearchByAddressDocument = gql` + query WotSearchByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts(limit: $limit, offset: $offset, orderBy: $orderBy, where: { id_eq: $address }) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchByAddressGQL extends Apollo.Query<WotSearchByAddressQuery, WotSearchByAddressQueryVariables> { + document = WotSearchByAddressDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const WotSearchLastDocument = gql` + query WotSearchLast($limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!], $pending: Boolean!) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { identity: { id_isNull: false }, AND: { identity: { membership_isNull: $pending } } } + ) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchLastGQL extends Apollo.Query<WotSearchLastQuery, WotSearchLastQueryVariables> { + document = WotSearchLastDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const TransferSearchByAddressDocument = gql` + query TransferSearchByAddress($address: String!, $limit: Int!, $orderBy: [TransferOrderByInput!], $where: TransferWhereInput) { + accounts(limit: 1, where: { id_eq: $address }) { + ...LightAccount + transfersIssued(orderBy: $orderBy, where: $where, limit: $limit) { + ...Transfer + } + transfersReceived(orderBy: $orderBy, where: $where, limit: $limit) { + ...Transfer + } + } + } + ${LightAccountFragmentDoc} + ${TransferFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class TransferSearchByAddressGQL extends Apollo.Query<TransferSearchByAddressQuery, TransferSearchByAddressQueryVariables> { + document = TransferSearchByAddressDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const BlockByIdDocument = gql` + query BlockById($id: String!) { + blockById(id: $id) { + ...LightBlock + } + } + ${LightBlockFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class BlockByIdGQL extends Apollo.Query<BlockByIdQuery, BlockByIdQueryVariables> { + document = BlockByIdDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const BlocksDocument = gql` + query Blocks($where: BlockWhereInput, $limit: Int!, $offset: Int!, $orderBy: [BlockOrderByInput!]) { + blocks(limit: $limit, offset: $offset, orderBy: $orderBy, where: $where) { + ...LightBlock + } + } + ${LightBlockFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class BlocksGQL extends Apollo.Query<BlocksQuery, BlocksQueryVariables> { + document = BlocksDocument; + client = 'indexer'; + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} + +type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; + +interface WatchQueryOptionsAlone<V> extends Omit<ApolloCore.WatchQueryOptions<V>, 'query' | 'variables'> {} + +interface QueryOptionsAlone<V> extends Omit<ApolloCore.QueryOptions<V>, 'query' | 'variables'> {} + +@Injectable({ providedIn: 'root' }) +export class IndexerGraphqlService { + constructor( + private wotSearchByTextGql: WotSearchByTextGQL, + private wotSearchByAddressGql: WotSearchByAddressGQL, + private wotSearchLastGql: WotSearchLastGQL, + private transferSearchByAddressGql: TransferSearchByAddressGQL, + private blockByIdGql: BlockByIdGQL, + private blocksGql: BlocksGQL + ) {} + + wotSearchByText(variables: WotSearchByTextQueryVariables, options?: QueryOptionsAlone<WotSearchByTextQueryVariables>) { + return this.wotSearchByTextGql.fetch(variables, options); + } + + wotSearchByTextWatch(variables: WotSearchByTextQueryVariables, options?: WatchQueryOptionsAlone<WotSearchByTextQueryVariables>) { + return this.wotSearchByTextGql.watch(variables, options); + } + + wotSearchByAddress(variables: WotSearchByAddressQueryVariables, options?: QueryOptionsAlone<WotSearchByAddressQueryVariables>) { + return this.wotSearchByAddressGql.fetch(variables, options); + } + + wotSearchByAddressWatch(variables: WotSearchByAddressQueryVariables, options?: WatchQueryOptionsAlone<WotSearchByAddressQueryVariables>) { + return this.wotSearchByAddressGql.watch(variables, options); + } + + wotSearchLast(variables: WotSearchLastQueryVariables, options?: QueryOptionsAlone<WotSearchLastQueryVariables>) { + return this.wotSearchLastGql.fetch(variables, options); + } + + wotSearchLastWatch(variables: WotSearchLastQueryVariables, options?: WatchQueryOptionsAlone<WotSearchLastQueryVariables>) { + return this.wotSearchLastGql.watch(variables, options); + } + + transferSearchByAddress(variables: TransferSearchByAddressQueryVariables, options?: QueryOptionsAlone<TransferSearchByAddressQueryVariables>) { + return this.transferSearchByAddressGql.fetch(variables, options); + } + + transferSearchByAddressWatch( + variables: TransferSearchByAddressQueryVariables, + options?: WatchQueryOptionsAlone<TransferSearchByAddressQueryVariables> + ) { + return this.transferSearchByAddressGql.watch(variables, options); + } + + blockById(variables: BlockByIdQueryVariables, options?: QueryOptionsAlone<BlockByIdQueryVariables>) { + return this.blockByIdGql.fetch(variables, options); + } + + blockByIdWatch(variables: BlockByIdQueryVariables, options?: WatchQueryOptionsAlone<BlockByIdQueryVariables>) { + return this.blockByIdGql.watch(variables, options); + } + + blocks(variables: BlocksQueryVariables, options?: QueryOptionsAlone<BlocksQueryVariables>) { + return this.blocksGql.fetch(variables, options); + } + + blocksWatch(variables: BlocksQueryVariables, options?: WatchQueryOptionsAlone<BlocksQueryVariables>) { + return this.blocksGql.watch(variables, options); + } +} + +export interface PossibleTypesResultData { + possibleTypes: { + [key: string]: string[]; + }; +} +const result: PossibleTypesResultData = { + possibleTypes: {}, +}; +export default result; diff --git a/src/app/network/indexer.config.ts b/src/app/network/indexer.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..514e5c602958a91a6328bb20caa0b79823cc92ac --- /dev/null +++ b/src/app/network/indexer.config.ts @@ -0,0 +1,10 @@ +import { StrictTypedTypePolicies } from './indexer-helpers.generated'; + +export const INDEXER_GRAPHQL_TYPE_POLICIES = <StrictTypedTypePolicies>{ + Account: { + keyFields: ['id'], + }, + Transfer: { + keyFields: ['id'], + }, +}; diff --git a/src/app/network/indexer.queries.graphql b/src/app/network/indexer.queries.graphql new file mode 100644 index 0000000000000000000000000000000000000000..23f495155066551cbaf836df3b974efb89e11b51 --- /dev/null +++ b/src/app/network/indexer.queries.graphql @@ -0,0 +1,101 @@ + +fragment LightAccount on Account { + id + __typename + + identity { + __typename + id + name + membership { + __typename + id + } + } +} + +query WotSearchByText($searchText: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_startsWith: $searchText, OR: { identity: { name_containsInsensitive: $searchText } } } + ) { + ...LightAccount + } +} + +query WotSearchByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_eq: $address } + ) { + ...LightAccount + } +} + +query WotSearchLast($limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!], $pending: Boolean!) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: {identity: {id_isNull: false}, AND: {identity: {membership_isNull: $pending} }} + ) { + ...LightAccount + } +} + +fragment Transfer on Transfer { + id + __typename + amount + timestamp + blockNumber + from { + ...LightAccount + } + to { + ...LightAccount + } +} + +query TransferSearchByAddress($address: String!, $limit: Int!, $orderBy: [TransferOrderByInput!], $where: TransferWhereInput) { + accounts( + limit: 1 + where: {id_eq: $address} + ) { + ...LightAccount + transfersIssued(orderBy: $orderBy, where: $where, limit: $limit) { + ...Transfer + } + transfersReceived(orderBy: $orderBy, where: $where, limit: $limit) { + ...Transfer + } + } +} + +fragment LightBlock on Block { + id + height + hash + timestamp + callsCount + eventsCount + extrinsicsCount + __typename +} + +query BlockById($id: String!) { + blockById(id: $id) { + ...LightBlock + } +} + + +query Blocks($where: BlockWhereInput, $limit: Int!, $offset: Int!, $orderBy: [BlockOrderByInput!]) { + blocks(limit: $limit, offset: $offset, orderBy: $orderBy, where: $where) { + ...LightBlock + } +} diff --git a/src/app/network/indexer.service.ts b/src/app/network/indexer.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..6728bd530a471195571cf63118265ffef5849668 --- /dev/null +++ b/src/app/network/indexer.service.ts @@ -0,0 +1,301 @@ +import { Inject, Injectable, Optional } from '@angular/core'; +import { Peer, Peers } from '@app/shared/services/network/peer.model'; +import { Promise } from '@rx-angular/cdk/zone-less/browser'; +import { SettingsService } from '@app/settings/settings.service'; +import { arrayRandomPick, firstArrayValue, isNil, isNotNilOrBlank, toBoolean, toNumber } from '@app/shared/functions'; +import { TypePolicies } from '@apollo/client/core'; +import { + APP_GRAPHQL_FRAGMENTS, + APP_GRAPHQL_TYPE_POLICIES, + GraphqlService, + GraphqlServiceState, +} from '@app/shared/services/network/graphql/graphql.service'; +import { DocumentNode } from 'graphql/index'; +import { StorageService } from '@app/shared/services/storage/storage.service'; +import { Account } from '@app/account/account.model'; +import { AccountOrderByInput, BlockOrderByInput, IndexerGraphqlService, TransferOrderByInput } from './indexer-types.generated'; +import { firstValueFrom, mergeMap, Observable, of } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { IndexerFragmentConverter } from './indexer.utils'; +import { Transfer, TransferComparators, TransferSearchFilter } from '@app/transfer/transfer.model'; +import { WotSearchFilter } from '@app/wot/wot.model'; +import { Block, BlockSearchFilter } from '@app/block/block.model'; +import { DateUtils, fromDateISOString, toDateISOString } from '@app/shared/dates'; +import { LoadResult } from '@app/shared/services/service.model'; +import { Currency } from '@app/currency/currency.model'; +import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; +import { firstNotNilPromise } from '@app/shared/observables'; +import { unitOfTime } from 'moment'; +import { FetchPolicy } from '@apollo/client'; + +export interface IndexerState extends GraphqlServiceState { + currency: Currency; +} + +@Injectable({ providedIn: 'root' }) +export class IndexerService extends GraphqlService<IndexerState> { + @RxStateSelect() currency$: Observable<Currency>; + @RxStateProperty() currency: Currency; + + constructor( + storage: StorageService, + private settings: SettingsService, + private indexerGraphqlService: IndexerGraphqlService, + @Optional() @Inject(APP_GRAPHQL_TYPE_POLICIES) typePolicies: TypePolicies, + @Optional() @Inject(APP_GRAPHQL_FRAGMENTS) fragments: DocumentNode[] + ) { + super(storage, typePolicies, fragments, { + name: 'indexer-service', + startByReadyFunction: false, // Need an explicit call to start() + }); + } + + wotSearch(filter: WotSearchFilter, options: { offset?: number; limit?: number; fetchPolicy?: FetchPolicy }): Observable<LoadResult<Account>> { + console.info(`${this._logPrefix}Searching wot by filter...`, filter); + + options = { + offset: 0, + limit: 10, + ...options, + }; + + let data$: Observable<Account[]>; + if (isNotNilOrBlank(filter.address)) { + data$ = this.indexerGraphqlService + .wotSearchByAddress( + { + address: filter.address, + offset: options.offset, + limit: options.limit + 1, // Add 1 item, to check if can fetch more + orderBy: [AccountOrderByInput.IdAsc], + }, + { + fetchPolicy: options.fetchPolicy, + } + ) + .pipe(map(({ data }) => IndexerFragmentConverter.toAccounts(data?.accounts))); + } else if (isNotNilOrBlank(filter.searchText)) { + data$ = this.indexerGraphqlService + .wotSearchByText({ + searchText: filter.searchText, + offset: options.offset, + limit: options.limit + 1, // Add 1 item, to check if can fetch more + orderBy: [AccountOrderByInput.IdentityNameAsc], + }) + .pipe(map(({ data }) => IndexerFragmentConverter.toAccounts(data?.accounts))); + } else { + data$ = this.indexerGraphqlService + .wotSearchLastWatch({ + offset: options.offset, + limit: options.limit + 1, // Add 1 item, to check if can fetch more + orderBy: [AccountOrderByInput.IdentityIndexDesc], + pending: toBoolean(filter.pending, false), + }) + .valueChanges.pipe(map(({ data }) => IndexerFragmentConverter.toAccounts(data?.accounts))); + } + + return data$.pipe( + map((items) => { + const result: LoadResult<Account> = { data: items }; + if (items.length > options.limit) { + items = items.slice(0, options.limit); + const nextOffset = options.offset + options.limit; + result.data = items; + result.fetchMore = (limit) => { + console.debug(`${this._logPrefix}Fetching more accounts - offset: ${nextOffset}`); + return firstValueFrom(this.wotSearch(filter, { ...options, offset: nextOffset, limit: toNumber(limit, options.limit) })); + }; + } + return result; + }) + ); + } + + transferSearch( + filter: TransferSearchFilter, + options: { limit?: number; sliceUnit?: unitOfTime.DurationConstructor } + ): Observable<LoadResult<Transfer>> { + console.info(`${this._logPrefix}Searching transfers...`, filter && JSON.stringify(filter)); + + return this._transferSearch(filter, options).pipe( + map((data: Transfer[]) => { + const result: LoadResult<Transfer> = { data: data }; + // Can fetch more, on same timestamp + if (data.length > options.limit) { + data = data.slice(0, options.limit); + const maxTimestamp = data[data.length - 1].timestamp; + result.data = data; + result.fetchMore = (limit) => { + console.debug(`${this._logPrefix}Fetching more transfers before ${maxTimestamp}`); + return firstValueFrom( + this.transferSearch( + { ...filter, maxTimestamp, minTimestamp: undefined }, + { ...options, limit: toNumber(limit, options.limit), sliceUnit: 'month' } + ) + ); + }; + } + return result; + }) + ); + } + + private _transferSearch( + filter: TransferSearchFilter, + options: { limit?: number; sliceUnit?: unitOfTime.DurationConstructor; fetchPolicy?: FetchPolicy } + ): Observable<Transfer[]> { + options = { + limit: 10, + fetchPolicy: isNil(filter.maxTimestamp) ? 'no-cache' : undefined /*default*/, + ...options, + }; + filter = filter || {}; + const maxTimestamp = filter.maxTimestamp || DateUtils.moment(); + filter.minTimestamp = filter.minTimestamp || DateUtils.resetTime(maxTimestamp.clone().add(-1, options.sliceUnit || 'week')); + + const currencyStartTime = fromDateISOString(this.currency?.startTime); + + return this.indexerGraphqlService + .transferSearchByAddress( + { + address: filter.address, + limit: options.limit, + where: { + timestamp_gt: toDateISOString(filter.minTimestamp), + timestamp_lte: toDateISOString(filter.maxTimestamp), + }, + orderBy: [TransferOrderByInput.BlockNumberDesc], + }, + { + fetchPolicy: options.fetchPolicy, + } + ) + .pipe( + map(({ data }) => firstArrayValue(data.accounts)), + map((account) => { + return (account && [...account.transfersIssued, ...account.transfersReceived]) || []; + }), + // Convert into Transfer objects + map((inputs) => IndexerFragmentConverter.toTransfers(filter.address, inputs, true)), + // Sort all items + map((items) => items.sort(TransferComparators.sortByBlockDesc)), + // Loop to fetch more + mergeMap((items) => { + if (items.length < options.limit) { + const nextMaxTimestamp = filter.minTimestamp; + const nextMinTimestamp = DateUtils.resetTime(nextMaxTimestamp.clone().add(-1, 'month')); + + // Loop, using an older slice + if (currencyStartTime?.isSameOrBefore(nextMinTimestamp)) { + console.debug(`${this._logPrefix}Fetching more transfers - timestamp > ${nextMinTimestamp.toISOString()}`); + return this._transferSearch( + { + ...filter, + minTimestamp: nextMinTimestamp, + maxTimestamp: nextMaxTimestamp, + }, + { ...options, fetchPolicy: 'cache-first' } + ).pipe(map((moreItems) => <Transfer[]>[...items, ...moreItems])); + } else { + console.debug(`${this._logPrefix}Read currency start: cannot fetch more`); + } + } + return of(items); + }) + ); + } + + blockSearch(filter: BlockSearchFilter, options?: { limit: number; offset: number; orderBy?: BlockOrderByInput[] }): Observable<Block[]> { + console.info(`${this._logPrefix}Searching block...`, filter); + + options = { + limit: 10, + offset: 0, + orderBy: [BlockOrderByInput.HeightDesc], + ...options, + }; + + if (isNotNilOrBlank(filter.id)) { + return this.blockById(filter.id).pipe(map((block) => [block])); + } + + if (isNotNilOrBlank(filter.height)) { + return this.indexerGraphqlService + .blocks({ + ...options, + where: { height_eq: filter.height }, + }) + .pipe(map(({ data: { blocks } }) => IndexerFragmentConverter.toBlocks(blocks, true))); + } + + return of(<Block[]>[]); // TODO + } + + blockById(id: string): Observable<Block> { + console.info(`${this._logPrefix}Loading block #${id}`); + return this.indexerGraphqlService.blockById({ id }).pipe(map(({ data: { blockById } }) => IndexerFragmentConverter.toBlock(blockById))); + } + + blockByHeight(height: number): Observable<Block> { + return this.blockSearch({ height }, { limit: 1, offset: 0 }).pipe(map(firstArrayValue)); + } + + protected async ngOnStart(): Promise<IndexerState> { + // Wait settings and storage + const [settings, currency] = await Promise.all([this.settings.ready(), firstNotNilPromise(this.currency$)]); + + let peer = Peers.fromUri(settings.indexer); + if (!peer) { + const peers = await this.filterAlivePeers(settings.preferredIndexers); + if (!peers.length) { + throw { message: 'ERROR.CHECK_NETWORK_CONNECTION' }; + } + peer = arrayRandomPick(peers); + } + + const client = await super.createClient(peer, 'indexer'); + + return { + peer, + client, + currency, + offline: false, + }; + } + + protected async ngOnStop(): Promise<void> { + super.ngOnStop(); + } + + protected async filterAlivePeers( + peers: string[], + opts?: { + timeout?: number; + } + ): Promise<Peer[]> { + const result: Peer[] = []; + await Promise.all( + peers + .map((peer) => Peers.fromUri(peer)) + .map((peer) => + this.isPeerAlive(peer, opts).then((alive) => { + if (!alive) return; + result.push(peer); + }) + ) + ); + return result; + } + + protected async isPeerAlive( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + peer: Peer, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + opts?: { + timeout?: number; + } + ): Promise<boolean> { + // TODO + return Promise.resolve(true); + } +} diff --git a/src/app/network/indexer.utils.ts b/src/app/network/indexer.utils.ts new file mode 100644 index 0000000000000000000000000000000000000000..180c06a6969617ccd35cd99139247bc99477c209 --- /dev/null +++ b/src/app/network/indexer.utils.ts @@ -0,0 +1,66 @@ +import { LightAccountFragment, LightBlockFragment, TransferFragment } from './indexer-types.generated'; +import { Account } from '@app/account/account.model'; +import { isNotNil } from '@app/shared/functions'; +import { fromDateISOString } from '@app/shared/dates'; +import { Transfer } from '@app/transfer/transfer.model'; +import { Block } from '@app/block/block.model'; + +export class IndexerFragmentConverter { + static toAccounts(inputs: LightAccountFragment[], debug?: boolean): Account[] { + const results = (inputs || []).map(IndexerFragmentConverter.toAccount); + if (debug) console.debug('Results:', results); + return results; + } + + static toAccount(input: LightAccountFragment): Account { + return <Account>{ + address: input.id, + meta: { + uid: input.identity?.name, + isMember: isNotNil(input.identity?.membership?.id), + }, + }; + } + + static toTransfers(accountAddress: string, inputs: TransferFragment[], debug?: boolean): Transfer[] { + const results = (inputs || []).map((item) => this.toTransfer(accountAddress, item)); + if (debug) console.debug('Results:', results); + return results; + } + + static toTransfer(accountAddress: string, item: TransferFragment): Transfer { + let from: Account = null; + let to: Account = null; + let amount: number; + // Account is the issuer + if (item.from?.id === accountAddress) { + to = this.toAccount(item.to); + amount = -1 * item.amount; + } else if (item.to?.id === accountAddress) { + from = this.toAccount(item.from); + amount = item.amount; + } + return <Transfer>{ + id: item.id, + from, + to, + account: from || to, + amount, + blockNumber: item.blockNumber, + timestamp: fromDateISOString(item.timestamp), + }; + } + + static toBlocks(inputs: LightBlockFragment[], debug?: boolean): Block[] { + const results = (inputs || []).map((item) => this.toBlock(item)); + if (debug) console.debug('Results:', results); + return results; + } + + static toBlock(input: LightBlockFragment): Block { + return <Block>{ + ...input, + timestamp: fromDateISOString(input.timestamp), + }; + } +} diff --git a/src/app/network/indexer/indexer.config.ts b/src/app/network/indexer/indexer.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..cfdbea2cd1f6d8cdf9e460c20e51ef45532a6752 --- /dev/null +++ b/src/app/network/indexer/indexer.config.ts @@ -0,0 +1,7 @@ +import { StrictTypedTypePolicies } from '@duniter/indexer/apollo-helpers'; + +export const INDEXER_GRAPHQL_TYPE_POLICIES = <StrictTypedTypePolicies>{ + Account: { + keyFields: ['id'], + }, +}; diff --git a/src/app/network/indexer/indexer.queries.graphql b/src/app/network/indexer/indexer.queries.graphql new file mode 100644 index 0000000000000000000000000000000000000000..c158476471e9e494ca8d81fa7aed4d66afd86c50 --- /dev/null +++ b/src/app/network/indexer/indexer.queries.graphql @@ -0,0 +1,71 @@ + +fragment LightAccount on Account { + id + identity { + name + membership { + id + } + } +} + +query WotSearchByText($searchText: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_startsWith: $searchText, OR: { identity: { name_containsInsensitive: $searchText } } } + ) { + ...LightAccount + } +} + +query WotSearchByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_eq: $address } + ) { + ...LightAccount + } +} + +query WotSearchLast($limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!], $pending: Boolean!) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy, + where: {identity: {id_isNull: false}, AND: {identity: {membership_isNull: $pending} }} + ) { + ...LightAccount + } +} + +fragment Transfer on Transfer { + id + amount + timestamp + blockNumber + from { + ...LightAccount + } + to { + ...LightAccount + } +} + +query txHistoryByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [TransferOrderByInput!]) { + accounts( + limit: 1 + offset: 0, + where: {id_eq: $address} + ) { + transfersIssued(limit: $limit, offset: $offset, orderBy: $orderBy) { + ...Transfer + } + transfersReceived(limit: $limit, offset: $offset, orderBy: $orderBy) { + ...Transfer + } + } +} diff --git a/src/app/network/indexer/indexer.service.ts b/src/app/network/indexer/indexer.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..f3a8790ae1be67e32fa30ab681aed451d714d305 --- /dev/null +++ b/src/app/network/indexer/indexer.service.ts @@ -0,0 +1,187 @@ +import { Inject, Injectable, Optional } from '@angular/core'; +import { Peer, Peers } from '@app/shared/services/network/peer.model'; +import { Promise } from '@rx-angular/cdk/zone-less/browser'; +import { SettingsService } from '@app/settings/settings.service'; +import { arrayRandomPick, isNotNil, isNotNilOrBlank, toBoolean } from '@app/shared/functions'; +import { TypePolicies } from '@apollo/client/core'; +import { + APP_GRAPHQL_FRAGMENTS, + APP_GRAPHQL_TYPE_POLICIES, + GraphqlService, + GraphqlServiceState, +} from '@app/shared/services/network/graphql/graphql.service'; +import { DocumentNode } from 'graphql/index'; +import { StorageService } from '@app/shared/services/storage/storage.service'; +import { Account } from '@app/account/account.model'; +import { AccountOrderByInput, IndexerGraphqlService, LightAccountFragment, TransferFragment, TransferOrderByInput } from '@duniter/indexer'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; + +export interface IndexerState extends GraphqlServiceState {} + +@Injectable({ providedIn: 'root' }) +export class IndexerService extends GraphqlService<IndexerState> { + constructor( + storage: StorageService, + private settings: SettingsService, + private indexerGraphqlService: IndexerGraphqlService, + @Optional() @Inject(APP_GRAPHQL_TYPE_POLICIES) typePolicies: TypePolicies, + @Optional() @Inject(APP_GRAPHQL_FRAGMENTS) fragments: DocumentNode[] + ) { + super(storage, typePolicies, fragments, { + name: 'indexer-service', + startByReadyFunction: false, // Need an explicit call to start() + }); + } + + wotSearch( + filter: { address?: string; searchText?: string; last?: boolean; isMember?: boolean }, + options: { offset?: number; limit?: number } + ): Observable<Account[]> { + console.info(`${this._logPrefix}Searching...`, filter); + + options = { + offset: 0, + limit: 10, + ...options, + }; + + if (isNotNilOrBlank(filter.address)) { + return this.indexerGraphqlService + .wotSearchByAddressWatch( + { + address: filter.address, + offset: options.offset, + limit: options.limit, + orderBy: [AccountOrderByInput.IdAsc], + }, + { fetchPolicy: this.defaultWatchFetchPolicy } + ) + .valueChanges.pipe(map(({ data }) => this.toAccounts(data?.accounts))); + } else if (isNotNilOrBlank(filter.searchText)) { + return this.indexerGraphqlService + .wotSearchByTextWatch( + { + searchText: filter.searchText, + offset: options.offset, + limit: options.limit, + orderBy: [AccountOrderByInput.IdentityNameAsc], + }, + { fetchPolicy: this.defaultWatchFetchPolicy } + ) + .valueChanges.pipe(map(({ data }) => this.toAccounts(data?.accounts))); + } else { + return this.indexerGraphqlService + .wotSearchLastWatch( + { + limit: options.limit, + offset: options.offset, + orderBy: [AccountOrderByInput.IdentityIndexDesc], + pending: !toBoolean(filter.isMember, true), + }, + { fetchPolicy: this.defaultWatchFetchPolicy } + ) + .valueChanges.pipe(map(({ data }) => this.toAccounts(data?.accounts))); + } + } + + txHistory(address: string, options: { offset?: number; limit?: number; orderBy?: TransferOrderByInput[] }): Observable<TransferFragment[]> { + console.info(`${this._logPrefix}Loading TX history of ${address}`); + + options = { + limit: 10, + offset: 0, + orderBy: [TransferOrderByInput.BlockNumberDesc], + ...options, + }; + + return this.indexerGraphqlService + .txHistoryByAddressWatch( + { + address: address, + limit: options.limit, + offset: options.offset, + orderBy: options.orderBy, + }, + { fetchPolicy: this.defaultWatchFetchPolicy } + ) + .valueChanges.pipe( + map(({ data }) => data.accounts?.[0]), + map((account) => { + return [...account.transfersIssued, ...account.transfersReceived]; + }) + ); + } + + protected toAccounts(inputs: LightAccountFragment[]): Account[] { + const results = (inputs || []).map(this.toAccount); + //if (this._debug) + console.debug(this._logPrefix + 'Results:', results); + return results; + } + + protected toAccount(input: LightAccountFragment): Account { + return <Account>{ + address: input.id, + meta: { + uid: input.identity?.name, + isMember: isNotNil(input.identity?.membership?.id), + }, + }; + } + + protected async ngOnStart(): Promise<IndexerState> { + // Wait settings and storage + const settings = await this.settings.ready(); + + let peer = Peers.fromUri(settings.indexer); + if (!peer) { + const peers = await this.filterAlivePeers(settings.preferredIndexers); + if (!peers.length) { + throw { message: 'ERROR.CHECK_NETWORK_CONNECTION' }; + } + peer = arrayRandomPick(peers); + } + + const client = await super.createClient(peer, 'indexer'); + this.apollo.client = client; + + return { + peer, + client, + offline: false, + }; + } + + protected async filterAlivePeers( + peers: string[], + opts?: { + timeout?: number; + } + ): Promise<Peer[]> { + const result: Peer[] = []; + await Promise.all( + peers + .map((peer) => Peers.fromUri(peer)) + .map((peer) => + this.isPeerAlive(peer, opts).then((alive) => { + if (!alive) return; + result.push(peer); + }) + ) + ); + return result; + } + + protected async isPeerAlive( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + peer: Peer, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + opts?: { + timeout?: number; + } + ): Promise<boolean> { + // TODO + return Promise.resolve(true); + } +} diff --git a/src/app/network/network.service.ts b/src/app/network/network.service.ts index 183d066898f160b9376e375ded19bb7b3f20eb13..3129dbfda80a5bf03d4146f09af8bb154c90d5d6 100644 --- a/src/app/network/network.service.ts +++ b/src/app/network/network.service.ts @@ -1,34 +1,38 @@ -import { Injectable } from '@angular/core'; +import { inject, Injectable } from '@angular/core'; import { ApiPromise, WsProvider } from '@polkadot/api'; import { SettingsService } from '../settings/settings.service'; -import { Peer, Peers } from './peer.model'; +import { Peer, Peers } from '@app/shared/services/network/peer.model'; import { abbreviate } from '@app/shared/currencies'; -import { Currency } from '@app/network/currency.model'; +import { Currency } from '../currency/currency.model'; import { RxStartableService } from '@app/shared/services/rx-startable-service.class'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; import { Observable } from 'rxjs'; import { filter, map } from 'rxjs/operators'; -import { isNotNilOrBlank } from '@app/shared/functions'; +import { arrayRandomPick, isNotNilOrBlank } from '@app/shared/functions'; +import { IndexerService } from './indexer.service'; +import { fromDateISOString } from '@app/shared/dates'; const WELL_KNOWN_CURRENCIES = Object.freeze({ - Ğdev: <Partial<Currency>>{ + GDEV: <Partial<Currency>>{ network: 'gdev', - displayName: 'Ğdev', + displayName: 'ĞDev', symbol: 'GD', prefix: 42, genesis: '0xa565a0ccbab8e5f29f0c8a901a3a062d17360a4d4f5319d03a1580fba4cbf3f6', + startTime: '2017-07-08T00:00:00.00Z', // TODO fees: { identity: 300, // = 3 Gdev - tx: 1, // = 0.01 Gdev + tx: 2, // = 0.02 Gdev }, decimals: 2, }, - Ğ1: <Partial<Currency>>{ + G1: <Partial<Currency>>{ network: 'g1', displayName: 'Ğ1', symbol: 'G1', prefix: 4450, genesis: '0x___TODO___', + startTime: '2017-03-08T00:00:00.00Z', // TODO fees: { identity: 300, // = 3G1 - FIXME tx: 1, // = 0.01 G1 - FIXME @@ -46,6 +50,8 @@ export interface NetworkState { @Injectable({ providedIn: 'root' }) export class NetworkService extends RxStartableService<NetworkState> { + indexer = inject(IndexerService); + @RxStateProperty() peer: Peer; @RxStateProperty() currency: Currency; @RxStateProperty() currencySymbol: string; @@ -77,11 +83,11 @@ export class NetworkService extends RxStartableService<NetworkState> { let peer = Peers.fromUri(settings.peer); if (!peer) { - const peers = await this.filterAliveNodes(settings.preferredPeers); + const peers = await this.filterAlivePeers(settings.preferredPeers); if (!peers.length) { throw { message: 'ERROR.CHECK_NETWORK_CONNECTION' }; } - peer = this.selectRandomPeer(peers); + peer = arrayRandomPick(peers); } const wsUri = Peers.getWsUri(peer); @@ -104,43 +110,53 @@ export class NetworkService extends RxStartableService<NetworkState> { //console.debug(`${this._logPrefix}API loaded [${Object.keys(api).join(',')}]`) // Get the chain information - const chainInfo = await api.registry.getChainProperties(); - const chain = '' + (await api.rpc.system.chain()).toHuman().split(' ')?.[0]; + const [chain, nodeName, nodeVersion, properties] = await Promise.all([ + api.rpc.system.chain(), + api.rpc.system.name(), + api.rpc.system.version(), + api.rpc.system.properties(), + ]); + //const chainObj = await api.rpc.system.chain(); + //const chainPrefix = '' + chain.toHuman().split(' ')?.[0]; const genesis = api.genesisHash.toHex(); - console.info(`${this._logPrefix}Connecting to chain {${chain}}: ` + JSON.stringify(chainInfo.toHuman())); + console.info(`${this._logPrefix}Node {${nodeName}} v${nodeVersion}`); + console.info(`${this._logPrefix}Connecting to chain {${chain}}: ` + JSON.stringify(properties.toHuman())); let currency: Currency; // Check is well known currency - if (WELL_KNOWN_CURRENCIES[chain]) { - const wellKnownCurrency = WELL_KNOWN_CURRENCIES[chain]; + const wellKnownCurrency = Object.values(WELL_KNOWN_CURRENCIES).find((c) => c.displayName === chain.toHuman()); + if (wellKnownCurrency) { if (wellKnownCurrency.genesis && wellKnownCurrency.genesis !== genesis) { console.warn(`${this._logPrefix}Invalid genesis for ${chain}! Expected ${wellKnownCurrency.genesis} but peer return ${genesis}`); } - currency = { ...wellKnownCurrency }; + currency = <Currency>{ ...wellKnownCurrency }; } else { console.warn(`${this._logPrefix}Not a well known currency: ${chain}!`); } currency = currency || <Currency>{}; - currency.displayName = currency?.displayName || chain; - currency.symbol = currency?.symbol || chainInfo.tokenSymbol.value?.[0].toHuman() || abbreviate(this.currency.displayName); - currency.decimals = currency?.decimals || +chainInfo.tokenDecimals.value?.[0].toHuman() || 0; - currency.prefix = currency.prefix || WELL_KNOWN_CURRENCIES.Ğdev.prefix; // TODO use G1 defaults + currency.displayName = currency?.displayName || chain.toHuman(); + currency.symbol = currency?.symbol || properties.tokenSymbol.value?.[0].toHuman() || abbreviate(this.currency.displayName); + currency.decimals = currency?.decimals || +properties.tokenDecimals.value?.[0].toHuman() || 0; + currency.powBase = Math.pow(10, currency.decimals); + currency.prefix = currency.prefix || WELL_KNOWN_CURRENCIES.GDEV.prefix; // TODO use G1 defaults currency.genesis = genesis; + currency.startTime = fromDateISOString(currency.startTime); currency.fees = { - ...WELL_KNOWN_CURRENCIES.Ğdev.fees, // TODO use G1 defaults + ...WELL_KNOWN_CURRENCIES.GDEV.fees, // TODO use G1 defaults ...(currency.fees || {}), }; // Read the genesys block hash - console.debug(`${this._logPrefix}Blockchain symbol: ${currency.symbol}`); - console.debug(`${this._logPrefix}Blockchain decimals: ${currency.decimals}`); - console.debug(`${this._logPrefix}Blockchain genesis: ${currency.genesis}`); + console.debug(`${this._logPrefix}Chain genesis: ${currency.genesis}`); // Retrieve the latest header const lastHeader = await api.rpc.chain.getHeader(); console.info(`${this._logPrefix}Last block: #${lastHeader.number} - hash ${lastHeader.hash}`); + this.indexer.currency = currency; + await this.indexer.start(); + return { peer, currency, @@ -149,7 +165,13 @@ export class NetworkService extends RxStartableService<NetworkState> { }; } - async filterAliveNodes( + protected async ngOnStop(): Promise<void> { + await this.indexer.stop(); + + return super.ngOnStop(); + } + + protected async filterAlivePeers( peers: string[], // eslint-disable-next-line @typescript-eslint/no-unused-vars opts?: { @@ -170,7 +192,7 @@ export class NetworkService extends RxStartableService<NetworkState> { return result; } - async isPeerAlive( + protected async isPeerAlive( // eslint-disable-next-line @typescript-eslint/no-unused-vars peer: Peer, // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -181,9 +203,4 @@ export class NetworkService extends RxStartableService<NetworkState> { // TODO return Promise.resolve(true); } - - selectRandomPeer(peers: Peer[]): Peer { - const index = Math.floor(Math.random() * peers.length); - return peers[index]; - } } diff --git a/src/app/settings/settings-routing.module.ts b/src/app/settings/settings-routing.module.ts index 6f5f60fc66bb3e66fe3fd61565900f6f9b158489..290064f00adb897fe795819379d8d6e8fb5e76af 100644 --- a/src/app/settings/settings-routing.module.ts +++ b/src/app/settings/settings-routing.module.ts @@ -1,7 +1,8 @@ import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { SettingsPage } from '@app/settings/settings.page'; +import { AppSettingsModule } from '@app/settings/settings.module'; const routes: Routes = [ { @@ -11,7 +12,7 @@ const routes: Routes = [ ]; @NgModule({ - imports: [RouterModule.forChild(routes)], + imports: [AppSettingsModule, RouterModule.forChild(routes)], exports: [RouterModule], }) -export class SettingsPageRoutingModule {} +export class AppSettingsRoutingModule {} diff --git a/src/app/settings/settings.model.ts b/src/app/settings/settings.model.ts index 61603cfe25aa82ea273c561ebdb6c7983a97ff20..ad30ef533f538e79552e8a54cfc1b27201302ab6 100644 --- a/src/app/settings/settings.model.ts +++ b/src/app/settings/settings.model.ts @@ -11,6 +11,8 @@ export declare interface Settings { peer: string; currency?: string; preferredPeers?: string[]; + indexer: string; + preferredIndexers?: string[]; pages?: any; locale?: string; mobile?: boolean; diff --git a/src/app/settings/settings.module.ts b/src/app/settings/settings.module.ts index ab94a56391e9c9a31922b76368c3e2635bb42b88..fddce1e94138435721215223aeea713e8f04c6e6 100644 --- a/src/app/settings/settings.module.ts +++ b/src/app/settings/settings.module.ts @@ -3,10 +3,14 @@ import { NgModule } from '@angular/core'; import { SettingsPage } from './settings.page'; import { AppSharedModule } from '@app/shared/shared.module'; import { TranslateModule } from '@ngx-translate/core'; -import { SettingsPageRoutingModule } from '@app/settings/settings-routing.module'; @NgModule({ - imports: [AppSharedModule, TranslateModule.forChild(), SettingsPageRoutingModule], + imports: [AppSharedModule, TranslateModule.forChild()], declarations: [SettingsPage], + exports: [SettingsPage], }) -export class SettingsPageModule {} +export class AppSettingsModule { + constructor() { + console.debug('[settings] Creating module'); + } +} diff --git a/src/app/settings/settings.page.html b/src/app/settings/settings.page.html index 62deeb36b8aa093f3c5ce60545cbd6dc6e8b7da3..4387f6d92da146adf2f7f59b9e698457150b79ac 100644 --- a/src/app/settings/settings.page.html +++ b/src/app/settings/settings.page.html @@ -42,10 +42,28 @@ <ion-item> <ion-icon slot="start" name="cloud-done"></ion-icon> - <ion-label color="dark" translate>SETTINGS.PEER</ion-label> + <ion-label> + <h2 color="dark" translate>SETTINGS.PEER</h2> + <p> + {{ peer }} + </p> + </ion-label> - <ion-input [(ngModel)]="peer" class="ion-text-end"></ion-input> - <ion-button slot="end" (click)="peerModal.present()" [title]="'SETTINGS.POPUP_PEER.BTN_SHOW_LIST' | translate"> + <ion-button slot="end" (click)="selectPeerModal.present()" [title]="'SETTINGS.POPUP_PEER.BTN_SHOW_LIST' | translate"> + <ion-label>...</ion-label> + </ion-button> + </ion-item> + + <ion-item> + <ion-icon slot="start" name="cloud-done"></ion-icon> + <ion-label> + <h2 color="dark" translate>SETTINGS.INDEXER</h2> + <p> + {{ indexer }} + </p> + </ion-label> + + <ion-button slot="end" (click)="selectIndexerModal.present()" [title]="'SETTINGS.POPUP_PEER.BTN_SHOW_LIST' | translate"> <ion-label>...</ion-label> </ion-button> </ion-item> @@ -85,12 +103,13 @@ <app-skeleton-list [avatar]="true" size="5"></app-skeleton-list> </ng-template> -<ion-modal #peerModal [backdropDismiss]="true"> +<!-- Select peers modal --> +<ion-modal #selectPeerModal [backdropDismiss]="true"> <ng-template> <ion-header> <ion-toolbar color="secondary"> <ion-buttons slot="start"> - <ion-button (click)="peerModal.dismiss()" *ngIf="mobile"> + <ion-button (click)="selectPeerModal.dismiss()" *ngIf="mobile"> <ion-icon slot="icon-only" name="arrow-back"></ion-icon> </ion-button> </ion-buttons> @@ -107,3 +126,27 @@ </ion-content> </ng-template> </ion-modal> + +<!-- select indexer modal --> +<ion-modal #selectIndexerModal [backdropDismiss]="true"> + <ng-template> + <ion-header> + <ion-toolbar color="secondary"> + <ion-buttons slot="start"> + <ion-button (click)="selectIndexerModal.dismiss()" *ngIf="mobile"> + <ion-icon slot="icon-only" name="arrow-back"></ion-icon> + </ion-button> + </ion-buttons> + + <ion-title translate>SETTINGS.POPUP_PEER.BTN_SHOW_LIST</ion-title> + </ion-toolbar> + </ion-header> + <ion-content> + <ion-list> + <ion-item *rxFor="let peer of preferredIndexers$" tappable (click)="selectIndexer(peer)"> + <ion-label>{{ peer }}</ion-label> + </ion-item> + </ion-list> + </ion-content> + </ng-template> +</ion-modal> diff --git a/src/app/settings/settings.page.ts b/src/app/settings/settings.page.ts index 045060e15cdca0625d38f935fac0d2d77bff9486..5b5b2c564174f8934a4144ae25f30d36239438a6 100644 --- a/src/app/settings/settings.page.ts +++ b/src/app/settings/settings.page.ts @@ -42,15 +42,19 @@ export class SettingsPage extends AppPage<SettingsPageState> implements OnInit { ]; @RxStateSelect() preferredPeers$: Observable<string[]>; @RxStateSelect() peer$: Observable<string>; + @RxStateSelect() preferredIndexers$: Observable<string[]>; + @RxStateSelect() indexer$: Observable<string>; @RxStateSelect() dirty$: Observable<boolean>; - @RxStateProperty() peer: string; - @RxStateProperty() locale: string; @RxStateProperty() darkMode: boolean; + @RxStateProperty() locale: string; + @RxStateProperty() peer: string; + @RxStateProperty() indexer: string; @RxStateProperty() unAuthDelayMs: number; @RxStateProperty() dirty: boolean; - @ViewChild('peerModal') peerModal: IonModal; + @ViewChild('selectPeerModal') selectPeerModal: IonModal; + @ViewChild('selectIndexerModal') selectIndexerModal: IonModal; constructor( protected networkService: NetworkService, @@ -59,7 +63,7 @@ export class SettingsPage extends AppPage<SettingsPageState> implements OnInit { super({ name: 'settings' }); // Detect changes - this._state.hold(this._state.select(['peer', 'locale', 'unAuthDelayMs'], (s) => s).pipe(skip(1)), () => { + this._state.hold(this._state.select(['locale', 'peer', 'indexer', 'unAuthDelayMs'], (s) => s).pipe(skip(1)), () => { if (this.mobile) { this.save(); } else { @@ -88,7 +92,12 @@ export class SettingsPage extends AppPage<SettingsPageState> implements OnInit { selectPeer(peer: string) { this.peer = peer; - this.peerModal.dismiss(); + this.selectPeerModal.dismiss(); + } + + selectIndexer(peer: string) { + this.indexer = peer; + this.selectIndexerModal.dismiss(); } markAsDirty() { diff --git a/src/app/settings/settings.service.ts b/src/app/settings/settings.service.ts index cacade6835e61f08c815ad753f9bfbef5a361b20..70f6417dca2db872883eea0fccca209afde52e48 100644 --- a/src/app/settings/settings.service.ts +++ b/src/app/settings/settings.service.ts @@ -20,10 +20,13 @@ export class SettingsService extends RxStartableService<Settings> { return this.get('mobile'); } - @RxStateSelect() peer$: Observable<string>; @RxStateSelect() darkMode$: Observable<boolean>; + @RxStateSelect() peer$: Observable<string>; + @RxStateSelect() indexer$: Observable<string>; @RxStateProperty() darkMode: boolean; + @RxStateProperty() peer: string; + @RxStateProperty() indexer: string; constructor( protected ionicPlatform: Platform, @@ -48,7 +51,7 @@ export class SettingsService extends RxStartableService<Settings> { mobile, }; - console.info('[settings-restore] Settings ready: ', data); + console.info('[settings-service] Settings ready: ', data); return data; } @@ -56,8 +59,10 @@ export class SettingsService extends RxStartableService<Settings> { clone(): Settings { return <Settings>{ locale: environment.defaultLocale, - peer: environment.defaultPeers?.[0], defaultPeers: environment.defaultPeers || [], + peer: environment.defaultPeers?.[0], + defaultIndexers: environment.defaultIndexers || [], + indexer: environment.defaultIndexers?.[0], ...this.get(), }; } @@ -67,6 +72,7 @@ export class SettingsService extends RxStartableService<Settings> { return <Settings>{ // Default values preferredPeers: arrayDistinct([...environment.defaultPeers, ...(data?.preferredPeers || [])]), + preferredIndexers: arrayDistinct([...environment.defaultIndexers, ...(data?.preferredIndexers || [])]), unAuthDelayMs: 15 * 60_000, // darkMode: window.matchMedia('(prefers-color-scheme: dark)').matches, // Restored data @@ -85,7 +91,7 @@ export class SettingsService extends RxStartableService<Settings> { async saveLocally() { if (!this.storage) return; // Skip, no storage - console.info('[settings] Saving settings to the storage...'); + console.info('[settings-service] Saving settings to the storage...'); const data = this.clone(); await this.storage.set('settings', data); } diff --git a/src/app/shared/decorator/state.decorator.ts b/src/app/shared/decorator/state.decorator.ts index 23057933a75b0f36a0ea3e492b46bac496eb21d2..19d455209b0b6e32773dc127a69c39d8d5acdea0 100644 --- a/src/app/shared/decorator/state.decorator.ts +++ b/src/app/shared/decorator/state.decorator.ts @@ -21,12 +21,19 @@ export function RxStateRegister(): PropertyDecorator { }; } -export function RxStateProperty<T = any>(statePropertyName?: string | keyof T, opts?: { stateName?: string }): PropertyDecorator { +export function RxStateProperty<T = any, K1 extends keyof T = any, K2 extends keyof T[K1] = any>( + statePropertyName?: string | K1 | [K1, K2], + opts?: { stateName?: string } +): PropertyDecorator { return function (target: Constructor, key: string) { // DEBUG //console.debug(`${target.constructor?.name} @StateProperty() ${key}`); - statePropertyName = (statePropertyName as string) || key; + const statePropertyNames = Array.isArray(statePropertyName) + ? statePropertyName + : typeof statePropertyName === 'string' + ? [statePropertyName] + : [key]; const state = target instanceof RxState ? null : target[STATE_VAR_NAME_KEY] || opts?.stateName || DEFAULT_STATE_VAR_NAME; const stateObj = state ? `this.${state}` : `this`; @@ -38,9 +45,9 @@ export function RxStateProperty<T = any>(statePropertyName?: string | keyof T, o state && !environment.production ? ` if (!this.${state}) throw new Error('Missing state! Please add a RxState in class: ' + this.constructor.name);\n` : ''; - const getter = new Function(`return function ${getMethodName}(){\n return ${stateObj}.get('${statePropertyName}');\n}`)(); + const getter = new Function(`return function ${getMethodName}(){\n return ${stateObj}.get('${statePropertyNames.join("','")}');\n}`)(); const setter = new Function( - `return function ${setMethodName}(value){\n${checkStateExists} ${stateObj}.set('${statePropertyName}', _ => value);\n}` + `return function ${setMethodName}(value){\n${checkStateExists} ${stateObj}.set('${statePropertyNames.join("','")}', _ => value);\n}` )(); target[getMethodName] = getter; diff --git a/src/app/shared/functions.ts b/src/app/shared/functions.ts index 411741e3a4b0a02baa7975f4fe78165fdbaf59cb..ae7956658e0c6ab7aaa5543b240a83d849d282e4 100644 --- a/src/app/shared/functions.ts +++ b/src/app/shared/functions.ts @@ -62,6 +62,11 @@ export function arrayDistinct<T>(obj: T[], properties?: string[]): T[] { return res.concat(item); }, []); } +export function arrayRandomPick<T>(items: T[]): T { + if (!items || !Array.isArray(items) || items.length === 0) throw new Error('Invalid input: non-empty array is required'); + const index = Math.floor(Math.random() * items.length); + return items[index]; +} export function nullIfUndefined<T>(obj: T | null | undefined): T | null { return obj === undefined ? null : obj; } diff --git a/src/app/shared/modules.ts b/src/app/shared/modules.ts new file mode 100644 index 0000000000000000000000000000000000000000..218560aa223c94018287761ff9c6c7b2aee8203a --- /dev/null +++ b/src/app/shared/modules.ts @@ -0,0 +1,12 @@ +export function isESModule<T>(value: any | T): value is { default: T } { + return value && value['__esModule'] === true && !!value['default']; +} + +/** + * Workaround need for CommonJS library (eg. moment), because of packagr's issue - see https://github.com/ng-packagr/ng-packagr/issues/2215 + * + * @param commonJSModule + */ +export function unwrapESModule<T = any>(commonJSModule: T | any): T { + return isESModule<T>(commonJSModule) ? commonJSModule.default : (commonJSModule as T); +} diff --git a/src/app/shared/observables.ts b/src/app/shared/observables.ts index 5fc3899bd4844547ae57a4c45d5d1087add5a57b..e85059e68298a4d1b413bf88576447065bd19fe6 100644 --- a/src/app/shared/observables.ts +++ b/src/app/shared/observables.ts @@ -120,3 +120,7 @@ export async function waitForTrue(observable: Observable<boolean>, opts?: WaitFo } return firstValueFrom(firstTrueObservable); } + +export async function waitForFalse(observable: Observable<boolean>, opts?: WaitForOptions): Promise<void> { + return waitForTrue(observable.pipe(map((v) => v === false)), opts); +} diff --git a/src/app/shared/pages/base-page.class.ts b/src/app/shared/pages/base-page.class.ts index 4d5e2000dbeda3f9a5745284d7ce633c9494f934..3ab6cca4749202a0a6171ac31485afd462729c71 100644 --- a/src/app/shared/pages/base-page.class.ts +++ b/src/app/shared/pages/base-page.class.ts @@ -3,9 +3,8 @@ import { ActivatedRoute } from '@angular/router'; import { SettingsService } from '@app/settings/settings.service'; import { changeCaseToUnderscore, isNotNilOrBlank, sleep } from '@app/shared/functions'; import { environment } from '@environments/environment'; -import { waitIdle } from '@app/shared/forms'; -import { WaitForOptions } from '@app/shared/observables'; -import { IonRouterOutlet, ToastController, ToastOptions } from '@ionic/angular'; +import { waitForFalse, WaitForOptions } from '@app/shared/observables'; +import { IonRouterOutlet, NavController, ToastController, ToastOptions } from '@ionic/angular'; import { TranslateService } from '@ngx-translate/core'; import { map, Observable, Subscription } from 'rxjs'; import { RxState } from '@rx-angular/state'; @@ -34,13 +33,14 @@ export abstract class AppPage<S extends AppPageState = AppPageState, O extends A protected settings = inject(SettingsService); protected readonly routerOutlet = inject(IonRouterOutlet, { optional: true }); protected readonly activatedRoute = inject(ActivatedRoute); + protected readonly navController = inject(NavController); protected toastController = inject(ToastController); @RxStateRegister() protected readonly _state: RxState<S> = inject(RxState<S>, { optional: true }); protected readonly _debug = !environment.production; protected readonly _logPrefix: string; protected readonly _options: O; - protected _presentingElement: Element = null; + protected _presentingElement: HTMLElement = null; readonly mobile: boolean; @@ -50,7 +50,7 @@ export abstract class AppPage<S extends AppPageState = AppPageState, O extends A @RxStateSelect() error$: Observable<string>; @RxStateSelect() loading$: Observable<boolean>; - loaded$ = this._state.select('loading').pipe(map((value) => value === false)); + loaded$ = this._state?.select('loading').pipe(map((value) => value === false)); get loaded(): boolean { return !this.loading; @@ -70,6 +70,14 @@ export abstract class AppPage<S extends AppPageState = AppPageState, O extends A return this._form; } + get canGoBack(): boolean { + return this.routerOutlet?.canGoBack() || false; + } + + get showMenuButton(): boolean { + return !this.canGoBack; + } + protected constructor(options?: Partial<O>, form?: FormGroup) { this.mobile = this.settings.mobile; this._options = <O>{ @@ -131,12 +139,15 @@ export abstract class AppPage<S extends AppPageState = AppPageState, O extends A try { const initialState = await this.ngOnUnload(); if (initialState) { - this._state.set(initialState); + this._state?.set(initialState); } this.resetError(); } catch (err) { console.error(this._logPrefix + 'Unload page error', err); - this.setError(err); + // Continue + } finally { + this.resetError(); + this.markAsLoading(); } } @@ -180,7 +191,7 @@ export abstract class AppPage<S extends AppPageState = AppPageState, O extends A } protected async waitIdle(opts?: WaitForOptions) { - return waitIdle(this, opts); + return waitForFalse(this.loading$, opts); } protected markForCheck() { diff --git a/src/app/shared/pipes/account.pipes.ts b/src/app/shared/pipes/account.pipes.ts index 58123eaa31a7fef65572a5a1b8e7535c014e06c7..c1496cb14aed4bc10bd2a4bc2c4ea594d33658c2 100644 --- a/src/app/shared/pipes/account.pipes.ts +++ b/src/app/shared/pipes/account.pipes.ts @@ -2,8 +2,7 @@ import { ChangeDetectorRef, inject, Injectable, Pipe, PipeTransform } from '@ang import { Account, AccountUtils } from '@app/account/account.model'; import { equals, getPropertyByPath } from '@app/shared/functions'; import { Subscription } from 'rxjs'; -import { formatAddress } from '@app/shared/currencies'; -import { AccountsService } from '@app/account/accounts.service'; +import { AccountsService, LoadAccountDataOptions } from '@app/account/accounts.service'; // @dynamic /** @@ -18,12 +17,16 @@ export abstract class AccountAbstractPipe<T, O> implements PipeTransform { protected _accountsService = inject(AccountsService); - protected constructor(private _cd: ChangeDetectorRef) {} + protected constructor( + private _cd: ChangeDetectorRef, + private _watchOptions?: LoadAccountDataOptions + ) {} transform(account: Partial<Account>, opts: O): T { - if (!account?.data) { + // Not a user account (e.g. any wot identity) + if (!account?.address) { this._dispose(); - return undefined; + return this._transform(account); } // if we ask another time for the same account and opts, return the last value @@ -45,7 +48,7 @@ export abstract class AccountAbstractPipe<T, O> implements PipeTransform { // subscribe to onTranslationChange event, in case the translations change if (!this._changesSubscription) { - this._changesSubscription = this._accountsService.watchByAddress(account.address).subscribe((updatedAccount) => { + this._changesSubscription = this._accountsService.watchByAddress(account.address, this._watchOptions).subscribe((updatedAccount) => { this.value = this._transform(updatedAccount, opts); this._cd.markForCheck(); }); @@ -105,7 +108,7 @@ export class AccountPropertyPipe<T = never, O extends AccountPropertyPipeOptions }) export class AccountBalancePipe extends AccountAbstractPipe<number, void> implements PipeTransform { constructor(_ref: ChangeDetectorRef) { - super(_ref); + super(_ref, { withBalance: true }); } protected _transform(account: Partial<Account>): number { @@ -123,6 +126,29 @@ export class AccountNamePipe extends AccountAbstractPipe<string, void> implement } protected _transform(account: Partial<Account>): string { - return account?.meta?.name || formatAddress(account?.address); + return AccountUtils.getDisplayName(account); + } +} + +@Pipe({ + name: 'isMemberAccount', + pure: false, +}) +export class IsMemberAccountPipe extends AccountAbstractPipe<boolean, void> implements PipeTransform { + constructor(_ref: ChangeDetectorRef) { + super(_ref); + } + + protected _transform(account: Partial<Account>): boolean { + return (account && account.meta && account.meta.isMember === true) || false; + } +} + +@Pipe({ + name: 'isUserAccount', +}) +export class IsUserAccountPipePipe implements PipeTransform { + transform(account: Partial<Account>): boolean { + return account?.meta?.self === true; } } diff --git a/src/app/shared/pipes/amount.pipe.ts b/src/app/shared/pipes/amount.pipe.ts index c3e37306af65722506129f3ef2d999360b69ce58..71ada7a2b6dfb48c6ede219aa3f61f827d85c769 100644 --- a/src/app/shared/pipes/amount.pipe.ts +++ b/src/app/shared/pipes/amount.pipe.ts @@ -7,12 +7,16 @@ import { isNil } from '@app/shared/functions'; name: 'amountFormat', }) export class AmountFormatPipe extends NumberFormatPipe implements PipeTransform { + private currencySymbol = this.networkService.currency?.symbol; + private powBase = this.networkService.currency?.powBase; + private decimals = this.networkService.currency?.decimals; + constructor(private networkService: NetworkService) { super(); } transform(val: number, opts?: Intl.NumberFormatOptions & { fixedDecimals?: number }): string { if (isNil(val)) return ''; - return super.transform(val / 100, opts) + (' ' + this.networkService.currencySymbol); + return super.transform(val / this.powBase, { fixedDecimals: this.decimals, ...opts }) + (' ' + this.currencySymbol); } } diff --git a/src/app/shared/pipes/date-from-now.pipe.ts b/src/app/shared/pipes/date-from-now.pipe.ts index 4e659d3758d3a4514c4a7f12f10bfb7730804094..4014627f3855c5124d9e0f4db16912dc2ec3dff7 100644 --- a/src/app/shared/pipes/date-from-now.pipe.ts +++ b/src/app/shared/pipes/date-from-now.pipe.ts @@ -9,7 +9,7 @@ import { fromDateISOString } from '@app/shared/dates'; export class DateFromNowPipe implements PipeTransform { constructor() {} - transform(value: string | Moment, withoutSuffix: boolean): string { + transform(value: string | Moment, withoutSuffix = false): string { const date: Moment = isMoment(value) ? (value as Moment) : fromDateISOString(value); return date ? date.fromNow(withoutSuffix) : ''; } diff --git a/src/app/shared/pipes/pipes.module.ts b/src/app/shared/pipes/pipes.module.ts index 4cf2d931426784ecebc722125fb2dd82db5250ef..08448200672409c2f9e54cd81c71586c2665ff85 100644 --- a/src/app/shared/pipes/pipes.module.ts +++ b/src/app/shared/pipes/pipes.module.ts @@ -35,7 +35,13 @@ import { FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fo import { PropertyGetPipe } from './property.pipes'; import { AmountFormatPipe } from '@app/shared/pipes/amount.pipe'; import { AddressFormatPipe } from '@app/shared/pipes/address.pipes'; -import { AccountBalancePipe, AccountNamePipe, AccountPropertyPipe } from '@app/shared/pipes/account.pipes'; +import { + AccountBalancePipe, + AccountNamePipe, + AccountPropertyPipe, + IsMemberAccountPipe, + IsUserAccountPipePipe, +} from '@app/shared/pipes/account.pipes'; import { PubkeyFormatPipe } from '@app/shared/pipes/pubkey.pipes'; @NgModule({ @@ -84,6 +90,8 @@ import { PubkeyFormatPipe } from '@app/shared/pipes/pubkey.pipes'; AccountPropertyPipe, AccountBalancePipe, AccountNamePipe, + IsMemberAccountPipe, + IsUserAccountPipePipe, ], exports: [ PropertyGetPipe, @@ -129,6 +137,8 @@ import { PubkeyFormatPipe } from '@app/shared/pipes/pubkey.pipes'; AccountPropertyPipe, AccountBalancePipe, AccountNamePipe, + IsMemberAccountPipe, + IsUserAccountPipePipe, ], }) export class SharedPipesModule {} diff --git a/src/app/shared/services/entity.model.ts b/src/app/shared/services/entity.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..f380369f034e67469672bdbbf43af0a5df55ad44 --- /dev/null +++ b/src/app/shared/services/entity.model.ts @@ -0,0 +1,9 @@ +import { isNil } from '../functions'; + +// @dynamic +export abstract class EntityUtils { + static equals<T>(o1: T, o2: T, checkAttribute?: keyof T): boolean { + checkAttribute = checkAttribute || ('id' as keyof T); + return o1 === o2 || (isNil(o1) && isNil(o2)) || (o1 && o2 && o1[checkAttribute] === o2[checkAttribute]); + } +} diff --git a/src/app/shared/services/network/graphql/graphql.module.ts b/src/app/shared/services/network/graphql/graphql.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..02079dc28c879a79c05426d19f8c711614f5cf55 --- /dev/null +++ b/src/app/shared/services/network/graphql/graphql.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { HttpClientModule } from '@angular/common/http'; +import { ApolloModule } from 'apollo-angular'; + +@NgModule({ + imports: [HttpClientModule, ApolloModule], + exports: [HttpClientModule, ApolloModule], +}) +export class AppGraphQLModule { + constructor() {} +} diff --git a/src/app/shared/services/network/graphql/graphql.service.ts b/src/app/shared/services/network/graphql/graphql.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..d96ba0c9bc11410230e43eaf65b7f6140e592076 --- /dev/null +++ b/src/app/shared/services/network/graphql/graphql.service.ts @@ -0,0 +1,929 @@ +import { firstValueFrom, Observable, of, Subject } from 'rxjs'; +import { Apollo, ExtraSubscriptionOptions, QueryRef } from 'apollo-angular'; +import { + ApolloCache, + ApolloClient, + ApolloLink, + ApolloQueryResult, + FetchPolicy, + InMemoryCache, + MutationUpdaterFn, + NetworkStatus, + OperationVariables, + TypePolicies, + WatchQueryFetchPolicy, +} from '@apollo/client/core'; +import { ErrorCodes, ServerErrorCodes } from '../network.errors'; +import { catchError, filter, first, map } from 'rxjs/operators'; + +import { Directive, inject, InjectionToken } from '@angular/core'; + +import TrackerLink, { + ApolloError, + AppWebSocket, + EmptyObject, + isMutationOperation, + isSubscriptionOperation, + restoreTrackedQueries, + StorageServiceWrapper, +} from './graphql.utils'; +import { RetryLink } from '@apollo/client/link/retry'; +import queueLinkImported from 'apollo-link-queue'; +import serializingLinkImported from 'apollo-link-serialize'; +import loggerLinkImported from 'apollo-link-logger'; +import { Platform } from '@ionic/angular'; +import { EntityUtils } from '../../entity.model'; +import { isNil, isNotEmptyArray, isNotNil, toNumber } from '../../../functions'; +import { Resolvers } from '@apollo/client/core/types'; +import { HttpHeaders } from '@angular/common/http'; +import { HttpLink, Options } from 'apollo-angular/http'; +import { persistCache, PersistentStorage } from 'apollo3-cache-persist'; +import { ErrorPolicy, MutationBaseOptions } from '@apollo/client/core/watchQueryOptions'; +import { Cache } from '@apollo/client/cache/core/types/Cache'; +import { AppError, PropertiesMap } from '../../../types'; +import { isMobile } from '../../../platforms'; +import { StorageService } from '../../storage/storage.service'; +import { GraphQLWsLink } from '@apollo/client/link/subscriptions'; +import { ClientOptions, createClient } from 'graphql-ws'; +import { unwrapESModule } from '../../../modules'; +import { createFragmentRegistry } from '@apollo/client/cache/inmemory/fragmentRegistry'; +import { DocumentNode } from 'graphql'; +import { environment } from '@environments/environment'; +import { RxStartableService, RxStartableServiceOptions } from '@app/shared/services/rx-startable-service.class'; +import { Peer, Peers } from '../peer.model'; +import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; +// Workaround for issue https://github.com/ng-packagr/ng-packagr/issues/2215 +const QueueLink = unwrapESModule(queueLinkImported); +const SerializingLink = unwrapESModule(serializingLinkImported); +const loggerLink = unwrapESModule(loggerLinkImported); + +export interface WatchQueryOptions<V> { + query: any; + variables?: V; + error?: AppError; + fetchPolicy?: WatchQueryFetchPolicy; +} + +export interface MutateQueryOptions<T, V = OperationVariables> extends MutationBaseOptions<T, V> { + mutation: any; + variables?: V; + error?: AppError; + context?: { + serializationKey?: string; + tracked?: boolean; + timeout?: number; + }; + optimisticResponse?: T; + offlineResponse?: T | ((context: any) => Promise<T>); + update?: MutationUpdaterFn<T>; + forceOffline?: boolean; +} + +export const APP_GRAPHQL_TYPE_POLICIES = new InjectionToken<TypePolicies>('graphqlTypePolicies'); + +export const APP_GRAPHQL_FRAGMENTS = new InjectionToken<DocumentNode[]>('graphqlFragments'); + +export interface ConnectionParams extends Record<string, string> {} + +export interface GraphqlServiceState { + peer: Peer; + client: ApolloClient<any>; + offline: boolean; +} + +@Directive() +export abstract class GraphqlService< + S extends GraphqlServiceState, + O extends RxStartableServiceOptions<S> = RxStartableServiceOptions<S>, +> extends RxStartableService<S, O> { + //private readonly _networkStatusChanged$: Observable<ConnectionType>; + + protected readonly defaultFetchPolicy: FetchPolicy = environment.graphql?.fetchPolicy; + protected readonly defaultWatchFetchPolicy: WatchQueryFetchPolicy = environment.graphql?.watchFetchPolicy; + protected apollo = inject(Apollo); + + private platform = inject(Platform); + private httpLink = inject(HttpLink); + private httpParams: Options; + private wsParams: ClientOptions<ConnectionParams>; + private connectionParams: ConnectionParams = {}; + private onNetworkError = new Subject<any>(); + private customErrors: PropertiesMap = {}; + + @RxStateSelect() offline$: Observable<boolean>; + @RxStateSelect() client$: Observable<ApolloClient<never>>; + + @RxStateProperty() peer: Peer; + @RxStateProperty() client: ApolloClient<never>; + @RxStateProperty() offline: boolean; + + get online(): boolean { + return !this.offline; + } + + get cache(): ApolloCache<never> { + return this.client?.cache; + } + + get fetchPolicy(): FetchPolicy { + return this.offline ? 'cache-only' : this.defaultFetchPolicy; + } + + get watchFetchPolicy(): WatchQueryFetchPolicy { + return this.offline ? 'cache-only' : this.defaultWatchFetchPolicy; + } + + protected constructor( + private storage: StorageService, + private typePolicies?: TypePolicies, + private fragments?: DocumentNode[], + options?: O + ) { + super(storage, { + name: 'graphql', + ...options, + initialState: <S>{ + offline: false, + ...options?.initialState, + }, + }); // Wait platform + + // Listen network status + //this._networkStatusChanged$ = network.onNetworkStatusChanges.pipe(filter(isNotNil), distinctUntilChanged()); + + // When getting network error: try to ping peer, and toggle to offline + // this.onNetworkError + // .pipe( + // throttleTime(300), + // filter(() => this.network.online), + // mergeMap(() => this.network.checkPeerAlive()), + // filter((alive) => !alive) + // ) + // .subscribe(() => this.network.setForceOffline(true, { showToast: true })); + } + + /** + * Allow to add a field resolver + * (see doc: https://www.apollographql.com/docs/react/data/local-state/#handling-client-fields-with-resolvers) + * + * @param resolvers + */ + async addResolver(resolvers: Resolvers | Resolvers[]) { + if (!this.started) await this.ready(); + this.apollo.client.addResolvers(resolvers); + } + + async query<T, V = EmptyObject>(opts: { query: any; variables?: V; error?: AppError; fetchPolicy?: FetchPolicy }): Promise<T> { + if (!this.started) await this.ready(); + let res: ApolloQueryResult<T>; + try { + res = await this.client.query<T, V>({ + query: opts.query, + variables: opts.variables, + fetchPolicy: opts.fetchPolicy || this.fetchPolicy || undefined, + }); + } catch (err) { + res = this.toApolloError<T>(err, opts.error); + } + if (res.errors) { + throw res.errors[0]; + } + return res.data; + } + + watchQueryRef<T, V = EmptyObject>(opts: WatchQueryOptions<V>): QueryRef<T, V> { + return this.apollo.watchQuery<T, V>({ + query: opts.query, + variables: opts.variables, + fetchPolicy: opts.fetchPolicy || this.watchFetchPolicy || undefined, + notifyOnNetworkStatusChange: true, + }); + } + + queryRefValuesChanges<T, V = EmptyObject>(queryRef: QueryRef<T, V>, opts: WatchQueryOptions<V>): Observable<T> { + return queryRef.valueChanges.pipe( + catchError((error) => this.onApolloError<T>(error, opts.error)), + filter((value) => value.networkStatus === NetworkStatus.ready || value.networkStatus === NetworkStatus.error), + map(({ data, errors }) => { + if (errors) { + throw errors[0]; + } + return data; + }) + ); + } + + watchQuery<T, V = EmptyObject>(opts: WatchQueryOptions<V>): Observable<T> { + const queryRef: QueryRef<T, V> = this.watchQueryRef(opts); + return this.queryRefValuesChanges(queryRef, opts); + } + + async mutate<T, V = EmptyObject>(opts: MutateQueryOptions<T, V>): Promise<T> { + // If offline, compute an optimistic response for tracked queries + if ((opts.forceOffline || this.offline) && opts.offlineResponse) { + if (typeof opts.offlineResponse === 'function') { + opts.context = opts.context || {}; + const optimisticResponseFn = opts.offlineResponse as (context: any) => Promise<T>; + opts.optimisticResponse = await optimisticResponseFn(opts.context); + if (this._debug) console.debug('[graphql] [offline] Using an optimistic response: ', opts.optimisticResponse); + } else { + opts.optimisticResponse = opts.offlineResponse as T; + } + if (opts.forceOffline) { + const res = { data: opts.optimisticResponse }; + if (opts.update) { + opts.update(this.apollo.client.cache, res); + } + return res.data; + } + } + + const res = await firstValueFrom( + this.apollo + .mutate<ApolloQueryResult<T>, V>({ + mutation: opts.mutation, + variables: opts.variables, + context: opts.context, + optimisticResponse: opts.optimisticResponse as any, + update: opts.update as any, + }) + .pipe( + catchError((error) => this.onApolloError<T>(error, opts.error)), + first() + // To debug, if need: + //tap((res) => (!res) && console.error('[graphql] Unknown error during mutation. Check errors in console (may be an invalid generated cache id ?)')) + ) + ); + if (Array.isArray(res.errors)) { + throw res.errors[0]; + } + return res.data as T; + } + + subscribeQuery<T, V = EmptyObject>( + opts: { + query: any; + variables: V; + fetchPolicy?: FetchPolicy; + errorPolicy?: ErrorPolicy; + error?: AppError; + }, + extra?: ExtraSubscriptionOptions + ): Observable<T> { + return this.apollo + .subscribe<T>( + { + query: opts.query, + fetchPolicy: (opts && opts.fetchPolicy) || 'network-only', + errorPolicy: (opts && opts.errorPolicy) || undefined, + variables: opts.variables, + }, + { + useZone: true, + ...extra, + } + ) + .pipe( + catchError((error) => this.onApolloError<T>(error, opts.error)), + map(({ data, errors }) => { + if (errors) { + throw errors[0]; + } + return data; + }) + ); + } + + insertIntoQueryCache<T, V = EmptyObject>( + cache: ApolloCache<any>, + opts: Cache.ReadQueryOptions<V, any> & { + arrayFieldName: string; + totalFieldName?: string; + data: T; + sortFn?: (d1: T, d2: T) => number; + size?: number; + } + ) { + cache = cache || this.apollo.client.cache; + opts.arrayFieldName = opts.arrayFieldName || 'data'; + + try { + let data = cache.readQuery<any, V>({ query: opts.query, variables: opts.variables }); + + if (!data) return; // Skip: nothing in cache + + if (isNotNil(data[opts.arrayFieldName])) { + // Copy because immutable + data = { ...data }; + + // Append to result array + data[opts.arrayFieldName] = [...data[opts.arrayFieldName], { ...opts.data }]; + + // Resort, if need + if (opts.sortFn) { + data[opts.arrayFieldName].sort(opts.sortFn); + } + + // Exclude if exceed max size + const size = toNumber(opts.variables && opts.variables['size'], -1); + if (size > 0 && data[opts.arrayFieldName].length > size) { + data[opts.arrayFieldName].splice(size, data[opts.arrayFieldName].length - size); + } + + // Increment total + if (isNotNil(opts.totalFieldName)) { + if (isNotNil(data[opts.totalFieldName])) { + data[opts.totalFieldName] += 1; + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.totalFieldName); + } + } + + cache.writeQuery({ + query: opts.query, + variables: opts.variables, + data, + }); + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.arrayFieldName); + } + } catch (err) { + // continue + // read in cache is not guaranteed to return a result. see https://github.com/apollographql/react-apollo/issues/1776#issuecomment-372237940 + if (this._debug) console.error('[graphql] Error while updating cache: ', err); + } + } + + addManyToQueryCache<T = any, V = EmptyObject>( + cache: ApolloCache<any>, + opts: Cache.ReadQueryOptions<V, any> & { + arrayFieldName: string; + totalFieldName?: string; + data: T[]; + equalsFn?: (d1: T, d2: T) => boolean; + sortFn?: (d1: T, d2: T) => number; + } + ) { + if (!opts.data || !opts.data.length) return; // nothing to process + + cache = cache || this.apollo.client.cache; + opts.arrayFieldName = opts.arrayFieldName || 'data'; + + try { + let data = cache.readQuery<any, V>({ query: opts.query, variables: opts.variables }); + if (!data) return 0; // skip + + if (data[opts.arrayFieldName]) { + // Copy because immutable + data = { ...data }; + + // Keep only not existing res + const equalsFn = opts.equalsFn || ((d1, d2) => d1['id'] === d2['id'] && d1['entityName'] === d2['entityName']); + const newItems = opts.data.filter( + (inputValue) => data[opts.arrayFieldName].findIndex((existingValue) => equalsFn(inputValue, existingValue)) === -1 + ); + + if (!newItems.length) return; // No new value + + // Append to array + data[opts.arrayFieldName] = [...data[opts.arrayFieldName], ...newItems]; + + // Resort, if need + if (opts.sortFn) { + data[opts.arrayFieldName].sort(opts.sortFn); + } + + // Exclude if exceed max size + const size = toNumber(opts.variables && opts.variables['size'], -1); + if (size > 0 && data[opts.arrayFieldName].length > size) { + data[opts.arrayFieldName].splice(size, data[opts.arrayFieldName].length - size); + } + + // Increment the total + if (isNotNil(opts.totalFieldName)) { + if (isNotNil(data[opts.totalFieldName])) { + data[opts.arrayFieldName] += newItems.length; + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.totalFieldName); + } + } + + // Write to cache + cache.writeQuery({ + query: opts.query, + variables: opts.variables, + data, + }); + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.arrayFieldName); + } + } catch (err) { + // continue + // read in cache is not guaranteed to return a result. see https://github.com/apollographql/react-apollo/issues/1776#issuecomment-372237940 + if (this._debug) console.warn('[graphql] Error while updating cache: ', err); + } + } + + /** + * Remove from cache, and return if removed or not + * + * @param cache + * @param opts + */ + removeFromCachedQueryById<V = EmptyObject, ID = number>( + cache: ApolloCache<any>, + opts: Cache.ReadQueryOptions<V, any> & { + arrayFieldName: string; + totalFieldName?: string; + ids: ID; // Do NOT use 'id', as already used by the Apollo API + } + ): boolean { + cache = cache || this.apollo.client.cache; + opts.arrayFieldName = opts.arrayFieldName || 'data'; + + try { + let data = cache.readQuery<any, V>({ query: opts.query, variables: opts.variables }); + + if (data && data[opts.arrayFieldName]) { + // Copy because immutable + data = { ...data }; + + const index = data[opts.arrayFieldName].findIndex((item) => item['id'] === opts.ids); + if (index === -1) return false; // Skip (nothing removed) + + // Copy, then remove deleted item + data[opts.arrayFieldName] = data[opts.arrayFieldName].slice(); + const deletedItem = data[opts.arrayFieldName].splice(index, 1)[0]; + cache.evict({ id: cache.identify(deletedItem) }); + + // Decrement the total + if (isNotNil(opts.totalFieldName)) { + if (isNotNil(data[opts.totalFieldName])) { + data[opts.totalFieldName] -= 1; + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.totalFieldName); + } + } + + // Write to cache + cache.writeQuery({ + query: opts.query, + variables: opts.variables, + data, + }); + return true; + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.arrayFieldName); + return false; + } + } catch (err) { + // continue + // read in cache is not guaranteed to return a result. see https://github.com/apollographql/react-apollo/issues/1776#issuecomment-372237940 + if (this._debug) console.warn('[graphql] Error while removing from cache: ', err); + return false; + } + } + + /** + * Remove ids from cache, and return the number of items removed + * + * @param cache + * @param opts + */ + removeFromCachedQueryByIds<V = EmptyObject, ID = number>( + cache: ApolloCache<any>, + opts: Cache.ReadQueryOptions<V, any> & { + arrayFieldName: string; + totalFieldName?: string; + ids: ID[]; + } + ): number { + cache = cache || this.apollo.client.cache; + opts.arrayFieldName = opts.arrayFieldName || 'data'; + + try { + let data = cache.readQuery(opts); + + if (data && data[opts.arrayFieldName]) { + // Copy because immutable + data = { ...data }; + + const deletedIndexes = data[opts.arrayFieldName].reduce((res, item, index) => (opts.ids.includes(item['id']) ? res.concat(index) : res), []); + + if (deletedIndexes.length <= 0) return 0; // Skip (nothing removed) + + // Query has NO total + if (isNil(opts.totalFieldName)) { + // Evict each object + deletedIndexes + .map((index) => data[opts.arrayFieldName][index]) + .map((item) => cache.identify(item)) + .forEach((id) => cache.evict({ id })); + } + // Query has a total + else { + // Copy the array + data[opts.arrayFieldName] = data[opts.arrayFieldName].slice(); + + // remove from array, then evict + deletedIndexes + // Reverse: to keep valid index + .reverse() + // Remove from the array + .map((index) => data[opts.arrayFieldName].splice(index, 1)[0]) + // Evict from cache + .map((item) => cache.identify(item)) + .forEach((id) => cache.evict({ id })); + + if (isNotNil(data[opts.totalFieldName])) { + data[opts.totalFieldName] -= deletedIndexes.length; // Remove deletion count + } else { + console.warn('[graphql] Unable to update the total in cached query. Unknown result part: ' + opts.totalFieldName); + } + + cache.writeQuery({ + query: opts.query, + variables: opts.variables, + data, + }); + + return deletedIndexes.length; + } + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.arrayFieldName); + return 0; + } + } catch (err) { + // continue + // read in cache is not guaranteed to return a result. see https://github.com/apollographql/react-apollo/issues/1776#issuecomment-372237940 + if (this._debug) console.warn('[graphql] Error while removing from cache: ', err); + return 0; + } + } + + updateToQueryCache<T extends object, V = EmptyObject>( + cache: ApolloCache<any>, + opts: Cache.ReadQueryOptions<V, any> & { + arrayFieldName: string; + totalFieldName?: string; + data: T; + equalsFn?: (d1: T, d2: T) => boolean; + idAttribute?: keyof T; + } + ) { + cache = cache || this.apollo.client.cache; + opts.arrayFieldName = opts.arrayFieldName || 'data'; + + try { + let data: any = cache.readQuery(opts); + + if (data && data[opts.arrayFieldName]) { + // Copy because immutable + data = { ...data }; + + const equalsFn = opts.equalsFn || ((d1, d2) => EntityUtils.equals(d1, d2, opts.idAttribute)); + + // Update if exists, or insert + const index = data[opts.arrayFieldName].findIndex((v) => equalsFn(opts.data, v)); + if (index !== -1) { + data[opts.arrayFieldName] = data[opts.arrayFieldName].slice().splice(index, 1, opts.data); + } else { + data[opts.arrayFieldName] = [...data[opts.arrayFieldName], opts.data]; + } + + // Increment total (if changed) + if (isNotNil(opts.totalFieldName) && index === -1) { + if (isNotNil(data[opts.totalFieldName])) { + data[opts.totalFieldName] += 1; + } else { + console.warn('[graphql] Unable to update cached query. Unknown result part: ' + opts.totalFieldName); + } + } + + cache.writeQuery({ + query: opts.query, + variables: opts.variables, + data, + }); + return; // OK: stop here + } + } catch (err) { + // continue + // read in cache is not guaranteed to return a result. see https://github.com/apollographql/react-apollo/issues/1776#issuecomment-372237940 + if (this._debug) console.warn('[graphql] Error while updating cache: ', err); + } + } + + async clearCache(client?: ApolloClient<any>): Promise<void> { + client = (client || this.client) as ApolloClient<any>; + if (client) { + console.info('[graphql] Cleaning cache... '); + const now = this._debug && Date.now(); + + // Clearing the cache + await client.cache.reset(); + + if (this._debug) console.debug(`[graphql] Cleaning cache [OK] in ${Date.now() - now}ms`); + } + } + + registerCustomError(error: PropertiesMap) { + this.customErrors = { ...this.customErrors, ...error }; + } + + /* -- protected methods -- */ + + protected async createClient(peer: Peer, name?: string) { + name = name || this.options?.name || 'default'; + if (!peer) throw Error('Missing peer. Unable to start graphql service'); + + console.info(`${this._logPrefix}Creating Apollo GraphQL client '${name}'...`); + const mobile = isMobile(window); + const enableMutationTrackerLink = !mobile; + + const httpUri = Peers.getHttpUri(peer); + console.info(`${this._logPrefix}Base uri: ${httpUri}`); + + const wsUri = Peers.getWsUri(peer) + '/websocket'; + console.info(`${this._logPrefix}Subscription uri: ${wsUri}`); + + this.httpParams = this.httpParams || {}; + this.httpParams.uri = httpUri; + + this.wsParams = { + ...this.wsParams, + lazy: true, + connectionParams: this.connectionParams, + webSocketImpl: AppWebSocket, + url: wsUri, + shouldRetry: (errOrCloseEvent) => { + // If WS URL changed, then do not retry + if (wsUri !== this.wsParams.url) { + return false; + } + console.warn(`${this._logPrefix}[WS] Trying to reconnect...`, errOrCloseEvent); + return true; + }, + retryAttempts: 10, + }; + + // Create a storage configuration + const storage: PersistentStorage<string> = new StorageServiceWrapper(this.storage); + + // Remove existing client + const oldClient = this.apollo.use(name)?.client; + if (oldClient) { + await this.resetClient(oldClient); + this.apollo.removeClient(name); + } + + // Websocket link + const wsLink = new GraphQLWsLink(createClient(this.wsParams)); + + // Retry when failed link + const retryLink = new RetryLink(); + const authLink = new ApolloLink((operation, forward) => { + const authorization = []; + if (this.connectionParams.authToken) { + authorization.push(`token ${this.connectionParams.authToken}`); + } + if (this.connectionParams.authBasic) { + authorization.push(`Basic ${this.connectionParams.authBasic}`); + } + const headers = new HttpHeaders().append('Authorization', authorization); + + // Use the setContext method to set the HTTP headers. + operation.setContext({ + ...operation.getContext(), + ...{ headers }, + }); + + // Call the next link in the middleware chain. + return forward(operation); + }); + + // Http link + const httpLink = this.httpLink.create(this.httpParams); + + // Cache + const cache = new InMemoryCache({ + typePolicies: this.typePolicies, + fragments: isNotEmptyArray(this.fragments) ? createFragmentRegistry(...this.fragments) : undefined, + }); + + // Add cache persistence + if (environment.graphql.persistCache) { + console.debug(`${this._logPrefix}Starting persistence cache...`); + await persistCache({ + cache, + storage, + trigger: this.platform.is('android') ? 'background' : 'write', + debounce: 1000, + debug: true, + }); + } + + let mutationLinks: Array<ApolloLink>; + + // Add queue to store tracked queries, when offline + if (enableMutationTrackerLink) { + const serializingLink = new SerializingLink(); + const trackerLink = new TrackerLink({ + storage, + debounce: 1000, + debug: this._debug, + }); + this.stopSubject.subscribe(trackerLink.destroy); + + // Creating a mutation queue + const queueLink = new QueueLink(); + this.registerSubscription( + this.offline$.subscribe((offline) => { + // Network is offline: start buffering into queue + if (offline) { + console.info(`${this._logPrefix}offline mode: enable mutations buffer`); + trackerLink.enable(); + queueLink.close(); + } + // Network is online + else { + console.info(`${this._logPrefix}online mode: disable mutations buffer`); + trackerLink.disable(); + queueLink.open(); + } + }) + ); + mutationLinks = [loggerLink, queueLink, trackerLink, queueLink, serializingLink, retryLink, authLink, httpLink]; + } else { + mutationLinks = [retryLink, authLink, httpLink]; + } + + // Create Apollo client + this.apollo.createNamed(name, { + cache, + defaultOptions: { + query: { + fetchPolicy: this.defaultFetchPolicy, + }, + watchQuery: { + fetchPolicy: this.defaultWatchFetchPolicy, + }, + }, + link: ApolloLink.split( + // Handle mutations + isMutationOperation, + ApolloLink.from(mutationLinks), + + ApolloLink.split( + // Handle subscriptions + isSubscriptionOperation, + wsLink, + + // Handle queries + ApolloLink.from([retryLink, authLink, httpLink]) + ) + ), + connectToDevTools: !environment.production, + }); + + const client = this.apollo.use(name).client; + + // Enable tracked queries persistence + if (enableMutationTrackerLink && environment.graphql.persistCache) { + try { + await restoreTrackedQueries({ + client, + storage, + debug: this._debug, + }); + } catch (err) { + console.error(`${this._logPrefix}Failed to restore tracked queries from storage: ` + ((err && err.message) || err), err); + } + } + + console.info(`${this._logPrefix}Creating graphql client [OK]`); + return client; + } + + protected async ngOnStop() { + console.info(`${this._logPrefix}Stopping...`); + + const client = this.client; + if (client) { + await this.resetClient(client); + } + } + + protected async resetClient(client?: ApolloClient<any>) { + client = (client || this.apollo.client) as ApolloClient<any>; + if (!client) return; + + console.info('[graphql] Resetting Apollo client...'); + client.stop(); + + await Promise.all([client.clearStore(), this.clearCache(client)]); + } + + private onApolloError<T>(err: any, defaultError?: any): Observable<ApolloQueryResult<T>> { + return of(this.toApolloError<T>(err, defaultError)); + } + + private toApolloError<T>(err: ApolloError, defaultError?: AppError): ApolloQueryResult<T> { + let error = + // If network error: try to convert to App (read as JSON), or create an UNKNOWN_NETWORK_ERROR + (err.networkError && + ((err.networkError.error && this.toAppError(err.networkError.error)) || + this.toAppError(err.networkError) || + (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status)) || + this.createAppErrorByCode(ErrorCodes.UNKNOWN_ERROR))) || + // If graphQL: try to convert the first error found + (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0])) || + this.toAppError(err) || + this.toAppError(err.originalError) || + (err.graphQLErrors && err.graphQLErrors[0]) || + err; + console.error('[graphql] ' + ((error && error.message) || error), error.stack || ''); + if (error?.code === ErrorCodes.UNKNOWN_ERROR && err.networkError?.message) { + console.error('[graphql] original error: ' + err.networkError.message); + this.onNetworkError.next(error); + } + + // Apply default error, and store original error into error's details + if ((!error || !error.code || error.code === ServerErrorCodes.INTERNAL_SERVER_ERROR) && defaultError) { + error = { ...(defaultError as AppError), details: error, stack: err.stack }; + if (defaultError.message) { + error.message = defaultError.message; + } + } + + return { + data: null, + errors: [error], + loading: false, + networkStatus: NetworkStatus.error, + }; + } + + private createAppErrorByCode(errorCode: number): any | undefined { + const message = this.getI18nErrorMessageByCode(errorCode); + if (message) { + return { + code: errorCode, + message, + }; + } + return undefined; + } + + private getI18nErrorMessageByCode(errorCode: number): string | undefined { + // look in registered error codes + const customErrorMessage = this.customErrors[errorCode]; + if (customErrorMessage) { + return customErrorMessage; + } + + // Default, switch on error code + switch (errorCode) { + case ServerErrorCodes.UNAUTHORIZED: + return 'ERROR.UNAUTHORIZED'; + case ServerErrorCodes.FORBIDDEN: + return 'ERROR.FORBIDDEN'; + case ErrorCodes.UNKNOWN_ERROR: + return 'ERROR.UNKNOWN_ERROR'; + } + + return undefined; + } + + private toAppError(err: string | AppError | ApolloError): AppError | undefined { + const error: AppError | ApolloError = typeof err === 'object' ? err : { message: err }; + // parse message if JSON + if (typeof error.message === 'string' && error.message.trim().indexOf('{"code":') === 0) { + try { + const json = JSON.parse( + error.message + // Remove special characters before parsing (e.g. SQL errors from an Oracle database) + .replace('\n', ' ') + .replace('\r', '') + ) as AppError; + error.message = json.message || error.message; + } catch (parseError) { + console.error('Unable to parse error as JSON: ', parseError); + } + } + if (error.code) { + const appError: AppError = { + ...error, + ...this.createAppErrorByCode(error.code), + }; + if (appError.code !== error.code || appError.message !== error.message) { + // Store original error in details + appError.details = error as AppError; + return appError; + } + // Keep error (with details, if any) + return error as AppError; + } + return undefined; + } +} diff --git a/src/app/shared/services/network/graphql/graphql.utils.ts b/src/app/shared/services/network/graphql/graphql.utils.ts new file mode 100644 index 0000000000000000000000000000000000000000..6d22ac69c87e0e4f3ac155562ae95862dfec0f32 --- /dev/null +++ b/src/app/shared/services/network/graphql/graphql.utils.ts @@ -0,0 +1,192 @@ +import { ApolloClient, ApolloLink, NextLink, Operation } from '@apollo/client/core'; +import { EventEmitter } from '@angular/core'; +import { debounceTime, filter, switchMap } from 'rxjs/operators'; +import { BehaviorSubject, Subscription } from 'rxjs'; +import { getMainDefinition } from '@apollo/client/utilities'; +import { PersistentStorage } from 'apollo3-cache-persist'; +import { v4 as uuidv4 } from 'uuid'; +import { StorageService } from '../../storage/storage.service'; + +declare let window: any; +const _global = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : {}; +export const NativeWebSocket = _global.WebSocket || _global.MozWebSocket; + +export interface EmptyObject { + [key: string]: any; +} + +/** + * AppWebSocket class. + * With a hack on default Websocket, to avoid the use of protocol + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const AppWebSocket = function (url: string, protocols?: string | string[]) { + return new NativeWebSocket(url /*no protocols*/); +} as typeof NativeWebSocket; +AppWebSocket.CLOSED = NativeWebSocket.CLOSED; +AppWebSocket.CLOSING = NativeWebSocket.CLOSING; +AppWebSocket.CONNECTING = NativeWebSocket.CONNECTING; +AppWebSocket.OPEN = NativeWebSocket.OPEN; + +export function isMutationOperation(operation: Operation) { + const def = getMainDefinition(operation.query); + return def.kind === 'OperationDefinition' && def.operation === 'mutation'; +} + +export function isSubscriptionOperation(operation: Operation) { + const def = getMainDefinition(operation.query); + return def.kind === 'OperationDefinition' && def.operation === 'subscription'; +} + +export interface TrackedQuery { + id: string; + name: string; + queryJSON: string; + variablesJSON: string; + contextJSON: string; +} + +export const TRACKED_QUERIES_STORAGE_KEY = 'apollo-tracker-persist'; + +export default class TrackerLink extends ApolloLink { + private trackedQueriesUpdated = new EventEmitter(); + private trackedQueriesById: { [id: string]: TrackedQuery } = {}; + private enableSubject = new BehaviorSubject<boolean>(false); + private readonly subscription = new Subscription(); + private readonly debug: boolean; + + constructor(opts: { debounce?: number; storage: PersistentStorage<string>; debug?: boolean }) { + super(); + this.debug = opts.debug || false; + + // Save pending and tracked queries in storage + this.subscription.add( + this.trackedQueriesUpdated + .pipe( + debounceTime(opts.debounce || 1000), + switchMap(() => this.enableSubject), + // Continue if offline + filter((enable) => enable && !!opts.storage) + ) + .subscribe(() => { + const trackedQueries = Object.getOwnPropertyNames(this.trackedQueriesById) + .map((key) => this.trackedQueriesById[key]) + .filter((value) => value !== undefined); + if (this.debug) console.debug('[apollo-tracker-link] Saving tracked queries to storage', trackedQueries); + return opts.storage.setItem(TRACKED_QUERIES_STORAGE_KEY, JSON.stringify(trackedQueries)); + }) + ); + } + + enable() { + this.enableSubject.next(true); + } + + disable() { + this.enableSubject.next(false); + } + + get enabled(): boolean { + return this.enableSubject.value; + } + + destroy() { + this.subscription?.unsubscribe(); + } + + request(operation: Operation, forward: NextLink) { + if (!this.enabled) { + return forward(operation); + } + + const context = operation.getContext(); + + // Skip if not tracked + if (!context || !context.tracked) return forward(operation); + + const id = context.serializationKey || uuidv4(); + if (this.debug) console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`); + + // Clean context, before calling JSON.stringify (remove unused attributes) + const cleanContext = { ...context, ...{ optimisticResponse: null, cache: null } }; + + const trackedQuery: TrackedQuery = { + id, + name: operation.operationName, + queryJSON: JSON.stringify(operation.query), + variablesJSON: JSON.stringify(operation.variables), + contextJSON: JSON.stringify(cleanContext), + }; + + // Add to map + this.trackedQueriesById[id] = trackedQuery; + this.trackedQueriesUpdated.emit(); + + const nextOperation = forward(operation).map((data) => { + if (this.debug) console.debug(`[apollo-tracker-link] Query {${operation.operationName}#${id}} succeed!`, data); + delete this.trackedQueriesById[id]; + this.trackedQueriesUpdated.emit(this.trackedQueriesById); // update + + return data; + }); + + // If offline, return the optimistic response + if (this.enabled) { + if (context.optimisticResponse) { + if (this.debug) + console.debug(`[apollo-tracker-link] Query {${operation.operationName}#${id}} has optimistic response: `, context.optimisticResponse); + } else { + console.warn( + `[apollo-tracker-link] Query {${operation.operationName}#${id}} missing 'context.optimisticResponse': waiting network UP before to continue...` + ); + } + } + + return nextOperation; + } +} + +export async function restoreTrackedQueries(opts: { client: ApolloClient<any>; storage: PersistentStorage<any>; debug?: boolean }) { + const list = JSON.parse(await opts.storage.getItem(TRACKED_QUERIES_STORAGE_KEY)) as TrackedQuery[]; + + if (!list) return; + if (opts.debug) console.debug('[apollo-tracker-link] Restoring tracked queries', list); + + const promises = (list || []).map((trackedQuery) => { + const context = JSON.parse(trackedQuery.contextJSON); + const query = JSON.parse(trackedQuery.queryJSON); + const variables = JSON.parse(trackedQuery.variablesJSON); + return opts.client.mutate({ + context, + mutation: query, + optimisticResponse: context.optimisticResponse, + //update: updateHandlerByName[trackedQuery.name], + variables, + }); + }); + + return Promise.all(promises); +} + +export class StorageServiceWrapper implements PersistentStorage<any> { + constructor(private storage: StorageService) {} + + getItem(key: string) { + return this.storage.get(key); + } + removeItem(key: string) { + return this.storage.remove(key); + } + setItem(key: string, value: any) { + return this.storage.set(key, value); + } +} + +export interface ApolloError { + code?: number; + message?: string; + networkError: any; + graphQLErrors: any[]; + originalError: any; + stack: any; +} diff --git a/src/app/shared/services/network/network.errors.ts b/src/app/shared/services/network/network.errors.ts new file mode 100644 index 0000000000000000000000000000000000000000..f948e391e575425acc544bafd80f0693c91faef4 --- /dev/null +++ b/src/app/shared/services/network/network.errors.ts @@ -0,0 +1,23 @@ +export declare interface ServiceError { + code: number; + message: string; + reject?: (err: never) => void; +} + +export const ErrorCodes = { + UNKNOWN_ERROR: 0, +}; + +export const ServerErrorCodes = { + BAD_REQUEST: 400, + UNAUTHORIZED: 401, // not authenticated + FORBIDDEN: 403, // authenticated but no access right + NOT_FOUND: 404, + INTERNAL_SERVER_ERROR: 500, + + // Duniter error + // TODO + + // Subsquid indexer error + // TODO +}; diff --git a/src/app/shared/services/network/network.utils.ts b/src/app/shared/services/network/network.utils.ts new file mode 100644 index 0000000000000000000000000000000000000000..16c64fa66d69a4616e2ee003c6d1817249d4b3aa --- /dev/null +++ b/src/app/shared/services/network/network.utils.ts @@ -0,0 +1,15 @@ +import { ConnectionStatus, Network } from '@capacitor/network'; + +export declare type NetworkEventType = 'start' | 'peerChanged' | 'statusChanged' | 'resetCache' | 'beforeTryOnlineFinish'; + +export declare type ConnectionType = 'wifi' | 'cellular' | 'none' | 'unknown'; + +export class NetworkUtils { + static addStatusChangeListener(callback: (status: ConnectionStatus) => never) { + return Network.addListener('networkStatusChange', callback); + } + + static getStatus() { + return Network.getStatus(); + } +} diff --git a/src/app/network/peer.model.ts b/src/app/shared/services/network/peer.model.ts similarity index 82% rename from src/app/network/peer.model.ts rename to src/app/shared/services/network/peer.model.ts index ee0a7fb9743d02978aa8bded1c0f4144cb431612..5f7eb73fbac30b1c1b80fe5c1a15b66f635eaceb 100644 --- a/src/app/network/peer.model.ts +++ b/src/app/shared/services/network/peer.model.ts @@ -32,7 +32,12 @@ export abstract class Peers { static getWsUri(peer: Peer) { if (!peer) return null; - return `${peer.useSsl || peer.port === 443 ? 'wss' : 'ws'}://${peer.host}${isNil(peer.port) ? '' : ':' + peer.port}${peer.path || '/ws'}`; + return `${peer.useSsl || peer.port === 443 ? 'wss' : 'ws'}://${peer.host}${isNil(peer.port) ? '' : ':' + peer.port}${peer.path || ''}`; + } + + static getHttpUri(peer: Peer) { + if (!peer) return null; + return `${peer.useSsl || peer.port === 443 ? 'https' : 'http'}://${peer.host}${isNil(peer.port) ? '' : ':' + peer.port}${peer.path || ''}`; } static sameUri(uri1: string, uri2: string): boolean { diff --git a/src/app/shared/services/rx-startable-service.class.ts b/src/app/shared/services/rx-startable-service.class.ts index aa75c5aeb5ac71849fa4f283c3e5ba754f283690..1d5f8f77adb93a4e3e10b280632799b4b801ca3e 100644 --- a/src/app/shared/services/rx-startable-service.class.ts +++ b/src/app/shared/services/rx-startable-service.class.ts @@ -2,8 +2,14 @@ import { Directive, Optional } from '@angular/core'; import { firstValueFrom, Subject, takeUntil } from 'rxjs'; import { RxBaseService, RxBaseServiceOptions } from '@app/shared/services/rx-service.class'; import { IStartableService, IWithReadyService, ReadyAsyncFunction } from '@app/shared/services/service.model'; +import { toBoolean } from '@app/shared/functions'; -export interface RxStartableServiceOptions<T extends object = Object> extends RxBaseServiceOptions<T> {} +export interface RxStartableServiceOptions<T extends object = Object> extends RxBaseServiceOptions<T> { + /** + * Should start the service when calling ready()? (default: true) + */ + startByReadyFunction?: boolean; +} @Directive() export abstract class RxStartableService<T extends object = Object, O extends RxStartableServiceOptions<T> = RxStartableServiceOptions<T>> @@ -13,8 +19,8 @@ export abstract class RxStartableService<T extends object = Object, O extends Rx startSubject = new Subject<T>(); stopSubject = new Subject<void>(); - protected _startByReadyFunction = true; // should start when calling ready() ? - protected _debug: boolean = false; + protected readonly _startByReadyFunction: boolean; + protected readonly _debug: boolean = false; private _started = false; private _startPromise: Promise<T> = null; @@ -31,6 +37,7 @@ export abstract class RxStartableService<T extends object = Object, O extends Rx protected constructor(@Optional() prerequisiteService?: IWithReadyService, options?: O) { super(options); this._startPrerequisite = prerequisiteService ? () => prerequisiteService.ready() : () => Promise.resolve(); + this._startByReadyFunction = toBoolean(options?.startByReadyFunction, true); } start(): Promise<T> { diff --git a/src/app/shared/services/service.model.ts b/src/app/shared/services/service.model.ts index d5ba38cec72d6cfda6fe3ee36b685645ad34f693..185beeb51b2b69f3378937259f39162a0f05b150 100644 --- a/src/app/shared/services/service.model.ts +++ b/src/app/shared/services/service.model.ts @@ -8,7 +8,7 @@ export declare interface IWithReadyService<T = any> { ready: ReadyAsyncFunction<T>; } -export declare type FetchMoreFn<R, V = object> = (variables?: V) => Promise<R>; +export declare type FetchMoreFn<R> = (limit?: number) => Promise<R>; export declare interface LoadResult<T> { data: T[]; diff --git a/src/app/shared/services/storage/storage.utils.ts b/src/app/shared/services/storage/storage.utils.ts index a689894588253efa1e40ee0e4952494010c893bb..1137c6593860f7b91fbc17ca543b081259502af7 100644 --- a/src/app/shared/services/storage/storage.utils.ts +++ b/src/app/shared/services/storage/storage.utils.ts @@ -2,8 +2,6 @@ import { InjectionToken } from '@angular/core'; import { Drivers } from '@ionic/storage'; import * as LocalForage from 'localforage'; -import * as CordovaSQLiteDriver from 'localforage-cordovasqlitedriver'; - // eslint-disable-next-line @typescript-eslint/no-explicit-any export interface IStorage<V = any> { readonly driver: string; @@ -16,7 +14,6 @@ export interface IStorage<V = any> { } export const StorageDrivers = { - SQLLite: CordovaSQLiteDriver._driver, SecureStorage: Drivers.SecureStorage, WebSQL: LocalForage.WEBSQL, IndexedDB: Drivers.IndexedDB, diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 95b4317cb437596ee55ecb665c5059b2a0733ec4..d1fe679046fd71b9c41571759d462bd2d9fda2bc 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -14,10 +14,13 @@ import { RxIf } from '@rx-angular/template/if'; import { MaskitoModule } from '@maskito/angular'; import { SwiperDirective } from '@app/shared/swiper/app-swiper.directive'; import { AppSkeletonListComponent } from '@app/shared/loading/skeleton.list/skeleton.list.component'; +import { AppGraphQLModule } from '@app/shared/services/network/graphql/graphql.module'; +import { RouterModule } from '@angular/router'; @NgModule({ imports: [ CommonModule, + RouterModule, FormsModule, ReactiveFormsModule, IonicModule, @@ -35,10 +38,12 @@ import { AppSkeletonListComponent } from '@app/shared/loading/skeleton.list/skel SharedPipesModule, ListPopoverModule, SwiperDirective, + AppGraphQLModule, AppSkeletonListComponent, ], exports: [ CommonModule, + RouterModule, FormsModule, ReactiveFormsModule, IonicModule, @@ -56,6 +61,7 @@ import { AppSkeletonListComponent } from '@app/shared/loading/skeleton.list/skel SharedPipesModule, ListPopoverModule, SwiperDirective, + AppGraphQLModule, AppSkeletonListComponent, ], }) diff --git a/src/app/shared/types.ts b/src/app/shared/types.ts index dc4cc947b49a803e9941812d41640339cf8874cc..90114f705d1bda5c3d23739dc7d2c254944c5fd2 100644 --- a/src/app/shared/types.ts +++ b/src/app/shared/types.ts @@ -25,3 +25,13 @@ export declare interface IconRef { } export declare type AppEvent = MouseEvent | TouchEvent | PointerEvent | CustomEvent; + +export interface SimpleError { + code?: number; + message: string; +} +export interface AppError extends SimpleError { + details?: AppError; +} + +export type AnyError = string | AppError; diff --git a/src/app/transfer/transfer-routing.module.ts b/src/app/transfer/transfer-routing.module.ts index bc2ac437ca79428bdc5998eafe7deeaa0b63f224..05c31b2e040d904130d4ce2482bbde89de96210f 100644 --- a/src/app/transfer/transfer-routing.module.ts +++ b/src/app/transfer/transfer-routing.module.ts @@ -3,6 +3,7 @@ import { RouterModule, Routes } from '@angular/router'; import { TransferPage } from './transfer.page'; import { AuthGuardService } from '@app/account/auth-guard.service'; +import { AppTransferModule } from '@app/transfer/transfer.module'; const routes: Routes = [ { @@ -26,7 +27,7 @@ const routes: Routes = [ ]; @NgModule({ - imports: [RouterModule.forChild(routes)], + imports: [AppTransferModule, RouterModule.forChild(routes)], exports: [RouterModule], }) -export class TransferPageRoutingModule {} +export class AppTransferRoutingModule {} diff --git a/src/app/transfer/transfer.controller.ts b/src/app/transfer/transfer.controller.ts index 803088267644e2ec1f41f717dd976f489915d4b6..1e21ac9fb529ea2a179e884910b5c9f045e31fee 100644 --- a/src/app/transfer/transfer.controller.ts +++ b/src/app/transfer/transfer.controller.ts @@ -1,31 +1,51 @@ -import { ModalController } from '@ionic/angular'; +import { ModalController, NavController } from '@ionic/angular'; import { Injectable } from '@angular/core'; import { PlatformService } from '@app/shared/services/platform.service'; -import { Router } from '@angular/router'; -import { TransferPage, TransferPageOptions } from '@app/transfer/transfer.page'; +import { TransferPage, TransferPageInputs } from '@app/transfer/transfer.page'; +import { ITransferController, TransferFormOptions } from '@app/transfer/transfer.model'; @Injectable() -export class TransferController { - private _mobile = this.platform.mobile; +export class TransferController implements ITransferController { + get mobile() { + return this.platform.mobile; + } constructor( private platform: PlatformService, private modalCtrl: ModalController, - private router: Router + private navController: NavController ) {} - async transfer(opts?: TransferPageOptions): Promise<string> { - if (this._mobile) { + async transfer(opts?: TransferFormOptions): Promise<string> { + // Open as a page + if (opts?.modal === false && this.platform.mobile) { console.info('[transfer] Opening transfer page'); - await this.router.navigateByUrl('/transfer'); + if (opts?.account?.address) { + await this.navController.navigateForward(['transfer', 'from', opts.account.address], { + state: { + to: '5H7L4V5qMLEcqAsRMmyRYU42q8XWxgk1HroC5QsQTDZpY7hx', + }, + }); + } else if (opts?.recipient?.address) { + await this.navController.navigateForward(['transfer', 'to', opts.recipient.address]); + } else { + await this.navController.navigateForward(['transfer']); + } return undefined; - } else { + } + + // Open as a modal + else { console.info('[transfer] Opening transfer modal'); + const presentingElement: HTMLElement = this.platform.mobile ? document.querySelector('.ion-page') : null; const modal = await this.modalCtrl.create({ component: TransferPage, - componentProps: <TransferPageOptions>{ + presentingElement, + canDismiss: true, + componentProps: <TransferPageInputs>{ ...opts, + toolbarColor: 'secondary', dismissOnSubmit: true, }, }); diff --git a/src/app/transfer/transfer.model.ts b/src/app/transfer/transfer.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..ff5467b8f3c4ce2f89e0caa8b6f13192cb583b50 --- /dev/null +++ b/src/app/transfer/transfer.model.ts @@ -0,0 +1,62 @@ +import { InjectionToken } from '@angular/core'; +import { Account } from '@app/account/account.model'; +import { Moment } from 'moment/moment'; +import { equals, isNil, isNilOrBlank } from '@app/shared/functions'; + +export interface TransferFormOptions { + account?: Account; + recipient?: Partial<Account>; + amount?: number; + fee?: number; + modal?: boolean; +} + +export interface ITransferController { + /** + * Call the transfer page + * + * @param {TransferFormOptions} opts - The options for the transfer form. + * @return {Promise<string>} A promise that resolves to a string representing the transaction hash + */ + transfer(opts?: TransferFormOptions): Promise<string>; +} + +export const APP_TRANSFER_CONTROLLER = new InjectionToken<ITransferController>('TransferController'); + +export interface Transfer { + id: string; + from: Account; + to: Account; + account: Account; // from or to + timestamp: Moment; + amount: number; + blockNumber: number; +} + +export class TransferComparators { + static sortByBlockAsc(t1: Transfer, t2: Transfer): number { + return t1.blockNumber === t2.blockNumber ? 0 : t1.blockNumber > t2.blockNumber ? 1 : -1; + } + + static sortByBlockDesc(t1: Transfer, t2: Transfer): number { + return -1 * TransferComparators.sortByBlockAsc(t1, t2); + } +} + +export interface TransferSearchFilter { + address?: string; + amount?: string; + limit?: number; + minTimestamp?: Moment; + maxTimestamp?: Moment; +} + +export class TransferSearchFilterUtils { + static isEquals(f1: TransferSearchFilter, f2: TransferSearchFilter) { + return f1 === f2 || equals(f1, f2); + } + + static isEmpty(filter: TransferSearchFilter) { + return !filter || (isNilOrBlank(filter.address) && isNilOrBlank(filter.minTimestamp) && isNil(filter.amount)); + } +} diff --git a/src/app/transfer/transfer.module.ts b/src/app/transfer/transfer.module.ts index 845f3789a359e2ea78292224f8395922ebcbfbbf..74ad285f05dbf9e29ae9857ad8e78329b13b9b32 100644 --- a/src/app/transfer/transfer.module.ts +++ b/src/app/transfer/transfer.module.ts @@ -3,20 +3,19 @@ import { ModuleWithProviders, NgModule } from '@angular/core'; import { TransferPage } from './transfer.page'; import { AppSharedModule } from '@app/shared/shared.module'; import { TranslateModule } from '@ngx-translate/core'; -import { TransferPageRoutingModule } from '@app/transfer/transfer-routing.module'; -import { WotModule } from '@app/wot/wot.module'; import { TransferController } from '@app/transfer/transfer.controller'; +import { APP_TRANSFER_CONTROLLER } from '@app/transfer/transfer.model'; @NgModule({ - imports: [AppSharedModule, TranslateModule.forChild(), TransferPageRoutingModule, WotModule], + imports: [AppSharedModule, TranslateModule.forChild()], declarations: [TransferPage], }) export class AppTransferModule { static forRoot(): ModuleWithProviders<AppTransferModule> { - console.info('[transfer] Creating module (root)'); + console.debug('[transfer] Creating module (root)'); return { ngModule: AppTransferModule, - providers: [TransferController], + providers: [TransferController, { provide: APP_TRANSFER_CONTROLLER, useExisting: TransferController }], }; } } diff --git a/src/app/transfer/transfer.page.html b/src/app/transfer/transfer.page.html index 1152d52a1dac724f67de3d628000f54e263396a3..774fd9b217e62602c894e510a0f9ad1ffd6e31e4 100644 --- a/src/app/transfer/transfer.page.html +++ b/src/app/transfer/transfer.page.html @@ -1,16 +1,23 @@ <ion-header [translucent]="true"> - <ion-toolbar color="primary"> + <ion-toolbar [color]="toolbarColor"> <ion-buttons slot="start"> - <ion-menu-button></ion-menu-button> - <ion-back-button></ion-back-button> + @if (_isModal) { + <ion-button (click)="cancel()"><ion-icon name="arrow-back"></ion-icon></ion-button> + } @else { + <ion-menu-button *ngIf="showMenuButton"></ion-menu-button> + <ion-back-button></ion-back-button> + } </ion-buttons> <ion-title translate>TRANSFER.TITLE</ion-title> </ion-toolbar> </ion-header> <ion-content [fullscreen]="true" *rxLet="loading$ as loading"> - <ion-header collapse="condense"> + <ion-header collapse="condense" *ngIf="!_isModal"> <ion-toolbar> + <ion-buttons slot="start"> + <ion-back-button></ion-back-button> + </ion-buttons> <ion-title size="large" translate>TRANSFER.TITLE</ion-title> </ion-toolbar> </ion-header> @@ -23,12 +30,13 @@ </ion-item> <!-- TO --> - <ion-item *rxIf="recipient$; let recipient; suspense: skeleton60"> + <ion-item *rxIf="recipient$; let recipient; suspense: skeletonItem"> <!-- <ion-label color="medium" translate>TRANSFER.TO</ion-label>--> <ion-textarea [rows]="mobile ? 2 : 1" [tabIndex]="mobile ? -1 : 1" [label]="'TRANSFER.TO' | translate" + labelPlacement="floating" class="ion-text-nowrap" [(ngModel)]="recipient.address" required @@ -46,10 +54,16 @@ <ion-note slot="error" *rxIf="submitted$" translate>ERROR.FIELD_REQUIRED</ion-note> </ion-item> - <!-- FROM --> - <ion-item *rxIf="accounts$; let accounts; suspense: skeleton60" (click)="selectAccount($event)" tappable> - <!-- <ion-label color="medium" translate>TRANSFER.FROM</ion-label>--> - <ion-input [(ngModel)]="accountName" [debounce]="450" [label]="'TRANSFER.FROM' | translate" readonly required></ion-input> + <!-- from --> + <ion-item *rxIf="accounts$; let accounts; suspense: skeletonItem" (click)="selectAccount($event)" tappable> + <ion-input + [(ngModel)]="accountName" + [debounce]="450" + [label]="'TRANSFER.FROM' | translate" + labelPlacement="floating" + readonly + required + ></ion-input> <ion-icon slot="end" name="chevron-forward-outline"></ion-icon> @@ -58,7 +72,7 @@ <!-- amount --> <ion-item> - <ion-input type="number" [(ngModel)]="amount" [label]="'TRANSFER.AMOUNT' | translate" required></ion-input> + <ion-input type="number" [(ngModel)]="amount" [label]="'TRANSFER.AMOUNT' | translate" labelPlacement="floating" required></ion-input> <ion-note color="medium" slot="end" *rxIf="currency$; let currency">{{ currency.symbol }}</ion-note> <ion-note slot="error" *rxIf="submitted$" translate>ERROR.FIELD_REQUIRED</ion-note> </ion-item> @@ -103,9 +117,9 @@ </ion-button> </ng-template> -<ng-template #skeleton60> +<ng-template #skeletonItem> <ion-item> - <ion-icon name="__NONE__" slot="start"></ion-icon> + <ion-icon slot="start" name="none"></ion-icon> <ion-label> <ion-skeleton-text [animated]="true" style="width: 60%"></ion-skeleton-text> </ion-label> diff --git a/src/app/transfer/transfer.page.spec.ts b/src/app/transfer/transfer.page.spec.ts index 4f8b2218d7ea4355057eec6abf1d6b4d754bd8d5..6faf4c68cb31fff62c50d14424490278a3254f02 100644 --- a/src/app/transfer/transfer.page.spec.ts +++ b/src/app/transfer/transfer.page.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { IonicModule } from '@ionic/angular'; import { RouterModule } from '@angular/router'; -import { TransferPage } from './wallet.page'; +import { TransferPage } from './transfer.page'; describe('FolderPage', () => { let component: TransferPage; @@ -9,8 +9,8 @@ describe('FolderPage', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ TransferPage ], - imports: [IonicModule.forRoot(), RouterModule.forRoot([])] + declarations: [TransferPage], + imports: [IonicModule.forRoot(), RouterModule.forRoot([])], }).compileComponents(); fixture = TestBed.createComponent(TransferPage); diff --git a/src/app/transfer/transfer.page.ts b/src/app/transfer/transfer.page.ts index eca785d0f2248a1de8971c8442065638bc5d747a..9f6a4b5126e7db9a2774026b25c3eeee0e12d479 100644 --- a/src/app/transfer/transfer.page.ts +++ b/src/app/transfer/transfer.page.ts @@ -6,7 +6,7 @@ import { mergeMap, Observable, tap } from 'rxjs'; import { isNotEmptyArray, isNotNilOrBlank } from '@app/shared/functions'; import { filter } from 'rxjs/operators'; import { NetworkService } from '@app/network/network.service'; -import { Currency } from '@app/network/currency.model'; +import { Currency } from '@app/currency/currency.model'; import { NavigationEnd, Router } from '@angular/router'; import { BarcodeScanner } from '@capacitor-community/barcode-scanner'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; @@ -15,8 +15,10 @@ import { CapacitorPlugins } from '@app/shared/capacitor/plugins'; import { RxState } from '@rx-angular/state'; import { AccountsService } from '@app/account/accounts.service'; import { WotController } from '@app/wot/wot.controller'; +import { TransferFormOptions } from '@app/transfer/transfer.model'; +import { PredefinedColors } from '@ionic/core'; -export interface TransferState extends AppPageState { +export interface TransferPageState extends AppPageState { currency: Currency; fee: number; accounts: Account[]; @@ -25,12 +27,9 @@ export interface TransferState extends AppPageState { submitted: boolean; } -export interface TransferPageOptions { - issuer?: Account; - recipient?: Account; - amount?: number; - fee?: number; +export interface TransferPageInputs extends TransferFormOptions { dismissOnSubmit?: boolean; + toolbarColor?: PredefinedColors; } @Component({ @@ -40,10 +39,9 @@ export interface TransferPageOptions { changeDetection: ChangeDetectionStrategy.OnPush, providers: [RxState], }) -export class TransferPage extends AppPage<TransferState> implements OnInit, OnDestroy { +export class TransferPage extends AppPage<TransferPageState> implements TransferPageInputs, OnInit, OnDestroy { protected _enableScan: boolean = false; - protected _autoOpenWotModal = true; - protected _initialWotModalBreakpoint = 0.25; + protected _isModal: boolean; protected actionSheetOptions: Partial<ActionSheetOptions> = { cssClass: 'select-account-action-sheet', @@ -69,6 +67,7 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe @Input() showComment: boolean; @Input() dismissOnSubmit: boolean = false; // True is modal @Input() showToastOnSubmit: boolean = true; + @Input() toolbarColor: PredefinedColors = 'secondary'; @RxStateProperty() submitted: boolean; @@ -118,7 +117,7 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe tap((accounts) => console.debug(this._logPrefix + 'Accounts loaded:', accounts)), mergeMap(async (accounts) => { // Load account - const fromAddress = this.activatedRoute.snapshot.paramMap.get('from'); + const fromAddress = this.account?.address || this.activatedRoute.snapshot.paramMap.get('from'); if (isNotNilOrBlank(fromAddress)) { this.account = await this.accountService.getByAddress(fromAddress); } @@ -128,7 +127,7 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe } // Load recipient - const toAddress = this.activatedRoute.snapshot.paramMap.get('to'); + const toAddress = this.recipient?.address || this.activatedRoute.snapshot.paramMap.get('to'); if (isNotNilOrBlank(toAddress)) { this.recipient = <Account>{ address: toAddress }; } @@ -144,8 +143,9 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe }); } - ngOnInit() { + async ngOnInit() { super.ngOnInit(); + this._isModal = !!(await this.modalCtrl.getTop()) && !this.routerOutlet; // Hide modal when leave page this.registerSubscription( @@ -248,7 +248,7 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe event.preventDefault(); const searchText = this.recipient?.address; - const data = await this.wotCtrl.select({ searchText }); + const data = await this.wotCtrl.select({ searchText, showItemActions: false, showFilterButtons: false }); if (!data) { console.log('TODO cancelled'); @@ -296,16 +296,23 @@ export class TransferPage extends AppPage<TransferState> implements OnInit, OnDe } protected async ngOnUnload() { + console.debug('[transfer] Unloading page...'); + this.showComment = false; await this.qrCodeModal?.dismiss(); - this.markAsPristine(); return { ...(await super.ngOnUnload()), + accounts: undefined, recipient: { address: null, meta: null }, }; } + protected async unload(): Promise<void> { + this.markAsPristine(); + return super.unload(); + } + protected markAsSubmitted(opts = { emitEvent: true }) { if (!this.submitted) { this.submitted = true; diff --git a/src/app/wallet/wallet-routing.module.ts b/src/app/wallet/wallet-routing.module.ts index bf6e908c6f360459a59f0c0648bc11385d7292fb..17e328f8b46efa632043a66d9c22f3af24301f54 100644 --- a/src/app/wallet/wallet-routing.module.ts +++ b/src/app/wallet/wallet-routing.module.ts @@ -3,6 +3,7 @@ import { RouterModule, Routes } from '@angular/router'; import { WalletPage } from './wallet.page'; import { AuthGuardService } from '@app/account/auth-guard.service'; +import { AppWalletModule } from '@app/wallet/wallet.module'; const routes: Routes = [ { @@ -15,10 +16,15 @@ const routes: Routes = [ component: WalletPage, canActivate: [AuthGuardService], }, + { + path: 'tx/:address', + component: WalletPage, + canActivate: [AuthGuardService], + }, ]; @NgModule({ - imports: [RouterModule.forChild(routes)], + imports: [AppWalletModule, RouterModule.forChild(routes)], exports: [RouterModule], }) -export class WalletPageRoutingModule {} +export class AppWalletRoutingModule {} diff --git a/src/app/wallet/wallet.module.ts b/src/app/wallet/wallet.module.ts index 365ccc72aacd977a5dc8fd06d377fb0a4535e030..21775795472c81eb62535b4e6a9fe67215d1d526 100644 --- a/src/app/wallet/wallet.module.ts +++ b/src/app/wallet/wallet.module.ts @@ -1,7 +1,6 @@ import { NgModule } from '@angular/core'; import { WalletPage } from './wallet.page'; -import { WalletPageRoutingModule } from './wallet-routing.module'; import { AppSharedModule } from '@app/shared/shared.module'; import { TranslateModule } from '@ngx-translate/core'; import { NgxJdenticonModule } from 'ngx-jdenticon'; @@ -9,7 +8,12 @@ import { AppAccountModule } from '@app/account/account.module'; import { AppAuthModule } from '@app/account/auth/auth.module'; @NgModule({ - imports: [AppSharedModule, AppAuthModule, TranslateModule.forChild(), WalletPageRoutingModule, AppAccountModule, NgxJdenticonModule], + imports: [TranslateModule.forChild(), AppSharedModule, AppAuthModule, AppAccountModule, NgxJdenticonModule], declarations: [WalletPage], + exports: [WalletPage], }) -export class AppWalletModule {} +export class AppWalletModule { + constructor() { + console.debug('[wallet] Creating module'); + } +} diff --git a/src/app/wallet/wallet.page.html b/src/app/wallet/wallet.page.html index 31cc3394d0ae994488322ae03d5d798a67e350f9..6b385edd7605b50b3bd4f4f895072e0541405a4e 100644 --- a/src/app/wallet/wallet.page.html +++ b/src/app/wallet/wallet.page.html @@ -57,7 +57,7 @@ </ion-item> <!-- pubkey --> - <ion-item *ngIf="(account$ | async)?.meta?.publicKeyV1; let pubkey" (click)="copyToClipboard($event, pubkey)"> + <ion-item *ngIf="(account$ | async)?.meta?.publicKeyV1; let pubkey" (click)="copyToClipboard($event, pubkey)" tappable> <ion-icon aria-hidden="true" name="key" slot="start"></ion-icon> <ion-label> @@ -73,7 +73,7 @@ </ion-item> <!-- address --> - <ion-item *rxIf="account$; let account" (click)="copyToClipboard($event, account.address)"> + <ion-item *rxIf="account$; let account" (click)="copyToClipboard($event, account.address)" tappable> <ion-icon aria-hidden="true" slot="start" name="key"></ion-icon> <ion-label> <h2 translate>COMMON.ADDRESS</h2> @@ -93,6 +93,18 @@ </ion-button> </ion-item> + <!-- TX history --> + <ion-item detail [routerLink]="['/history/', account?.address]" [routerDirection]="mobile ? 'forward' : 'root'"> + <ion-icon aria-hidden="true" slot="start" name="card"></ion-icon> + <ion-label translate>WOT.ACCOUNT_OPERATIONS</ion-label> + </ion-item> + + <ion-item detail (click)="notImplementedModal.present()"> + <ion-icon aria-hidden="true" slot="start" name="ribbon"></ion-icon> + <ion-label translate>ACCOUNT.CERTIFICATION_COUNT</ion-label> + <ion-badge color="success" slot="end">0</ion-badge> + </ion-item> + <!-- <ion-item detail [routerLink]="['/wot/cert/', data?.address]">--> <!-- <ion-icon slot="start" name="ribbon"></ion-icon>--> <!-- <ion-label translate>ACCOUNT.BALANCE_ACCOUNT</ion-label>--> @@ -101,15 +113,10 @@ <!-- <ion-item detail --> <!-- [routerLink]="['/wot/cert/', data?.address]">--> - <ion-item detail (click)="notImplementedModal.present()"> - <ion-icon aria-hidden="true" slot="start" name="ribbon"></ion-icon> - <ion-label translate>ACCOUNT.CERTIFICATION_COUNT</ion-label> - <ion-badge color="success" slot="end">0</ion-badge> - </ion-item> </ion-list> <div class="ion-text-center ion-padding-top"> - <ion-button [routerLink]="['/transfer', 'from', (account$ | push)?.address]" [disabled]="loading"> + <ion-button *rxIf="account$; let account" (click)="transfer()" [disabled]="loading"> <ion-icon slot="start" name="paper-plane"></ion-icon> <ion-label translate>COMMON.BTN_SEND_MONEY</ion-label> </ion-button> diff --git a/src/app/wallet/wallet.page.ts b/src/app/wallet/wallet.page.ts index 186f63c460ba920588cf6dd42303af06938cdad3..1f8d8c8fd7cb13c5347a5ebc4eb89b0f2e56157b 100644 --- a/src/app/wallet/wallet.page.ts +++ b/src/app/wallet/wallet.page.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Inject, OnInit, ViewChild } from '@angular/core'; import { Clipboard } from '@capacitor/clipboard'; import { AppPage, AppPageState } from '@app/shared/pages/base-page.class'; @@ -12,6 +12,7 @@ import { filter, mergeMap } from 'rxjs/operators'; import { AccountsService } from '@app/account/accounts.service'; import { map, merge, Observable } from 'rxjs'; import { RxState } from '@rx-angular/state'; +import { APP_TRANSFER_CONTROLLER, ITransferController, TransferFormOptions } from '@app/transfer/transfer.model'; export interface WalletState extends AppPageState { accounts: Account[]; @@ -67,7 +68,8 @@ export class WalletPage extends AppPage<WalletState> implements OnInit { protected router: Router, protected route: ActivatedRoute, protected networkService: NetworkService, - protected accountService: AccountsService + protected accountService: AccountsService, + @Inject(APP_TRANSFER_CONTROLLER) protected transferController: ITransferController ) { super({ name: 'wallet-page', @@ -161,4 +163,8 @@ export class WalletPage extends AppPage<WalletState> implements OnInit { return data; } + + transfer(opts?: TransferFormOptions) { + return this.transferController.transfer({ account: this.account, ...opts }); + } } diff --git a/src/app/wot/wot-details.page.html b/src/app/wot/wot-details.page.html index f4e0d653eebe3c0d201c1de329e4f229a07267f1..e2d3c73b7d369e065a89961611199aebc90a4283 100644 --- a/src/app/wot/wot-details.page.html +++ b/src/app/wot/wot-details.page.html @@ -1,7 +1,7 @@ <ion-header [translucent]="true" *ngIf="showToolbar"> <ion-toolbar color="primary"> <ion-buttons slot="start"> - <ion-menu-button></ion-menu-button> + <ion-menu-button *ngIf="!canGoBack"></ion-menu-button> <ion-back-button></ion-back-button> </ion-buttons> <ion-title translate>MENU.WOT</ion-title> @@ -26,7 +26,7 @@ <ion-label>{{ account$ | push | accountName }}</ion-label> - <div slot="end"> + <div slot="end" *ngIf="showBalance"> <ion-label class="ion-text-end"> <p translate>ACCOUNT.BALANCE</p> <h2 *rxIf="loaded$; else loadingText"> @@ -43,38 +43,44 @@ <ion-list> <ng-container *rxIf="account$; let account; suspense: skeletons"> <!-- pubkey --> - <ion-item *ngIf="account?.meta?.publicKeyV1; let pubkey"> + <ion-item *ngIf="account?.meta?.publicKeyV1; let pubkey" (click)="copyPubkey($event)" tappable> <ion-icon slot="start" name="key"></ion-icon> <ion-label> <h2 translate>COMMON.PUBKEY</h2> - <p class="ion-text-wrap">{{ pubkey }}</p> + <p class="ion-text-wrap">{{ pubkey | pubkeyFormat }}</p> </ion-label> - <ion-button slot="end" (click)="copyPubkey()" fill="clear" [title]="'COMMON.COPY' | translate"> + <ion-button slot="end" fill="clear" [title]="'COMMON.COPY' | translate"> <ion-icon slot="icon-only" name="copy"></ion-icon> </ion-button> </ion-item> <!-- address --> - <ion-item> + <ion-item (click)="copyAddress($event)" tappable> <ion-icon slot="start" name="key"></ion-icon> <ion-label> <h2 translate>COMMON.ADDRESS</h2> <p class="ion-text-wrap"> - <span>{{ account.address }}</span> + <span>{{ account.address | addressFormat }}</span> </p> </ion-label> - <ion-button slot="end" (click)="copyAddress()" fill="clear" [title]="'COMMON.COPY' | translate"> + <ion-button slot="end" (click)="copyAddress($event)" fill="clear" [title]="'COMMON.COPY' | translate"> <ion-icon slot="icon-only" name="copy"></ion-icon> </ion-button> </ion-item> + + <!-- TX history --> + <ion-item detail [routerLink]="['/wot', 'tx', account.address, account.meta?.uid]" routerDirection="forward"> + <ion-icon aria-hidden="true" slot="start" name="card"></ion-icon> + <ion-label translate>WOT.ACCOUNT_OPERATIONS</ion-label> + </ion-item> </ng-container> </ion-list> <div class="ion-text-center"> - <ion-button [routerLink]="['/transfer', 'to', account?.address]" [disabled]="loading"> + <ion-button (click)="transferTo()" [disabled]="loading"> <ion-icon slot="start" name="paper-plane"></ion-icon> <ion-label translate>COMMON.BTN_SEND_MONEY</ion-label> </ion-button> diff --git a/src/app/wot/wot-details.page.ts b/src/app/wot/wot-details.page.ts index bd70d759775bf22f117a31011a862b8e989f3a93..5b6d1b44aa8c2983fb785720f001599d9671b314 100644 --- a/src/app/wot/wot-details.page.ts +++ b/src/app/wot/wot-details.page.ts @@ -1,15 +1,19 @@ -import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Inject, Input, OnInit } from '@angular/core'; import { AppPage, AppPageState } from '@app/shared/pages/base-page.class'; import { Account } from '@app/account/account.model'; -import { WotService } from '@app/wot/wot.service'; import { AccountsService } from '@app/account/accounts.service'; import { Clipboard } from '@capacitor/clipboard'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; -import { firstValueFrom, mergeMap, Observable } from 'rxjs'; +import { firstValueFrom, mergeMap, Observable, switchMap } from 'rxjs'; import { RxState } from '@rx-angular/state'; +import { APP_TRANSFER_CONTROLLER, ITransferController } from '@app/transfer/transfer.model'; +import { map } from 'rxjs/operators'; +import { firstArrayValue } from '@app/shared/functions'; +import { IndexerService } from '@app/network/indexer.service'; export interface WotDetailsPageState extends AppPageState { + address: string; account: Account; } @@ -21,35 +25,44 @@ export interface WotDetailsPageState extends AppPageState { providers: [RxState], }) export class WotDetailsPage extends AppPage<WotDetailsPageState> implements OnInit { - address = this.activatedRoute.snapshot.paramMap.get('address'); + @RxStateSelect() address$: Observable<string>; + @RxStateSelect() account$: Observable<Account>; @Input() showToolbar = true; - - @RxStateProperty() account: Account; - @RxStateSelect() account$: Observable<Account>; + @Input() showBalance = false; + @Input() @RxStateProperty() address: string; + @Input() @RxStateProperty() account: Account; constructor( - private accountService: AccountsService, - private wotService: WotService + private accountsService: AccountsService, + private indexerService: IndexerService, + @Inject(APP_TRANSFER_CONTROLLER) private transferController: ITransferController ) { super({ name: 'wot-details-page' }); + this._state.connect('address', this.activatedRoute.paramMap.pipe(map((paramMap) => paramMap.get('address')))); this._state.connect( 'account', - this.activatedRoute.paramMap.pipe( - mergeMap(async (map) => { - const address = map.get('address'); - - await Promise.all([this.accountService.ready(), this.wotService.ready()]); - - const ownedAddress = await this.accountService.isAvailable(address); + this.address$.pipe( + mergeMap(async (address) => { + const ownedAddress = await this.accountsService.isAvailable(address); + return { address, ownedAddress }; + }), + switchMap(({ address, ownedAddress }) => { if (ownedAddress) { - return this.accountService.getByAddress(this.address); + return this.accountsService.watchByAddress(address); } - - const data = await this.wotService.search({ address: this.address }); - - return data ? data[0] : undefined; + return this.indexerService.wotSearch({ address }, { limit: 1 }).pipe(map(({ data }) => firstArrayValue(data))); + }), + mergeMap(async (account) => { + if (account.data) return account; + const { data } = await this.accountsService.api.query.system.account(account.address); + return { + ...account, + data: { + ...JSON.parse(data.toString()), + }, + }; }) ) ); @@ -64,21 +77,29 @@ export class WotDetailsPage extends AppPage<WotDetailsPageState> implements OnIn return <WotDetailsPageState>{ account }; } - async copyPubkey() { + async copyPubkey(event: UIEvent) { if (this.loading || !this.data?.account?.meta?.publicKeyV1) return; // Skip + event.preventDefault(); + await Clipboard.write({ string: this.account.meta.publicKeyV1, }); await this.showToast({ message: 'INFO.COPY_TO_CLIPBOARD_DONE' }); } - async copyAddress() { + async copyAddress(event: UIEvent) { if (this.loading || !this.data?.account?.address) return; // Skip + event.preventDefault(); + await Clipboard.write({ string: this.account.address, }); await this.showToast({ message: 'INFO.COPY_TO_CLIPBOARD_DONE' }); } + + async transferTo() { + return this.transferController.transfer({ recipient: this.account }); + } } diff --git a/src/app/wot/wot-lookup.page.html b/src/app/wot/wot-lookup.page.html index 92ae0b89c5c709f479c44066d8e4889001800df7..e65f35ba55dbce186ec9fbaa3957490ea068dec9 100644 --- a/src/app/wot/wot-lookup.page.html +++ b/src/app/wot/wot-lookup.page.html @@ -1,19 +1,20 @@ -<ion-header [translucent]="true" *ngIf="showToolbar"> - <ion-toolbar [color]="toolbarColor"> - <ion-buttons slot="start" *ngIf="!modal"> - <ion-menu-button></ion-menu-button> - </ion-buttons> - <ion-title translate>MENU.WOT</ion-title> - <ion-buttons slot="end"> - <ng-content select="[toolbar-end]"></ng-content> +@if (showToolbar) { + <ion-header [translucent]="true"> + <ion-toolbar [color]="toolbarColor"> + <ion-buttons slot="start" *ngIf="!isModal"> + <ion-menu-button></ion-menu-button> + </ion-buttons> + <ion-title translate>MENU.WOT</ion-title> + <ion-buttons slot="end"> + <ng-content select="[toolbar-end]"></ng-content> - <!-- close --> - <ion-button fill="clear" *ngIf="closeClick.observed" (click)="closeClick.emit($event)" translate>COMMON.BTN_CLOSE</ion-button> - </ion-buttons> - </ion-toolbar> -</ion-header> - -<ion-content [fullscreen]="showSearchBar"> + <!-- close --> + <ion-button fill="clear" *ngIf="closeClick.observed" (click)="closeClick.emit($event)" translate>COMMON.BTN_CLOSE</ion-button> + </ion-buttons> + </ion-toolbar> + </ion-header> +} +<ion-content> <ion-header collapse="condense" *ngIf="showToolbar"> <ion-toolbar> <ion-title size="large" translate>MENU.WOT</ion-title> @@ -21,57 +22,121 @@ </ion-header> <div id="container"> - <ion-searchbar - *ngIf="showSearchBar" - #searchBar - inputmode="search" - autocomplete="off" - animated="true" - showClearButton="true" - [debounce]="debounceTime" - (ionClear)="markAsLoading()" - (ionInput)="markAsLoading()" - (ionChange)="searchChanged($event, $event.detail.value)" - (search)="searchChanged($event, searchBar.value)" - [placeholder]="'WOT.SEARCH_HELP' | translate" - (click)="searchClick.emit($event)" - ></ion-searchbar> + @if (showSearchBar) { + <ion-searchbar + #searchBar + inputmode="search" + autocomplete="off" + animated="true" + showClearButton="true" + [debounce]="debounceTime" + (ionClear)="clearSearch($event)" + (ionInput)="searchChanged($event, $event.detail.value)" + (search)="searchChanged($event, searchBar.value)" + (keydown.enter)="refresh.emit($event)" + [placeholder]="'WOT.SEARCH_HELP' | translate" + (click)="searchClick.emit($event)" + ></ion-searchbar> + } - <ion-list> - <ng-container *ngIf="loading; else items"> - <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> - <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> + <ion-list-header *ngIf="showFilterButtons"> + <ion-grid> + <ion-col> </ion-col> + <ion-col class="ion-float-end" size="auto"> + <ion-button + fill="clear" + [color]="filter?.last && !filter.pending ? 'secondary' : 'dark'" + (click)="applyFilter({ last: true, pending: false, searchText: '' })" + > + <ion-icon name="people" slot="start"></ion-icon> + <ion-label translate>WOT.LOOKUP.NEWCOMERS</ion-label> + </ion-button> + <ion-button + fill="clear" + [color]="filter?.last && filter.pending ? 'secondary' : 'dark'" + (click)="applyFilter({ last: true, pending: true, searchText: '' })" + > + <ion-icon name="time-outline" slot="start"></ion-icon> + <ion-label translate>WOT.LOOKUP.PENDING</ion-label> + </ion-button> + + <ion-button fill="solid" color="light" (click)="refresh.emit($event)"> + <ion-label translate>COMMON.BTN_SEARCH</ion-label> + </ion-button> + </ion-col> + </ion-grid> + <!-- <ion-item lines="none" class="ion-float-end" style="width: 100%"> + <ion-buttons slot="end"> + + </ion-buttons> + </ion-item>--> + </ion-list-header> + + <ion-list [class.cdk-visually-hidden]="loading$ | push"> + <!-- loading spinner --> + <ng-container *rxIf="loading$; else items"> <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> </ng-container> <ng-template #items> - <ion-item-sliding *rxFor="let item of items$"> - <ion-item [detail]="!itemClick.observed" (click)="click(item)"> - <ion-avatar slot="start" *ngIf="item.meta?.avatar; else iconPerson"> - <ion-img [src]="item.meta?.avatar"></ion-img> - </ion-avatar> - <ng-template #iconPerson> + <ion-item-sliding *rxFor="let item of items$; index as index; trackBy: 'address'"> + <ion-item [detail]="!itemClick.observed" (click)="click($event, item)"> + @if (item.meta?.avatar) { + <ion-avatar slot="start"> + <ion-img [src]="item.meta?.avatar"></ion-img> + </ion-avatar> + } @else { <ion-avatar slot="start"> <svg width="40" width="40" [data-jdenticon-value]="item.data?.randomId || item.address"></svg> </ion-avatar> - </ng-template> + } <ion-label> - <h2>{{ item.meta?.name }}</h2> - <p>{{ item.address | addressFormat }}</p> + <h2> + <ion-text [color]="item.meta?.isMember ? 'primary' : 'dark'"> + <small><ion-icon name="person"></ion-icon></small> + {{ item.meta?.uid }} + </ion-text> + </h2> + <p> + <ion-icon name="key"></ion-icon> + {{ item.address | addressFormat }} + </p> </ion-label> - <ion-button slot="end" *ngIf="showItemActions && !mobile" (click)="transfer(item)" [title]="'BTN_SEND_MONEY' | translate"> + <ion-button + slot="end" + *ngIf="showItemActions && !mobile" + (click)="transferTo($event, item)" + [title]="'COMMON.BTN_SEND_MONEY' | translate" + > <ion-icon slot="icon-only" name="paper-plane"></ion-icon> </ion-button> </ion-item> <ion-item-options *ngIf="mobile && showItemActions"> - <ion-item-option (click)="transfer(item)" [title]="'BTN_SEND_MONEY' | translate"> + <ion-item-option (click)="transferTo($event, item)" [title]="'COMMON.BTN_SEND_MONEY' | translate"> <ion-icon slot="icon-only" name="paper-plane"></ion-icon> </ion-item-option> </ion-item-options> </ion-item-sliding> + + <!-- no result --> + <ion-item *rxIf="(count$ | push) === 0" lines="none"> + <ion-text color="danger" class="text-italic" translate>COMMON.SEARCH_NO_RESULT</ion-text> + </ion-item> </ng-template> </ion-list> + + <!-- infinite scroll --> + <ion-infinite-scroll + [disabled]="(canFetchMore$ | async) === false" + [threshold]="mobile ? '100px' : '2%'" + position="bottom" + (ionInfinite)="fetchMore($event)" + > + <ion-infinite-scroll-content loading-spinner="none"> + <ng-template [ngTemplateOutlet]="itemSkeleton"></ng-template> + </ion-infinite-scroll-content> + </ion-infinite-scroll> </div> </ion-content> diff --git a/src/app/wot/wot-lookup.page.ts b/src/app/wot/wot-lookup.page.ts index 552ba95d81471470b34864c092883cc2c5f1f7ad..f97e607fe6a5363e78979d4dd4262dc7651ab395 100644 --- a/src/app/wot/wot-lookup.page.ts +++ b/src/app/wot/wot-lookup.page.ts @@ -1,33 +1,34 @@ -import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core'; import { AppPage, AppPageState } from '@app/shared/pages/base-page.class'; import { Account } from '@app/account/account.model'; -import { Router } from '@angular/router'; -import { WotService } from '@app/wot/wot.service'; -import { WotSearchFilter, WotSearchFilterUtils } from '@app/wot/wot.model'; -import { isNilOrBlank, isNotNilOrBlank, toBoolean } from '@app/shared/functions'; -import { Observable } from 'rxjs'; -import { debounceTime, distinctUntilChanged, mergeMap, tap } from 'rxjs/operators'; +import { WotLookupOptions, WotSearchFilter, WotSearchFilterUtils } from '@app/wot/wot.model'; +import { arraySize, isNilOrBlank, isNotNilOrBlank, toBoolean, toNumber } from '@app/shared/functions'; +import { merge, Observable } from 'rxjs'; +import { debounceTime, distinctUntilChanged, filter, map, mergeMap, tap } from 'rxjs/operators'; import { PredefinedColors } from '@app/shared/colors/colors.utils'; import { RxStateProperty, RxStateSelect } from '@app/shared/decorator/state.decorator'; import { RxState } from '@rx-angular/state'; -import { ModalController } from '@ionic/angular'; +import { InfiniteScrollCustomEvent, ModalController } from '@ionic/angular'; + +import { APP_TRANSFER_CONTROLLER, ITransferController } from '@app/transfer/transfer.model'; +import { IndexerService } from '@app/network/indexer.service'; +import { FetchMoreFn, LoadResult } from '@app/shared/services/service.model'; export interface WotLookupState extends AppPageState { searchText: string; filter: WotSearchFilter; items: Account[]; + count: number; + limit: number; + canFetchMore: boolean; + fetchMoreFn: FetchMoreFn<LoadResult<Account>>; + autoLoad: boolean; } -export interface WotLookupOptions { - debounceTime?: number; - showToolbar?: boolean; - showSearchBar?: boolean; - showItemActions?: boolean; - toolbarColor?: PredefinedColors; - searchText?: string; - filter?: WotSearchFilter; +export interface WotLookupInputs extends WotLookupOptions { + isModal?: boolean; } @Component({ @@ -37,68 +38,98 @@ export interface WotLookupOptions { changeDetection: ChangeDetectionStrategy.OnPush, providers: [RxState], }) -export class WotLookupPage extends AppPage<WotLookupState> implements OnInit, WotLookupOptions { +export class WotLookupPage extends AppPage<WotLookupState> implements OnInit, WotLookupInputs { @RxStateSelect() protected items$: Observable<Account[]>; + @RxStateSelect() protected count$: Observable<number>; + @RxStateSelect() protected filter$: Observable<WotSearchFilter>; + @RxStateSelect() protected canFetchMore$: Observable<boolean>; + + @RxStateProperty() count: number; + @RxStateProperty() fetchMoreFn: FetchMoreFn<LoadResult<Account>>; + @RxStateProperty() canFetchMore: boolean; @Input() isModal = false; @Input() debounceTime = 650; + @Input() toolbarColor: PredefinedColors = 'primary'; @Input() showToolbar = true; @Input() showSearchBar = true; @Input() showItemActions: boolean; - @Input() toolbarColor: PredefinedColors = 'primary'; + @Input() showFilterButtons = true; @Input() @RxStateProperty() filter: WotSearchFilter; @Input() @RxStateProperty() searchText: string; + @Input() @RxStateProperty() limit: number; + @Input() @RxStateProperty() autoLoad: boolean; @Output() searchClick = new EventEmitter<Event>(); @Output() itemClick = new EventEmitter<Account>(); @Output() closeClick = new EventEmitter<Account>(); + @Output() refresh = new EventEmitter<Event>(); constructor( - private router: Router, - private wotService: WotService, - private modalCtrl: ModalController + private indexerService: IndexerService, + private modalCtrl: ModalController, + @Inject(APP_TRANSFER_CONTROLLER) private transferController: ITransferController ) { super({ name: 'wot-lookup-page' }); this._state.connect( 'filter', this._state.select('searchText').pipe( - //filter(loading => loading === false), - //switchMap(() => this._state.select('searchText')), distinctUntilChanged(), - tap(() => this.markAsLoading()), - debounceTime(this.debounceTime) + tap(() => this.autoLoad && this.markAsLoading()), + debounceTime(this.mobile ? this.debounceTime : 0) ), - (s, text) => { + (s, searchText) => { return { ...s.filter, - text: isNilOrBlank(text) ? undefined : text, - last: isNilOrBlank(text) ? s.filter?.last : undefined, + searchText: isNilOrBlank(searchText) ? undefined : searchText, + last: isNilOrBlank(searchText) ? toBoolean(s.filter?.last, true) : undefined, }; } ); this._state.connect( 'items', - this._state.select('filter').pipe( - distinctUntilChanged(WotSearchFilterUtils.isEquals), - mergeMap((filter) => this.search(filter)) + merge( + this.refresh.pipe( + tap(() => this.markAsLoading()), + debounceTime(100), // Wait filter to be update + map(() => ({ filter: this.filter, limit: this.limit, autoLoad: true })) + ), + this._state.select(['filter', 'limit', 'autoLoad'], (res) => res, { + filter: WotSearchFilterUtils.isEquals, + limit: (l1, l2) => l1 === l2, + }) + ).pipe( + filter(({ autoLoad }) => autoLoad || this.mobile), + filter(({ filter }) => !WotSearchFilterUtils.isEmpty(filter) && filter.address !== 'default'), + mergeMap(({ filter, limit }) => this.search(filter, { offset: 0, limit })), + map(({ data, fetchMore }) => { + this.fetchMoreFn = fetchMore; + this.canFetchMore = !!fetchMore; + this.autoLoad = this.mobile; + return data; + }) ) ); + + this._state.connect('count', this.items$.pipe(map(arraySize))); } ngOnInit() { super.ngOnInit(); this.showItemActions = toBoolean(this.showItemActions, !this.itemClick.observed); + this.showFilterButtons = toBoolean(this.showFilterButtons, true); + this.autoLoad = toBoolean(this.autoLoad, this.showFilterButtons); + this.limit = toNumber(this.limit, 20); if (this.isModal) { this.registerSubscription(this.itemClick.subscribe((item) => this.modalCtrl.dismiss(item))); - this.registerSubscription(this.closeClick.subscribe(() => this.modalCtrl.dismiss())); } } protected async ngOnLoad(): Promise<WotLookupState> { - await this.wotService.ready(); + await this.indexerService.ready(); const filter = (!WotSearchFilterUtils.isEmpty(this.filter) && this.filter) || (isNotNilOrBlank(this.searchText) && { text: this.searchText }) || { last: true }; @@ -106,37 +137,37 @@ export class WotLookupPage extends AppPage<WotLookupState> implements OnInit, Wo return <WotLookupState>{ filter }; } - async search(filter?: WotSearchFilter): Promise<Account[]> { - console.log('search:', filter); - + search(searchFilter?: WotSearchFilter, options?: { limit: number; offset: number }): Observable<LoadResult<Account>> { try { - return await this.wotService.search(filter); + return this.indexerService.wotSearch(searchFilter, options).pipe( + filter(() => WotSearchFilterUtils.isEquals(this.filter, searchFilter)), + tap(() => this.markAsLoaded()) + ); } catch (err) { this.setError(err); - } finally { this.markAsLoaded(); } } - transfer(item: Account) { - this.router.navigate(['/transfer', 'to', item.address]); + transferTo(event: UIEvent, recipient: Account) { + event.preventDefault(); + return this.transferController.transfer({ recipient }); } - click(item: Account) { + click(event: UIEvent, item: Account) { + if (event.defaultPrevented) return; // Skip + + console.debug(`${this._logPrefix}Click on item`, item); + if (this.itemClick.observed) { this.itemClick.emit(item); } else { - // Open - this.router.navigate([item.address], { + return this.navController.navigateForward([item.address], { relativeTo: this.activatedRoute, }); } } - public markAsLoading() { - super.markAsLoading(); - } - async searchChanged(event: CustomEvent, value: string) { if (!event || event.defaultPrevented) return; event.preventDefault(); @@ -144,4 +175,48 @@ export class WotLookupPage extends AppPage<WotLookupState> implements OnInit, Wo this.searchText = value; } + + async clearSearch(event: UIEvent) { + if (!event || event.defaultPrevented) return; + event.preventDefault(); + event.stopPropagation(); + + if (!this.autoLoad && this.showFilterButtons) { + this.applyFilter({ last: true, searchText: null }); + this.refresh.emit(); + } + } + + async fetchMore(event?: InfiniteScrollCustomEvent) { + // Wait end of current load + await this.waitIdle(); + + if (this.canFetchMore) { + console.debug(this._logPrefix + 'Fetching more items, from offset: ' + this.count, event); + const { data, fetchMore } = await this.fetchMoreFn(); + + if (data?.length) { + this._state.set('items', (s) => [...s.items, ...data]); + } + this.fetchMoreFn = fetchMore; + this.canFetchMore = !!fetchMore; + } + + if (event?.target && event.target.complete) { + await event.target.complete(); + } + } + + applyFilter(filter: Partial<WotSearchFilter>) { + this._state.set( + (s) => + <WotLookupState>{ + filter: { + ...s.filter, + ...filter, + }, + autoLoad: true, + } + ); + } } diff --git a/src/app/wot/wot-routing.module.ts b/src/app/wot/wot-routing.module.ts index bb608e04cdab59a174c640a36e175701c6f4aad5..ab87bfad97c5b9361dd19a3cdd30d9dce1b6e978 100644 --- a/src/app/wot/wot-routing.module.ts +++ b/src/app/wot/wot-routing.module.ts @@ -1,8 +1,9 @@ import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { WotLookupPage } from './wot-lookup.page'; import { WotDetailsPage } from '@app/wot/wot-details.page'; +import { AppWotModule } from '@app/wot/wot.module'; const routes: Routes = [ { @@ -15,10 +16,14 @@ const routes: Routes = [ pathMatch: 'full', component: WotDetailsPage, }, + { + path: 'tx', + loadChildren: () => import('../history/wallet-tx-routing.module').then((m) => m.AppWalletTxRoutingModule), + }, ]; @NgModule({ - imports: [RouterModule.forChild(routes)], + imports: [AppWotModule, RouterModule.forChild(routes)], exports: [RouterModule], }) -export class WotRoutingModule {} +export class AppWotRoutingModule {} diff --git a/src/app/wot/wot.controller.ts b/src/app/wot/wot.controller.ts index fbc204341001abddaa87b9db8c3cb0acc82aac53..92b4c80840d3fb875f9de8394d007a41a221a964 100644 --- a/src/app/wot/wot.controller.ts +++ b/src/app/wot/wot.controller.ts @@ -1,7 +1,8 @@ import { Injectable } from '@angular/core'; import { ModalController } from '@ionic/angular'; import { Account } from '@app/account/account.model'; -import { WotLookupOptions, WotLookupPage } from '@app/wot/wot-lookup.page'; +import { WotLookupInputs, WotLookupPage } from '@app/wot/wot-lookup.page'; +import { WotLookupOptions } from '@app/wot/wot.model'; @Injectable({ providedIn: 'root' }) export class WotController { @@ -10,7 +11,7 @@ export class WotController { async select(options?: WotLookupOptions): Promise<Account> { const modal = await this.modalCtrl.create({ component: WotLookupPage, - componentProps: <WotLookupOptions>{ + componentProps: <WotLookupInputs>{ ...options, isModal: true, }, diff --git a/src/app/wot/wot.model.ts b/src/app/wot/wot.model.ts index e5d33c9a225b506083cb99915f93db75b017e16c..61a70e22df77d01a36ca1d52c6a29d07ba4f3bd6 100644 --- a/src/app/wot/wot.model.ts +++ b/src/app/wot/wot.model.ts @@ -1,9 +1,22 @@ -import { equals, isNil, isNilOrBlank, isNotNilOrBlank } from '@app/shared/functions'; +import { equals, isNil, isNilOrBlank } from '@app/shared/functions'; +import { PredefinedColors } from '@app/shared/colors/colors.utils'; + +export interface WotLookupOptions { + debounceTime?: number; + showToolbar?: boolean; + showSearchBar?: boolean; + showItemActions?: boolean; + showFilterButtons?: boolean; + toolbarColor?: PredefinedColors; + searchText?: string; + filter?: WotSearchFilter; +} export interface WotSearchFilter { address?: string; - text?: string; + searchText?: string; last?: boolean; + pending?: boolean; } export class WotSearchFilterUtils { @@ -12,6 +25,6 @@ export class WotSearchFilterUtils { } static isEmpty(filter: WotSearchFilter) { - return !filter || (isNilOrBlank(filter.text) && isNil(filter.last) && isNotNilOrBlank(filter.address)); + return !filter || (isNilOrBlank(filter.searchText) && isNil(filter.last) && isNilOrBlank(filter.address)); } } diff --git a/src/app/wot/wot.module.ts b/src/app/wot/wot.module.ts index dcda2c6d4fcc470b2c92860d76cc107a16e140c2..626ec7efcd40f8ef6f95d4ed1b6931b0a52826cb 100644 --- a/src/app/wot/wot.module.ts +++ b/src/app/wot/wot.module.ts @@ -3,13 +3,17 @@ import { NgModule } from '@angular/core'; import { WotLookupPage } from './wot-lookup.page'; import { AppSharedModule } from '@app/shared/shared.module'; import { TranslateModule } from '@ngx-translate/core'; -import { WotRoutingModule } from '@app/wot/wot-routing.module'; import { WotDetailsPage } from '@app/wot/wot-details.page'; import { NgxJdenticonModule } from 'ngx-jdenticon'; +import { AppTransferModule } from '@app/transfer/transfer.module'; @NgModule({ - imports: [AppSharedModule, TranslateModule.forChild(), NgxJdenticonModule, WotRoutingModule], + imports: [AppSharedModule, TranslateModule.forChild(), NgxJdenticonModule, AppTransferModule], declarations: [WotLookupPage, WotDetailsPage], exports: [WotLookupPage, WotDetailsPage], }) -export class WotModule {} +export class AppWotModule { + constructor() { + console.debug('[wot] Creating module'); + } +} diff --git a/src/app/wot/wot.service.ts b/src/app/wot/wot.service.ts deleted file mode 100644 index d12f4e75edd0f29bfa82b835a2e9bcd6ca6d56ac..0000000000000000000000000000000000000000 --- a/src/app/wot/wot.service.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Injectable } from '@angular/core'; -import { NetworkService } from '../network/network.service'; -import { ApiPromise } from '@polkadot/api'; -import { WotSearchFilter } from '@app/wot/wot.model'; -import { AccountsService } from '@app/account/accounts.service'; -import { sleep } from '@app/shared/functions'; -import { Account } from '@app/account/account.model'; -import { RxStartableService } from '@app/shared/services/rx-startable-service.class'; - -export interface WotState {} - -@Injectable({ providedIn: 'root' }) -export class WotService extends RxStartableService<WotState> { - get api(): ApiPromise { - return this.network.api; - } - - constructor( - protected network: NetworkService, - protected accountService: AccountsService - ) { - super(network, { - name: 'wot-service', - }); - } - - protected async ngOnStart(): Promise<WotState> { - return {}; - } - - async search(filter?: WotSearchFilter): Promise<Account[]> { - if (!this.started) await this.ready(); - - console.info(this._logPrefix + 'Searching...', filter); - - // TODO - await sleep(500); - const avatars = ['a', 'b', 'c', 'd'].map((letter) => 'https://i.pravatar.cc/300?u=' + letter); - - return (await this.accountService.getAll()).map((account, i) => { - return <Account>{ - address: account.address, - meta: { - name: account.meta?.name, - avatar: avatars[i], - }, - }; - }); - } -} diff --git a/src/assets/i18n/ca.json b/src/assets/i18n/ca.json index 6c2bcbb27776cab7d111146394f84c142a56c0e4..e31aa0d3000d2777d8d7ac9b5fd3249cb7869090 100644 --- a/src/assets/i18n/ca.json +++ b/src/assets/i18n/ca.json @@ -81,8 +81,8 @@ "SHARE_ON_GOOGLEPLUS": "Comparteix a Google+" }, "FILE": { - "DATE" : "Data:", - "TYPE" : "Tipus:", + "DATE": "Data:", + "TYPE": "Tipus:", "SIZE": "Mida:", "VALIDATING": "Validant..." } @@ -273,7 +273,7 @@ "WOT_RULES_DIVIDER": "Reglas de la red de confianza", "SENTRIES": "Certificaciones necesarias para ser miembro referente", "SENTRIES_FORMULA": "Fórmula de las certificaciones necesarias para ser miembro referente", - "XPERCENT":"Porcentaje mínimo necesario de miembros referentes respentando la regla de distancia máxima", + "XPERCENT": "Porcentaje mínimo necesario de miembros referentes respentando la regla de distancia máxima", "AVG_GEN_TIME": "Tiempo medio entre dos bloques", "CURRENT": "actual", "MATH_CEILING": "TECHO", @@ -399,7 +399,7 @@ "SENTRY_MEMBER": "Miembro referente" }, "OPERATIONS": { - "TITLE": "{{uid}} - Transacciones" + "TITLE": "Transacciones" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certificaciones emitidas", @@ -464,95 +464,95 @@ }, "API": { "COMMON": { - "CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Verifique su conexión a Internet, o contacte con la administración del sitio.</a>.", - "LINK_DOC": "Documentación API", - "LINK_DOC_HELP": "Documentación para desarrolladores", - "LINK_STANDARD_APP": "Versión clásica", - "LINK_STANDARD_APP_HELP": "Abrir la versión clásica de {{'COMMON.APP_NAME'|translate}}" + "CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Verifique su conexión a Internet, o contacte con la administración del sitio.</a>.", + "LINK_DOC": "Documentación API", + "LINK_DOC_HELP": "Documentación para desarrolladores", + "LINK_STANDARD_APP": "Versión clásica", + "LINK_STANDARD_APP_HELP": "Abrir la versión clásica de {{'COMMON.APP_NAME'|translate}}" }, "DOC": { - "AVAILABLE_PARAMETERS": "Lista de parámetros disponibles :", - "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Cancelado por el usuario", - "DEMO_DIVIDER": "Probar", - "DEMO_HELP": "Para probar este servicio, haga clic en este botón. El resultado se mostrará debajo.", - "DEMO_RESULT": "Resultado retornado por la llamada :", - "DEMO_RESULT_PEER": "Dirección del nodo utilizado :", - "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> ¡ Éxito !", - "DESCRIPTION_DIVIDER": "Descripción", - "INTEGRATE_CODE": "Código :", - "INTEGRATE_DIVIDER": "Integrar", - "INTEGRATE_PARAMETERS": "Parámetros", - "INTEGRATE_RESULT": "Previsualización del resultado :", - "PARAMETERS_DIVIDER": "Parámetros", - "TRANSFER": { - "DESCRIPTION": "Desde una web (ej: tienda online) puede delegar el pago en moneda libre con la API de Cesium. Para eso, simplemente ponga un link a la siguiente dirección :", - "EXAMPLE_BUTTON": "Botón HTML", - "EXAMPLE_BUTTON_BG_COLOR": "Color de fondo", - "EXAMPLE_BUTTON_BG_COLOR_HELP": "Ejemplo : #fbc14c, black, lightgrey, rgb(180,180,180)", - "EXAMPLE_BUTTON_DEFAULT_STYLE": "Estilo personalizado", - "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagar en {{currency|currencySymbol}}", - "EXAMPLE_BUTTON_FONT_COLOR": "Color del texto", - "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Ejemplo : black, orange, rgb(180,180,180)", - "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", - "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", - "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (negro)", - "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", - "EXAMPLE_BUTTON_ICON_NONE": "Ninguno", - "EXAMPLE_BUTTON_TEXT_HELP": "Texto del botón", - "EXAMPLE_BUTTON_TEXT_ICON": "Icono", - "EXAMPLE_BUTTON_TEXT_WIDTH": "Anchura", - "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Ejemplo : 200px, 50%", - "EXAMPLES_HELP": "Ejemplos de integración :", - "PARAM_AMOUNT": "Cuantía", - "PARAM_AMOUNT_HELP": "Cuantía de la transición (obligatorio). Valores múltiples permitidos utilizando un separador (punto y coma, barra vertical o espacio).", - "PARAM_CANCEL_URL": "Dirección web de cancelación", - "PARAM_CANCEL_URL_HELP": "Dirección web (URL) en caso de anulación del pago por parte del usuario. Puede contener las siguientes palabras que serán remplazadas por sus valores dinámicamente en cada caso: \"{comment}\", \"{amount}\" y \"{pubkey}\".", - "PARAM_COMMENT": "Concepto (o comentario)", - "PARAM_COMMENT_HELP": "Concepto o comentario. Le permitirá por ejemplo identificar el pago en la cadena de bloques (blockchain).", - "PARAM_NAME": "Nombre (del destinatario o de su sitio web)", - "PARAM_NAME_HELP": "El nombre del destinatario, o de su sitio web. Puede ser un nombre leíble (\"Mi tienda en línea\"), o un dominio (\"Mitienda.com\").", - "PARAM_PREFERRED_NODE": "Dirección del nodo preferido", - "PARAM_PREFERRED_NODE_HELP": "Dirección (URL) del nodo Duniter a utilizar preferentemente (\"g1.domaine.com:443\" o \"https://g1.domaine.com\").", - "PARAM_PUBKEY": "Llave pública del destinatario", - "PARAM_PUBKEY_HELP": "La llave pública del destinatario (obligatoria)", - "PARAM_REDIRECT_URL": "Dirección web de redirección", - "PARAM_REDIRECT_URL_HELP": "Dirección web (URL) de redirección, llamada cuanda el pago ha sido enviado. Puede contener las palabras siguientes, que serán remplazadas por los valores de la transacción dinámicanente : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\", \"{pubkey}\" y \"{node}\".", - "TITLE": "Pagos" - }, - "URL_DIVIDER": "Dirección de llamada" + "AVAILABLE_PARAMETERS": "Lista de parámetros disponibles :", + "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Cancelado por el usuario", + "DEMO_DIVIDER": "Probar", + "DEMO_HELP": "Para probar este servicio, haga clic en este botón. El resultado se mostrará debajo.", + "DEMO_RESULT": "Resultado retornado por la llamada :", + "DEMO_RESULT_PEER": "Dirección del nodo utilizado :", + "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> ¡ Éxito !", + "DESCRIPTION_DIVIDER": "Descripción", + "INTEGRATE_CODE": "Código :", + "INTEGRATE_DIVIDER": "Integrar", + "INTEGRATE_PARAMETERS": "Parámetros", + "INTEGRATE_RESULT": "Previsualización del resultado :", + "PARAMETERS_DIVIDER": "Parámetros", + "TRANSFER": { + "DESCRIPTION": "Desde una web (ej: tienda online) puede delegar el pago en moneda libre con la API de Cesium. Para eso, simplemente ponga un link a la siguiente dirección :", + "EXAMPLE_BUTTON": "Botón HTML", + "EXAMPLE_BUTTON_BG_COLOR": "Color de fondo", + "EXAMPLE_BUTTON_BG_COLOR_HELP": "Ejemplo : #fbc14c, black, lightgrey, rgb(180,180,180)", + "EXAMPLE_BUTTON_DEFAULT_STYLE": "Estilo personalizado", + "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagar en {{currency|currencySymbol}}", + "EXAMPLE_BUTTON_FONT_COLOR": "Color del texto", + "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Ejemplo : black, orange, rgb(180,180,180)", + "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", + "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", + "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (negro)", + "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", + "EXAMPLE_BUTTON_ICON_NONE": "Ninguno", + "EXAMPLE_BUTTON_TEXT_HELP": "Texto del botón", + "EXAMPLE_BUTTON_TEXT_ICON": "Icono", + "EXAMPLE_BUTTON_TEXT_WIDTH": "Anchura", + "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Ejemplo : 200px, 50%", + "EXAMPLES_HELP": "Ejemplos de integración :", + "PARAM_AMOUNT": "Cuantía", + "PARAM_AMOUNT_HELP": "Cuantía de la transición (obligatorio). Valores múltiples permitidos utilizando un separador (punto y coma, barra vertical o espacio).", + "PARAM_CANCEL_URL": "Dirección web de cancelación", + "PARAM_CANCEL_URL_HELP": "Dirección web (URL) en caso de anulación del pago por parte del usuario. Puede contener las siguientes palabras que serán remplazadas por sus valores dinámicamente en cada caso: \"{comment}\", \"{amount}\" y \"{pubkey}\".", + "PARAM_COMMENT": "Concepto (o comentario)", + "PARAM_COMMENT_HELP": "Concepto o comentario. Le permitirá por ejemplo identificar el pago en la cadena de bloques (blockchain).", + "PARAM_NAME": "Nombre (del destinatario o de su sitio web)", + "PARAM_NAME_HELP": "El nombre del destinatario, o de su sitio web. Puede ser un nombre leíble (\"Mi tienda en línea\"), o un dominio (\"Mitienda.com\").", + "PARAM_PREFERRED_NODE": "Dirección del nodo preferido", + "PARAM_PREFERRED_NODE_HELP": "Dirección (URL) del nodo Duniter a utilizar preferentemente (\"g1.domaine.com:443\" o \"https://g1.domaine.com\").", + "PARAM_PUBKEY": "Llave pública del destinatario", + "PARAM_PUBKEY_HELP": "La llave pública del destinatario (obligatoria)", + "PARAM_REDIRECT_URL": "Dirección web de redirección", + "PARAM_REDIRECT_URL_HELP": "Dirección web (URL) de redirección, llamada cuanda el pago ha sido enviado. Puede contener las palabras siguientes, que serán remplazadas por los valores de la transacción dinámicanente : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\", \"{pubkey}\" y \"{node}\".", + "TITLE": "Pagos" + }, + "URL_DIVIDER": "Dirección de llamada" }, "HOME": { - "DOC_HEADER": "Servicios disponibles :", - "MESSAGE": "Bienvenido/a a la <b>documentación de la API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Conecte sus sitios webs a la cadena de bloques <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", - "MESSAGE_SHORT": "Conecte sus sitios a <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", - "TITLE": "Documentación API {{'COMMON.APP_NAME'|translate}}" + "DOC_HEADER": "Servicios disponibles :", + "MESSAGE": "Bienvenido/a a la <b>documentación de la API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Conecte sus sitios webs a la cadena de bloques <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", + "MESSAGE_SHORT": "Conecte sus sitios a <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", + "TITLE": "Documentación API {{'COMMON.APP_NAME'|translate}}" }, "TRANSFER": { - "AMOUNT": "Cuantía :", - "AMOUNTS_HELP": "Elija la cuantía :", - "COMMENT": "Concepto/Comentario de la operación :", - "DEMO": { - "BAD_CREDENTIALS": "Verifique sus credenciales.<br/>En modo demostración, las credenciales son : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}", - "HELP": "<b>Modo demostración</b> : Ningún pago será enviado realmente durante esta simulación.<br/>Utilice las credenciales : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", - "PASSWORD": "demo", - "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", - "SALT": "demo" - }, - "ERROR": { - "TRANSFER_FAILED": "Error en el pago" - }, - "INFO": { - "CANCEL_REDIRECTING": "Pago cancelado.<br/>Redirigiendo al sitio del vendedor...", - "CANCEL_REDIRECTING_WITH_NAME": "Pago cancelado.<br/>Redirigiendo a <b>{{name}}</b>...", - "SUCCESS_REDIRECTING": "Pago enviado.<br/>Redirigiendo al sitio del vendedor...", - "SUCCESS_REDIRECTING_WITH_NAME": "Pago enviado.<br/>Redirigiendo a <b>{{name}}</b>..." - }, - "NAME": "Nombre :", - "NODE": "Dirección del nodo :", - "PUBKEY": "Llave pública del destinatario :", - "SUMMARY": "Resumen del pago :", - "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pago en línea", - "TITLE_SHORT": "Pago en línea" + "AMOUNT": "Cuantía :", + "AMOUNTS_HELP": "Elija la cuantía :", + "COMMENT": "Concepto/Comentario de la operación :", + "DEMO": { + "BAD_CREDENTIALS": "Verifique sus credenciales.<br/>En modo demostración, las credenciales son : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}", + "HELP": "<b>Modo demostración</b> : Ningún pago será enviado realmente durante esta simulación.<br/>Utilice las credenciales : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", + "PASSWORD": "demo", + "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", + "SALT": "demo" + }, + "ERROR": { + "TRANSFER_FAILED": "Error en el pago" + }, + "INFO": { + "CANCEL_REDIRECTING": "Pago cancelado.<br/>Redirigiendo al sitio del vendedor...", + "CANCEL_REDIRECTING_WITH_NAME": "Pago cancelado.<br/>Redirigiendo a <b>{{name}}</b>...", + "SUCCESS_REDIRECTING": "Pago enviado.<br/>Redirigiendo al sitio del vendedor...", + "SUCCESS_REDIRECTING_WITH_NAME": "Pago enviado.<br/>Redirigiendo a <b>{{name}}</b>..." + }, + "NAME": "Nombre :", + "NODE": "Dirección del nodo :", + "PUBKEY": "Llave pública del destinatario :", + "SUMMARY": "Resumen del pago :", + "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pago en línea", + "TITLE_SHORT": "Pago en línea" } }, "AUTH": { @@ -676,15 +676,15 @@ "SECURITY": { "KEYFILE": { "ERROR": { - "BAD_CHECKSUM": "Suma de control (checksum) incorrecta", - "BAD_PASSWORD": "Frase secreta incorrecta" + "BAD_CHECKSUM": "Suma de control (checksum) incorrecta", + "BAD_PASSWORD": "Frase secreta incorrecta" }, "EWIF_FORMAT": "Formato EWIF (Encrypted Wallet Import Format) - v1", "EWIF_FORMAT_HELP": "Este formato almacena su archivo de llaves <b>de forma cifrada</b> a partir de una frase secreta de su elección. También guarda una suma de control (checksum) para verificar la integridad del archivo.<br/><b>Atención :</b>¡ Asegúrese siempre de recordar su frase secreta !", "PASSWORD_POPUP": { - "HELP": "Indique la frase secreta :", - "PASSWORD_HELP": "Frase secreta", - "TITLE": "Archivo de llaves cifrado" + "HELP": "Indique la frase secreta :", + "PASSWORD_HELP": "Frase secreta", + "TITLE": "Archivo de llaves cifrado" }, "PUBSEC_FORMAT": "Formato PubSec", "PUBSEC_FORMAT_HELP": "Este formato almacena su archivo de llaves de forma simple. Es compatible con Cesium, ğannonce y Duniter.<br/><b>Atención :</b>El archivo <b>no está cifrado</b> (la llave privada aparece en claro) ; ¡ guárdelo en un lugar seguro !", @@ -695,7 +695,7 @@ "BTN_CLEAN": "Limpiar", "BTN_RESET": "Reiniciar", "DOWNLOAD_REVOKE": "Guardar un archivo de revocación", - "DOWNLOAD_REVOKE_HELP" : "Tener un archivo de revocación es importante, en caso de perdida de las credenciales. Le permitirá <b>invalidar y sacar su cuenta miembro fuera de la Red de Confianza</b>, convirtíendose en un monedero simple.", + "DOWNLOAD_REVOKE_HELP": "Tener un archivo de revocación es importante, en caso de perdida de las credenciales. Le permitirá <b>invalidar y sacar su cuenta miembro fuera de la Red de Confianza</b>, convirtíendose en un monedero simple.", "RECOVER_ID_SELECT_FILE": "Elija el <b>archivo para salvaguardar sus credenciales</b> a utilizar :", "GENERATE_KEYFILE": "Generar mi archivo de llaves…", "GENERATE_KEYFILE_HELP": "Genera un archivo que le permitirá atenticarse sin tener que introducir las credenciales.<br/><b>Cuidado:</b> este archivo contendrá su llave secreta; ¡Es muy importante conservarlo en un lugar seguro!", @@ -896,7 +896,8 @@ "POPUP_TITLE": "<b>Confirmación</b>", "POPUP_WARNING_TITLE": "<b>Advertencia</b>", "POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Advertencia de seguridad</b>", - "CERTIFY_RULES_TITLE_UID": "Certificar {{uid}}", "CERTIFY_RULES": "<b class=\"assertive\">NO CERTIFICAR</b> una cuenta si piensa que:<br/><br/><ul><li>1.) no corresponde a un ser humano <b>físico y vivo</b>.<li>2.) su propietario/a <b>posee otra cuenta</b> ya certificada.<li>3.) su propietaria/o incumple (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas fantasmas o duplicadas).</ul><br/><b>¿Desea</b> todavía certificar esta identidad?", + "CERTIFY_RULES_TITLE_UID": "Certificar {{uid}}", + "CERTIFY_RULES": "<b class=\"assertive\">NO CERTIFICAR</b> una cuenta si piensa que:<br/><br/><ul><li>1.) no corresponde a un ser humano <b>físico y vivo</b>.<li>2.) su propietario/a <b>posee otra cuenta</b> ya certificada.<li>3.) su propietaria/o incumple (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas fantasmas o duplicadas).</ul><br/><b>¿Desea</b> todavía certificar esta identidad?", "TRANSFER": "<b>Resumen de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>Desea realizar esta transferencia?</b>", "TRANSFER_ALL": "<b>Resumen de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Desea realizar esta transferencia?</b>", "MEMBERSHIP_OUT": "Esta operación es <b>irreversible</b>.<br/></br/>¿Desea <b>anular su cuenta miembro</b>?", @@ -968,8 +969,7 @@ "WALLET_RECEIVED_CERTIFICATIONS": "Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.", "WALLET_GIVEN_CERTIFICATIONS": "Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.", "WALLET_BALANCE": "El <b>saldo</b> de su cuenta se visualiza aquí.", - "WALLET_BALANCE_RELATIVE": - "{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (“<b>{{'COMMON.UD'|translate}}<sub>{{currency}}</sub></b>”) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.", + "WALLET_BALANCE_RELATIVE": "{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (“<b>{{'COMMON.UD'|translate}}<sub>{{currency}}</sub></b>”) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.", "WALLET_BALANCE_CHANGE_UNIT": "Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i> {{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.", "WALLET_PUBKEY": "Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.", "WALLET_SEND": "Realizar un pago en algunos clics", diff --git a/src/assets/i18n/en-GB.json b/src/assets/i18n/en-GB.json index 2a8de883eb6ec7a5af82b8afeb9eeef5148a641d..a4fa9e5d77cc0060886b2b6576b859247e87c911 100644 --- a/src/assets/i18n/en-GB.json +++ b/src/assets/i18n/en-GB.json @@ -5,7 +5,7 @@ "APP_BUILD": "build {{build}}", "PUBKEY": "Public key", "MEMBER": "Member", - "BLOCK" : "Block", + "BLOCK": "Block", "BTN_OK": "OK", "BTN_YES": "Yes", "BTN_NO": "No", @@ -81,8 +81,8 @@ "SHARE_ON_GOOGLEPLUS": "Share on Google+" }, "FILE": { - "DATE" : "Date:", - "TYPE" : "Type:", + "DATE": "Date:", + "TYPE": "Type:", "SIZE": "Size:", "VALIDATING": "Validating..." } @@ -129,7 +129,7 @@ "FORK_ME": "Fork me!", "SHOW_LICENSE": "Show license", "REPORT_ISSUE": "Report an issue", - "NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", + "NOT_YOUR_ACCOUNT_QUESTION": "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconnect this account", "CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", "SHOW_ALL_FEED": "Show all", @@ -187,12 +187,12 @@ "N": "{{time | formatDuration}} ({{count}} blocks)" }, "POPUP_PEER": { - "TITLE" : "Duniter peer", - "HOST" : "Address", + "TITLE": "Duniter peer", + "HOST": "Address", "HOST_HELP": "Address: server:port", - "USE_SSL" : "Secured?", - "USE_SSL_HELP" : "(SSL Encryption)", - "BTN_SHOW_LIST" : "Peer's list" + "USE_SSL": "Secured?", + "USE_SSL_HELP": "(SSL Encryption)", + "BTN_SHOW_LIST": "Peer's list" } }, "BLOCKCHAIN": { @@ -280,7 +280,7 @@ "WOT_RULES_DIVIDER": "Rules for web of trust", "SENTRIES": "Required number of certifications (given <b>and</b> received) to become a referring member", "SENTRIES_FORMULA": "Required number of certifications to become a referring member (formula)", - "XPERCENT":"Minimum percent of referring member to reach to match the distance rule", + "XPERCENT": "Minimum percent of referring member to reach to match the distance rule", "AVG_GEN_TIME": "The average time between 2 blocks", "CURRENT": "current", "MATH_CEILING": "CEILING", @@ -322,13 +322,13 @@ "MIRROR": "mirror", "MIRRORS": "Mirrors", "MIRROR_PEERS": "Mirror peers", - "PEER_LIST" : "Peer's list", - "MEMBERS" : "Members", - "MEMBER_PEERS" : "Member peers", - "ALL_PEERS" : "All peers", - "DIFFICULTY" : "Difficulty", - "API" : "API", - "CURRENT_BLOCK" : "Block #", + "PEER_LIST": "Peer's list", + "MEMBERS": "Members", + "MEMBER_PEERS": "Member peers", + "ALL_PEERS": "All peers", + "DIFFICULTY": "Difficulty", + "API": "API", + "CURRENT_BLOCK": "Block #", "POPOVER_FILTER_TITLE": "Filter", "OFFLINE": "Offline", "OFFLINE_PEERS": "Offline peers", @@ -406,7 +406,7 @@ "SENTRY_MEMBER": "Referring member" }, "OPERATIONS": { - "TITLE": "{{uid}} - Operations" + "TITLE": "Operations" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certifications sent", @@ -587,12 +587,12 @@ "NO_NEW_WALLET": "No new wallet" } }, - "SECURITY":{ - "ADD_QUESTION" : "Add custom question", - "BTN_CLEAN" : "Clean", - "BTN_RESET" : "Reset", + "SECURITY": { + "ADD_QUESTION": "Add custom question", + "BTN_CLEAN": "Clean", + "BTN_RESET": "Reset", "DOWNLOAD_REVOKE": "Save a revocation file", - "DOWNLOAD_REVOKE_HELP" : "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.", + "DOWNLOAD_REVOKE_HELP": "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.", "GENERATE_KEYFILE": "Generate my keychain file ...", "GENERATE_KEYFILE_HELP": "Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!", "KEYFILE_FILENAME": "keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey", @@ -626,7 +626,7 @@ "RECOVER_ID": "Recover my password...", "RECOVER_ID_HELP": "If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.", "RECOVER_ID_SELECT_FILE": "Select the <b>backup file of your identifiers</b> to use:", - "REVOCATION_WITH_FILE" : "Revoke my member account...", + "REVOCATION_WITH_FILE": "Revoke my member account...", "REVOCATION_WITH_FILE_DESCRIPTION": "If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.", "REVOCATION_WITH_FILE_HELP": "To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.", "REVOCATION_WALLET": "Revoke this account immediately", @@ -768,7 +768,7 @@ "REVOCATION_FAILED": "Error while trying to revoke the identity.", "SALT_OR_PASSWORD_NOT_CONFIRMED": "Wrong secret identifier or password ", "RECOVER_ID_FAILED": "Could not recover password", - "LOAD_FILE_FAILED" : "Unable to load file", + "LOAD_FILE_FAILED": "Unable to load file", "NOT_VALID_REVOCATION_FILE": "Invalid revocation file (wrong file format)", "NOT_VALID_SAVE_ID_FILE": "Invalid credentials backup file (wrong file format)", "NOT_VALID_KEY_FILE": "Invalid keychain file (unrecognized format)", @@ -929,7 +929,7 @@ "END_READONLY": "This guided visit has <b>ended</b>.<br/><br/>{{'MODE.READONLY.INSTALL_HELP'|translate}}." } }, - "API" :{ + "API": { "COMMON": { "LINK_DOC": "API documentation", "LINK_DOC_HELP": "API documentation for developers", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 7e2b18563fd844c83c6f7e93fc8779e9a1a0cd28..a91d3220d21a05fe941a469e39924592833526f4 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -5,7 +5,7 @@ "APP_BUILD": "build {{build}}", "PUBKEY": "Public key", "MEMBER": "Member", - "BLOCK" : "Block", + "BLOCK": "Block", "BTN_OK": "OK", "BTN_YES": "Yes", "BTN_NO": "No", @@ -81,8 +81,8 @@ "SHARE_ON_GOOGLEPLUS": "Share on Google+" }, "FILE": { - "DATE" : "Date:", - "TYPE" : "Type:", + "DATE": "Date:", + "TYPE": "Type:", "SIZE": "Size:", "VALIDATING": "Validating..." } @@ -129,7 +129,7 @@ "FORK_ME": "Fork me!", "SHOW_LICENSE": "Show license", "REPORT_ISSUE": "Report an issue", - "NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", + "NOT_YOUR_ACCOUNT_QUESTION": "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconnect this account", "CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.", "SHOW_ALL_FEED": "Show all", @@ -187,12 +187,12 @@ "N": "{{time | formatDuration}} ({{count}} blocks)" }, "POPUP_PEER": { - "TITLE" : "Duniter peer", - "HOST" : "Address", + "TITLE": "Duniter peer", + "HOST": "Address", "HOST_HELP": "Address: server:port", - "USE_SSL" : "Secured?", - "USE_SSL_HELP" : "(SSL Encryption)", - "BTN_SHOW_LIST" : "Peer's list" + "USE_SSL": "Secured?", + "USE_SSL_HELP": "(SSL Encryption)", + "BTN_SHOW_LIST": "Peer's list" } }, "BLOCKCHAIN": { @@ -280,7 +280,7 @@ "WOT_RULES_DIVIDER": "Rules for web of trust", "SENTRIES": "Required number of certifications (given <b>and</b> received) to become a referring member", "SENTRIES_FORMULA": "Required number of certifications to become a referring member (formula)", - "XPERCENT":"Minimum percent of referring member to reach to match the distance rule", + "XPERCENT": "Minimum percent of referring member to reach to match the distance rule", "AVG_GEN_TIME": "The average time between 2 blocks", "CURRENT": "current", "MATH_CEILING": "CEILING", @@ -322,13 +322,13 @@ "MIRROR": "mirror", "MIRRORS": "Mirrors", "MIRROR_PEERS": "Mirror peers", - "PEER_LIST" : "Peer's list", - "MEMBERS" : "Members", - "MEMBER_PEERS" : "Member peers", - "ALL_PEERS" : "All peers", - "DIFFICULTY" : "Difficulty", - "API" : "API", - "CURRENT_BLOCK" : "Block #", + "PEER_LIST": "Peer's list", + "MEMBERS": "Members", + "MEMBER_PEERS": "Member peers", + "ALL_PEERS": "All peers", + "DIFFICULTY": "Difficulty", + "API": "API", + "CURRENT_BLOCK": "Block #", "POPOVER_FILTER_TITLE": "Filter", "OFFLINE": "Offline", "OFFLINE_PEERS": "Offline peers", @@ -406,7 +406,7 @@ "SENTRY_MEMBER": "Referring member" }, "OPERATIONS": { - "TITLE": "{{uid}} - Operations" + "TITLE": "Operations" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certifications sent", @@ -587,12 +587,12 @@ "NO_NEW_WALLET": "No new wallet" } }, - "SECURITY":{ - "ADD_QUESTION" : "Add custom question", - "BTN_CLEAN" : "Clean", - "BTN_RESET" : "Reset", + "SECURITY": { + "ADD_QUESTION": "Add custom question", + "BTN_CLEAN": "Clean", + "BTN_RESET": "Reset", "DOWNLOAD_REVOKE": "Save a revocation file", - "DOWNLOAD_REVOKE_HELP" : "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.", + "DOWNLOAD_REVOKE_HELP": "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.", "GENERATE_KEYFILE": "Generate my keychain file ...", "GENERATE_KEYFILE_HELP": "Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!", "KEYFILE_FILENAME": "keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey", @@ -626,7 +626,7 @@ "RECOVER_ID": "Recover my password...", "RECOVER_ID_HELP": "If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.", "RECOVER_ID_SELECT_FILE": "Select the <b>backup file of your identifiers</b> to use:", - "REVOCATION_WITH_FILE" : "Revoke my member account...", + "REVOCATION_WITH_FILE": "Revoke my member account...", "REVOCATION_WITH_FILE_DESCRIPTION": "If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.", "REVOCATION_WITH_FILE_HELP": "To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.", "REVOCATION_WALLET": "Revoke this account immediately", @@ -768,7 +768,7 @@ "REVOCATION_FAILED": "Error while trying to revoke the identity.", "SALT_OR_PASSWORD_NOT_CONFIRMED": "Wrong secret identifier or password ", "RECOVER_ID_FAILED": "Could not recover password", - "LOAD_FILE_FAILED" : "Unable to load file", + "LOAD_FILE_FAILED": "Unable to load file", "NOT_VALID_REVOCATION_FILE": "Invalid revocation file (wrong file format)", "NOT_VALID_SAVE_ID_FILE": "Invalid credentials backup file (wrong file format)", "NOT_VALID_KEY_FILE": "Invalid keychain file (unrecognized format)", @@ -929,7 +929,7 @@ "END_READONLY": "This guided visit has <b>ended</b>.<br/><br/>{{'MODE.READONLY.INSTALL_HELP'|translate}}." } }, - "API" :{ + "API": { "COMMON": { "LINK_DOC": "API documentation", "LINK_DOC_HELP": "API documentation for developers", diff --git a/src/assets/i18n/eo-EO.json b/src/assets/i18n/eo-EO.json index f8bfd8cd33f7f5e1c428873785875cd459de53a8..963cb589ba6ec417cfb39f4114c5c65621984b15 100644 --- a/src/assets/i18n/eo-EO.json +++ b/src/assets/i18n/eo-EO.json @@ -5,7 +5,7 @@ "APP_BUILD": "date : {{build}}", "PUBKEY": "Publika ŝlosilo", "MEMBER": "Membro", - "BLOCK" : "Bloko", + "BLOCK": "Bloko", "BTN_OK": "OK", "BTN_YES": "Jes", "BTN_NO": "Ne", @@ -129,7 +129,7 @@ "FORK_ME": "Duobligu min!", "SHOW_LICENSE": "Vidi la licencon de la programo", "REPORT_ISSUE": "fuŝaĵo", - "NOT_YOUR_ACCOUNT_QUESTION" : "Vi ne posedas la konton <b class=\"ion-key\"> {{pubkey|formatPubkey}}</b> ?", + "NOT_YOUR_ACCOUNT_QUESTION": "Vi ne posedas la konton <b class=\"ion-key\"> {{pubkey|formatPubkey}}</b> ?", "BTN_CHANGE_ACCOUNT": "Malkonektu tiun ĉi konton", "CONNECTION_ERROR": "Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aŭ elektu alian nodon <a class=\"positive\" ng-click=\"doQuickFix('settings')\">ĉe la parametroj</a>.", "SHOW_ALL_FEED": "Vidi ĉion", @@ -279,7 +279,7 @@ "WOT_RULES_DIVIDER": "Reguloj de la reto de fido", "SENTRIES": "Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro", "SENTRIES_FORMULA": "Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro (formulo)", - "XPERCENT":"Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco", + "XPERCENT": "Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco", "AVG_GEN_TIME": "Meza daŭro inter du blokoj", "CURRENT": "nuna", "MATH_CEILING": "PLAFONO", @@ -321,13 +321,13 @@ "MIRROR": "spegulo", "MIRRORS": "Speguloj", "MIRROR_PEERS": "Spegul-nodoj", - "PEER_LIST" : "Listo de la nodoj", - "MEMBERS" : "Membroj", - "MEMBER_PEERS" : "Membro-nodoj", - "ALL_PEERS" : "Ĉiuj nodoj", - "DIFFICULTY" : "Malfacileco", - "API" : "API", - "CURRENT_BLOCK" : "Bloko #", + "PEER_LIST": "Listo de la nodoj", + "MEMBERS": "Membroj", + "MEMBER_PEERS": "Membro-nodoj", + "ALL_PEERS": "Ĉiuj nodoj", + "DIFFICULTY": "Malfacileco", + "API": "API", + "CURRENT_BLOCK": "Bloko #", "POPOVER_FILTER_TITLE": "Filtrilo", "OFFLINE": "Nekonektita", "OFFLINE_PEERS": "Nekonektitaj nodoj", @@ -405,7 +405,7 @@ "SENTRY_MEMBER": "Referenca membro" }, "OPERATIONS": { - "TITLE": "{{uid}} - Spezoj" + "TITLE": "Spezoj" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Senditaj atestaĵoj", @@ -642,7 +642,7 @@ "WIF_FORMAT_HELP": "Tiu strukturo stokas vian ŝlosilaron inkluzivante en ĝin kontrol-sumon por kontroli la sendifektecon de la dosiero. Ĝi kongruas aparte kun la paper-monujoj (Duniter paper wallet).<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!", "EWIF_FORMAT": "Strukturo EWIF (Encrypted Wallet Import Format) - v1", "EWIF_FORMAT_HELP": "Tiu strukturo stokas vian ŝlosilaron <b>laŭ ĉifrita maniero</b> dank'al sekreta frazo elektita de vi. Ĝi ankaŭ inkluzivas kontrol-sumon por kontroli la sendifektecon de la dosiero.<br/><b>Atenton:</b> Zorgu, ke vi ĉiam rememoru vian sekretan frazon!", - "PASSWORD_POPUP": { + "PASSWORD_POPUP": { "TITLE": "Ĉifrita dosiero pri ŝlosilaro", "HELP": "Bonvolu indiki la la sekretan frazon:", "PASSWORD_HELP": "Sekreta frazo" @@ -767,7 +767,7 @@ "REVOCATION_FAILED": "Malsukceso pri nuligo.", "SALT_OR_PASSWORD_NOT_CONFIRMED": "Sekreta identigilo aŭ pasvorto malĝusta.", "RECOVER_ID_FAILED": "Malsukceso por ricevi la identigilojn", - "LOAD_FILE_FAILED" : "Malsukceso por ŝarĝi la dosieron", + "LOAD_FILE_FAILED": "Malsukceso por ŝarĝi la dosieron", "NOT_VALID_REVOCATION_FILE": "Dosiero pri nuligo ne valida (malĝusta strukturo de dosiero)", "NOT_VALID_SAVE_ID_FILE": "Dosiero pri konservado ne valida (malĝusta strukturo de dosiero)", "NOT_VALID_KEY_FILE": "Dosiero pri ŝlosilaro ne valida (strukturo ne rekonata)", @@ -928,7 +928,7 @@ "END_READONLY": "Tiu ĉi gvidata vizito <b>finiĝis</b>.<br/><br/>{{'MODE.READONLY.INSTALL_HELP'|translate}}." } }, - "API" :{ + "API": { "COMMON": { "LINK_DOC": "Dokumentaro API", "LINK_DOC_HELP": "Dokumentaro por la programistoj", diff --git a/src/assets/i18n/es-ES.json b/src/assets/i18n/es-ES.json index bc945b1d4019d5ea9f95d0bbd987889f77398ffd..c1a3eb41496cbdef74fcc43348da50a6040ccc8f 100644 --- a/src/assets/i18n/es-ES.json +++ b/src/assets/i18n/es-ES.json @@ -81,8 +81,8 @@ "SHARE_ON_GOOGLEPLUS": "Compartir en Google+" }, "FILE": { - "DATE" : "Fecha:", - "TYPE" : "Tipo:", + "DATE": "Fecha:", + "TYPE": "Tipo:", "SIZE": "Tamaño:", "VALIDATING": "Validando…" } @@ -273,7 +273,7 @@ "WOT_RULES_DIVIDER": "Reglas de la red de confianza", "SENTRIES": "Certificaciones necesarias para ser miembro referente", "SENTRIES_FORMULA": "Fórmula de las certificaciones necesarias para ser miembro referente", - "XPERCENT":"Porcentaje mínimo necesario de miembros referentes respentando la regla de distancia máxima", + "XPERCENT": "Porcentaje mínimo necesario de miembros referentes respentando la regla de distancia máxima", "AVG_GEN_TIME": "Tiempo medio entre dos bloques", "CURRENT": "actual", "MATH_CEILING": "TECHO", @@ -399,7 +399,7 @@ "SENTRY_MEMBER": "Miembro referente" }, "OPERATIONS": { - "TITLE": "{{uid}} - Transacciones" + "TITLE": "Transacciones" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certificaciones emitidas", @@ -464,95 +464,95 @@ }, "API": { "COMMON": { - "CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Verifique su conexión a Internet, o contacte con la administración del sitio.</a>.", - "LINK_DOC": "Documentación API", - "LINK_DOC_HELP": "Documentación para desarrolladores", - "LINK_STANDARD_APP": "Versión clásica", - "LINK_STANDARD_APP_HELP": "Abrir la versión clásica de {{'COMMON.APP_NAME'|translate}}" + "CONNECTION_ERROR": "Nodo <b>{{server}}</b> inalcanzable o dirección inválida.<br/><br/>Verifique su conexión a Internet, o contacte con la administración del sitio.</a>.", + "LINK_DOC": "Documentación API", + "LINK_DOC_HELP": "Documentación para desarrolladores", + "LINK_STANDARD_APP": "Versión clásica", + "LINK_STANDARD_APP_HELP": "Abrir la versión clásica de {{'COMMON.APP_NAME'|translate}}" }, "DOC": { - "AVAILABLE_PARAMETERS": "Lista de parámetros disponibles :", - "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Cancelado por el usuario", - "DEMO_DIVIDER": "Probar", - "DEMO_HELP": "Para probar este servicio, haga clic en este botón. El resultado se mostrará debajo.", - "DEMO_RESULT": "Resultado retornado por la llamada :", - "DEMO_RESULT_PEER": "Dirección del nodo utilizado :", - "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> ¡ Éxito !", - "DESCRIPTION_DIVIDER": "Descripción", - "INTEGRATE_CODE": "Código :", - "INTEGRATE_DIVIDER": "Integrar", - "INTEGRATE_PARAMETERS": "Parámetros", - "INTEGRATE_RESULT": "Previsualización del resultado :", - "PARAMETERS_DIVIDER": "Parámetros", - "TRANSFER": { - "DESCRIPTION": "Desde una web (ej: tienda online) puede delegar el pago en moneda libre con la API de Cesium. Para eso, simplemente ponga un link a la siguiente dirección :", - "EXAMPLE_BUTTON": "Botón HTML", - "EXAMPLE_BUTTON_BG_COLOR": "Color de fondo", - "EXAMPLE_BUTTON_BG_COLOR_HELP": "Ejemplo : #fbc14c, black, lightgrey, rgb(180,180,180)", - "EXAMPLE_BUTTON_DEFAULT_STYLE": "Estilo personalizado", - "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagar en {{currency|currencySymbol}}", - "EXAMPLE_BUTTON_FONT_COLOR": "Color del texto", - "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Ejemplo : black, orange, rgb(180,180,180)", - "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", - "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", - "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (negro)", - "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", - "EXAMPLE_BUTTON_ICON_NONE": "Ninguno", - "EXAMPLE_BUTTON_TEXT_HELP": "Texto del botón", - "EXAMPLE_BUTTON_TEXT_ICON": "Icono", - "EXAMPLE_BUTTON_TEXT_WIDTH": "Anchura", - "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Ejemplo : 200px, 50%", - "EXAMPLES_HELP": "Ejemplos de integración :", - "PARAM_AMOUNT": "Cuantía", - "PARAM_AMOUNT_HELP": "Cuantía de la transición (obligatorio). Valores múltiples permitidos utilizando un separador (punto y coma, barra vertical o espacio).", - "PARAM_CANCEL_URL": "Dirección web de cancelación", - "PARAM_CANCEL_URL_HELP": "Dirección web (URL) en caso de anulación del pago por parte del usuario. Puede contener las siguientes palabras que serán remplazadas por sus valores dinámicamente en cada caso: \"{comment}\", \"{amount}\" y \"{pubkey}\".", - "PARAM_COMMENT": "Concepto (o comentario)", - "PARAM_COMMENT_HELP": "Concepto o comentario. Le permitirá por ejemplo identificar el pago en la cadena de bloques (blockchain).", - "PARAM_NAME": "Nombre (del destinatario o de su sitio web)", - "PARAM_NAME_HELP": "El nombre del destinatario, o de su sitio web. Puede ser un nombre leíble (\"Mi tienda en línea\"), o un dominio (\"Mitienda.com\").", - "PARAM_PREFERRED_NODE": "Dirección del nodo preferido", - "PARAM_PREFERRED_NODE_HELP": "Dirección (URL) del nodo Duniter a utilizar preferentemente (\"g1.domaine.com:443\" o \"https://g1.domaine.com\").", - "PARAM_PUBKEY": "Llave pública del destinatario", - "PARAM_PUBKEY_HELP": "La llave pública del destinatario (obligatoria)", - "PARAM_REDIRECT_URL": "Dirección web de redirección", - "PARAM_REDIRECT_URL_HELP": "Dirección web (URL) de redirección, llamada cuanda el pago ha sido enviado. Puede contener las palabras siguientes, que serán remplazadas por los valores de la transacción dinámicanente : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\", \"{pubkey}\" y \"{node}\".", - "TITLE": "Pagos" - }, - "URL_DIVIDER": "Dirección de llamada" + "AVAILABLE_PARAMETERS": "Lista de parámetros disponibles :", + "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Cancelado por el usuario", + "DEMO_DIVIDER": "Probar", + "DEMO_HELP": "Para probar este servicio, haga clic en este botón. El resultado se mostrará debajo.", + "DEMO_RESULT": "Resultado retornado por la llamada :", + "DEMO_RESULT_PEER": "Dirección del nodo utilizado :", + "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> ¡ Éxito !", + "DESCRIPTION_DIVIDER": "Descripción", + "INTEGRATE_CODE": "Código :", + "INTEGRATE_DIVIDER": "Integrar", + "INTEGRATE_PARAMETERS": "Parámetros", + "INTEGRATE_RESULT": "Previsualización del resultado :", + "PARAMETERS_DIVIDER": "Parámetros", + "TRANSFER": { + "DESCRIPTION": "Desde una web (ej: tienda online) puede delegar el pago en moneda libre con la API de Cesium. Para eso, simplemente ponga un link a la siguiente dirección :", + "EXAMPLE_BUTTON": "Botón HTML", + "EXAMPLE_BUTTON_BG_COLOR": "Color de fondo", + "EXAMPLE_BUTTON_BG_COLOR_HELP": "Ejemplo : #fbc14c, black, lightgrey, rgb(180,180,180)", + "EXAMPLE_BUTTON_DEFAULT_STYLE": "Estilo personalizado", + "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagar en {{currency|currencySymbol}}", + "EXAMPLE_BUTTON_FONT_COLOR": "Color del texto", + "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Ejemplo : black, orange, rgb(180,180,180)", + "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", + "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", + "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (negro)", + "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", + "EXAMPLE_BUTTON_ICON_NONE": "Ninguno", + "EXAMPLE_BUTTON_TEXT_HELP": "Texto del botón", + "EXAMPLE_BUTTON_TEXT_ICON": "Icono", + "EXAMPLE_BUTTON_TEXT_WIDTH": "Anchura", + "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Ejemplo : 200px, 50%", + "EXAMPLES_HELP": "Ejemplos de integración :", + "PARAM_AMOUNT": "Cuantía", + "PARAM_AMOUNT_HELP": "Cuantía de la transición (obligatorio). Valores múltiples permitidos utilizando un separador (punto y coma, barra vertical o espacio).", + "PARAM_CANCEL_URL": "Dirección web de cancelación", + "PARAM_CANCEL_URL_HELP": "Dirección web (URL) en caso de anulación del pago por parte del usuario. Puede contener las siguientes palabras que serán remplazadas por sus valores dinámicamente en cada caso: \"{comment}\", \"{amount}\" y \"{pubkey}\".", + "PARAM_COMMENT": "Concepto (o comentario)", + "PARAM_COMMENT_HELP": "Concepto o comentario. Le permitirá por ejemplo identificar el pago en la cadena de bloques (blockchain).", + "PARAM_NAME": "Nombre (del destinatario o de su sitio web)", + "PARAM_NAME_HELP": "El nombre del destinatario, o de su sitio web. Puede ser un nombre leíble (\"Mi tienda en línea\"), o un dominio (\"Mitienda.com\").", + "PARAM_PREFERRED_NODE": "Dirección del nodo preferido", + "PARAM_PREFERRED_NODE_HELP": "Dirección (URL) del nodo Duniter a utilizar preferentemente (\"g1.domaine.com:443\" o \"https://g1.domaine.com\").", + "PARAM_PUBKEY": "Llave pública del destinatario", + "PARAM_PUBKEY_HELP": "La llave pública del destinatario (obligatoria)", + "PARAM_REDIRECT_URL": "Dirección web de redirección", + "PARAM_REDIRECT_URL_HELP": "Dirección web (URL) de redirección, llamada cuanda el pago ha sido enviado. Puede contener las palabras siguientes, que serán remplazadas por los valores de la transacción dinámicanente : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\", \"{pubkey}\" y \"{node}\".", + "TITLE": "Pagos" + }, + "URL_DIVIDER": "Dirección de llamada" }, "HOME": { - "DOC_HEADER": "Servicios disponibles :", - "MESSAGE": "Bienvenido/a a la <b>documentación de la API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Conecte sus sitios webs a la cadena de bloques <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", - "MESSAGE_SHORT": "Conecte sus sitios a <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", - "TITLE": "Documentación API {{'COMMON.APP_NAME'|translate}}" + "DOC_HEADER": "Servicios disponibles :", + "MESSAGE": "Bienvenido/a a la <b>documentación de la API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Conecte sus sitios webs a la cadena de bloques <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", + "MESSAGE_SHORT": "Conecte sus sitios a <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> muy fácilmente !", + "TITLE": "Documentación API {{'COMMON.APP_NAME'|translate}}" }, "TRANSFER": { - "AMOUNT": "Cuantía :", - "AMOUNTS_HELP": "Elija la cuantía :", - "COMMENT": "Concepto/Comentario de la operación :", - "DEMO": { - "BAD_CREDENTIALS": "Verifique sus credenciales.<br/>En modo demostración, las credenciales son : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}", - "HELP": "<b>Modo demostración</b> : Ningún pago será enviado realmente durante esta simulación.<br/>Utilice las credenciales : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", - "PASSWORD": "demo", - "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", - "SALT": "demo" - }, - "ERROR": { - "TRANSFER_FAILED": "Error en el pago" - }, - "INFO": { - "CANCEL_REDIRECTING": "Pago cancelado.<br/>Redirigiendo al sitio del vendedor...", - "CANCEL_REDIRECTING_WITH_NAME": "Pago cancelado.<br/>Redirigiendo a <b>{{name}}</b>...", - "SUCCESS_REDIRECTING": "Pago enviado.<br/>Redirigiendo al sitio del vendedor...", - "SUCCESS_REDIRECTING_WITH_NAME": "Pago enviado.<br/>Redirigiendo a <b>{{name}}</b>..." - }, - "NAME": "Nombre :", - "NODE": "Dirección del nodo :", - "PUBKEY": "Llave pública del destinatario :", - "SUMMARY": "Resumen del pago :", - "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pago en línea", - "TITLE_SHORT": "Pago en línea" + "AMOUNT": "Cuantía :", + "AMOUNTS_HELP": "Elija la cuantía :", + "COMMENT": "Concepto/Comentario de la operación :", + "DEMO": { + "BAD_CREDENTIALS": "Verifique sus credenciales.<br/>En modo demostración, las credenciales son : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}", + "HELP": "<b>Modo demostración</b> : Ningún pago será enviado realmente durante esta simulación.<br/>Utilice las credenciales : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", + "PASSWORD": "demo", + "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", + "SALT": "demo" + }, + "ERROR": { + "TRANSFER_FAILED": "Error en el pago" + }, + "INFO": { + "CANCEL_REDIRECTING": "Pago cancelado.<br/>Redirigiendo al sitio del vendedor...", + "CANCEL_REDIRECTING_WITH_NAME": "Pago cancelado.<br/>Redirigiendo a <b>{{name}}</b>...", + "SUCCESS_REDIRECTING": "Pago enviado.<br/>Redirigiendo al sitio del vendedor...", + "SUCCESS_REDIRECTING_WITH_NAME": "Pago enviado.<br/>Redirigiendo a <b>{{name}}</b>..." + }, + "NAME": "Nombre :", + "NODE": "Dirección del nodo :", + "PUBKEY": "Llave pública del destinatario :", + "SUMMARY": "Resumen del pago :", + "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pago en línea", + "TITLE_SHORT": "Pago en línea" } }, "AUTH": { @@ -676,15 +676,15 @@ "SECURITY": { "KEYFILE": { "ERROR": { - "BAD_CHECKSUM": "Suma de control (checksum) incorrecta", - "BAD_PASSWORD": "Frase secreta incorrecta" + "BAD_CHECKSUM": "Suma de control (checksum) incorrecta", + "BAD_PASSWORD": "Frase secreta incorrecta" }, "EWIF_FORMAT": "Formato EWIF (Encrypted Wallet Import Format) - v1", "EWIF_FORMAT_HELP": "Este formato almacena su archivo de llaves <b>de forma cifrada</b> a partir de una frase secreta de su elección. También guarda una suma de control (checksum) para verificar la integridad del archivo.<br/><b>Atención :</b>¡ Asegúrese siempre de recordar su frase secreta !", "PASSWORD_POPUP": { - "HELP": "Indique la frase secreta :", - "PASSWORD_HELP": "Frase secreta", - "TITLE": "Archivo de llaves cifrado" + "HELP": "Indique la frase secreta :", + "PASSWORD_HELP": "Frase secreta", + "TITLE": "Archivo de llaves cifrado" }, "PUBSEC_FORMAT": "Formato PubSec", "PUBSEC_FORMAT_HELP": "Este formato almacena su archivo de llaves de forma simple. Es compatible con Cesium, ğannonce y Duniter.<br/><b>Atención :</b>El archivo <b>no está cifrado</b> (la llave privada aparece en claro) ; ¡ guárdelo en un lugar seguro !", @@ -695,7 +695,7 @@ "BTN_CLEAN": "Limpiar", "BTN_RESET": "Reiniciar", "DOWNLOAD_REVOKE": "Guardar un archivo de revocación", - "DOWNLOAD_REVOKE_HELP" : "Tener un archivo de revocación es importante, en caso de perdida de las credenciales. Le permitirá <b>invalidar y sacar su cuenta miembro fuera de la Red de Confianza</b>, convirtíendose en un monedero simple.", + "DOWNLOAD_REVOKE_HELP": "Tener un archivo de revocación es importante, en caso de perdida de las credenciales. Le permitirá <b>invalidar y sacar su cuenta miembro fuera de la Red de Confianza</b>, convirtíendose en un monedero simple.", "RECOVER_ID_SELECT_FILE": "Elija el <b>archivo para salvaguardar sus credenciales</b> a utilizar :", "GENERATE_KEYFILE": "Generar mi archivo de llaves…", "GENERATE_KEYFILE_HELP": "Genera un archivo que le permitirá atenticarse sin tener que introducir las credenciales.<br/><b>Cuidado:</b> este archivo contendrá su llave secreta; ¡Es muy importante conservarlo en un lugar seguro!", @@ -897,7 +897,8 @@ "POPUP_TITLE": "<b>Confirmación</b>", "POPUP_WARNING_TITLE": "<b>Advertencia</b>", "POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Advertencia de seguridad</b>", - "CERTIFY_RULES_TITLE_UID": "Certificar {{uid}}", "CERTIFY_RULES": "<b class=\"assertive\">NO CERTIFICAR</b> una cuenta si piensa que:<br/><br/><ul><li>1.) no corresponde a un ser humano <b>físico y vivo</b>.<li>2.) su propietario/a <b>posee otra cuenta</b> ya certificada.<li>3.) su propietaria/o incumple (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas fantasmas o duplicadas).</ul><br/><b>¿Desea</b> todavía certificar esta identidad?", + "CERTIFY_RULES_TITLE_UID": "Certificar {{uid}}", + "CERTIFY_RULES": "<b class=\"assertive\">NO CERTIFICAR</b> una cuenta si piensa que:<br/><br/><ul><li>1.) no corresponde a un ser humano <b>físico y vivo</b>.<li>2.) su propietario/a <b>posee otra cuenta</b> ya certificada.<li>3.) su propietaria/o incumple (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas fantasmas o duplicadas).</ul><br/><b>¿Desea</b> todavía certificar esta identidad?", "TRANSFER": "<b>Resumen de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>Desea realizar esta transferencia?</b>", "TRANSFER_ALL": "<b>Resumen de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Desea realizar esta transferencia?</b>", "MEMBERSHIP_OUT": "Esta operación es <b>irreversible</b>.<br/></br/>¿Desea <b>anular su cuenta miembro</b>?", @@ -969,8 +970,7 @@ "WALLET_RECEIVED_CERTIFICATIONS": "Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.", "WALLET_GIVEN_CERTIFICATIONS": "Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.", "WALLET_BALANCE": "El <b>saldo</b> de su cuenta se visualiza aquí.", - "WALLET_BALANCE_RELATIVE": - "{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (“<b>{{'COMMON.UD'|translate}}<sub>{{currency}}</sub></b>”) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.", + "WALLET_BALANCE_RELATIVE": "{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (“<b>{{'COMMON.UD'|translate}}<sub>{{currency}}</sub></b>”) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.", "WALLET_BALANCE_CHANGE_UNIT": "Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i> {{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.", "WALLET_PUBKEY": "Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.", "WALLET_SEND": "Realizar un pago en algunos clics", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index eb02e9a63ac8837337b7dd21d6f20857bd31e68f..f2059aa0988652f5e66c2c8e609a53a07886811a 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -48,7 +48,7 @@ "CHOOSE_FILE": "Déposez votre fichier <br/>ou cliquez pour le sélectionner", "DAYS": "jours", "NO_ACCOUNT_QUESTION": "Pas encore de compte ? Créez-en un gratuitement !", - "SEARCH_NO_RESULT": "Aucun résultat trouvé", + "SEARCH_NO_RESULT": "Aucun résultat", "LOADING": "Veuillez patienter...", "LOADING_WAIT": "Veuillez patienter...<br/><small>(Cesium interroge le nœud Duniter)</small>", "SEARCHING": "Recherche en cours...", @@ -145,6 +145,7 @@ "BTN_DARK_MODE": "Mode sombre/clair", "PEER": "Nœud Duniter", "PEER_SHORT": "Nœud Duniter", + "INDEXER": "Indexeur de données", "PEER_CHANGED_TEMPORARY": "Adresse utilisée temporairement", "PERSIST_CACHE": "Conserver les données de navigation (expérimental)", "PERSIST_CACHE_HELP": "Permet une navigation plus rapide, en conservant localement les données reçues, pour les utiliser d'une session à l'autre.", @@ -202,7 +203,7 @@ "VIEW": { "HEADER_TITLE": "Bloc #{{number}}-{{hash|formatHash}}", "TITLE_CURRENT": "Bloc courant", - "TITLE": "Bloc #{{number|formatInteger}}", + "TITLE": "Bloc #{{number}}", "COMPUTED_BY": "Calculé par le noeud de", "SHOW_RAW": "Voir le fichier brut", "TECHNICAL_DIVIDER": "Informations techniques", @@ -213,6 +214,9 @@ "POW_MIN": "Difficulté minimale", "POW_MIN_HELP": "Difficulté imposée pour le calcul du hash", "DATA_DIVIDER": "Données", + "CALLS_COUNT": "Nombre de calls", + "EXTRINSICS_COUNT": "Nombre d'extrinsics", + "EVENTS_COUNT": "Nombre d'évènements", "IDENTITIES_COUNT": "Nouvelles identités", "JOINERS_COUNT": "Nouveaux membres", "ACTIVES_COUNT": "Renouvellements", @@ -408,7 +412,7 @@ "SENTRY_MEMBER": "Membre référent" }, "OPERATIONS": { - "TITLE": "{{uid}} - Opérations" + "TITLE": "Opérations" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certifications émises", diff --git a/src/assets/i18n/it-IT.json b/src/assets/i18n/it-IT.json index 59d105b51a65b2d651d00571a128a2631f0f5eb5..74727b91dfa998e962618ccdd9ffbb6b8005c97b 100644 --- a/src/assets/i18n/it-IT.json +++ b/src/assets/i18n/it-IT.json @@ -5,7 +5,7 @@ "APP_BUILD": "build {{build}}", "PUBKEY": "Chiave pubblica", "MEMBER": "Membro", - "BLOCK" : "Blocco", + "BLOCK": "Blocco", "BTN_OK": "OK", "BTN_YES": "Sì", "BTN_NO": "No", @@ -78,11 +78,11 @@ "SHARE_ON_TWITTER": "Condividere su Twitter", "SHARE_ON_FACEBOOK": "Condividere su Facebook", "SHARE_ON_DIASPORA": "Condividere su Diaspora*", - "SHARE_ON_GOOGLEPLUS":"Condividere su Google+" + "SHARE_ON_GOOGLEPLUS": "Condividere su Google+" }, "FILE": { - "DATE" : "Data:", - "TYPE" : "Tipo:", + "DATE": "Data:", + "TYPE": "Tipo:", "SIZE": "Dimensioni del file:", "VALIDATING": "Validazione in corso..." } @@ -126,7 +126,7 @@ "FORK_ME": "Fork me!", "SHOW_LICENSE": "Mostra licenza", "REPORT_ISSUE": "Segnalare un bug", - "NOT_YOUR_ACCOUNT_QUESTION" : "Non sei proprietario del conto <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", + "NOT_YOUR_ACCOUNT_QUESTION": "Non sei proprietario del conto <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?", "BTN_CHANGE_ACCOUNT": "Disconettere questo conto", "CONNECTION_ERROR": "Nodo <b>{{server}}</b> irraggiungibile o indirizzo non valido. <br/><br/> Verifica tua connessione or cambia nodo. <a class=\"positive\" ng-click=\"doQuickFix('settings')\">nell impostazioni. </a>.", "SHOW_ALL_FEED": "Mostra tutto", @@ -167,12 +167,12 @@ "EXPERT_MODE": "Abilitare modalità eseperto", "EXPERT_MODE_HELP": "Permette di vedere più dettagli", "POPUP_PEER": { - "TITLE" : "Nodo Duniter", - "HOST" : "Indirizzo", + "TITLE": "Nodo Duniter", + "HOST": "Indirizzo", "HOST_HELP": "Indirizzo: server:port", - "USE_SSL" : "Cifrato?", - "USE_SSL_HELP" : "(Cifratura SSL)", - "BTN_SHOW_LIST" : "Lista dei nodi" + "USE_SSL": "Cifrato?", + "USE_SSL_HELP": "(Cifratura SSL)", + "BTN_SHOW_LIST": "Lista dei nodi" } }, "BLOCKCHAIN": { @@ -260,7 +260,7 @@ "WOT_RULES_DIVIDER": "Regole della Rete di Fiducia", "SENTRIES": "Numero di certificazioni (date <b>e</b> ricevute) per diventare membro referente ", "SENTRIES_FORMULA": "Numero di certificazioni necessarie per diventare membro (formula)", - "XPERCENT":"Percentuale minima di membri referenti per rispettare la regola di distanza tra i membri", + "XPERCENT": "Percentuale minima di membri referenti per rispettare la regola di distanza tra i membri", "AVG_GEN_TIME": "Tempo medio tra due blocchi", "CURRENT": "attuale", "MATH_CEILING": "TETTO", @@ -302,13 +302,13 @@ "MIRROR": "Specchio", "MIRRORS": "Specchi", "MIRROR_PEERS": "Nodi specchio", - "PEER_LIST" : "Lista dei nodi", - "MEMBERS" : "Membri", - "MEMBER_PEERS" : "Nodi membri", - "ALL_PEERS" : "Tutti i nodi", - "DIFFICULTY" : "Difficoltà", - "API" : "API", - "CURRENT_BLOCK" : "Blocco #", + "PEER_LIST": "Lista dei nodi", + "MEMBERS": "Membri", + "MEMBER_PEERS": "Nodi membri", + "ALL_PEERS": "Tutti i nodi", + "DIFFICULTY": "Difficoltà", + "API": "API", + "CURRENT_BLOCK": "Blocco #", "POPOVER_FILTER_TITLE": "Filtro", "OFFLINE": "Sconessi", "OFFLINE_PEERS": "Nodi sconessi", @@ -317,7 +317,7 @@ "TITLE": "Nodo", "OWNER": "Proprietà di", "SHOW_RAW_PEERING": "Vedere il documento di peering", - "SHOW_RAW_CURRENT_BLOCK": "Vedere l'utimo blocco (formatto grezzo)", + "SHOW_RAW_CURRENT_BLOCK": "Vedere l'utimo blocco (formatto grezzo)", "LAST_BLOCKS": "Ultimi blocchi", "KNOWN_PEERS": "Nodi conosciuti:", "GENERAL_DIVIDER": "Informazioni generali", @@ -370,8 +370,8 @@ "NO_NEWCOMERS": "Nessun membro." }, "CONTACTS": { - "TITLE": "Contatti" - }, + "TITLE": "Contatti" + }, "MODAL": { "TITLE": "Ricerca" }, @@ -386,7 +386,7 @@ "SENTRY_MEMBER": "Membro referente" }, "OPERATIONS": { - "TITLE": "{{uid}} - Operazioni" + "TITLE": "Operazioni" }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Certificazioni inviate", @@ -536,9 +536,9 @@ "HELP": "Uno pseudonimo è necessario per che gli altri ti possino trovare." }, "SELECT_IDENTITY_MODAL": { - "TITLE": "Selezionare una identità", - "HELP": "Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class=\"gray\"><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :" - }, + "TITLE": "Selezionare una identità", + "HELP": "Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class=\"gray\"><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :" + }, "SELECT_WALLET_MODAL": { "TITLE": "Selezione del portafoglio" }, @@ -554,12 +554,12 @@ "NAME_HELP": "Nome del portafoglio" } }, - "SECURITY":{ - "ADD_QUESTION" : "Aggiungere domanda personalizzata", - "BTN_CLEAN" : "Svuotare", - "BTN_RESET" : "Reset", + "SECURITY": { + "ADD_QUESTION": "Aggiungere domanda personalizzata", + "BTN_CLEAN": "Svuotare", + "BTN_RESET": "Reset", "DOWNLOAD_REVOKE": "Salvare un file di revoca", - "DOWNLOAD_REVOKE_HELP" : "Avere une file di revoca è necessario in caso di smarrimento delle tue credenziali. Ti permette <b> di rimuovere tuo conto dalla Rete di Fiducia</b>, per farlo tornare ad essere un semplice portafoglio.", + "DOWNLOAD_REVOKE_HELP": "Avere une file di revoca è necessario in caso di smarrimento delle tue credenziali. Ti permette <b> di rimuovere tuo conto dalla Rete di Fiducia</b>, per farlo tornare ad essere un semplice portafoglio.", "HELP_LEVEL": "Scegliere <strong> almeno{{nb}} domande </strong> :", "LEVEL": "Livello di sicurezza", "LOW_LEVEL": "Basso <span class=\"hidden-xs\">(minimo di 2 domande)</span>", @@ -585,8 +585,8 @@ "QUESTION_19": "Cosa faceva il tuo nonno?", "RECOVER_ID": "Ricuperare la mia password...", "RECOVER_ID_HELP": "Se hai un<b<file di backup deelle tue credenziali</b>, li puoi trovare rispondendo correttamente alle tue domande personalizzate.", - "REVOCATION_WITH_FILE" : "Revocare il mio conto membro...", - "REVOCATION_WITH_FILE_DESCRIPTION": "Se pensi di aver perso <b>definitivamente le tue credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Rete di Fiducia</b>.", + "REVOCATION_WITH_FILE": "Revocare il mio conto membro...", + "REVOCATION_WITH_FILE_DESCRIPTION": "Se pensi di aver perso <b>definitivamente le tue credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Rete di Fiducia</b>.", "REVOCATION_WITH_FILE_HELP": "Se hai <b>definitivamente perso le tue credenziali (o se la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per uscire dalla Rete di Fiducia</b>.", "REVOCATION_WALLET": "Revocare questo conto subito", "REVOCATION_WALLET_HELP": "Richiedere la cancellazione dell'identità <b>revocherà la tua adesione alla Rete di Fiducia</ b> (definitivamente per lo pseudonimo e per la chiave pubblica associata). Il conto non potrà più produrre il Dividendo Universale.<br/>Nonostante ciò, puoi ancora usare il conto come semplice portafoglio.", @@ -705,7 +705,7 @@ "REVOCATION_FAILED": "Errore avvenuto durante la richiesta di cancellazione dell'identità.", "SALT_OR_PASSWORD_NOT_CONFIRMED": "Identificativo segreto o password sbagliati", "RECOVER_ID_FAILED": "Impossibile recuperare la password", - "LOAD_FILE_FAILED" : "Impossibile caricare il file", + "LOAD_FILE_FAILED": "Impossibile caricare il file", "NOT_VALID_REVOCATION_FILE": "File di cancellazione dell'identità errato (formato di file incorreto)", "NOT_VALID_SAVE_ID_FILE": "File di backup dei credenziali errato (formato di file incorreto)", "NOT_VALID_KEY_FILE": "File di portachiavi non valido (formato non riconosciuto)", @@ -714,7 +714,7 @@ "GET_LICENSE_FILE_FAILED": "Impossibile caricare il file della licenza", "CHECK_NETWORK_CONNECTION": "Nessun nodo sembra disponibile.<br/><br/>Per favore <b>verifica la tua connessione Internet</b>.", "ISSUE_524_TX_FAILED": "Bonifico .<br/><br/>Un messaggio è stato inviato agli sviluppatori per aiutare a risolvere il problema. <b>Grazie per il tuo aiuto</b>." - }, + }, "INFO": { "POPUP_TITLE": "Informazioni", "CERTIFICATION_DONE": "Identità firmata con successo", @@ -731,7 +731,7 @@ }, "CONFIRM": { "CAN_CONTINUE": "<b>Sei sicuro/a</b> di voler procedere?", - "POPUP_TITLE": "<b>Conferma</b>", + "POPUP_TITLE": "<b>Conferma</b>", "POPUP_WARNING_TITLE": "<b>Avviso</b>", "POPUP_SECURITY_WARNING_TITLE": "<i class=\"icon ion-alert-circled\"></i> <b>Avvertimento di sicurezza</b>", "CERTIFY_RULES_TITLE_UID": "Certificare {{uid}}", @@ -754,22 +754,22 @@ "USE_FALLBACK_NODE": "Nodo <b>{{old}}</b> indisponibile o indirizzo errato.<br/><br/>Vuoi utilizzare temporanemante il <b>{{new}}</b> nodo?", "INVALID_FILE_FORMAT": "Formato file non valido.", "SAME_TX_RECIPIENT": "Il destinatario deve essere diverso dall'emittente." - }, - "MODE": { - "DEMO": { - "BADGE": "Demo", - "MODE": "Modalità dimostrativa", - "FEATURE_NOT_AVAILABLE": "Funzionalità <b>non disponibile</b> su questo sito dimostrativo.", - "MODE_HELP": "Il Cesium funziona in <b>modalità dimostrativa</b>: è disponibile la consultazione del conto, ma non è possibile eseguire alcuna operazione.", - "INSTALL_HELP": "Per <b>motivi di sicurezza</b> ti consigliamo di <b>installare</b> la tua copia del software.<br/>Visita il sito <a href='https://cesium.app'>www.cesium.app</a> per assistenza." - }, - "READONLY": { - "BADGE": "Monit", - "MODE": "Modalità di monitoraggio", - "MODE_HELP": "Il Cesium funziona in <b>modalità monitoraggio</b>: sono disponibili solo le funzionalità di monitoraggio della valuta.", - "INSTALL_HELP": "Se desidera <b>creare un account di portafoglio</b> per inviare o ricevere valuta, ti consigliamo di <b>installare</b> la tua copia del software.<br/>Visita il sito <a href='https://cesium.app'>www.cesium.app</a> per assistenza." - } - }, + }, + "MODE": { + "DEMO": { + "BADGE": "Demo", + "MODE": "Modalità dimostrativa", + "FEATURE_NOT_AVAILABLE": "Funzionalità <b>non disponibile</b> su questo sito dimostrativo.", + "MODE_HELP": "Il Cesium funziona in <b>modalità dimostrativa</b>: è disponibile la consultazione del conto, ma non è possibile eseguire alcuna operazione.", + "INSTALL_HELP": "Per <b>motivi di sicurezza</b> ti consigliamo di <b>installare</b> la tua copia del software.<br/>Visita il sito <a href='https://cesium.app'>www.cesium.app</a> per assistenza." + }, + "READONLY": { + "BADGE": "Monit", + "MODE": "Modalità di monitoraggio", + "MODE_HELP": "Il Cesium funziona in <b>modalità monitoraggio</b>: sono disponibili solo le funzionalità di monitoraggio della valuta.", + "INSTALL_HELP": "Se desidera <b>creare un account di portafoglio</b> per inviare o ricevere valuta, ti consigliamo di <b>installare</b> la tua copia del software.<br/>Visita il sito <a href='https://cesium.app'>www.cesium.app</a> per assistenza." + } + }, "DOWNLOAD": { "POPUP_TITLE": "<b>File di revoca dell'identità/b>", "POPUP_REVOKE_MESSAGE": "Per migliorare la sicurezza del tuo conto, scarica <b>il documento di revoca del conto</b>. Ti consentirà di revocare il tuo conto (nel caso di violazione del conto, della tua identità, conto creato con errori, etc.).<br/><br/><b>Hai salvato questo documento in un luogo sicuro.</b>" @@ -846,91 +846,91 @@ "END_READONLY": "Il tour guidato <b>è finito</b>.<br/><br/>{{'MODE.READONLY.INSTALL_HELP'|translate}}." } }, - "API" :{ - "COMMON": { - "LINK_DOC": "documentazione API", - "LINK_DOC_HELP": "Documentazione dello sviluppatore", - "LINK_STANDARD_APP": "versione classica", - "LINK_STANDARD_APP_HELP": "Apri la versione classica di {{'COMMON.APP_NAME'|translate}}" - }, - "HOME": { - "TITLE": "Documentazione API {{'COMMON.APP_NAME'|translate}}", - "MESSAGE": "Benvenuto alla <b>documentazione dell'API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Connettiti alla pagina web <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> molto facilmente!", - "MESSAGE_SHORT": "Connettiti alla pagina web <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> molto facilmente!", - "DOC_HEADER": "Servizi disponibili:" - }, - "TRANSFER": { - "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pagamento online", - "TITLE_SHORT": "Pagamento online", - "SUMMARY": "Riepilogo dell'ordine:", - "AMOUNT": "Importo:", - "NAME": "Nome :", - "PUBKEY": "Chiave pubblica del destinatario:", - "COMMENT": "Riferimento dell'ordine:", - "DEMO": { - "SALT": "demo", - "PASSWORD": "demo", - "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", - "HELP": "<b>Modo dimostrativo</b>: Nessun pagamento sarà realmente inviato con questa simulazione.<br/>Per favore usa le credenziali: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", - "BAD_CREDENTIALS": "Credenziali non valide.<br/>In modalità demo, le credenziali sono: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}" - }, - "INFO": { - "SUCCESS_REDIRECTING_WITH_NAME": "Pagamento inviato.<br/>Redirigendo a <b>{{name}}</b>...", - "SUCCESS_REDIRECTING": "Pagamento inviato.<br/>Redirigendo al sito del venditore...", - "CANCEL_REDIRECTING_WITH_NAME": "Pagamento annullato.<br/>Redirigendo a<b>{{name}}</b>...", - "CANCEL_REDIRECTING": "Pagamento annullato.<br/>Redirigendo al sito del venditore..." - }, - "ERROR": { - "TRANSFER_FAILED": "Mancato pagamento" - } - }, - "DOC": { - "DESCRIPTION_DIVIDER": "Descrizione", - "URL_DIVIDER": "Indirizzo chiamata", - "PARAMETERS_DIVIDER": "Impostazioni", - "AVAILABLE_PARAMETERS": "Ecco l'elenco dei parametri disponibili :", - "DEMO_DIVIDER": "Provare", - "DEMO_HELP": "Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .", - "DEMO_RESULT": "Risultato della chiamata:", - "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> Successo!", - "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Annulato dall'utente", - "INTEGRATE_DIVIDER": "Integrare", - "INTEGRATE_CODE": "Codice:", - "INTEGRATE_RESULT": "Previsualizzare il risultato:", - "INTEGRATE_PARAMETERS": "Parametri", - "TRANSFER": { - "TITLE": "Pagamenti", - "DESCRIPTION": "Da un sito (per es. : un sito di e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:", - "PARAM_PUBKEY": "Chiave pubblica del destinatario", - "PARAM_PUBKEY_HELP": "Chiave pubblica del destinatario (obbligatoria)", - "PARAM_AMOUNT": "Importo", - "PARAM_AMOUNT_HELP": "Importo della transazione (obbligatorio)", - "PARAM_COMMENT": "Riferimento (o commento)", - "PARAM_COMMENT_HELP": "Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.", - "PARAM_NAME": "Nome (del destinatario o del sito web)", - "PARAM_NAME_HELP": "Nome del sito web o del destinatario chiamando l'API. Può essere un nome leggibile (\"Mio sito\"), oppure l'indirizzo http del sito (\"MioSito.com\").", - "PARAM_REDIRECT_URL": "Indirizzo web di redirezione", - "PARAM_REDIRECT_URL_HELP": "Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\" e {pubkey}.", - "PARAM_CANCEL_URL": "Indirizzo web della cancellazione", - "PARAM_CANCEL_URL_HELP": "Indirizzo web (URL) in caso dell'annullamento del pagamento dall'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : \"{comment}\", \"{amount}\" e {pubkey}.", - "EXAMPLES_HELP": "Alcuni esempi di integrazione :", - "EXAMPLE_BUTTON": "Bottone HTML", - "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagare in {{currency|currencySymbol}}", - "EXAMPLE_BUTTON_DEFAULT_STYLE": "Stile personalizzato", - "EXAMPLE_BUTTON_TEXT_HELP": "Testo del bottone", - "EXAMPLE_BUTTON_BG_COLOR": "Colore del fondo", - "EXAMPLE_BUTTON_BG_COLOR_HELP": "Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)", - "EXAMPLE_BUTTON_FONT_COLOR": "Colore del testo", - "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Esempio: black, orange, rgb(180,180,180)", - "EXAMPLE_BUTTON_TEXT_ICON": "Icona", - "EXAMPLE_BUTTON_TEXT_WIDTH": "Larghezza", - "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Esempio: 200px, 50%", - "EXAMPLE_BUTTON_ICON_NONE": "Nessuna", - "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", - "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", - "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", - "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (nero)" - } - } - } + "API": { + "COMMON": { + "LINK_DOC": "documentazione API", + "LINK_DOC_HELP": "Documentazione dello sviluppatore", + "LINK_STANDARD_APP": "versione classica", + "LINK_STANDARD_APP_HELP": "Apri la versione classica di {{'COMMON.APP_NAME'|translate}}" + }, + "HOME": { + "TITLE": "Documentazione API {{'COMMON.APP_NAME'|translate}}", + "MESSAGE": "Benvenuto alla <b>documentazione dell'API</b> {{'COMMON.APP_NAME'|translate}}.<br/>Connettiti alla pagina web <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> molto facilmente!", + "MESSAGE_SHORT": "Connettiti alla pagina web <a href=\"http://duniter.org\" target=\"_system\">Duniter</a> molto facilmente!", + "DOC_HEADER": "Servizi disponibili:" + }, + "TRANSFER": { + "TITLE": "{{'COMMON.APP_NAME'|translate}} - Pagamento online", + "TITLE_SHORT": "Pagamento online", + "SUMMARY": "Riepilogo dell'ordine:", + "AMOUNT": "Importo:", + "NAME": "Nome :", + "PUBKEY": "Chiave pubblica del destinatario:", + "COMMENT": "Riferimento dell'ordine:", + "DEMO": { + "SALT": "demo", + "PASSWORD": "demo", + "PUBKEY": "3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1", + "HELP": "<b>Modo dimostrativo</b>: Nessun pagamento sarà realmente inviato con questa simulazione.<br/>Per favore usa le credenziali: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>", + "BAD_CREDENTIALS": "Credenziali non valide.<br/>In modalità demo, le credenziali sono: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}" + }, + "INFO": { + "SUCCESS_REDIRECTING_WITH_NAME": "Pagamento inviato.<br/>Redirigendo a <b>{{name}}</b>...", + "SUCCESS_REDIRECTING": "Pagamento inviato.<br/>Redirigendo al sito del venditore...", + "CANCEL_REDIRECTING_WITH_NAME": "Pagamento annullato.<br/>Redirigendo a<b>{{name}}</b>...", + "CANCEL_REDIRECTING": "Pagamento annullato.<br/>Redirigendo al sito del venditore..." + }, + "ERROR": { + "TRANSFER_FAILED": "Mancato pagamento" + } + }, + "DOC": { + "DESCRIPTION_DIVIDER": "Descrizione", + "URL_DIVIDER": "Indirizzo chiamata", + "PARAMETERS_DIVIDER": "Impostazioni", + "AVAILABLE_PARAMETERS": "Ecco l'elenco dei parametri disponibili :", + "DEMO_DIVIDER": "Provare", + "DEMO_HELP": "Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .", + "DEMO_RESULT": "Risultato della chiamata:", + "DEMO_SUCCEED": "<i class=\"icon ion-checkmark\"></i> Successo!", + "DEMO_CANCELLED": "<i class=\"icon ion-close\"></i> Annulato dall'utente", + "INTEGRATE_DIVIDER": "Integrare", + "INTEGRATE_CODE": "Codice:", + "INTEGRATE_RESULT": "Previsualizzare il risultato:", + "INTEGRATE_PARAMETERS": "Parametri", + "TRANSFER": { + "TITLE": "Pagamenti", + "DESCRIPTION": "Da un sito (per es. : un sito di e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:", + "PARAM_PUBKEY": "Chiave pubblica del destinatario", + "PARAM_PUBKEY_HELP": "Chiave pubblica del destinatario (obbligatoria)", + "PARAM_AMOUNT": "Importo", + "PARAM_AMOUNT_HELP": "Importo della transazione (obbligatorio)", + "PARAM_COMMENT": "Riferimento (o commento)", + "PARAM_COMMENT_HELP": "Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.", + "PARAM_NAME": "Nome (del destinatario o del sito web)", + "PARAM_NAME_HELP": "Nome del sito web o del destinatario chiamando l'API. Può essere un nome leggibile (\"Mio sito\"), oppure l'indirizzo http del sito (\"MioSito.com\").", + "PARAM_REDIRECT_URL": "Indirizzo web di redirezione", + "PARAM_REDIRECT_URL_HELP": "Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : \"{tx}\", \"{hash}\", \"{comment}\", \"{amount}\" e {pubkey}.", + "PARAM_CANCEL_URL": "Indirizzo web della cancellazione", + "PARAM_CANCEL_URL_HELP": "Indirizzo web (URL) in caso dell'annullamento del pagamento dall'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : \"{comment}\", \"{amount}\" e {pubkey}.", + "EXAMPLES_HELP": "Alcuni esempi di integrazione :", + "EXAMPLE_BUTTON": "Bottone HTML", + "EXAMPLE_BUTTON_DEFAULT_TEXT": "Pagare in {{currency|currencySymbol}}", + "EXAMPLE_BUTTON_DEFAULT_STYLE": "Stile personalizzato", + "EXAMPLE_BUTTON_TEXT_HELP": "Testo del bottone", + "EXAMPLE_BUTTON_BG_COLOR": "Colore del fondo", + "EXAMPLE_BUTTON_BG_COLOR_HELP": "Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)", + "EXAMPLE_BUTTON_FONT_COLOR": "Colore del testo", + "EXAMPLE_BUTTON_FONT_COLOR_HELP": "Esempio: black, orange, rgb(180,180,180)", + "EXAMPLE_BUTTON_TEXT_ICON": "Icona", + "EXAMPLE_BUTTON_TEXT_WIDTH": "Larghezza", + "EXAMPLE_BUTTON_TEXT_WIDTH_HELP": "Esempio: 200px, 50%", + "EXAMPLE_BUTTON_ICON_NONE": "Nessuna", + "EXAMPLE_BUTTON_ICON_DUNITER": "Logo Duniter", + "EXAMPLE_BUTTON_ICON_CESIUM": "Logo Cesium", + "EXAMPLE_BUTTON_ICON_G1_COLOR": "Logo Ğ1", + "EXAMPLE_BUTTON_ICON_G1_BLACK": "Logo Ğ1 (nero)" + } + } + } } diff --git a/src/assets/i18n/nl-NL.json b/src/assets/i18n/nl-NL.json index 7a65ac325d1ad5f06c6fa0a3d3b2a926e3c9a49e..55edee2dffdc571f4b85627db6caca05155fa4f2 100644 --- a/src/assets/i18n/nl-NL.json +++ b/src/assets/i18n/nl-NL.json @@ -111,7 +111,7 @@ "BTN_ABOUT": "over", "BTN_HELP": "Help", "REPORT_ISSUE": "Meld een probleem", - "NOT_YOUR_ACCOUNT_QUESTION" : "Is rekening <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b> niet van jou?", + "NOT_YOUR_ACCOUNT_QUESTION": "Is rekening <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b> niet van jou?", "BTN_CHANGE_ACCOUNT": "Dze rekening ontkoppelen", "CONNECTION_ERROR": "Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in parameters</a>." }, @@ -134,12 +134,12 @@ "EXPERT_MODE": "Geavanceerde modus inschakelen", "EXPERT_MODE_HELP": "Toon meer details", "POPUP_PEER": { - "TITLE" : "Duniter Knooppunt", - "HOST" : "Adres", + "TITLE": "Duniter Knooppunt", + "HOST": "Adres", "HOST_HELP": "Aadres: server:poort", - "USE_SSL" : "Secure?", - "USE_SSL_HELP" : "(SSL-encryptie)", - "BTN_SHOW_LIST" : "Lijst van knooppunten" + "USE_SSL": "Secure?", + "USE_SSL_HELP": "(SSL-encryptie)", + "BTN_SHOW_LIST": "Lijst van knooppunten" } }, "BLOCKCHAIN": { @@ -220,7 +220,7 @@ "SIG_WINDOW": "Maximum vertraging voor een certificatie in behandeling wordt genomen", "STEP_MAX": "Maximum afstand tussen elk WoT lid en een nieuw lid.", "WOT_RULES_DIVIDER": "Lidmaatschapseisen", - "XPERCENT":"Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren" + "XPERCENT": "Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren" } }, "NETWORK": { @@ -308,6 +308,9 @@ "ERROR": "Ontvangen vertificaties met fout", "SENTRY_MEMBER": "Referent lid" }, + "OPERATIONS": { + "TITLE": "Transacties" + }, "GIVEN_CERTIFICATIONS": { "TITLE": "{{uid}} - Verzonden certificaties", "SUMMARY": "Verzonden certificaties", diff --git a/src/environments/environment.class.ts b/src/environments/environment.class.ts index 1ba49894bf5c95cde481b573ccaef2a159dca114..775c6ebe7e2a4a1aff778dd82a25c4e93ec6c675 100644 --- a/src/environments/environment.class.ts +++ b/src/environments/environment.class.ts @@ -1,5 +1,7 @@ import { StorageConfig } from '@ionic/storage'; import { AuthData } from '@app/account/account.model'; +import { FetchPolicy } from '@apollo/client'; +import { WatchQueryFetchPolicy } from '@apollo/client/core'; export interface Environment { name: string; @@ -9,7 +11,16 @@ export interface Environment { // Default values baseUrl?: string; defaultLocale: string; + defaultPeers: string[]; + defaultIndexers: string[]; + + // GraphQL + graphql?: { + fetchPolicy?: FetchPolicy; + watchFetchPolicy?: WatchQueryFetchPolicy; + persistCache?: boolean; + }; // Storage storage?: Partial<StorageConfig>; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index dbf9e0bbbc7c6f5066d13b21084510cdf41e5514..87dd4318e2b25ff59a3caa4c5bd31f926b98d5c1 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -25,4 +25,6 @@ export const environment = <Environment>{ 'wss://gdev.p2p.legal/ws', //'wss://1000i100.fr/ws', ], + + defaultIndexers: ['https://subsquid.gdev.coinduf.eu/graphql'], }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 774b2f796b52d5b62dd323d5156f13690162e055..5ad9b94c0bb8193fb7dbbd78762a450882a1feea 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -13,6 +13,12 @@ export const environment = <Environment>{ defaultLocale: 'fr', + graphql: { + fetchPolicy: 'cache-first', + watchFetchPolicy: 'cache-and-network', + persistCache: false, // TODO test enabled + }, + // Storage storage: { name: 'cesium', @@ -50,4 +56,6 @@ export const environment = <Environment>{ 'wss://gdev.p2p.legal/ws', //'wss://1000i100.fr/ws', ], + + defaultIndexers: ['https://subsquid.gdev.coinduf.eu/graphql'], }; diff --git a/src/interfaces/augment-api-consts.ts b/src/interfaces/augment-api-consts.ts index 867f15c86482296c13aef7e1f2e359e58549d009..5cdb2eefcf6f7097bcdb3a6448f7b62df8a2c7bc 100644 --- a/src/interfaces/augment-api-consts.ts +++ b/src/interfaces/augment-api-consts.ts @@ -25,12 +25,12 @@ declare module '@polkadot/api-base/types/consts' { atomicSwap: { /** * Limit of proof size. - * + * * Atomic swap is only atomic if once the proof is revealed, both parties can submit the * proofs on-chain. If A is the one that generates the proof, then it requires that either: * - A's blockchain has the same proof length limit as B's blockchain. * - Or A's blockchain has shorter proof length limit as B's blockchain. - * + * * If B sees A is on a blockchain with larger proof length limit, then it should kindly * refuse to accept the atomic swap request if A generates the proof, and asks that B * generates the proof instead. @@ -78,12 +78,12 @@ declare module '@polkadot/api-base/types/consts' { balances: { /** * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * + * * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for * this pallet. However, you do so at your own risk: this will open up a major DoS vector. * In case you have multiple sources of provider references, you may also get unexpected * behaviour if you set this to zero. - * + * * Bottom line: Do yourself a favour and make it at least one! **/ existentialDeposit: u64 & AugmentedConst<ApiType>; @@ -153,7 +153,7 @@ declare module '@polkadot/api-base/types/consts' { maxAuthorities: u32 & AugmentedConst<ApiType>; /** * The maximum number of entries to keep in the set id to session index mapping. - * + * * Since the `SetIdSession` map is only used for validating equivocations this * value should relate to the bonding duration of whatever staking system is * being used (if any). If equivocation handling is not enabled then this value @@ -186,7 +186,7 @@ declare module '@polkadot/api-base/types/consts' { imOnline: { /** * A configuration for base priority of unsigned transactions. - * + * * This is exposed so that it can be tuned for particular runtime, when * multiple pallets send unsigned transactions. **/ @@ -214,7 +214,7 @@ declare module '@polkadot/api-base/types/consts' { /** * The base amount of currency needed to reserve for creating a multisig execution or to * store a dispatch call for later. - * + * * This is held for an additional storage item whose value size is * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is * `32 + sizeof(AccountId)` bytes. @@ -222,7 +222,7 @@ declare module '@polkadot/api-base/types/consts' { depositBase: u64 & AugmentedConst<ApiType>; /** * The amount of currency needed per unit threshold when creating a multisig execution. - * + * * This is held for adding 32 bytes more into a pre-existing storage value. **/ depositFactor: u64 & AugmentedConst<ApiType>; @@ -252,14 +252,14 @@ declare module '@polkadot/api-base/types/consts' { proxy: { /** * The base amount of currency needed to reserve for creating an announcement. - * + * * This is held when a new storage item holding a `Balance` is created (typically 16 * bytes). **/ announcementDepositBase: u64 & AugmentedConst<ApiType>; /** * The amount of currency needed per announcement made. - * + * * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) * into a pre-existing storage value. **/ @@ -274,14 +274,14 @@ declare module '@polkadot/api-base/types/consts' { maxProxies: u32 & AugmentedConst<ApiType>; /** * The base amount of currency needed to reserve for creating a proxy. - * + * * This is held for an additional storage item whose value size is * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. **/ proxyDepositBase: u64 & AugmentedConst<ApiType>; /** * The amount of currency needed per proxy added. - * + * * This is held for adding 32 bytes plus an instance of `ProxyType` more into a * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take * into account `32 + proxy_type.encode().len()` bytes of data. @@ -309,7 +309,7 @@ declare module '@polkadot/api-base/types/consts' { maximumWeight: SpWeightsWeightV2Weight & AugmentedConst<ApiType>; /** * The maximum number of scheduled calls in the queue for a single block. - * + * * NOTE: * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a * higher limit under `runtime-benchmarks` feature. @@ -386,7 +386,7 @@ declare module '@polkadot/api-base/types/consts' { dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst<ApiType>; /** * The designated SS58 prefix of this chain. - * + * * This replaces the "ss58Format" property declared in the chain spec. Reason is * that the runtime should know about the prefix in order to make use of it as * an identifier of the chain. @@ -428,21 +428,21 @@ declare module '@polkadot/api-base/types/consts' { /** * A fee mulitplier for `Operational` extrinsics to compute "virtual tip" to boost their * `priority` - * + * * This value is multipled by the `final_fee` to obtain a "virtual tip" that is later * added to a tip component in regular `priority` calculations. * It means that a `Normal` transaction can front-run a similarly-sized `Operational` * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * + * * ```rust,ignore * // For `Normal` * let priority = priority_calc(tip); - * + * * // For `Operational` * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; * let priority = priority_calc(tip + virtual_tip); * ``` - * + * * Note that since we use `final_fee` the multiplier applies also to the regular `tip` * sent with the transaction. So, not only does the transaction get a priority bump based * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` @@ -461,7 +461,7 @@ declare module '@polkadot/api-base/types/consts' { burn: Permill & AugmentedConst<ApiType>; /** * The maximum number of approvals that can wait in the spending queue. - * + * * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. **/ maxApprovals: u32 & AugmentedConst<ApiType>; diff --git a/src/interfaces/augment-api-errors.ts b/src/interfaces/augment-api-errors.ts index 577024e1fc622f20f422e4d0b5104df1ddce0842..b025bd50e094401111f9cceb8c409d3e658a2ada 100644 --- a/src/interfaces/augment-api-errors.ts +++ b/src/interfaces/augment-api-errors.ts @@ -736,7 +736,7 @@ declare module '@polkadot/api-base/types/errors' { CallFiltered: AugmentedError<ApiType>; /** * Failed to extract the runtime version from the new runtime. - * + * * Either calling `Core_version` or decoding `RuntimeVersion` failed. **/ FailedToExtractRuntimeVersion: AugmentedError<ApiType>; diff --git a/src/interfaces/augment-api-events.ts b/src/interfaces/augment-api-events.ts index fff2ea2fbd9ffffc1f0bba288759a87fc10287ec..0f82e34be882779126a24086c78a557ee5460af4 100644 --- a/src/interfaces/augment-api-events.ts +++ b/src/interfaces/augment-api-events.ts @@ -18,7 +18,7 @@ declare module '@polkadot/api-base/types/events' { /** * account linked to identity **/ - AccountLinked: AugmentedEvent<ApiType, [who: AccountId32, identity: u32], { who: AccountId32, identity: u32 }>; + AccountLinked: AugmentedEvent<ApiType, [who: AccountId32, identity: u32], { who: AccountId32; identity: u32 }>; /** * account unlinked from identity **/ @@ -28,12 +28,12 @@ declare module '@polkadot/api-base/types/events' { * the account creation price. * [who, balance] **/ - ForceDestroy: AugmentedEvent<ApiType, [who: AccountId32, balance: u64], { who: AccountId32, balance: u64 }>; + ForceDestroy: AugmentedEvent<ApiType, [who: AccountId32, balance: u64], { who: AccountId32; balance: u64 }>; /** * Random id assigned * [account_id, random_id] **/ - RandomIdAssigned: AugmentedEvent<ApiType, [who: AccountId32, randomId: H256], { who: AccountId32, randomId: H256 }>; + RandomIdAssigned: AugmentedEvent<ApiType, [who: AccountId32, randomId: H256], { who: AccountId32; randomId: H256 }>; /** * Generic event **/ @@ -43,15 +43,23 @@ declare module '@polkadot/api-base/types/events' { /** * Swap created. **/ - NewSwap: AugmentedEvent<ApiType, [account: AccountId32, proof: U8aFixed, swap: PalletAtomicSwapPendingSwap], { account: AccountId32, proof: U8aFixed, swap: PalletAtomicSwapPendingSwap }>; + NewSwap: AugmentedEvent< + ApiType, + [account: AccountId32, proof: U8aFixed, swap: PalletAtomicSwapPendingSwap], + { account: AccountId32; proof: U8aFixed; swap: PalletAtomicSwapPendingSwap } + >; /** * Swap cancelled. **/ - SwapCancelled: AugmentedEvent<ApiType, [account: AccountId32, proof: U8aFixed], { account: AccountId32, proof: U8aFixed }>; + SwapCancelled: AugmentedEvent<ApiType, [account: AccountId32, proof: U8aFixed], { account: AccountId32; proof: U8aFixed }>; /** * Swap claimed. The last parameter indicates whether the execution succeeds. **/ - SwapClaimed: AugmentedEvent<ApiType, [account: AccountId32, proof: U8aFixed, success: bool], { account: AccountId32, proof: U8aFixed, success: bool }>; + SwapClaimed: AugmentedEvent< + ApiType, + [account: AccountId32, proof: U8aFixed, success: bool], + { account: AccountId32; proof: U8aFixed; success: bool } + >; /** * Generic event **/ @@ -98,28 +106,28 @@ declare module '@polkadot/api-base/types/events' { /** * A balance was set by root. **/ - BalanceSet: AugmentedEvent<ApiType, [who: AccountId32, free: u64], { who: AccountId32, free: u64 }>; + BalanceSet: AugmentedEvent<ApiType, [who: AccountId32, free: u64], { who: AccountId32; free: u64 }>; /** * Some amount was burned from an account. **/ - Burned: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Burned: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some amount was deposited (e.g. for transaction fees). **/ - Deposit: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Deposit: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * An account was removed whose balance was non-zero but below ExistentialDeposit, * resulting in an outright loss. **/ - DustLost: AugmentedEvent<ApiType, [account: AccountId32, amount: u64], { account: AccountId32, amount: u64 }>; + DustLost: AugmentedEvent<ApiType, [account: AccountId32, amount: u64], { account: AccountId32; amount: u64 }>; /** * An account was created with some free balance. **/ - Endowed: AugmentedEvent<ApiType, [account: AccountId32, freeBalance: u64], { account: AccountId32, freeBalance: u64 }>; + Endowed: AugmentedEvent<ApiType, [account: AccountId32, freeBalance: u64], { account: AccountId32; freeBalance: u64 }>; /** * Some balance was frozen. **/ - Frozen: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Frozen: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Total issuance was increased by `amount`, creating a credit to be balanced. **/ @@ -127,11 +135,11 @@ declare module '@polkadot/api-base/types/events' { /** * Some balance was locked. **/ - Locked: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Locked: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some amount was minted into an account. **/ - Minted: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Minted: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Total issuance was decreased by `amount`, creating a debt to be balanced. **/ @@ -139,40 +147,44 @@ declare module '@polkadot/api-base/types/events' { /** * Some balance was reserved (moved from free to reserved). **/ - Reserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Reserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some balance was moved from the reserve of the first account to the second account. * Final argument indicates the destination balance type. **/ - ReserveRepatriated: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u64, destinationStatus: FrameSupportTokensMiscBalanceStatus], { from: AccountId32, to: AccountId32, amount: u64, destinationStatus: FrameSupportTokensMiscBalanceStatus }>; + ReserveRepatriated: AugmentedEvent< + ApiType, + [from: AccountId32, to: AccountId32, amount: u64, destinationStatus: FrameSupportTokensMiscBalanceStatus], + { from: AccountId32; to: AccountId32; amount: u64; destinationStatus: FrameSupportTokensMiscBalanceStatus } + >; /** * Some amount was restored into an account. **/ - Restored: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Restored: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some amount was removed from the account (e.g. for misbehavior). **/ - Slashed: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Slashed: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some amount was suspended from an account (it can be restored later). **/ - Suspended: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Suspended: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some balance was thawed. **/ - Thawed: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Thawed: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Transfer succeeded. **/ - Transfer: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u64], { from: AccountId32, to: AccountId32, amount: u64 }>; + Transfer: AugmentedEvent<ApiType, [from: AccountId32, to: AccountId32, amount: u64], { from: AccountId32; to: AccountId32; amount: u64 }>; /** * Some balance was unlocked. **/ - Unlocked: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Unlocked: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Some balance was unreserved (moved from reserved to free). **/ - Unreserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Unreserved: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * An account was upgraded. **/ @@ -180,7 +192,7 @@ declare module '@polkadot/api-base/types/events' { /** * Some amount was withdrawn from the account (e.g. for transaction fees). **/ - Withdraw: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32, amount: u64 }>; + Withdraw: AugmentedEvent<ApiType, [who: AccountId32, amount: u64], { who: AccountId32; amount: u64 }>; /** * Generic event **/ @@ -191,17 +203,25 @@ declare module '@polkadot/api-base/types/events' { * New certification * [issuer, issuer_issued_count, receiver, receiver_received_count] **/ - NewCert: AugmentedEvent<ApiType, [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32], { issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32 }>; + NewCert: AugmentedEvent< + ApiType, + [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32], + { issuer: u32; issuerIssuedCount: u32; receiver: u32; receiverReceivedCount: u32 } + >; /** * Removed certification * [issuer, issuer_issued_count, receiver, receiver_received_count, expiration] **/ - RemovedCert: AugmentedEvent<ApiType, [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool], { issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool }>; + RemovedCert: AugmentedEvent< + ApiType, + [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool], + { issuer: u32; issuerIssuedCount: u32; receiver: u32; receiverReceivedCount: u32; expiration: bool } + >; /** * Renewed certification * [issuer, receiver] **/ - RenewedCert: AugmentedEvent<ApiType, [issuer: u32, receiver: u32], { issuer: u32, receiver: u32 }>; + RenewedCert: AugmentedEvent<ApiType, [issuer: u32, receiver: u32], { issuer: u32; receiver: u32 }>; /** * Generic event **/ @@ -211,7 +231,11 @@ declare module '@polkadot/api-base/types/events' { /** * New authority set has been applied. **/ - NewAuthorities: AugmentedEvent<ApiType, [authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>>], { authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>> }>; + NewAuthorities: AugmentedEvent< + ApiType, + [authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>>], + { authoritySet: Vec<ITuple<[SpConsensusGrandpaAppPublic, u64]>> } + >; /** * Current authority set has been paused. **/ @@ -226,22 +250,30 @@ declare module '@polkadot/api-base/types/events' { [key: string]: AugmentedEvent<ApiType>; }; identity: { - IdtyChangedOwnerKey: AugmentedEvent<ApiType, [idtyIndex: u32, newOwnerKey: AccountId32], { idtyIndex: u32, newOwnerKey: AccountId32 }>; + IdtyChangedOwnerKey: AugmentedEvent<ApiType, [idtyIndex: u32, newOwnerKey: AccountId32], { idtyIndex: u32; newOwnerKey: AccountId32 }>; /** * An identity has been confirmed by its owner * [idty_index, owner_key, name] **/ - IdtyConfirmed: AugmentedEvent<ApiType, [idtyIndex: u32, ownerKey: AccountId32, name: Text], { idtyIndex: u32, ownerKey: AccountId32, name: Text }>; + IdtyConfirmed: AugmentedEvent< + ApiType, + [idtyIndex: u32, ownerKey: AccountId32, name: Text], + { idtyIndex: u32; ownerKey: AccountId32; name: Text } + >; /** * A new identity has been created * [idty_index, owner_key] **/ - IdtyCreated: AugmentedEvent<ApiType, [idtyIndex: u32, ownerKey: AccountId32], { idtyIndex: u32, ownerKey: AccountId32 }>; + IdtyCreated: AugmentedEvent<ApiType, [idtyIndex: u32, ownerKey: AccountId32], { idtyIndex: u32; ownerKey: AccountId32 }>; /** * An identity has been removed * [idty_index] **/ - IdtyRemoved: AugmentedEvent<ApiType, [idtyIndex: u32, reason: PalletIdentityIdtyRemovalReason], { idtyIndex: u32, reason: PalletIdentityIdtyRemovalReason }>; + IdtyRemoved: AugmentedEvent< + ApiType, + [idtyIndex: u32, reason: PalletIdentityIdtyRemovalReason], + { idtyIndex: u32; reason: PalletIdentityIdtyRemovalReason } + >; /** * An identity has been validated * [idty_index] @@ -260,11 +292,19 @@ declare module '@polkadot/api-base/types/events' { /** * A new heartbeat was received from `AuthorityId`. **/ - HeartbeatReceived: AugmentedEvent<ApiType, [authorityId: PalletImOnlineSr25519AppSr25519Public], { authorityId: PalletImOnlineSr25519AppSr25519Public }>; + HeartbeatReceived: AugmentedEvent< + ApiType, + [authorityId: PalletImOnlineSr25519AppSr25519Public], + { authorityId: PalletImOnlineSr25519AppSr25519Public } + >; /** * At the end of the session, at least one validator was found to be offline. **/ - SomeOffline: AugmentedEvent<ApiType, [offline: Vec<ITuple<[AccountId32, CommonRuntimeEntitiesValidatorFullIdentification]>>], { offline: Vec<ITuple<[AccountId32, CommonRuntimeEntitiesValidatorFullIdentification]>> }>; + SomeOffline: AugmentedEvent< + ApiType, + [offline: Vec<ITuple<[AccountId32, CommonRuntimeEntitiesValidatorFullIdentification]>>], + { offline: Vec<ITuple<[AccountId32, CommonRuntimeEntitiesValidatorFullIdentification]>> } + >; /** * Generic event **/ @@ -310,19 +350,47 @@ declare module '@polkadot/api-base/types/events' { /** * A multisig operation has been approved by someone. **/ - MultisigApproval: AugmentedEvent<ApiType, [approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed], { approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed }>; + MultisigApproval: AugmentedEvent< + ApiType, + [approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed], + { approving: AccountId32; timepoint: PalletMultisigTimepoint; multisig: AccountId32; callHash: U8aFixed } + >; /** * A multisig operation has been cancelled. **/ - MultisigCancelled: AugmentedEvent<ApiType, [cancelling: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed], { cancelling: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed }>; + MultisigCancelled: AugmentedEvent< + ApiType, + [cancelling: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed], + { cancelling: AccountId32; timepoint: PalletMultisigTimepoint; multisig: AccountId32; callHash: U8aFixed } + >; /** * A multisig operation has been executed. **/ - MultisigExecuted: AugmentedEvent<ApiType, [approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result<Null, SpRuntimeDispatchError>], { approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result<Null, SpRuntimeDispatchError> }>; + MultisigExecuted: AugmentedEvent< + ApiType, + [ + approving: AccountId32, + timepoint: PalletMultisigTimepoint, + multisig: AccountId32, + callHash: U8aFixed, + result: Result<Null, SpRuntimeDispatchError>, + ], + { + approving: AccountId32; + timepoint: PalletMultisigTimepoint; + multisig: AccountId32; + callHash: U8aFixed; + result: Result<Null, SpRuntimeDispatchError>; + } + >; /** * A new multisig operation has begun. **/ - NewMultisig: AugmentedEvent<ApiType, [approving: AccountId32, multisig: AccountId32, callHash: U8aFixed], { approving: AccountId32, multisig: AccountId32, callHash: U8aFixed }>; + NewMultisig: AugmentedEvent< + ApiType, + [approving: AccountId32, multisig: AccountId32, callHash: U8aFixed], + { approving: AccountId32; multisig: AccountId32; callHash: U8aFixed } + >; /** * Generic event **/ @@ -334,16 +402,24 @@ declare module '@polkadot/api-base/types/events' { * (kind-specific) time slot. This event is not deposited for duplicate slashes. * \[kind, timeslot\]. **/ - Offence: AugmentedEvent<ApiType, [kind: U8aFixed, timeslot: Bytes], { kind: U8aFixed, timeslot: Bytes }>; + Offence: AugmentedEvent<ApiType, [kind: U8aFixed, timeslot: Bytes], { kind: U8aFixed; timeslot: Bytes }>; /** * Generic event **/ [key: string]: AugmentedEvent<ApiType>; }; oneshotAccount: { - OneshotAccountConsumed: AugmentedEvent<ApiType, [account: AccountId32, dest1: ITuple<[AccountId32, u64]>, dest2: Option<ITuple<[AccountId32, u64]>>], { account: AccountId32, dest1: ITuple<[AccountId32, u64]>, dest2: Option<ITuple<[AccountId32, u64]>> }>; - OneshotAccountCreated: AugmentedEvent<ApiType, [account: AccountId32, balance: u64, creator: AccountId32], { account: AccountId32, balance: u64, creator: AccountId32 }>; - Withdraw: AugmentedEvent<ApiType, [account: AccountId32, balance: u64], { account: AccountId32, balance: u64 }>; + OneshotAccountConsumed: AugmentedEvent< + ApiType, + [account: AccountId32, dest1: ITuple<[AccountId32, u64]>, dest2: Option<ITuple<[AccountId32, u64]>>], + { account: AccountId32; dest1: ITuple<[AccountId32, u64]>; dest2: Option<ITuple<[AccountId32, u64]>> } + >; + OneshotAccountCreated: AugmentedEvent< + ApiType, + [account: AccountId32, balance: u64, creator: AccountId32], + { account: AccountId32; balance: u64; creator: AccountId32 } + >; + Withdraw: AugmentedEvent<ApiType, [account: AccountId32, balance: u64], { account: AccountId32; balance: u64 }>; /** * Generic event **/ @@ -371,11 +447,15 @@ declare module '@polkadot/api-base/types/events' { /** * Filled randomness **/ - FilledRandomness: AugmentedEvent<ApiType, [requestId: u64, randomness: H256], { requestId: u64, randomness: H256 }>; + FilledRandomness: AugmentedEvent<ApiType, [requestId: u64, randomness: H256], { requestId: u64; randomness: H256 }>; /** * Requested randomness **/ - RequestedRandomness: AugmentedEvent<ApiType, [requestId: u64, salt: H256, r_type: PalletProvideRandomnessRandomnessType], { requestId: u64, salt: H256, r_type: PalletProvideRandomnessRandomnessType }>; + RequestedRandomness: AugmentedEvent< + ApiType, + [requestId: u64, salt: H256, r_type: PalletProvideRandomnessRandomnessType], + { requestId: u64; salt: H256; r_type: PalletProvideRandomnessRandomnessType } + >; /** * Generic event **/ @@ -385,11 +465,19 @@ declare module '@polkadot/api-base/types/events' { /** * An announcement was placed to make a call in the future. **/ - Announced: AugmentedEvent<ApiType, [real: AccountId32, proxy: AccountId32, callHash: H256], { real: AccountId32, proxy: AccountId32, callHash: H256 }>; + Announced: AugmentedEvent< + ApiType, + [real: AccountId32, proxy: AccountId32, callHash: H256], + { real: AccountId32; proxy: AccountId32; callHash: H256 } + >; /** * A proxy was added. **/ - ProxyAdded: AugmentedEvent<ApiType, [delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32], { delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32 }>; + ProxyAdded: AugmentedEvent< + ApiType, + [delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32], + { delegator: AccountId32; delegatee: AccountId32; proxyType: GdevRuntimeProxyType; delay: u32 } + >; /** * A proxy was executed correctly, with the given. **/ @@ -397,12 +485,20 @@ declare module '@polkadot/api-base/types/events' { /** * A proxy was removed. **/ - ProxyRemoved: AugmentedEvent<ApiType, [delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32], { delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32 }>; + ProxyRemoved: AugmentedEvent< + ApiType, + [delegator: AccountId32, delegatee: AccountId32, proxyType: GdevRuntimeProxyType, delay: u32], + { delegator: AccountId32; delegatee: AccountId32; proxyType: GdevRuntimeProxyType; delay: u32 } + >; /** * A pure account has been created by new proxy with given * disambiguation index and proxy type. **/ - PureCreated: AugmentedEvent<ApiType, [pure: AccountId32, who: AccountId32, proxyType: GdevRuntimeProxyType, disambiguationIndex: u16], { pure: AccountId32, who: AccountId32, proxyType: GdevRuntimeProxyType, disambiguationIndex: u16 }>; + PureCreated: AugmentedEvent< + ApiType, + [pure: AccountId32, who: AccountId32, proxyType: GdevRuntimeProxyType, disambiguationIndex: u16], + { pure: AccountId32; who: AccountId32; proxyType: GdevRuntimeProxyType; disambiguationIndex: u16 } + >; /** * Generic event **/ @@ -420,7 +516,7 @@ declare module '@polkadot/api-base/types/events' { /** * Refunded fees to an account **/ - Refunded: AugmentedEvent<ApiType, [who: AccountId32, identity: u32, amount: u64], { who: AccountId32, identity: u32, amount: u64 }>; + Refunded: AugmentedEvent<ApiType, [who: AccountId32, identity: u32, amount: u64], { who: AccountId32; identity: u32; amount: u64 }>; /** * Refund failed **/ @@ -438,27 +534,35 @@ declare module '@polkadot/api-base/types/events' { /** * The call for the provided hash was not found so the task has been aborted. **/ - CallUnavailable: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>; + CallUnavailable: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>; id: Option<U8aFixed> }>; /** * Canceled some task. **/ - Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>; + Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32; index: u32 }>; /** * Dispatched some task. **/ - Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>; + Dispatched: AugmentedEvent< + ApiType, + [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], + { task: ITuple<[u32, u32]>; id: Option<U8aFixed>; result: Result<Null, SpRuntimeDispatchError> } + >; /** * The given task was unable to be renewed since the agenda is full at that block. **/ - PeriodicFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>; + PeriodicFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>; id: Option<U8aFixed> }>; /** * The given task can never be executed since it is overweight. **/ - PermanentlyOverweight: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed> }>; + PermanentlyOverweight: AugmentedEvent< + ApiType, + [task: ITuple<[u32, u32]>, id: Option<U8aFixed>], + { task: ITuple<[u32, u32]>; id: Option<U8aFixed> } + >; /** * Scheduled some task. **/ - Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>; + Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32; index: u32 }>; /** * Generic event **/ @@ -480,17 +584,25 @@ declare module '@polkadot/api-base/types/events' { * New certification * [issuer, issuer_issued_count, receiver, receiver_received_count] **/ - NewCert: AugmentedEvent<ApiType, [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32], { issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32 }>; + NewCert: AugmentedEvent< + ApiType, + [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32], + { issuer: u32; issuerIssuedCount: u32; receiver: u32; receiverReceivedCount: u32 } + >; /** * Removed certification * [issuer, issuer_issued_count, receiver, receiver_received_count, expiration] **/ - RemovedCert: AugmentedEvent<ApiType, [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool], { issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool }>; + RemovedCert: AugmentedEvent< + ApiType, + [issuer: u32, issuerIssuedCount: u32, receiver: u32, receiverReceivedCount: u32, expiration: bool], + { issuer: u32; issuerIssuedCount: u32; receiver: u32; receiverReceivedCount: u32; expiration: bool } + >; /** * Renewed certification * [issuer, receiver] **/ - RenewedCert: AugmentedEvent<ApiType, [issuer: u32, receiver: u32], { issuer: u32, receiver: u32 }>; + RenewedCert: AugmentedEvent<ApiType, [issuer: u32, receiver: u32], { issuer: u32; receiver: u32 }>; /** * Generic event **/ @@ -558,7 +670,11 @@ declare module '@polkadot/api-base/types/events' { /** * An extrinsic failed. **/ - ExtrinsicFailed: AugmentedEvent<ApiType, [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], { dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo }>; + ExtrinsicFailed: AugmentedEvent< + ApiType, + [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], + { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } + >; /** * An extrinsic completed successfully. **/ @@ -574,7 +690,7 @@ declare module '@polkadot/api-base/types/events' { /** * On on-chain remark happened. **/ - Remarked: AugmentedEvent<ApiType, [sender: AccountId32, hash_: H256], { sender: AccountId32, hash_: H256 }>; + Remarked: AugmentedEvent<ApiType, [sender: AccountId32, hash_: H256], { sender: AccountId32; hash_: H256 }>; /** * Generic event **/ @@ -588,7 +704,7 @@ declare module '@polkadot/api-base/types/events' { /** * A proposal was closed because its threshold was reached or after its duration was up. **/ - Closed: AugmentedEvent<ApiType, [proposalHash: H256, yes: u32, no: u32], { proposalHash: H256, yes: u32, no: u32 }>; + Closed: AugmentedEvent<ApiType, [proposalHash: H256, yes: u32, no: u32], { proposalHash: H256; yes: u32; no: u32 }>; /** * A motion was not approved by the required threshold. **/ @@ -596,21 +712,37 @@ declare module '@polkadot/api-base/types/events' { /** * A motion was executed; result will be `Ok` if it returned without error. **/ - Executed: AugmentedEvent<ApiType, [proposalHash: H256, result: Result<Null, SpRuntimeDispatchError>], { proposalHash: H256, result: Result<Null, SpRuntimeDispatchError> }>; + Executed: AugmentedEvent< + ApiType, + [proposalHash: H256, result: Result<Null, SpRuntimeDispatchError>], + { proposalHash: H256; result: Result<Null, SpRuntimeDispatchError> } + >; /** * A single member did some action; result will be `Ok` if it returned without error. **/ - MemberExecuted: AugmentedEvent<ApiType, [proposalHash: H256, result: Result<Null, SpRuntimeDispatchError>], { proposalHash: H256, result: Result<Null, SpRuntimeDispatchError> }>; + MemberExecuted: AugmentedEvent< + ApiType, + [proposalHash: H256, result: Result<Null, SpRuntimeDispatchError>], + { proposalHash: H256; result: Result<Null, SpRuntimeDispatchError> } + >; /** * A motion (given hash) has been proposed (by given account) with a threshold (given * `MemberCount`). **/ - Proposed: AugmentedEvent<ApiType, [account: AccountId32, proposalIndex: u32, proposalHash: H256, threshold: u32], { account: AccountId32, proposalIndex: u32, proposalHash: H256, threshold: u32 }>; + Proposed: AugmentedEvent< + ApiType, + [account: AccountId32, proposalIndex: u32, proposalHash: H256, threshold: u32], + { account: AccountId32; proposalIndex: u32; proposalHash: H256; threshold: u32 } + >; /** * A motion (given hash) has been voted on by given account, leaving * a tally (yes votes and no votes given respectively as `MemberCount`). **/ - Voted: AugmentedEvent<ApiType, [account: AccountId32, proposalHash: H256, voted: bool, yes: u32, no: u32], { account: AccountId32, proposalHash: H256, voted: bool, yes: u32, no: u32 }>; + Voted: AugmentedEvent< + ApiType, + [account: AccountId32, proposalHash: H256, voted: bool, yes: u32, no: u32], + { account: AccountId32; proposalHash: H256; voted: bool; yes: u32; no: u32 } + >; /** * Generic event **/ @@ -621,7 +753,7 @@ declare module '@polkadot/api-base/types/events' { * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, * has been paid by `who`. **/ - TransactionFeePaid: AugmentedEvent<ApiType, [who: AccountId32, actualFee: u64, tip: u64], { who: AccountId32, actualFee: u64, tip: u64 }>; + TransactionFeePaid: AugmentedEvent<ApiType, [who: AccountId32, actualFee: u64, tip: u64], { who: AccountId32; actualFee: u64; tip: u64 }>; /** * Generic event **/ @@ -631,7 +763,11 @@ declare module '@polkadot/api-base/types/events' { /** * Some funds have been allocated. **/ - Awarded: AugmentedEvent<ApiType, [proposalIndex: u32, award: u64, account: AccountId32], { proposalIndex: u32, award: u64, account: AccountId32 }>; + Awarded: AugmentedEvent< + ApiType, + [proposalIndex: u32, award: u64, account: AccountId32], + { proposalIndex: u32; award: u64; account: AccountId32 } + >; /** * Some of our funds have been burnt. **/ @@ -647,7 +783,7 @@ declare module '@polkadot/api-base/types/events' { /** * A proposal was rejected; funds were slashed. **/ - Rejected: AugmentedEvent<ApiType, [proposalIndex: u32, slashed: u64], { proposalIndex: u32, slashed: u64 }>; + Rejected: AugmentedEvent<ApiType, [proposalIndex: u32, slashed: u64], { proposalIndex: u32; slashed: u64 }>; /** * Spending has finished; this is the amount that rolls over until next spend. **/ @@ -655,7 +791,11 @@ declare module '@polkadot/api-base/types/events' { /** * A new spend proposal has been approved. **/ - SpendApproved: AugmentedEvent<ApiType, [proposalIndex: u32, amount: u64, beneficiary: AccountId32], { proposalIndex: u32, amount: u64, beneficiary: AccountId32 }>; + SpendApproved: AugmentedEvent< + ApiType, + [proposalIndex: u32, amount: u64, beneficiary: AccountId32], + { proposalIndex: u32; amount: u64; beneficiary: AccountId32 } + >; /** * We have ended a spend period and will now allocate funds. **/ @@ -663,7 +803,7 @@ declare module '@polkadot/api-base/types/events' { /** * The inactive funds of the pallet have been updated. **/ - UpdatedInactive: AugmentedEvent<ApiType, [reactivated: u64, deactivated: u64], { reactivated: u64, deactivated: u64 }>; + UpdatedInactive: AugmentedEvent<ApiType, [reactivated: u64, deactivated: u64], { reactivated: u64; deactivated: u64 }>; /** * Generic event **/ @@ -673,19 +813,27 @@ declare module '@polkadot/api-base/types/events' { /** * A new universal dividend is created. **/ - NewUdCreated: AugmentedEvent<ApiType, [amount: u64, index: u16, monetaryMass: u64, membersCount: u64], { amount: u64, index: u16, monetaryMass: u64, membersCount: u64 }>; + NewUdCreated: AugmentedEvent< + ApiType, + [amount: u64, index: u16, monetaryMass: u64, membersCount: u64], + { amount: u64; index: u16; monetaryMass: u64; membersCount: u64 } + >; /** * The universal dividend has been re-evaluated. **/ - UdReevalued: AugmentedEvent<ApiType, [newUdAmount: u64, monetaryMass: u64, membersCount: u64], { newUdAmount: u64, monetaryMass: u64, membersCount: u64 }>; + UdReevalued: AugmentedEvent< + ApiType, + [newUdAmount: u64, monetaryMass: u64, membersCount: u64], + { newUdAmount: u64; monetaryMass: u64; membersCount: u64 } + >; /** * DUs were automatically transferred as part of a member removal. **/ - UdsAutoPaidAtRemoval: AugmentedEvent<ApiType, [count: u16, total: u64, who: AccountId32], { count: u16, total: u64, who: AccountId32 }>; + UdsAutoPaidAtRemoval: AugmentedEvent<ApiType, [count: u16, total: u64, who: AccountId32], { count: u16; total: u64; who: AccountId32 }>; /** * A member claimed his UDs. **/ - UdsClaimed: AugmentedEvent<ApiType, [count: u16, total: u64, who: AccountId32], { count: u16, total: u64, who: AccountId32 }>; + UdsClaimed: AugmentedEvent<ApiType, [count: u16, total: u64, who: AccountId32], { count: u16; total: u64; who: AccountId32 }>; /** * Generic event **/ @@ -714,7 +862,7 @@ declare module '@polkadot/api-base/types/events' { * Batch of dispatches did not complete fully. Index of first failing dispatch given, as * well as the error. **/ - BatchInterrupted: AugmentedEvent<ApiType, [index: u32, error: SpRuntimeDispatchError], { index: u32, error: SpRuntimeDispatchError }>; + BatchInterrupted: AugmentedEvent<ApiType, [index: u32, error: SpRuntimeDispatchError], { index: u32; error: SpRuntimeDispatchError }>; /** * A call was dispatched. **/ diff --git a/src/interfaces/augment-api-query.ts b/src/interfaces/augment-api-query.ts index b2a4f9a4e635e93e574ec4a9b6cd8deaa5f78516..9ce4fdd14da2f96053c6a9a12c1c320d2f5fa156 100644 --- a/src/interfaces/augment-api-query.ts +++ b/src/interfaces/augment-api-query.ts @@ -17,15 +17,22 @@ export type __QueryableStorageEntry<ApiType extends ApiTypes> = QueryableStorage declare module '@polkadot/api-base/types/storage' { interface AugmentedQueries<ApiType extends ApiTypes> { account: { - pendingNewAccounts: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<Null>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; - pendingRandomIdAssignments: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<AccountId32>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>; + pendingNewAccounts: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<Null>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; + pendingRandomIdAssignments: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<AccountId32>>, [u64]> & + QueryableStorageEntry<ApiType, [u64]>; /** * Generic query **/ [key: string]: QueryableStorageEntry<ApiType>; }; atomicSwap: { - pendingSwaps: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: U8aFixed | string | Uint8Array) => Observable<Option<PalletAtomicSwapPendingSwap>>, [AccountId32, U8aFixed]> & QueryableStorageEntry<ApiType, [AccountId32, U8aFixed]>; + pendingSwaps: AugmentedQuery< + ApiType, + (arg1: AccountId32 | string | Uint8Array, arg2: U8aFixed | string | Uint8Array) => Observable<Option<PalletAtomicSwapPendingSwap>>, + [AccountId32, U8aFixed] + > & + QueryableStorageEntry<ApiType, [AccountId32, U8aFixed]>; /** * Generic query **/ @@ -35,7 +42,8 @@ declare module '@polkadot/api-base/types/storage' { /** * maps member id to account id **/ - accountIdOf: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<AccountId32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + accountIdOf: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<AccountId32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * count the number of authorities **/ @@ -48,7 +56,8 @@ declare module '@polkadot/api-base/types/storage' { /** * maps member id to member data **/ - members: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletAuthorityMembersMemberData>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + members: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletAuthorityMembersMemberData>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * list online authorities **/ @@ -80,7 +89,7 @@ declare module '@polkadot/api-base/types/storage' { /** * This field should always be populated during block processing unless * secondary plain slots are enabled (which don't contain a VRF output). - * + * * It is set in `on_finalize`, before it will contain the value from the last block. **/ authorVrfRandomness: AugmentedQuery<ApiType, () => Observable<Option<U8aFixed>>, []> & QueryableStorageEntry<ApiType, []>; @@ -114,10 +123,11 @@ declare module '@polkadot/api-base/types/storage' { * Temporary value (cleared at block finalization) which is `Some` * if per-block initialization has already been called for current block. **/ - initialized: AugmentedQuery<ApiType, () => Observable<Option<Option<SpConsensusBabeDigestsPreDigest>>>, []> & QueryableStorageEntry<ApiType, []>; + initialized: AugmentedQuery<ApiType, () => Observable<Option<Option<SpConsensusBabeDigestsPreDigest>>>, []> & + QueryableStorageEntry<ApiType, []>; /** * How late the current block is compared to its parent. - * + * * This entry is populated as part of block execution and is cleaned up * on block finalization. Querying this storage entry outside of block * execution context should always yield zero. @@ -126,12 +136,14 @@ declare module '@polkadot/api-base/types/storage' { /** * Next epoch authorities. **/ - nextAuthorities: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[SpConsensusBabeAppPublic, u64]>>>, []> & QueryableStorageEntry<ApiType, []>; + nextAuthorities: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[SpConsensusBabeAppPublic, u64]>>>, []> & + QueryableStorageEntry<ApiType, []>; /** * The configuration for the next epoch, `None` if the config will not change * (you can fallback to `EpochConfig` instead in that case). **/ - nextEpochConfig: AugmentedQuery<ApiType, () => Observable<Option<SpConsensusBabeBabeEpochConfiguration>>, []> & QueryableStorageEntry<ApiType, []>; + nextEpochConfig: AugmentedQuery<ApiType, () => Observable<Option<SpConsensusBabeBabeEpochConfiguration>>, []> & + QueryableStorageEntry<ApiType, []>; /** * Next epoch randomness. **/ @@ -139,12 +151,13 @@ declare module '@polkadot/api-base/types/storage' { /** * Pending epoch configuration change that will be applied when the next epoch is enacted. **/ - pendingEpochConfigChange: AugmentedQuery<ApiType, () => Observable<Option<SpConsensusBabeDigestsNextConfigDescriptor>>, []> & QueryableStorageEntry<ApiType, []>; + pendingEpochConfigChange: AugmentedQuery<ApiType, () => Observable<Option<SpConsensusBabeDigestsNextConfigDescriptor>>, []> & + QueryableStorageEntry<ApiType, []>; /** * The epoch randomness for the *current* epoch. - * + * * # Security - * + * * This MUST NOT be used for gambling, as it can be influenced by a * malicious validator in the short term. It MAY be used in many * cryptographic protocols, however, so long as one remembers that this @@ -155,11 +168,11 @@ declare module '@polkadot/api-base/types/storage' { randomness: AugmentedQuery<ApiType, () => Observable<U8aFixed>, []> & QueryableStorageEntry<ApiType, []>; /** * Randomness under construction. - * + * * We make a trade-off between storage accesses and list length. * We store the under-construction randomness in segments of up to * `UNDER_CONSTRUCTION_SEGMENT_LENGTH`. - * + * * Once a segment reaches this length, we begin the next one. * We reset all segments and return to `0` at the beginning of every * epoch. @@ -168,7 +181,7 @@ declare module '@polkadot/api-base/types/storage' { /** * A list of the last 100 skipped epochs and the corresponding session index * when the epoch was skipped. - * + * * This is only used for validating equivocation proofs. An equivocation proof * must contains a key-ownership proof for a given session, therefore we need a * way to tie together sessions and epoch indices, i.e. we need to validate that @@ -179,7 +192,8 @@ declare module '@polkadot/api-base/types/storage' { /** * TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. **/ - underConstruction: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<U8aFixed>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + underConstruction: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<U8aFixed>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -188,39 +202,42 @@ declare module '@polkadot/api-base/types/storage' { balances: { /** * The Balances pallet example of storing the balance of an account. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>> * } * ``` - * + * * You can also store the balance of an account in the `System` pallet. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = System * } * ``` - * + * * But this comes with tradeoffs, storing account balances in the system pallet stores * `frame_system` data alongside the account data contrary to storing account balances in the * `Balances` pallet, which uses a `StorageMap` to store balances data only. * NOTE: This is only used in the case that this pallet is used to store balances. **/ - account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<PalletBalancesAccountData>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Freeze locks on account balances. **/ - freezes: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesIdAmount>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + freezes: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesIdAmount>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Holds on account balances. **/ - holds: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesIdAmount>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + holds: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesIdAmount>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * The total units of outstanding deactivated balance in the system. **/ @@ -229,11 +246,13 @@ declare module '@polkadot/api-base/types/storage' { * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. **/ - locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + locks: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesBalanceLock>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Named reserves on some account balances. **/ - reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + reserves: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Vec<PalletBalancesReserveData>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * The total units issued in the system. **/ @@ -247,15 +266,18 @@ declare module '@polkadot/api-base/types/storage' { /** * Certifications by receiver **/ - certsByReceiver: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + certsByReceiver: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Certifications removable on **/ - storageCertsRemovableOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Vec<ITuple<[u32, u32]>>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + storageCertsRemovableOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Vec<ITuple<[u32, u32]>>>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Certifications metada by issuer **/ - storageIdtyCertMeta: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletCertificationIdtyCertMeta>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + storageIdtyCertMeta: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletCertificationIdtyCertMeta>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -269,7 +291,8 @@ declare module '@polkadot/api-base/types/storage' { /** * Identities by distance status expiration session index **/ - distanceStatusExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + distanceStatusExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Block for which the distance rule must be checked **/ @@ -288,12 +311,17 @@ declare module '@polkadot/api-base/types/storage' { evaluationPool2: AugmentedQuery<ApiType, () => Observable<PalletDistanceEvaluationPool>, []> & QueryableStorageEntry<ApiType, []>; /** * Distance evaluation status by identity - * + * * * `.0` is the account who requested an evaluation and reserved the price, * for whom the price will be unreserved or slashed when the evaluation completes. * * `.1` is the status of the evaluation. **/ - identityDistanceStatus: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + identityDistanceStatus: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>>>, + [u32] + > & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -316,16 +344,17 @@ declare module '@polkadot/api-base/types/storage' { /** * A mapping from grandpa set ID to the index of the *most recent* session for which its * members were responsible. - * + * * This is only used for validating equivocation proofs. An equivocation proof must * contains a key-ownership proof for a given session, therefore we need a way to tie * together sessions and GRANDPA set ids, i.e. we need to validate that a validator * was the owner of a given key on a given session, and what the active set ID was * during that session. - * + * * TWOX-NOTE: `SetId` is not under user control. **/ - setIdSession: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>; + setIdSession: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<u32>>, [u64]> & + QueryableStorageEntry<ApiType, [u64]>; /** * `true` if we are currently stalled. **/ @@ -347,7 +376,8 @@ declare module '@polkadot/api-base/types/storage' { /** * maps identity index to identity value **/ - identities: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletIdentityIdtyValue>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + identities: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletIdentityIdtyValue>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * maps identity name to identity index (simply a set) **/ @@ -355,11 +385,17 @@ declare module '@polkadot/api-base/types/storage' { /** * maps block number to the list of identities set to be removed at this bloc **/ - identitiesRemovableOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, PalletIdentityIdtyStatus]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + identitiesRemovableOn: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, PalletIdentityIdtyStatus]>>>, + [u32] + > & + QueryableStorageEntry<ApiType, [u32]>; /** * maps account id to identity index **/ - identityIndexOf: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + identityIndexOf: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<u32>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * counter of the identity index to give to the next identity **/ @@ -374,16 +410,21 @@ declare module '@polkadot/api-base/types/storage' { * For each session index, we keep a mapping of `ValidatorId<T>` to the * number of blocks authored by the given authority. **/ - authoredBlocks: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<u32>, [u32, AccountId32]> & QueryableStorageEntry<ApiType, [u32, AccountId32]>; + authoredBlocks: AugmentedQuery< + ApiType, + (arg1: u32 | AnyNumber | Uint8Array, arg2: AccountId32 | string | Uint8Array) => Observable<u32>, + [u32, AccountId32] + > & + QueryableStorageEntry<ApiType, [u32, AccountId32]>; /** * The block number after which it's ok to send heartbeats in the current * session. - * + * * At the beginning of each session we set this to a value that should fall * roughly in the middle of the session duration. The idea is to first wait for * the validators to produce a block in the current session, so that the * heartbeat later on will not be necessary. - * + * * This value will only be used as a fallback if we fail to get a proper session * progress estimate from `NextSessionRotation`, as those estimates should be * more accurate then the value we calculate for `HeartbeatAfter`. @@ -397,7 +438,15 @@ declare module '@polkadot/api-base/types/storage' { * For each session index, we keep a mapping of `SessionIndex` and `AuthIndex` to * `WrapperOpaque<BoundedOpaqueNetworkState>`. **/ - receivedHeartbeats: AugmentedQuery<ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<Option<WrapperOpaque<PalletImOnlineBoundedOpaqueNetworkState>>>, [u32, u32]> & QueryableStorageEntry<ApiType, [u32, u32]>; + receivedHeartbeats: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable<Option<WrapperOpaque<PalletImOnlineBoundedOpaqueNetworkState>>>, + [u32, u32] + > & + QueryableStorageEntry<ApiType, [u32, u32]>; /** * Generic query **/ @@ -411,19 +460,23 @@ declare module '@polkadot/api-base/types/storage' { /** * maps identity id to membership data **/ - membership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<SpMembershipMembershipData>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + membership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<SpMembershipMembershipData>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * maps block number to the list of identity id set to expire at this block **/ - membershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + membershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * identities with pending membership request **/ - pendingMembership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + pendingMembership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * maps block number to the list of memberships set to expire at this block **/ - pendingMembershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + pendingMembershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -433,7 +486,12 @@ declare module '@polkadot/api-base/types/storage' { /** * The set of open multisig operations. **/ - multisigs: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: U8aFixed | string | Uint8Array) => Observable<Option<PalletMultisigMultisig>>, [AccountId32, U8aFixed]> & QueryableStorageEntry<ApiType, [AccountId32, U8aFixed]>; + multisigs: AugmentedQuery< + ApiType, + (arg1: AccountId32 | string | Uint8Array, arg2: U8aFixed | string | Uint8Array) => Observable<Option<PalletMultisigMultisig>>, + [AccountId32, U8aFixed] + > & + QueryableStorageEntry<ApiType, [AccountId32, U8aFixed]>; /** * Generic query **/ @@ -443,18 +501,25 @@ declare module '@polkadot/api-base/types/storage' { /** * A vector of reports of the same kind that happened at the same time slot. **/ - concurrentReportsIndex: AugmentedQuery<ApiType, (arg1: U8aFixed | string | Uint8Array, arg2: Bytes | string | Uint8Array) => Observable<Vec<H256>>, [U8aFixed, Bytes]> & QueryableStorageEntry<ApiType, [U8aFixed, Bytes]>; + concurrentReportsIndex: AugmentedQuery< + ApiType, + (arg1: U8aFixed | string | Uint8Array, arg2: Bytes | string | Uint8Array) => Observable<Vec<H256>>, + [U8aFixed, Bytes] + > & + QueryableStorageEntry<ApiType, [U8aFixed, Bytes]>; /** * The primary structure that holds all offence records keyed by report identifiers. **/ - reports: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<SpStakingOffenceOffenceDetails>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>; + reports: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<SpStakingOffenceOffenceDetails>>, [H256]> & + QueryableStorageEntry<ApiType, [H256]>; /** * Generic query **/ [key: string]: QueryableStorageEntry<ApiType>; }; oneshotAccount: { - oneshotAccounts: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<u64>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + oneshotAccounts: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<u64>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Generic query **/ @@ -468,11 +533,17 @@ declare module '@polkadot/api-base/types/storage' { [key: string]: QueryableStorageEntry<ApiType>; }; preimage: { - preimageFor: AugmentedQuery<ApiType, (arg: ITuple<[H256, u32]> | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable<Option<Bytes>>, [ITuple<[H256, u32]>]> & QueryableStorageEntry<ApiType, [ITuple<[H256, u32]>]>; + preimageFor: AugmentedQuery< + ApiType, + (arg: ITuple<[H256, u32]> | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable<Option<Bytes>>, + [ITuple<[H256, u32]>] + > & + QueryableStorageEntry<ApiType, [ITuple<[H256, u32]>]>; /** * The request status of a given hash. **/ - statusFor: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<PalletPreimageRequestStatus>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>; + statusFor: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<PalletPreimageRequestStatus>>, [H256]> & + QueryableStorageEntry<ApiType, [H256]>; /** * Generic query **/ @@ -485,9 +556,12 @@ declare module '@polkadot/api-base/types/storage' { counterForRequestsIds: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>; nexEpochHookIn: AugmentedQuery<ApiType, () => Observable<u8>, []> & QueryableStorageEntry<ApiType, []>; requestIdProvider: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>; - requestsIds: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>; - requestsReadyAtEpoch: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<PalletProvideRandomnessRequest>>, [u64]> & QueryableStorageEntry<ApiType, [u64]>; - requestsReadyAtNextBlock: AugmentedQuery<ApiType, () => Observable<Vec<PalletProvideRandomnessRequest>>, []> & QueryableStorageEntry<ApiType, []>; + requestsIds: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u64]> & + QueryableStorageEntry<ApiType, [u64]>; + requestsReadyAtEpoch: AugmentedQuery<ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable<Vec<PalletProvideRandomnessRequest>>, [u64]> & + QueryableStorageEntry<ApiType, [u64]>; + requestsReadyAtNextBlock: AugmentedQuery<ApiType, () => Observable<Vec<PalletProvideRandomnessRequest>>, []> & + QueryableStorageEntry<ApiType, []>; /** * Generic query **/ @@ -497,12 +571,22 @@ declare module '@polkadot/api-base/types/storage' { /** * The announcements made by the proxy (key). **/ - announcements: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<ITuple<[Vec<PalletProxyAnnouncement>, u64]>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + announcements: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable<ITuple<[Vec<PalletProxyAnnouncement>, u64]>>, + [AccountId32] + > & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * The set of account proxies. Maps the account which has delegated to the accounts * which are being delegated to, together with the amount held on deposit. **/ - proxies: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<ITuple<[Vec<PalletProxyProxyDefinition>, u64]>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + proxies: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable<ITuple<[Vec<PalletProxyProxyDefinition>, u64]>>, + [AccountId32] + > & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Generic query **/ @@ -512,7 +596,8 @@ declare module '@polkadot/api-base/types/storage' { /** * maps identity index to quota **/ - idtyQuota: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletQuotaQuota>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + idtyQuota: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletQuotaQuota>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * fees waiting for refund **/ @@ -526,15 +611,17 @@ declare module '@polkadot/api-base/types/storage' { /** * Items to be executed, indexed by the block number that they should be executed on. **/ - agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletSchedulerScheduled>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletSchedulerScheduled>>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; incompleteSince: AugmentedQuery<ApiType, () => Observable<Option<u32>>, []> & QueryableStorageEntry<ApiType, []>; /** * Lookup from a name to the block number and index of the task. - * + * * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 * identities. **/ - lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>; + lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & + QueryableStorageEntry<ApiType, [U8aFixed]>; /** * Generic query **/ @@ -547,7 +634,7 @@ declare module '@polkadot/api-base/types/storage' { currentIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>; /** * Indices of disabled validators. - * + * * The vec is always kept sorted so that we can find whether a given validator is * disabled using binary search. It gets cleared when `on_session_ending` returns * a new set of identities. @@ -556,11 +643,19 @@ declare module '@polkadot/api-base/types/storage' { /** * The owner of a key. The key is the `KeyTypeId` + the encoded key. **/ - keyOwner: AugmentedQuery<ApiType, (arg: ITuple<[SpCoreCryptoKeyTypeId, Bytes]> | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable<Option<AccountId32>>, [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry<ApiType, [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>]>; + keyOwner: AugmentedQuery< + ApiType, + ( + arg: ITuple<[SpCoreCryptoKeyTypeId, Bytes]> | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array] + ) => Observable<Option<AccountId32>>, + [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] + > & + QueryableStorageEntry<ApiType, [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>]>; /** * The next session keys for a validator. **/ - nextKeys: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<GdevRuntimeOpaqueSessionKeys>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + nextKeys: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<GdevRuntimeOpaqueSessionKeys>>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * True if the underlying economic identities or weighting behind the validators * has changed in the queued validator set. @@ -570,7 +665,8 @@ declare module '@polkadot/api-base/types/storage' { * The queued keys for the next session. When the next session begins, these keys * will be used to determine the validator's session keys. **/ - queuedKeys: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[AccountId32, GdevRuntimeOpaqueSessionKeys]>>>, []> & QueryableStorageEntry<ApiType, []>; + queuedKeys: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[AccountId32, GdevRuntimeOpaqueSessionKeys]>>>, []> & + QueryableStorageEntry<ApiType, []>; /** * The current set of validators. **/ @@ -584,15 +680,18 @@ declare module '@polkadot/api-base/types/storage' { /** * Certifications by receiver **/ - certsByReceiver: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + certsByReceiver: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Certifications removable on **/ - storageCertsRemovableOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Vec<ITuple<[u32, u32]>>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + storageCertsRemovableOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Vec<ITuple<[u32, u32]>>>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Certifications metada by issuer **/ - storageIdtyCertMeta: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletCertificationIdtyCertMeta>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + storageIdtyCertMeta: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<PalletCertificationIdtyCertMeta>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -606,19 +705,23 @@ declare module '@polkadot/api-base/types/storage' { /** * maps identity id to membership data **/ - membership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<SpMembershipMembershipData>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + membership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<SpMembershipMembershipData>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * maps block number to the list of identity id set to expire at this block **/ - membershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + membershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * identities with pending membership request **/ - pendingMembership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + pendingMembership: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<Null>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * maps block number to the list of memberships set to expire at this block **/ - pendingMembershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + pendingMembershipsExpireOn: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<u32>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ @@ -638,7 +741,8 @@ declare module '@polkadot/api-base/types/storage' { /** * The full account information for a particular account ID. **/ - account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>; + account: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<FrameSystemAccountInfo>, [AccountId32]> & + QueryableStorageEntry<ApiType, [AccountId32]>; /** * Total length (in bytes) for all extrinsics put together, for the current block. **/ @@ -661,10 +765,10 @@ declare module '@polkadot/api-base/types/storage' { eventCount: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>; /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. **/ @@ -672,16 +776,17 @@ declare module '@polkadot/api-base/types/storage' { /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `<Events<T>>` list. - * + * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. - * + * * The value has the type `(T::BlockNumber, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. **/ - eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>; + eventTopics: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Vec<ITuple<[u32, u32]>>>, [H256]> & + QueryableStorageEntry<ApiType, [H256]>; /** * The execution phase of the block. **/ @@ -697,7 +802,8 @@ declare module '@polkadot/api-base/types/storage' { /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. **/ - lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & QueryableStorageEntry<ApiType, []>; + lastRuntimeUpgrade: AugmentedQuery<ApiType, () => Observable<Option<FrameSystemLastRuntimeUpgradeInfo>>, []> & + QueryableStorageEntry<ApiType, []>; /** * The current block number being processed. Set by `execute_block`. **/ @@ -736,7 +842,8 @@ declare module '@polkadot/api-base/types/storage' { /** * Actual proposal for a given hash, if it's current. **/ - proposalOf: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<Call>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>; + proposalOf: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<Call>>, [H256]> & + QueryableStorageEntry<ApiType, [H256]>; /** * The hashes of the active proposals. **/ @@ -744,7 +851,8 @@ declare module '@polkadot/api-base/types/storage' { /** * Votes on a given proposal, if it is ongoing. **/ - voting: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<PalletCollectiveVotes>>, [H256]> & QueryableStorageEntry<ApiType, [H256]>; + voting: AugmentedQuery<ApiType, (arg: H256 | string | Uint8Array) => Observable<Option<PalletCollectiveVotes>>, [H256]> & + QueryableStorageEntry<ApiType, [H256]>; /** * Generic query **/ @@ -788,7 +896,8 @@ declare module '@polkadot/api-base/types/storage' { /** * Proposals that have been made. **/ - proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>; + proposals: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Option<PalletTreasuryProposal>>, [u32]> & + QueryableStorageEntry<ApiType, [u32]>; /** * Generic query **/ diff --git a/src/interfaces/augment-api-rpc.ts b/src/interfaces/augment-api-rpc.ts index 0ca0d6c880a04e7857e439471ed514f4066ac17c..e728e46fcd379e597008da00a480836ee77a60de 100644 --- a/src/interfaces/augment-api-rpc.ts +++ b/src/interfaces/augment-api-rpc.ts @@ -15,19 +15,63 @@ import type { BeefyVersionedFinalityProof } from '@polkadot/types/interfaces/bee import type { BlockHash } from '@polkadot/types/interfaces/chain'; import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate'; import type { AuthorityId } from '@polkadot/types/interfaces/consensus'; -import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequestV1 } from '@polkadot/types/interfaces/contracts'; +import type { + CodeUploadRequest, + CodeUploadResult, + ContractCallRequest, + ContractExecResult, + ContractInstantiateResult, + InstantiateRequestV1, +} from '@polkadot/types/interfaces/contracts'; import type { BlockStats } from '@polkadot/types/interfaces/dev'; import type { CreatedBlock } from '@polkadot/types/interfaces/engine'; -import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth'; +import type { + EthAccount, + EthCallRequest, + EthFeeHistory, + EthFilter, + EthFilterChanges, + EthLog, + EthReceipt, + EthRichBlock, + EthSubKind, + EthSubParams, + EthSyncStatus, + EthTransaction, + EthTransactionRequest, + EthWork, +} from '@polkadot/types/interfaces/eth'; import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics'; import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa'; import type { MmrHash, MmrLeafBatchProof } from '@polkadot/types/interfaces/mmr'; import type { StorageKind } from '@polkadot/types/interfaces/offchain'; import type { FeeDetails, RuntimeDispatchInfoV1 } from '@polkadot/types/interfaces/payment'; import type { RpcMethods } from '@polkadot/types/interfaces/rpc'; -import type { AccountId, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime'; +import type { + AccountId, + BlockNumber, + H160, + H256, + H64, + Hash, + Header, + Index, + Justification, + KeyValue, + SignedBlock, + StorageData, +} from '@polkadot/types/interfaces/runtime'; import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state'; -import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@polkadot/types/interfaces/system'; +import type { + ApplyExtrinsicResult, + ChainProperties, + ChainType, + Health, + NetworkState, + NodeRole, + PeerInfo, + SyncState, +} from '@polkadot/types/interfaces/system'; import type { IExtrinsic, Observable } from '@polkadot/types/types'; export type __AugmentedRpc = AugmentedRpc<() => unknown>; @@ -54,7 +98,9 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting **/ - removeExtrinsic: AugmentedRpc<(bytesOrHash: Vec<ExtrinsicOrHash> | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable<Vec<Hash>>>; + removeExtrinsic: AugmentedRpc< + (bytesOrHash: Vec<ExtrinsicOrHash> | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable<Vec<Hash>> + >; /** * Generate new session keys and returns the corresponding public keys **/ @@ -118,54 +164,115 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns the keys with prefix from a child storage, leave empty to get all the keys **/ - getKeys: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>; + getKeys: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + prefix: StorageKey | string | Uint8Array | any, + at?: Hash | string | Uint8Array + ) => Observable<Vec<StorageKey>> + >; /** * Returns the keys with prefix from a child storage with pagination support **/ - getKeysPaged: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Vec<StorageKey>>>; + getKeysPaged: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + prefix: StorageKey | string | Uint8Array | any, + count: u32 | AnyNumber | Uint8Array, + startKey?: StorageKey | string | Uint8Array | any, + at?: Hash | string | Uint8Array + ) => Observable<Vec<StorageKey>> + >; /** * Returns a child storage entry at a specific block state **/ - getStorage: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<StorageData>>>; + getStorage: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: Hash | string | Uint8Array + ) => Observable<Option<StorageData>> + >; /** * Returns child storage entries for multiple keys at a specific block state **/ - getStorageEntries: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | string | Uint8Array) => Observable<Vec<Option<StorageData>>>>; + getStorageEntries: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], + at?: Hash | string | Uint8Array + ) => Observable<Vec<Option<StorageData>>> + >; /** * Returns the hash of a child storage entry at a block state **/ - getStorageHash: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<Hash>>>; + getStorageHash: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: Hash | string | Uint8Array + ) => Observable<Option<Hash>> + >; /** * Returns the size of a child storage entry at a block state **/ - getStorageSize: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable<Option<u64>>>; + getStorageSize: AugmentedRpc< + ( + childKey: PrefixedStorageKey | string | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: Hash | string | Uint8Array + ) => Observable<Option<u64>> + >; }; contracts: { /** * @deprecated Use the runtime interface `api.call.contractsApi.call` instead * Executes a call to a contract **/ - call: AugmentedRpc<(callRequest: ContractCallRequest | { origin?: any; dest?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; inputData?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractExecResult>>; + call: AugmentedRpc< + ( + callRequest: + | ContractCallRequest + | { origin?: any; dest?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; inputData?: any } + | string + | Uint8Array, + at?: BlockHash | string | Uint8Array + ) => Observable<ContractExecResult> + >; /** * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead * Returns the value under a specified storage key in a contract **/ - getStorage: AugmentedRpc<(address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<Bytes>>>; + getStorage: AugmentedRpc< + (address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<Bytes>> + >; /** * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead * Instantiate a new contract **/ - instantiate: AugmentedRpc<(request: InstantiateRequestV1 | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>; + instantiate: AugmentedRpc< + ( + request: InstantiateRequestV1 | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, + at?: BlockHash | string | Uint8Array + ) => Observable<ContractInstantiateResult> + >; /** * @deprecated Not available in newer versions of the contracts interfaces * Returns the projected time a given contract will be able to sustain paying its rent **/ - rentProjection: AugmentedRpc<(address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<BlockNumber>>>; + rentProjection: AugmentedRpc< + (address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<Option<BlockNumber>> + >; /** * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead * Upload new code without instantiating a contract from it **/ - uploadCode: AugmentedRpc<(uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<CodeUploadResult>>; + uploadCode: AugmentedRpc< + ( + uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, + at?: BlockHash | string | Uint8Array + ) => Observable<CodeUploadResult> + >; }; dev: { /** @@ -177,7 +284,13 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Instructs the manual-seal authorship task to create a new block **/ - createBlock: AugmentedRpc<(createEmpty: bool | boolean | Uint8Array, finalize: bool | boolean | Uint8Array, parentHash?: BlockHash | string | Uint8Array) => Observable<CreatedBlock>>; + createBlock: AugmentedRpc< + ( + createEmpty: bool | boolean | Uint8Array, + finalize: bool | boolean | Uint8Array, + parentHash?: BlockHash | string | Uint8Array + ) => Observable<CreatedBlock> + >; /** * Instructs the manual-seal authorship task to finalize a block **/ @@ -195,7 +308,12 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Call contract, returning the output data. **/ - call: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<Bytes>>; + call: AugmentedRpc< + ( + request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, + number?: BlockNumber | AnyNumber | Uint8Array + ) => Observable<Bytes> + >; /** * Returns the chain ID used for transaction signing at the current best block. None is returned if not available. **/ @@ -207,11 +325,22 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Estimate gas needed for execution of given contract. **/ - estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<U256>>; + estimateGas: AugmentedRpc< + ( + request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, + number?: BlockNumber | AnyNumber | Uint8Array + ) => Observable<U256> + >; /** * Returns fee history for given block count & reward percentiles **/ - feeHistory: AugmentedRpc<(blockCount: U256 | AnyNumber | Uint8Array, newestBlock: BlockNumber | AnyNumber | Uint8Array, rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | (f64)[]) => Observable<EthFeeHistory>>; + feeHistory: AugmentedRpc< + ( + blockCount: U256 | AnyNumber | Uint8Array, + newestBlock: BlockNumber | AnyNumber | Uint8Array, + rewardPercentiles: Option<Vec<f64>> | null | Uint8Array | Vec<f64> | f64[] + ) => Observable<EthFeeHistory> + >; /** * Returns current gas price. **/ @@ -227,7 +356,9 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns block with given number. **/ - getBlockByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>>>; + getBlockByNumber: AugmentedRpc< + (block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable<Option<EthRichBlock>> + >; /** * Returns the number of transactions in a block with given hash. **/ @@ -251,23 +382,39 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns logs matching given filter object. **/ - getLogs: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<Vec<EthLog>>>; + getLogs: AugmentedRpc< + ( + filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array + ) => Observable<Vec<EthLog>> + >; /** * Returns proof for account and storage. **/ - getProof: AugmentedRpc<(address: H160 | string | Uint8Array, storageKeys: Vec<H256> | (H256 | string | Uint8Array)[], number: BlockNumber | AnyNumber | Uint8Array) => Observable<EthAccount>>; + getProof: AugmentedRpc< + ( + address: H160 | string | Uint8Array, + storageKeys: Vec<H256> | (H256 | string | Uint8Array)[], + number: BlockNumber | AnyNumber | Uint8Array + ) => Observable<EthAccount> + >; /** * Returns content of the storage at given address. **/ - getStorageAt: AugmentedRpc<(address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<H256>>; + getStorageAt: AugmentedRpc< + (address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable<H256> + >; /** * Returns transaction at given block hash and index. **/ - getTransactionByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>; + getTransactionByBlockHashAndIndex: AugmentedRpc< + (hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction> + >; /** * Returns transaction by given block number and index. **/ - getTransactionByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction>>; + getTransactionByBlockNumberAndIndex: AugmentedRpc< + (number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthTransaction> + >; /** * Get transaction by its hash. **/ @@ -287,7 +434,9 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns an uncles at given block and index. **/ - getUncleByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock>>; + getUncleByBlockNumberAndIndex: AugmentedRpc< + (number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable<EthRichBlock> + >; /** * Returns the number of uncles in a block with given hash. **/ @@ -319,7 +468,11 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns id of new filter. **/ - newFilter: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable<U256>>; + newFilter: AugmentedRpc< + ( + filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array + ) => Observable<U256> + >; /** * Returns id of new block filter. **/ @@ -335,7 +488,11 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Sends transaction; will block waiting for signer to return the transaction hash **/ - sendTransaction: AugmentedRpc<(tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array) => Observable<H256>>; + sendTransaction: AugmentedRpc< + ( + tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array + ) => Observable<H256> + >; /** * Used for submitting mining hashrate. **/ @@ -343,11 +500,18 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Used for submitting a proof-of-work solution. **/ - submitWork: AugmentedRpc<(nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable<bool>>; + submitWork: AugmentedRpc< + (nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable<bool> + >; /** * Subscribe to Eth subscription. **/ - subscribe: AugmentedRpc<(kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array) => Observable<Null>>; + subscribe: AugmentedRpc< + ( + kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, + params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array + ) => Observable<Null> + >; /** * Returns an object with data about the sync status or false. **/ @@ -375,7 +539,13 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Generate MMR proof for the given block numbers. **/ - generateProof: AugmentedRpc<(blockNumbers: Vec<u64> | (u64 | AnyNumber | Uint8Array)[], bestKnownBlockNumber?: u64 | AnyNumber | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<MmrLeafBatchProof>>; + generateProof: AugmentedRpc< + ( + blockNumbers: Vec<u64> | (u64 | AnyNumber | Uint8Array)[], + bestKnownBlockNumber?: u64 | AnyNumber | Uint8Array, + at?: BlockHash | string | Uint8Array + ) => Observable<MmrLeafBatchProof> + >; /** * Get the MMR root hash for the current best block. **/ @@ -383,11 +553,18 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Verify an MMR proof **/ - verifyProof: AugmentedRpc<(proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array) => Observable<bool>>; + verifyProof: AugmentedRpc< + (proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array) => Observable<bool> + >; /** * Verify an MMR proof statelessly given an mmr_root **/ - verifyProofStateless: AugmentedRpc<(root: MmrHash | string | Uint8Array, proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array) => Observable<bool>>; + verifyProofStateless: AugmentedRpc< + ( + root: MmrHash | string | Uint8Array, + proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array + ) => Observable<bool> + >; }; net: { /** @@ -407,11 +584,19 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Get offchain local storage under given key and prefix **/ - localStorageGet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable<Option<Bytes>>>; + localStorageGet: AugmentedRpc< + (kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable<Option<Bytes>> + >; /** * Set offchain local storage under given key and prefix **/ - localStorageSet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => Observable<Null>>; + localStorageSet: AugmentedRpc< + ( + kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => Observable<Null> + >; }; payment: { /** @@ -439,23 +624,61 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Retrieves the keys with prefix of a specific child storage **/ - getChildKeys: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>; + getChildKeys: AugmentedRpc< + ( + childStorageKey: StorageKey | string | Uint8Array | any, + childDefinition: StorageKey | string | Uint8Array | any, + childType: u32 | AnyNumber | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: BlockHash | string | Uint8Array + ) => Observable<Vec<StorageKey>> + >; /** * Returns proof of storage for child key entries at a specific block state. **/ - getChildReadProof: AugmentedRpc<(childStorageKey: PrefixedStorageKey | string | Uint8Array, keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>; + getChildReadProof: AugmentedRpc< + ( + childStorageKey: PrefixedStorageKey | string | Uint8Array, + keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], + at?: BlockHash | string | Uint8Array + ) => Observable<ReadProof> + >; /** * Retrieves the child storage for a key **/ - getChildStorage: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<StorageData>>; + getChildStorage: AugmentedRpc< + ( + childStorageKey: StorageKey | string | Uint8Array | any, + childDefinition: StorageKey | string | Uint8Array | any, + childType: u32 | AnyNumber | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: BlockHash | string | Uint8Array + ) => Observable<StorageData> + >; /** * Retrieves the child storage hash **/ - getChildStorageHash: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Hash>>; + getChildStorageHash: AugmentedRpc< + ( + childStorageKey: StorageKey | string | Uint8Array | any, + childDefinition: StorageKey | string | Uint8Array | any, + childType: u32 | AnyNumber | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: BlockHash | string | Uint8Array + ) => Observable<Hash> + >; /** * Retrieves the child storage size **/ - getChildStorageSize: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<u64>>; + getChildStorageSize: AugmentedRpc< + ( + childStorageKey: StorageKey | string | Uint8Array | any, + childDefinition: StorageKey | string | Uint8Array | any, + childType: u32 | AnyNumber | Uint8Array, + key: StorageKey | string | Uint8Array | any, + at?: BlockHash | string | Uint8Array + ) => Observable<u64> + >; /** * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys * Retrieves the keys with a certain prefix @@ -464,7 +687,14 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns the keys with prefix with pagination support. **/ - getKeysPaged: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable<Vec<StorageKey>>>; + getKeysPaged: AugmentedRpc< + ( + key: StorageKey | string | Uint8Array | any, + count: u32 | AnyNumber | Uint8Array, + startKey?: StorageKey | string | Uint8Array | any, + at?: BlockHash | string | Uint8Array + ) => Observable<Vec<StorageKey>> + >; /** * Returns the runtime metadata **/ @@ -477,7 +707,9 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Returns proof of storage entries at a specific block state **/ - getReadProof: AugmentedRpc<(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof>>; + getReadProof: AugmentedRpc< + (keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable<ReadProof> + >; /** * Get the runtime version **/ @@ -497,11 +729,19 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Query historical storage entries (by key) starting from a start block **/ - queryStorage: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string) => Observable<[Hash, T][]>>; + queryStorage: AugmentedRpc< + <T = Codec[]>( + keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], + fromBlock?: Hash | Uint8Array | string, + toBlock?: Hash | Uint8Array | string + ) => Observable<[Hash, T][]> + >; /** * Query storage entries (by key) starting at block hash given as the second parameter **/ - queryStorageAt: AugmentedRpc<<T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable<T>>; + queryStorageAt: AugmentedRpc< + <T = Codec[]>(keys: Vec<StorageKey> | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable<T> + >; /** * Retrieves the runtime version via subscription **/ @@ -513,7 +753,14 @@ declare module '@polkadot/rpc-core/types/jsonrpc' { /** * Provides a way to trace the re-execution of a single block **/ - traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option<Text> | null | Uint8Array | Text | string, storageKeys: Option<Text> | null | Uint8Array | Text | string, methods: Option<Text> | null | Uint8Array | Text | string) => Observable<TraceBlockResponse>>; + traceBlock: AugmentedRpc< + ( + block: Hash | string | Uint8Array, + targets: Option<Text> | null | Uint8Array | Text | string, + storageKeys: Option<Text> | null | Uint8Array | Text | string, + methods: Option<Text> | null | Uint8Array | Text | string + ) => Observable<TraceBlockResponse> + >; /** * Check current migration state **/ diff --git a/src/interfaces/augment-api-runtime.ts b/src/interfaces/augment-api-runtime.ts index 9b098dc9b9f05999fe72d13da89a366f04e0b4d2..4583b49a98938519b9c00935311bdb1c68e17914 100644 --- a/src/interfaces/augment-api-runtime.ts +++ b/src/interfaces/augment-api-runtime.ts @@ -66,7 +66,10 @@ declare module '@polkadot/api-base/types/calls' { /** * Generates a proof of key ownership for the given authority in the current epoch. **/ - generateKeyOwnershipProof: AugmentedCall<ApiType, (slot: Slot | AnyNumber | Uint8Array, authorityId: AuthorityId | string | Uint8Array) => Observable<Option<OpaqueKeyOwnershipProof>>>; + generateKeyOwnershipProof: AugmentedCall< + ApiType, + (slot: Slot | AnyNumber | Uint8Array, authorityId: AuthorityId | string | Uint8Array) => Observable<Option<OpaqueKeyOwnershipProof>> + >; /** * Returns information regarding the next epoch (which was already previously announced). **/ @@ -74,7 +77,17 @@ declare module '@polkadot/api-base/types/calls' { /** * Submits an unsigned extrinsic to report an equivocation. **/ - submitReportEquivocationUnsignedExtrinsic: AugmentedCall<ApiType, (equivocationProof: BabeEquivocationProof | { offender?: any; slotNumber?: any; firstHeader?: any; secondHeader?: any } | string | Uint8Array, keyOwnerProof: OpaqueKeyOwnershipProof | string | Uint8Array) => Observable<Option<Null>>>; + submitReportEquivocationUnsignedExtrinsic: AugmentedCall< + ApiType, + ( + equivocationProof: + | BabeEquivocationProof + | { offender?: any; slotNumber?: any; firstHeader?: any; secondHeader?: any } + | string + | Uint8Array, + keyOwnerProof: OpaqueKeyOwnershipProof | string | Uint8Array + ) => Observable<Option<Null>> + >; /** * Generic call **/ @@ -89,7 +102,13 @@ declare module '@polkadot/api-base/types/calls' { /** * Check that the inherents are valid. **/ - checkInherents: AugmentedCall<ApiType, (block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, data: InherentData | { data?: any } | string | Uint8Array) => Observable<CheckInherentsResult>>; + checkInherents: AugmentedCall< + ApiType, + ( + block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, + data: InherentData | { data?: any } | string | Uint8Array + ) => Observable<CheckInherentsResult> + >; /** * Finish the current block. **/ @@ -112,7 +131,12 @@ declare module '@polkadot/api-base/types/calls' { /** * Initialize a block with the given header. **/ - initializeBlock: AugmentedCall<ApiType, (header: Header | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array) => Observable<Null>>; + initializeBlock: AugmentedCall< + ApiType, + ( + header: Header | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array + ) => Observable<Null> + >; /** * Returns the version of the runtime. **/ @@ -131,7 +155,10 @@ declare module '@polkadot/api-base/types/calls' { /** * Generates a proof of key ownership for the given authority in the given set. **/ - generateKeyOwnershipProof: AugmentedCall<ApiType, (setId: SetId | AnyNumber | Uint8Array, authorityId: AuthorityId | string | Uint8Array) => Observable<Option<OpaqueKeyOwnershipProof>>>; + generateKeyOwnershipProof: AugmentedCall< + ApiType, + (setId: SetId | AnyNumber | Uint8Array, authorityId: AuthorityId | string | Uint8Array) => Observable<Option<OpaqueKeyOwnershipProof>> + >; /** * Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed. **/ @@ -139,7 +166,13 @@ declare module '@polkadot/api-base/types/calls' { /** * Submits an unsigned extrinsic to report an equivocation. **/ - submitReportEquivocationUnsignedExtrinsic: AugmentedCall<ApiType, (equivocationProof: GrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, keyOwnerProof: OpaqueKeyOwnershipProof | string | Uint8Array) => Observable<Option<Null>>>; + submitReportEquivocationUnsignedExtrinsic: AugmentedCall< + ApiType, + ( + equivocationProof: GrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, + keyOwnerProof: OpaqueKeyOwnershipProof | string | Uint8Array + ) => Observable<Option<Null>> + >; /** * Generic call **/ @@ -169,7 +202,12 @@ declare module '@polkadot/api-base/types/calls' { /** * Starts the off-chain task for given block header. **/ - offchainWorker: AugmentedCall<ApiType, (header: Header | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array) => Observable<Null>>; + offchainWorker: AugmentedCall< + ApiType, + ( + header: Header | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array + ) => Observable<Null> + >; /** * Generic call **/ @@ -195,7 +233,14 @@ declare module '@polkadot/api-base/types/calls' { /** * Validate the transaction. **/ - validateTransaction: AugmentedCall<ApiType, (source: TransactionSource | 'InBlock' | 'Local' | 'External' | number | Uint8Array, tx: Extrinsic | IExtrinsic | string | Uint8Array, blockHash: BlockHash | string | Uint8Array) => Observable<TransactionValidity>>; + validateTransaction: AugmentedCall< + ApiType, + ( + source: TransactionSource | 'InBlock' | 'Local' | 'External' | number | Uint8Array, + tx: Extrinsic | IExtrinsic | string | Uint8Array, + blockHash: BlockHash | string | Uint8Array + ) => Observable<TransactionValidity> + >; /** * Generic call **/ @@ -206,11 +251,17 @@ declare module '@polkadot/api-base/types/calls' { /** * The transaction fee details **/ - queryFeeDetails: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<FeeDetails>>; + queryFeeDetails: AugmentedCall< + ApiType, + (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<FeeDetails> + >; /** * The transaction info **/ - queryInfo: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<RuntimeDispatchInfo>>; + queryInfo: AugmentedCall< + ApiType, + (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<RuntimeDispatchInfo> + >; /** * Query the output of the current LengthToFee given some input **/ diff --git a/src/interfaces/augment-api-tx.ts b/src/interfaces/augment-api-tx.ts index 604e4f751caea5af461a81ffbd7ddac4aaf221e9..940397692f9e3382e0af61e53e7fcbf2d85c1ec2 100644 --- a/src/interfaces/augment-api-tx.ts +++ b/src/interfaces/augment-api-tx.ts @@ -29,30 +29,39 @@ declare module '@polkadot/api-base/types/submittable' { atomicSwap: { /** * Cancel an atomic swap. Only possible after the originally set duration has passed. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `target`: Target of the original atomic swap. * - `hashed_proof`: Hashed proof of the original atomic swap. **/ - cancelSwap: AugmentedSubmittable<(target: AccountId32 | string | Uint8Array, hashedProof: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, U8aFixed]>; + cancelSwap: AugmentedSubmittable< + (target: AccountId32 | string | Uint8Array, hashedProof: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, + [AccountId32, U8aFixed] + >; /** * Claim an atomic swap. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `proof`: Revealed proof of the claim. * - `action`: Action defined in the swap, it must match the entry in blockchain. Otherwise * the operation fails. This is used for weight calculation. **/ - claimSwap: AugmentedSubmittable<(proof: Bytes | string | Uint8Array, action: PalletAtomicSwapBalanceSwapAction | { value?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, PalletAtomicSwapBalanceSwapAction]>; + claimSwap: AugmentedSubmittable< + ( + proof: Bytes | string | Uint8Array, + action: PalletAtomicSwapBalanceSwapAction | { value?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Bytes, PalletAtomicSwapBalanceSwapAction] + >; /** * Register a new atomic swap, declaring an intention to send funds from origin to target * on the current blockchain. The target can claim the fund using the revealed proof. If * the fund is not claimed after `duration` blocks, then the sender can cancel the swap. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `target`: Receiver of the atomic swap. * - `hashed_proof`: The blake2_256 hash of the secret proof. * - `balance`: Funds to be sent from origin. @@ -60,7 +69,15 @@ declare module '@polkadot/api-base/types/submittable' { * that the revealer uses a shorter duration than the counterparty, to prevent the * situation where the revealer reveals the proof too late around the end block. **/ - createSwap: AugmentedSubmittable<(target: AccountId32 | string | Uint8Array, hashedProof: U8aFixed | string | Uint8Array, action: PalletAtomicSwapBalanceSwapAction | { value?: any } | string | Uint8Array, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, U8aFixed, PalletAtomicSwapBalanceSwapAction, u32]>; + createSwap: AugmentedSubmittable< + ( + target: AccountId32 | string | Uint8Array, + hashedProof: U8aFixed | string | Uint8Array, + action: PalletAtomicSwapBalanceSwapAction | { value?: any } | string | Uint8Array, + duration: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [AccountId32, U8aFixed, PalletAtomicSwapBalanceSwapAction, u32] + >; /** * Generic tx **/ @@ -86,7 +103,12 @@ declare module '@polkadot/api-base/types/submittable' { /** * declare new session keys to replace current ones **/ - setSessionKeys: AugmentedSubmittable<(keys: GdevRuntimeOpaqueSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [GdevRuntimeOpaqueSessionKeys]>; + setSessionKeys: AugmentedSubmittable< + ( + keys: GdevRuntimeOpaqueSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [GdevRuntimeOpaqueSessionKeys] + >; /** * Generic tx **/ @@ -99,14 +121,27 @@ declare module '@polkadot/api-base/types/submittable' { * Multiple calls to this method will replace any existing planned config change that had * not been enacted yet. **/ - planConfigChange: AugmentedSubmittable<(config: SpConsensusBabeDigestsNextConfigDescriptor | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpConsensusBabeDigestsNextConfigDescriptor]>; + planConfigChange: AugmentedSubmittable< + (config: SpConsensusBabeDigestsNextConfigDescriptor | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, + [SpConsensusBabeDigestsNextConfigDescriptor] + >; /** * Report authority equivocation/misbehavior. This method will verify * the equivocation proof and validate the given key ownership proof * against the extracted offender. If both are valid, the offence will * be reported. **/ - reportEquivocation: AugmentedSubmittable<(equivocationProof: SpConsensusSlotsEquivocationProof | { offender?: any; slot?: any; firstHeader?: any; secondHeader?: any } | string | Uint8Array, keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpConsensusSlotsEquivocationProof, SpSessionMembershipProof]>; + reportEquivocation: AugmentedSubmittable< + ( + equivocationProof: + | SpConsensusSlotsEquivocationProof + | { offender?: any; slot?: any; firstHeader?: any; secondHeader?: any } + | string + | Uint8Array, + keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [SpConsensusSlotsEquivocationProof, SpSessionMembershipProof] + >; /** * Report authority equivocation/misbehavior. This method will verify * the equivocation proof and validate the given key ownership proof @@ -117,7 +152,17 @@ declare module '@polkadot/api-base/types/submittable' { * if the block author is defined it will be defined as the equivocation * reporter. **/ - reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: SpConsensusSlotsEquivocationProof | { offender?: any; slot?: any; firstHeader?: any; secondHeader?: any } | string | Uint8Array, keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpConsensusSlotsEquivocationProof, SpSessionMembershipProof]>; + reportEquivocationUnsigned: AugmentedSubmittable< + ( + equivocationProof: + | SpConsensusSlotsEquivocationProof + | { offender?: any; slot?: any; firstHeader?: any; secondHeader?: any } + | string + | Uint8Array, + keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [SpConsensusSlotsEquivocationProof, SpSessionMembershipProof] + >; /** * Generic tx **/ @@ -126,84 +171,137 @@ declare module '@polkadot/api-base/types/submittable' { balances: { /** * Set the regular balance of a given account. - * + * * The dispatch origin for this call is `root`. **/ - forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + forceSetBalance: AugmentedSubmittable< + ( + who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + newFree: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Exactly as `transfer_allow_death`, except the origin must be root and the source account * may be specified. **/ - forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u64>]>; + forceTransfer: AugmentedSubmittable< + ( + source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, MultiAddress, Compact<u64>] + >; /** * Unreserve some balance from a user by force. - * + * * Can only be called by ROOT. **/ - forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u64]>; + forceUnreserve: AugmentedSubmittable< + ( + who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + amount: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, u64] + >; /** * Set the regular balance of a given account; it also takes a reserved balance but this * must be the same as the account's current reserved balance. - * + * * The dispatch origin for this call is `root`. - * + * * WARNING: This call is DEPRECATED! Use `force_set_balance` instead. **/ - setBalanceDeprecated: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u64> | AnyNumber | Uint8Array, oldReserved: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>, Compact<u64>]>; + setBalanceDeprecated: AugmentedSubmittable< + ( + who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + newFree: Compact<u64> | AnyNumber | Uint8Array, + oldReserved: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>, Compact<u64>] + >; /** * Alias for `transfer_allow_death`, provided only for name-wise compatibility. - * + * * WARNING: DEPRECATED! Will be released in approximately 3 months. **/ - transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + transfer: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Transfer the entire transferable balance from the caller account. - * + * * NOTE: This function only attempts to transfer _transferable_ balances. This means that * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be * transferred by this function. To ensure that this function results in a killed account, * you might need to prepare the account by removing any reference counters, storage * deposits, etc... - * + * * The dispatch origin of this call must be Signed. - * + * * - `dest`: The recipient of the transfer. * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all * of the funds the account has, causing the sender account to be killed (false), or * transfer everything except at least the existential deposit, which will guarantee to * keep the sender account alive (true). **/ - transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>; + transferAll: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, bool] + >; /** * Transfer some liquid free balance to another account. - * + * * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. * If the sender's account is below the existential deposit as a result * of the transfer, the account will be reaped. - * + * * The dispatch origin for this call must be `Signed` by the transactor. **/ - transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + transferAllowDeath: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not * kill the origin account. - * + * * 99% of the time you want [`transfer_allow_death`] instead. - * + * * [`transfer_allow_death`]: struct.Pallet.html#method.transfer **/ - transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + transferKeepAlive: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Upgrade a specified account. - * + * * - `origin`: Must be `Signed`. * - `who`: The account to be upgraded. - * + * * This will waive the transaction fee if at least all but 10% of the accounts needed to * be upgraded. (We let some not have to be upgraded just in order to allow for the * possibililty of churn). **/ - upgradeAccounts: AugmentedSubmittable<(who: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<AccountId32>]>; + upgradeAccounts: AugmentedSubmittable< + (who: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, + [Vec<AccountId32>] + >; /** * Generic tx **/ @@ -212,16 +310,22 @@ declare module '@polkadot/api-base/types/submittable' { cert: { /** * Add a new certification or renew an existing one - * + * * - `receiver`: the account receiving the certification from the origin - * + * * The origin must be allow to certify. **/ - addCert: AugmentedSubmittable<(issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + addCert: AugmentedSubmittable< + (issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * remove a certification (only root) **/ - delCert: AugmentedSubmittable<(issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + delCert: AugmentedSubmittable< + (issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * remove all certifications received by an identity (only root) **/ @@ -234,18 +338,35 @@ declare module '@polkadot/api-base/types/submittable' { distance: { /** * Set the distance evaluation status of an identity - * + * * Removes the status if `status` is `None`. - * + * * * `status.0` is the account for whom the price will be unreserved or slashed * when the evaluation completes. * * `status.1` is the status of the evaluation. **/ - forceSetDistanceStatus: AugmentedSubmittable<(identity: u32 | AnyNumber | Uint8Array, status: Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>> | null | Uint8Array | ITuple<[AccountId32, PalletDistanceDistanceStatus]> | [AccountId32 | string | Uint8Array, PalletDistanceDistanceStatus | 'Pending' | 'Valid' | number | Uint8Array]) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>>]>; + forceSetDistanceStatus: AugmentedSubmittable< + ( + identity: u32 | AnyNumber | Uint8Array, + status: + | Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>> + | null + | Uint8Array + | ITuple<[AccountId32, PalletDistanceDistanceStatus]> + | [AccountId32 | string | Uint8Array, PalletDistanceDistanceStatus | 'Pending' | 'Valid' | number | Uint8Array] + ) => SubmittableExtrinsic<ApiType>, + [u32, Option<ITuple<[AccountId32, PalletDistanceDistanceStatus]>>] + >; /** * Push an evaluation result to the pool **/ - forceUpdateEvaluation: AugmentedSubmittable<(evaluator: AccountId32 | string | Uint8Array, computationResult: SpDistanceComputationResult | { distances?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, SpDistanceComputationResult]>; + forceUpdateEvaluation: AugmentedSubmittable< + ( + evaluator: AccountId32 | string | Uint8Array, + computationResult: SpDistanceComputationResult | { distances?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [AccountId32, SpDistanceComputationResult] + >; /** * Request an identity to be evaluated **/ @@ -253,7 +374,10 @@ declare module '@polkadot/api-base/types/submittable' { /** * (Inherent) Push an evaluation result to the pool **/ - updateEvaluation: AugmentedSubmittable<(computationResult: SpDistanceComputationResult | { distances?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpDistanceComputationResult]>; + updateEvaluation: AugmentedSubmittable< + (computationResult: SpDistanceComputationResult | { distances?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, + [SpDistanceComputationResult] + >; /** * Generic tx **/ @@ -262,7 +386,7 @@ declare module '@polkadot/api-base/types/submittable' { grandpa: { /** * Note that the current authority set of the GRANDPA finality gadget has stalled. - * + * * This will trigger a forced authority set change at the beginning of the next session, to * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume * that the block signalling the forced change will not be re-orged e.g. 1000 blocks. @@ -271,29 +395,44 @@ declare module '@polkadot/api-base/types/submittable' { * authority will start voting on top of `best_finalized_block_number` for new finalized * blocks. `best_finalized_block_number` should be the highest of the latest finalized * block of all validators of the new authority set. - * + * * Only callable by root. **/ - noteStalled: AugmentedSubmittable<(delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + noteStalled: AugmentedSubmittable< + (delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * Report voter equivocation/misbehavior. This method will verify the * equivocation proof and validate the given key ownership proof * against the extracted offender. If both are valid, the offence * will be reported. **/ - reportEquivocation: AugmentedSubmittable<(equivocationProof: SpConsensusGrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpConsensusGrandpaEquivocationProof, SpSessionMembershipProof]>; + reportEquivocation: AugmentedSubmittable< + ( + equivocationProof: SpConsensusGrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, + keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [SpConsensusGrandpaEquivocationProof, SpSessionMembershipProof] + >; /** * Report voter equivocation/misbehavior. This method will verify the * equivocation proof and validate the given key ownership proof * against the extracted offender. If both are valid, the offence * will be reported. - * + * * This extrinsic must be called unsigned and it is expected that only * block authors will call it (validated in `ValidateUnsigned`), as such * if the block author is defined it will be defined as the equivocation * reporter. **/ - reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: SpConsensusGrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [SpConsensusGrandpaEquivocationProof, SpSessionMembershipProof]>; + reportEquivocationUnsigned: AugmentedSubmittable< + ( + equivocationProof: SpConsensusGrandpaEquivocationProof | { setId?: any; equivocation?: any } | string | Uint8Array, + keyOwnerProof: SpSessionMembershipProof | { session?: any; trieNodes?: any; validatorCount?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [SpConsensusGrandpaEquivocationProof, SpSessionMembershipProof] + >; /** * Generic tx **/ @@ -302,38 +441,53 @@ declare module '@polkadot/api-base/types/submittable' { identity: { /** * Change identity owner key. - * + * * - `new_key`: the new owner key. * - `new_key_sig`: the signature of the encoded form of `IdtyIndexAccountIdPayload`. * Must be signed by `new_key`. - * + * * The origin should be the old identity owner key. **/ - changeOwnerKey: AugmentedSubmittable<(newKey: AccountId32 | string | Uint8Array, newKeySig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, SpRuntimeMultiSignature]>; + changeOwnerKey: AugmentedSubmittable< + ( + newKey: AccountId32 | string | Uint8Array, + newKeySig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [AccountId32, SpRuntimeMultiSignature] + >; /** * Confirm the creation of an identity and give it a name - * + * * - `idty_name`: the name uniquely associated to this identity. Must match the validation rules defined by the runtime. - * + * * The identity must have been created using `create_identity` before it can be confirmed. **/ confirmIdentity: AugmentedSubmittable<(idtyName: Text | string) => SubmittableExtrinsic<ApiType>, [Text]>; /** * Create an identity for an existing account - * + * * - `owner_key`: the public key corresponding to the identity to be created - * + * * The origin must be allowed to create an identity. **/ createIdentity: AugmentedSubmittable<(ownerKey: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>; /** * change sufficient ref count for given key **/ - fixSufficients: AugmentedSubmittable<(ownerKey: AccountId32 | string | Uint8Array, inc: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, bool]>; + fixSufficients: AugmentedSubmittable< + (ownerKey: AccountId32 | string | Uint8Array, inc: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, + [AccountId32, bool] + >; /** * Link an account to an identity **/ - linkAccount: AugmentedSubmittable<(accountId: AccountId32 | string | Uint8Array, payloadSig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32, SpRuntimeMultiSignature]>; + linkAccount: AugmentedSubmittable< + ( + accountId: AccountId32 | string | Uint8Array, + payloadSig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [AccountId32, SpRuntimeMultiSignature] + >; /** * remove identity names from storage **/ @@ -341,18 +495,32 @@ declare module '@polkadot/api-base/types/submittable' { /** * remove an identity from storage **/ - removeIdentity: AugmentedSubmittable<(idtyIndex: u32 | AnyNumber | Uint8Array, idtyName: Option<Text> | null | Uint8Array | Text | string, reason: PalletIdentityIdtyRemovalReason | { Expired: any } | { Manual: any } | { Other: any } | { Revoked: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<Text>, PalletIdentityIdtyRemovalReason]>; + removeIdentity: AugmentedSubmittable< + ( + idtyIndex: u32 | AnyNumber | Uint8Array, + idtyName: Option<Text> | null | Uint8Array | Text | string, + reason: PalletIdentityIdtyRemovalReason | { Expired: any } | { Manual: any } | { Other: any } | { Revoked: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, Option<Text>, PalletIdentityIdtyRemovalReason] + >; /** * Revoke an identity using a revocation signature - * + * * - `idty_index`: the index of the identity to be revoked. * - `revocation_key`: the key used to sign the revocation payload. * - `revocation_sig`: the signature of the encoded form of `RevocationPayload`. * Must be signed by `revocation_key`. - * + * * Any signed origin can execute this call. **/ - revokeIdentity: AugmentedSubmittable<(idtyIndex: u32 | AnyNumber | Uint8Array, revocationKey: AccountId32 | string | Uint8Array, revocationSig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32, SpRuntimeMultiSignature]>; + revokeIdentity: AugmentedSubmittable< + ( + idtyIndex: u32 | AnyNumber | Uint8Array, + revocationKey: AccountId32 | string | Uint8Array, + revocationSig: SpRuntimeMultiSignature | { Ed25519: any } | { Sr25519: any } | { Ecdsa: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, AccountId32, SpRuntimeMultiSignature] + >; /** * validate the owned identity (must meet the main wot requirements) **/ @@ -370,7 +538,17 @@ declare module '@polkadot/api-base/types/submittable' { * - `O(K)`: decoding of length `K` * - `O(E)`: decoding/encoding of length `E` **/ - heartbeat: AugmentedSubmittable<(heartbeat: PalletImOnlineHeartbeat | { blockNumber?: any; networkState?: any; sessionIndex?: any; authorityIndex?: any; validatorsLen?: any } | string | Uint8Array, signature: PalletImOnlineSr25519AppSr25519Signature | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature]>; + heartbeat: AugmentedSubmittable< + ( + heartbeat: + | PalletImOnlineHeartbeat + | { blockNumber?: any; networkState?: any; sessionIndex?: any; authorityIndex?: any; validatorsLen?: any } + | string + | Uint8Array, + signature: PalletImOnlineSr25519AppSr25519Signature | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Signature] + >; /** * Generic tx **/ @@ -408,13 +586,13 @@ declare module '@polkadot/api-base/types/submittable' { /** * Register approval for a dispatch to be made from a deterministic composite account if * approved by a total of `threshold - 1` of `other_signatories`. - * + * * Payment: `DepositBase` will be reserved if this is the first approval, plus * `threshold` times `DepositFactor`. It is returned once this dispatch happens or * is cancelled. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `threshold`: The total number of approvals for this dispatch before it is executed. * - `other_signatories`: The accounts (other than the sender) who can approve this * dispatch. May not be empty. @@ -422,9 +600,9 @@ declare module '@polkadot/api-base/types/submittable' { * not the first approval, then it must be `Some`, with the timepoint (block number and * transaction index) of the first approval transaction. * - `call_hash`: The hash of the call to be executed. - * + * * NOTE: If this is the final approval, you will want to use `as_multi` instead. - * + * * ## Complexity * - `O(S)`. * - Up to one balance-reserve or unreserve operation. @@ -437,19 +615,28 @@ declare module '@polkadot/api-base/types/submittable' { * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit * taken for its lifetime of `DepositBase + threshold * DepositFactor`. **/ - approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option<PalletMultisigTimepoint> | null | Uint8Array | PalletMultisigTimepoint | { height?: any; index?: any } | string, callHash: U8aFixed | string | Uint8Array, maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, U8aFixed, SpWeightsWeightV2Weight]>; + approveAsMulti: AugmentedSubmittable< + ( + threshold: u16 | AnyNumber | Uint8Array, + otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], + maybeTimepoint: Option<PalletMultisigTimepoint> | null | Uint8Array | PalletMultisigTimepoint | { height?: any; index?: any } | string, + callHash: U8aFixed | string | Uint8Array, + maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, U8aFixed, SpWeightsWeightV2Weight] + >; /** * Register approval for a dispatch to be made from a deterministic composite account if * approved by a total of `threshold - 1` of `other_signatories`. - * + * * If there are enough, then dispatch the call. - * + * * Payment: `DepositBase` will be reserved if this is the first approval, plus * `threshold` times `DepositFactor`. It is returned once this dispatch happens or * is cancelled. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `threshold`: The total number of approvals for this dispatch before it is executed. * - `other_signatories`: The accounts (other than the sender) who can approve this * dispatch. May not be empty. @@ -457,14 +644,14 @@ declare module '@polkadot/api-base/types/submittable' { * not the first approval, then it must be `Some`, with the timepoint (block number and * transaction index) of the first approval transaction. * - `call`: The call to be executed. - * + * * NOTE: Unless this is the final approval, you will generally want to use * `approve_as_multi` instead, since it only requires a hash of the call. - * + * * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise * on success, result is `Ok` and the result from the interior call, if it was executed, * may be found in the deposited `MultisigExecuted` event. - * + * * ## Complexity * - `O(S + Z + Call)`. * - Up to one balance-reserve or unreserve operation. @@ -479,35 +666,50 @@ declare module '@polkadot/api-base/types/submittable' { * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit * taken for its lifetime of `DepositBase + threshold * DepositFactor`. **/ - asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option<PalletMultisigTimepoint> | null | Uint8Array | PalletMultisigTimepoint | { height?: any; index?: any } | string, call: Call | IMethod | string | Uint8Array, maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, Call, SpWeightsWeightV2Weight]>; + asMulti: AugmentedSubmittable< + ( + threshold: u16 | AnyNumber | Uint8Array, + otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], + maybeTimepoint: Option<PalletMultisigTimepoint> | null | Uint8Array | PalletMultisigTimepoint | { height?: any; index?: any } | string, + call: Call | IMethod | string | Uint8Array, + maxWeight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u16, Vec<AccountId32>, Option<PalletMultisigTimepoint>, Call, SpWeightsWeightV2Weight] + >; /** * Immediately dispatch a multi-signature call using a single approval from the caller. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `other_signatories`: The accounts (other than the sender) who are part of the * multi-signature, but do not participate in the approval process. * - `call`: The call to be executed. - * + * * Result is equivalent to the dispatched result. - * + * * ## Complexity * O(Z + C) where Z is the length of the call and C its execution weight. **/ - asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<AccountId32>, Call]>; + asMultiThreshold1: AugmentedSubmittable< + ( + otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Vec<AccountId32>, Call] + >; /** * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously * for this operation will be unreserved on success. - * + * * The dispatch origin for this call must be _Signed_. - * + * * - `threshold`: The total number of approvals for this dispatch before it is executed. * - `other_signatories`: The accounts (other than the sender) who can approve this * dispatch. May not be empty. * - `timepoint`: The timepoint (block number and transaction index) of the first approval * transaction for this dispatch. * - `call_hash`: The hash of the call to be executed. - * + * * ## Complexity * - `O(S)`. * - Up to one balance-reserve or unreserve operation. @@ -518,7 +720,15 @@ declare module '@polkadot/api-base/types/submittable' { * - I/O: 1 read `O(S)`, one remove. * - Storage: removes one item. **/ - cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], timepoint: PalletMultisigTimepoint | { height?: any; index?: any } | string | Uint8Array, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u16, Vec<AccountId32>, PalletMultisigTimepoint, U8aFixed]>; + cancelAsMulti: AugmentedSubmittable< + ( + threshold: u16 | AnyNumber | Uint8Array, + otherSignatories: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], + timepoint: PalletMultisigTimepoint | { height?: any; index?: any } | string | Uint8Array, + callHash: U8aFixed | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u16, Vec<AccountId32>, PalletMultisigTimepoint, U8aFixed] + >; /** * Generic tx **/ @@ -527,16 +737,22 @@ declare module '@polkadot/api-base/types/submittable' { oneshotAccount: { /** * Consume a oneshot account and transfer its balance to an account - * + * * - `block_height`: Must be a recent block number. The limit is `BlockHashCount` in the past. (this is to prevent replay attacks) * - `dest`: The destination account. * - `dest_is_oneshot`: If set to `true`, then a oneshot account is created at `dest`. Else, `dest` has to be an existing account. **/ - consumeOneshotAccount: AugmentedSubmittable<(blockHeight: u32 | AnyNumber | Uint8Array, dest: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletOneshotAccountAccount]>; + consumeOneshotAccount: AugmentedSubmittable< + ( + blockHeight: u32 | AnyNumber | Uint8Array, + dest: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, PalletOneshotAccountAccount] + >; /** * Consume a oneshot account then transfer some amount to an account, * and the remaining amount to another account. - * + * * - `block_height`: Must be a recent block number. * The limit is `BlockHashCount` in the past. (this is to prevent replay attacks) * - `dest`: The destination account. @@ -545,16 +761,30 @@ declare module '@polkadot/api-base/types/submittable' { * - `dest2_is_oneshot`: If set to `true`, then a oneshot account is created at `dest2`. Else, `dest2` has to be an existing account. * - `balance1`: The amount transfered to `dest`, the leftover being transfered to `dest2`. **/ - consumeOneshotAccountWithRemaining: AugmentedSubmittable<(blockHeight: u32 | AnyNumber | Uint8Array, dest: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array, remainingTo: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array, balance: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletOneshotAccountAccount, PalletOneshotAccountAccount, Compact<u64>]>; + consumeOneshotAccountWithRemaining: AugmentedSubmittable< + ( + blockHeight: u32 | AnyNumber | Uint8Array, + dest: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array, + remainingTo: PalletOneshotAccountAccount | { Normal: any } | { Oneshot: any } | string | Uint8Array, + balance: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, PalletOneshotAccountAccount, PalletOneshotAccountAccount, Compact<u64>] + >; /** * Create an account that can only be consumed once - * + * * - `dest`: The oneshot account to be created. * - `balance`: The balance to be transfered to this oneshot account. - * + * * Origin account is kept alive. **/ - createOneshotAccount: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + createOneshotAccount: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Generic tx **/ @@ -563,30 +793,30 @@ declare module '@polkadot/api-base/types/submittable' { preimage: { /** * Register a preimage on-chain. - * + * * If the preimage was previously requested, no fees or deposits are taken for providing * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. **/ notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>; /** * Request a preimage be uploaded to the chain without paying any fees or deposits. - * + * * If the preimage requests has already been provided on-chain, we unreserve any deposit * a user may have paid, and take the control of the preimage out of their hands. **/ requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>; /** * Clear an unrequested preimage from the runtime storage. - * + * * If `len` is provided, then it will be a much cheaper operation. - * + * * - `hash`: The hash of the preimage to be removed from the store. * - `len`: The length of the preimage of `hash`. **/ unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>; /** * Clear a previously made request for a preimage. - * + * * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. **/ unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>; @@ -599,7 +829,19 @@ declare module '@polkadot/api-base/types/submittable' { /** * Request a randomness **/ - request: AugmentedSubmittable<(randomnessType: PalletProvideRandomnessRandomnessType | 'RandomnessFromPreviousBlock' | 'RandomnessFromOneEpochAgo' | 'RandomnessFromTwoEpochsAgo' | number | Uint8Array, salt: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletProvideRandomnessRandomnessType, H256]>; + request: AugmentedSubmittable< + ( + randomnessType: + | PalletProvideRandomnessRandomnessType + | 'RandomnessFromPreviousBlock' + | 'RandomnessFromOneEpochAgo' + | 'RandomnessFromTwoEpochsAgo' + | number + | Uint8Array, + salt: H256 | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [PalletProvideRandomnessRandomnessType, H256] + >; /** * Generic tx **/ @@ -608,40 +850,53 @@ declare module '@polkadot/api-base/types/submittable' { proxy: { /** * Register a proxy account for the sender that is able to make calls on its behalf. - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `proxy`: The account that the `caller` would like to make a proxy. * - `proxy_type`: The permissions allowed for this proxy account. * - `delay`: The announcement period required of the initial proxy. Will generally be * zero. **/ - addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, GdevRuntimeProxyType, u32]>; + addProxy: AugmentedSubmittable< + ( + delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, + delay: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, GdevRuntimeProxyType, u32] + >; /** * Publish the hash of a proxy-call that will be made in the future. - * + * * This must be called some number of blocks before the corresponding `proxy` is attempted * if the delay associated with the proxy relationship is greater than zero. - * + * * No more than `MaxPending` announcements may be made at any one time. - * + * * This will take a deposit of `AnnouncementDepositFactor` as well as * `AnnouncementDepositBase` if there are no other pending announcements. - * + * * The dispatch origin for this call must be _Signed_ and a proxy of `real`. - * + * * Parameters: * - `real`: The account that the proxy will make a call on behalf of. * - `call_hash`: The hash of the call to be made by the `real` account. **/ - announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, H256]>; + announce: AugmentedSubmittable< + ( + real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + callHash: H256 | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, H256] + >; /** * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and * initialize it with a proxy of `proxy_type` for `origin` sender. - * + * * Requires a `Signed` origin. - * + * * - `proxy_type`: The type of the proxy that the sender will be registered as over the * new account. This will almost always be the most permissive `ProxyType` possible to * allow for maximum flexibility. @@ -650,103 +905,171 @@ declare module '@polkadot/api-base/types/submittable' { * want to use `0`. * - `delay`: The announcement period required of the initial proxy. Will generally be * zero. - * + * * Fails with `Duplicate` if this has already been called in this transaction, from the * same sender, with the same parameters. - * + * * Fails if there are insufficient funds to pay for deposit. **/ - createPure: AugmentedSubmittable<(proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [GdevRuntimeProxyType, u32, u16]>; + createPure: AugmentedSubmittable< + ( + proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, + delay: u32 | AnyNumber | Uint8Array, + index: u16 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [GdevRuntimeProxyType, u32, u16] + >; /** * Removes a previously spawned pure proxy. - * + * * WARNING: **All access to this account will be lost.** Any funds held in it will be * inaccessible. - * + * * Requires a `Signed` origin, and the sender account must have been created by a call to * `pure` with corresponding parameters. - * + * * - `spawner`: The account that originally called `pure` to create this account. * - `index`: The disambiguation index originally passed to `pure`. Probably `0`. * - `proxy_type`: The proxy type originally passed to `pure`. * - `height`: The height of the chain when the call to `pure` was processed. * - `ext_index`: The extrinsic index in which the call to `pure` was processed. - * + * * Fails with `NoPermission` in case the caller is not a previously created pure * account whose `pure` call has corresponding parameters. **/ - killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, index: u16 | AnyNumber | Uint8Array, height: Compact<u32> | AnyNumber | Uint8Array, extIndex: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, GdevRuntimeProxyType, u16, Compact<u32>, Compact<u32>]>; + killPure: AugmentedSubmittable< + ( + spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, + index: u16 | AnyNumber | Uint8Array, + height: Compact<u32> | AnyNumber | Uint8Array, + extIndex: Compact<u32> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, GdevRuntimeProxyType, u16, Compact<u32>, Compact<u32>] + >; /** * Dispatch the given `call` from an account that the sender is authorised for through * `add_proxy`. - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `real`: The account that the proxy will make a call on behalf of. * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. * - `call`: The call to be made by the `real` account. **/ - proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option<GdevRuntimeProxyType> | null | Uint8Array | GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Option<GdevRuntimeProxyType>, Call]>; + proxy: AugmentedSubmittable< + ( + real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + forceProxyType: + | Option<GdevRuntimeProxyType> + | null + | Uint8Array + | GdevRuntimeProxyType + | 'AlmostAny' + | 'TransferOnly' + | 'CancelProxy' + | 'TechnicalCommitteePropose' + | number, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Option<GdevRuntimeProxyType>, Call] + >; /** * Dispatch the given `call` from an account that the sender is authorized for through * `add_proxy`. - * + * * Removes any corresponding announcement(s). - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `real`: The account that the proxy will make a call on behalf of. * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. * - `call`: The call to be made by the `real` account. **/ - proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option<GdevRuntimeProxyType> | null | Uint8Array | GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Option<GdevRuntimeProxyType>, Call]>; + proxyAnnounced: AugmentedSubmittable< + ( + delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + forceProxyType: + | Option<GdevRuntimeProxyType> + | null + | Uint8Array + | GdevRuntimeProxyType + | 'AlmostAny' + | 'TransferOnly' + | 'CancelProxy' + | 'TechnicalCommitteePropose' + | number, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, MultiAddress, Option<GdevRuntimeProxyType>, Call] + >; /** * Remove the given announcement of a delegate. - * + * * May be called by a target (proxied) account to remove a call that one of their delegates * (`delegate`) has announced they want to execute. The deposit is returned. - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `delegate`: The account that previously announced the call. * - `call_hash`: The hash of the call to be made. **/ - rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, H256]>; + rejectAnnouncement: AugmentedSubmittable< + ( + delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + callHash: H256 | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, H256] + >; /** * Remove a given announcement. - * + * * May be called by a proxy account to remove a call they previously announced and return * the deposit. - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `real`: The account that the proxy will make a call on behalf of. * - `call_hash`: The hash of the call to be made by the `real` account. **/ - removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, H256]>; + removeAnnouncement: AugmentedSubmittable< + ( + real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + callHash: H256 | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, H256] + >; /** * Unregister all proxy accounts for the sender. - * + * * The dispatch origin for this call must be _Signed_. - * + * * WARNING: This may be called on accounts created by `pure`, however if done, then * the unreserved fees will be inaccessible. **All access to this account will be lost.** **/ removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>; /** * Unregister a proxy account for the sender. - * + * * The dispatch origin for this call must be _Signed_. - * + * * Parameters: * - `proxy`: The account that the `caller` would like to remove as a proxy. * - `proxy_type`: The permissions currently enabled for the removed proxy account. **/ - removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, GdevRuntimeProxyType, u32]>; + removeProxy: AugmentedSubmittable< + ( + delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + proxyType: GdevRuntimeProxyType | 'AlmostAny' | 'TransferOnly' | 'CancelProxy' | 'TechnicalCommitteePropose' | number | Uint8Array, + delay: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, GdevRuntimeProxyType, u32] + >; /** * Generic tx **/ @@ -756,7 +1079,10 @@ declare module '@polkadot/api-base/types/submittable' { /** * Cancel an anonymously scheduled task. **/ - cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + cancel: AugmentedSubmittable< + (when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * Cancel a named scheduled task. **/ @@ -764,19 +1090,73 @@ declare module '@polkadot/api-base/types/submittable' { /** * Anonymously schedule a task. **/ - schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, u8, Call]>; + schedule: AugmentedSubmittable< + ( + when: u32 | AnyNumber | Uint8Array, + maybePeriodic: + | Option<ITuple<[u32, u32]>> + | null + | Uint8Array + | ITuple<[u32, u32]> + | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], + priority: u8 | AnyNumber | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, Option<ITuple<[u32, u32]>>, u8, Call] + >; /** * Anonymously schedule a task after a delay. **/ - scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, Option<ITuple<[u32, u32]>>, u8, Call]>; + scheduleAfter: AugmentedSubmittable< + ( + after: u32 | AnyNumber | Uint8Array, + maybePeriodic: + | Option<ITuple<[u32, u32]>> + | null + | Uint8Array + | ITuple<[u32, u32]> + | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], + priority: u8 | AnyNumber | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [u32, Option<ITuple<[u32, u32]>>, u8, Call] + >; /** * Schedule a named task. **/ - scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, Call]>; + scheduleNamed: AugmentedSubmittable< + ( + id: U8aFixed | string | Uint8Array, + when: u32 | AnyNumber | Uint8Array, + maybePeriodic: + | Option<ITuple<[u32, u32]>> + | null + | Uint8Array + | ITuple<[u32, u32]> + | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], + priority: u8 | AnyNumber | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, Call] + >; /** * Schedule a named task after a delay. **/ - scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, Call]>; + scheduleNamedAfter: AugmentedSubmittable< + ( + id: U8aFixed | string | Uint8Array, + after: u32 | AnyNumber | Uint8Array, + maybePeriodic: + | Option<ITuple<[u32, u32]>> + | null + | Uint8Array + | ITuple<[u32, u32]> + | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], + priority: u8 | AnyNumber | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, Call] + >; /** * Generic tx **/ @@ -785,14 +1165,14 @@ declare module '@polkadot/api-base/types/submittable' { session: { /** * Removes any session key(s) of the function caller. - * + * * This doesn't take effect until the next session. - * + * * The dispatch origin of this function must be Signed and the account must be either be * convertible to a validator ID using the chain's typical addressing system (this usually * means being a controller account) or directly convertible into a validator ID (which * usually means being a stash account). - * + * * ## Complexity * - `O(1)` in number of key types. Actual cost depends on the number of length of * `T::Keys::key_ids()` which is fixed. @@ -802,14 +1182,20 @@ declare module '@polkadot/api-base/types/submittable' { * Sets the session key(s) of the function caller to `keys`. * Allows an account to set its session key prior to becoming a validator. * This doesn't take effect until the next session. - * + * * The dispatch origin of this function must be signed. - * + * * ## Complexity * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is * fixed. **/ - setKeys: AugmentedSubmittable<(keys: GdevRuntimeOpaqueSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [GdevRuntimeOpaqueSessionKeys, Bytes]>; + setKeys: AugmentedSubmittable< + ( + keys: GdevRuntimeOpaqueSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any } | string | Uint8Array, + proof: Bytes | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [GdevRuntimeOpaqueSessionKeys, Bytes] + >; /** * Generic tx **/ @@ -818,16 +1204,22 @@ declare module '@polkadot/api-base/types/submittable' { smithCert: { /** * Add a new certification or renew an existing one - * + * * - `receiver`: the account receiving the certification from the origin - * + * * The origin must be allow to certify. **/ - addCert: AugmentedSubmittable<(issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + addCert: AugmentedSubmittable< + (issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * remove a certification (only root) **/ - delCert: AugmentedSubmittable<(issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>; + delCert: AugmentedSubmittable< + (issuer: u32 | AnyNumber | Uint8Array, receiver: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u32, u32] + >; /** * remove all certifications received by an identity (only root) **/ @@ -869,18 +1261,23 @@ declare module '@polkadot/api-base/types/submittable' { /** * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo * key. - * + * * The dispatch origin for this call must be _Signed_. - * + * * ## Complexity * - O(1). **/ - setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>; + setKey: AugmentedSubmittable< + ( + updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress] + >; /** * Authenticates the sudo key and dispatches a function call with `Root` origin. - * + * * The dispatch origin for this call must be _Signed_. - * + * * ## Complexity * - O(1). **/ @@ -888,24 +1285,36 @@ declare module '@polkadot/api-base/types/submittable' { /** * Authenticates the sudo key and dispatches a function call with `Signed` origin from * a given account. - * + * * The dispatch origin for this call must be _Signed_. - * + * * ## Complexity * - O(1). **/ - sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>; + sudoAs: AugmentedSubmittable< + ( + who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Call] + >; /** * Authenticates the sudo key and dispatches a function call with `Root` origin. * This function does not check the weight of the call, and instead allows the * Sudo user to specify the weight of the call. - * + * * The dispatch origin for this call must be _Signed_. - * + * * ## Complexity * - O(1). **/ - sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, SpWeightsWeightV2Weight]>; + sudoUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Call, SpWeightsWeightV2Weight] + >; /** * Generic tx **/ @@ -914,18 +1323,21 @@ declare module '@polkadot/api-base/types/submittable' { system: { /** * Kill all storage items with a key that starts with the given prefix. - * + * * **NOTE:** We rely on the Root origin to provide us the number of subkeys under * the prefix we are removing to accurately calculate the weight of this function. **/ - killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>; + killPrefix: AugmentedSubmittable< + (prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [Bytes, u32] + >; /** * Kill some items from storage. **/ killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>; /** * Make some on-chain remark. - * + * * ## Complexity * - `O(1)` **/ @@ -936,14 +1348,14 @@ declare module '@polkadot/api-base/types/submittable' { remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>; /** * Set the new runtime code. - * + * * ## Complexity * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code` **/ setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>; /** * Set the new runtime code without doing any checks of the given `code`. - * + * * ## Complexity * - `O(C)` where `C` length of `code` **/ @@ -955,7 +1367,10 @@ declare module '@polkadot/api-base/types/submittable' { /** * Set some items of storage. **/ - setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>; + setStorage: AugmentedSubmittable< + (items: Vec<ITuple<[Bytes, Bytes]>> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][]) => SubmittableExtrinsic<ApiType>, + [Vec<ITuple<[Bytes, Bytes]>>] + >; /** * Generic tx **/ @@ -964,23 +1379,23 @@ declare module '@polkadot/api-base/types/submittable' { technicalCommittee: { /** * Close a vote that is either approved, disapproved or whose voting period has ended. - * + * * May be called by any signed account in order to finish voting and close the proposal. - * + * * If called before the end of the voting period it will only close the vote if it is * has enough votes to be approved or disapproved. - * + * * If called after the end of the voting period abstentions are counted as rejections * unless there is a prime member set and the prime member cast an approval. - * + * * If the close operation completes successfully with disapproval, the transaction fee will * be waived. Otherwise execution of the approved operation will be charged to the caller. - * + * * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed * proposal. * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via * `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length. - * + * * ## Complexity * - `O(B + M + P1 + P2)` where: * - `B` is `proposal` size in bytes (length-fee-bounded) @@ -988,40 +1403,51 @@ declare module '@polkadot/api-base/types/submittable' { * - `P1` is the complexity of `proposal` preimage. * - `P2` is proposal-count (code-bounded) **/ - close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact<u32> | AnyNumber | Uint8Array, proposalWeightBound: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array, lengthBound: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256, Compact<u32>, SpWeightsWeightV2Weight, Compact<u32>]>; + close: AugmentedSubmittable< + ( + proposalHash: H256 | string | Uint8Array, + index: Compact<u32> | AnyNumber | Uint8Array, + proposalWeightBound: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array, + lengthBound: Compact<u32> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [H256, Compact<u32>, SpWeightsWeightV2Weight, Compact<u32>] + >; /** * Disapprove a proposal, close, and remove it from the system, regardless of its current * state. - * + * * Must be called by the Root origin. - * + * * Parameters: * * `proposal_hash`: The hash of the proposal that should be disapproved. - * + * * ## Complexity * O(P) where P is the number of max proposals **/ disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>; /** * Dispatch a proposal from a member using the `Member` origin. - * + * * Origin must be a member of the collective. - * + * * ## Complexity: * - `O(B + M + P)` where: * - `B` is `proposal` size in bytes (length-fee-bounded) * - `M` members-count (code-bounded) * - `P` complexity of dispatching `proposal` **/ - execute: AugmentedSubmittable<(proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, Compact<u32>]>; + execute: AugmentedSubmittable< + (proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, + [Call, Compact<u32>] + >; /** * Add a new proposal to either be voted on or executed directly. - * + * * Requires the sender to be member. - * + * * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) * or put up for voting. - * + * * ## Complexity * - `O(B + M + P1)` or `O(B + M + P2)` where: * - `B` is `proposal` size in bytes (length-fee-bounded) @@ -1030,46 +1456,67 @@ declare module '@polkadot/api-base/types/submittable' { * - `P1` is proposal execution complexity (`threshold < 2`) * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) **/ - propose: AugmentedSubmittable<(threshold: Compact<u32> | AnyNumber | Uint8Array, proposal: Call | IMethod | string | Uint8Array, lengthBound: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Call, Compact<u32>]>; + propose: AugmentedSubmittable< + ( + threshold: Compact<u32> | AnyNumber | Uint8Array, + proposal: Call | IMethod | string | Uint8Array, + lengthBound: Compact<u32> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Compact<u32>, Call, Compact<u32>] + >; /** * Set the collective's membership. - * + * * - `new_members`: The new member list. Be nice to the chain and provide it sorted. * - `prime`: The prime member whose vote sets the default. * - `old_count`: The upper bound for the previous number of members in storage. Used for * weight estimation. - * + * * The dispatch of this call must be `SetMembersOrigin`. - * + * * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but * the weight estimations rely on it to estimate dispatchable weight. - * + * * # WARNING: - * + * * The `pallet-collective` can also be managed by logic outside of the pallet through the * implementation of the trait [`ChangeMembers`]. * Any call to `set_members` must be careful that the member set doesn't get out of sync * with other logic managing the member set. - * + * * ## Complexity: * - `O(MP + N)` where: * - `M` old-members-count (code- and governance-bounded) * - `N` new-members-count (code- and governance-bounded) * - `P` proposals-count (code-bounded) **/ - setMembers: AugmentedSubmittable<(newMembers: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], prime: Option<AccountId32> | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<AccountId32>, Option<AccountId32>, u32]>; + setMembers: AugmentedSubmittable< + ( + newMembers: Vec<AccountId32> | (AccountId32 | string | Uint8Array)[], + prime: Option<AccountId32> | null | Uint8Array | AccountId32 | string, + oldCount: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Vec<AccountId32>, Option<AccountId32>, u32] + >; /** * Add an aye or nay vote for the sender to the given proposal. - * + * * Requires the sender to be a member. - * + * * Transaction fees will be waived if the member is voting on any particular proposal * for the first time and the call is successful. Subsequent vote changes will charge a * fee. * ## Complexity * - `O(M)` where `M` is members-count (code- and governance-bounded) **/ - vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact<u32> | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256, Compact<u32>, bool]>; + vote: AugmentedSubmittable< + ( + proposal: H256 | string | Uint8Array, + index: Compact<u32> | AnyNumber | Uint8Array, + approve: bool | boolean | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [H256, Compact<u32>, bool] + >; /** * Generic tx **/ @@ -1078,15 +1525,15 @@ declare module '@polkadot/api-base/types/submittable' { timestamp: { /** * Set the current time. - * + * * This call should be invoked exactly once per block. It will panic at the finalization * phase, if this call hasn't been invoked by that time. - * + * * The timestamp should be greater than the previous one by the amount specified by * `MinimumPeriod`. - * + * * The dispatch origin for this call must be `Inherent`. - * + * * ## Complexity * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in @@ -1103,9 +1550,9 @@ declare module '@polkadot/api-base/types/submittable' { /** * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary * and the original deposit will be returned. - * + * * May only be called from `T::ApproveOrigin`. - * + * * ## Complexity * - O(1). **/ @@ -1114,16 +1561,22 @@ declare module '@polkadot/api-base/types/submittable' { * Put forward a suggestion for spending. A deposit proportional to the value * is reserved and slashed if the proposal is rejected. It is returned once the * proposal is awarded. - * + * * ## Complexity * - O(1) **/ - proposeSpend: AugmentedSubmittable<(value: Compact<u64> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>, MultiAddress]>; + proposeSpend: AugmentedSubmittable< + ( + value: Compact<u64> | AnyNumber | Uint8Array, + beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Compact<u64>, MultiAddress] + >; /** * Reject a proposed spend. The original deposit will be slashed. - * + * * May only be called from `T::RejectOrigin`. - * + * * ## Complexity * - O(1) **/ @@ -1131,13 +1584,13 @@ declare module '@polkadot/api-base/types/submittable' { /** * Force a previously approved proposal to be removed from the approval queue. * The original deposit will no longer be returned. - * + * * May only be called from `T::RejectOrigin`. * - `proposal_id`: The index of a proposal - * + * * ## Complexity * - O(A) where `A` is the number of approvals - * + * * Errors: * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue, * i.e., the proposal has not been approved. This could also mean the proposal does not @@ -1146,15 +1599,21 @@ declare module '@polkadot/api-base/types/submittable' { removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>; /** * Propose and approve a spend of treasury funds. - * + * * - `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`. * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. * - `beneficiary`: The destination account for the transfer. - * + * * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the * beneficiary. **/ - spend: AugmentedSubmittable<(amount: Compact<u64> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>, MultiAddress]>; + spend: AugmentedSubmittable< + ( + amount: Compact<u64> | AnyNumber | Uint8Array, + beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Compact<u64>, MultiAddress] + >; /** * Generic tx **/ @@ -1168,11 +1627,23 @@ declare module '@polkadot/api-base/types/submittable' { /** * Transfer some liquid free balance to another account, in milliUD. **/ - transferUd: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + transferUd: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Transfer some liquid free balance to another account, in milliUD. **/ - transferUdKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u64>]>; + transferUdKeepAlive: AugmentedSubmittable< + ( + dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, + value: Compact<u64> | AnyNumber | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [MultiAddress, Compact<u64>] + >; /** * Generic tx **/ @@ -1181,7 +1652,7 @@ declare module '@polkadot/api-base/types/submittable' { upgradeOrigin: { /** * Dispatches a function call from root origin. - * + * * The weight of this call is defined by the caller. **/ dispatchAsRoot: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>; @@ -1189,10 +1660,16 @@ declare module '@polkadot/api-base/types/submittable' { * Dispatches a function call from root origin. * This function does not check the weight of the call, and instead allows the * caller to specify the weight of the call. - * + * * The weight of this call is defined by the caller. **/ - dispatchAsRootUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, SpWeightsWeightV2Weight]>; + dispatchAsRootUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Call, SpWeightsWeightV2Weight] + >; /** * Generic tx **/ @@ -1201,34 +1678,37 @@ declare module '@polkadot/api-base/types/submittable' { utility: { /** * Send a call through an indexed pseudonym of the sender. - * + * * Filter from origin are passed along. The call will be dispatched with an origin which * use the same filter as the origin of this call. - * + * * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. * because you expect `proxy` to have been used prior in the call stack and you do not want * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` * in the Multisig pallet instead. - * + * * NOTE: Prior to version *12, this was called `as_limited_sub`. - * + * * The dispatch origin for this call must be _Signed_. **/ - asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u16, Call]>; + asDerivative: AugmentedSubmittable< + (index: u16 | AnyNumber | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, + [u16, Call] + >; /** * Send a batch of dispatch calls. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. - * + * * This will return `Ok` in all circumstances. To determine the success of the batch, an * event is deposited. If a call failed and the batch was interrupted, then the * `BatchInterrupted` event is deposited, along with the number of successful calls made @@ -1239,53 +1719,65 @@ declare module '@polkadot/api-base/types/submittable' { /** * Send a batch of dispatch calls and atomically execute them. * The whole transaction will rollback and fail if any of the calls failed. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. **/ batchAll: AugmentedSubmittable<(calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Call>]>; /** * Dispatches a function call with a provided origin. - * + * * The dispatch origin for this call must be _Root_. - * + * * ## Complexity * - O(1). **/ - dispatchAs: AugmentedSubmittable<(asOrigin: GdevRuntimeOriginCaller | { system: any } | { Void: any } | { TechnicalCommittee: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [GdevRuntimeOriginCaller, Call]>; + dispatchAs: AugmentedSubmittable< + ( + asOrigin: GdevRuntimeOriginCaller | { system: any } | { Void: any } | { TechnicalCommittee: any } | string | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [GdevRuntimeOriginCaller, Call] + >; /** * Send a batch of dispatch calls. * Unlike `batch`, it allows errors and won't interrupt. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatch without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. **/ forceBatch: AugmentedSubmittable<(calls: Vec<Call> | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Call>]>; /** * Dispatch a function call with a specified weight. - * + * * This function does not check the weight of the call, and instead allows the * Root origin to specify the weight of the call. - * + * * The dispatch origin for this call must be _Root_. **/ - withWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, SpWeightsWeightV2Weight]>; + withWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic<ApiType>, + [Call, SpWeightsWeightV2Weight] + >; /** * Generic tx **/ diff --git a/src/interfaces/augment-types.ts b/src/interfaces/augment-types.ts index 3fab113a7275f119a4edf56d7fb08a9fb8a50e34..ea9dc802eff0287c1564b37f8c47cbf02923c089 100644 --- a/src/interfaces/augment-types.ts +++ b/src/interfaces/augment-types.ts @@ -6,71 +6,1175 @@ import '@polkadot/types/types/registry'; import type { Data, StorageKey } from '@polkadot/types'; -import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, ISize, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, isize, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec'; +import type { + BitVec, + Bool, + Bytes, + F32, + F64, + I128, + I16, + I256, + I32, + I64, + I8, + ISize, + Json, + Null, + OptionBool, + Raw, + Text, + Type, + U128, + U16, + U256, + U32, + U64, + U8, + USize, + bool, + f32, + f64, + i128, + i16, + i256, + i32, + i64, + i8, + isize, + u128, + u16, + u256, + u32, + u64, + u8, + usize, +} from '@polkadot/types-codec'; import type { TAssetConversion } from '@polkadot/types/interfaces/assetConversion'; -import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets'; +import type { + AssetApproval, + AssetApprovalKey, + AssetBalance, + AssetDestroyWitness, + AssetDetails, + AssetMetadata, + TAssetBalance, + TAssetDepositBalance, +} from '@polkadot/types/interfaces/assets'; import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@polkadot/types/interfaces/attestations'; import type { RawAuraPreDigest } from '@polkadot/types/interfaces/aura'; import type { ExtrinsicOrHash, ExtrinsicStatus } from '@polkadot/types/interfaces/author'; import type { UncleEntryItem } from '@polkadot/types/interfaces/authorship'; -import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeGenesisConfiguration, BabeGenesisConfigurationV1, BabeWeight, Epoch, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, OpaqueKeyOwnershipProof, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@polkadot/types/interfaces/babe'; -import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@polkadot/types/interfaces/balances'; -import type { BeefyAuthoritySet, BeefyCommitment, BeefyEquivocationProof, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefyPayloadId, BeefySignedCommitment, BeefyVersionedFinalityProof, BeefyVoteMessage, MmrRootHash, ValidatorSet, ValidatorSetId } from '@polkadot/types/interfaces/beefy'; -import type { BenchmarkBatch, BenchmarkConfig, BenchmarkList, BenchmarkMetadata, BenchmarkParameter, BenchmarkResult } from '@polkadot/types/interfaces/benchmark'; +import type { + AllowedSlots, + BabeAuthorityWeight, + BabeBlockWeight, + BabeEpochConfiguration, + BabeEquivocationProof, + BabeGenesisConfiguration, + BabeGenesisConfigurationV1, + BabeWeight, + Epoch, + EpochAuthorship, + MaybeRandomness, + MaybeVrf, + NextConfigDescriptor, + NextConfigDescriptorV1, + OpaqueKeyOwnershipProof, + Randomness, + RawBabePreDigest, + RawBabePreDigestCompat, + RawBabePreDigestPrimary, + RawBabePreDigestPrimaryTo159, + RawBabePreDigestSecondaryPlain, + RawBabePreDigestSecondaryTo159, + RawBabePreDigestSecondaryVRF, + RawBabePreDigestTo159, + SlotNumber, + VrfData, + VrfOutput, + VrfProof, +} from '@polkadot/types/interfaces/babe'; +import type { + AccountData, + BalanceLock, + BalanceLockTo212, + BalanceStatus, + Reasons, + ReserveData, + ReserveIdentifier, + VestingSchedule, + WithdrawReasons, +} from '@polkadot/types/interfaces/balances'; +import type { + BeefyAuthoritySet, + BeefyCommitment, + BeefyEquivocationProof, + BeefyId, + BeefyNextAuthoritySet, + BeefyPayload, + BeefyPayloadId, + BeefySignedCommitment, + BeefyVersionedFinalityProof, + BeefyVoteMessage, + MmrRootHash, + ValidatorSet, + ValidatorSetId, +} from '@polkadot/types/interfaces/beefy'; +import type { + BenchmarkBatch, + BenchmarkConfig, + BenchmarkList, + BenchmarkMetadata, + BenchmarkParameter, + BenchmarkResult, +} from '@polkadot/types/interfaces/benchmark'; import type { CheckInherentsResult, InherentData, InherentIdentifier } from '@polkadot/types/interfaces/blockbuilder'; -import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@polkadot/types/interfaces/bridges'; +import type { + BridgeMessageId, + BridgedBlockHash, + BridgedBlockNumber, + BridgedHeader, + CallOrigin, + ChainId, + DeliveredMessages, + DispatchFeePayment, + InboundLaneData, + InboundRelayer, + InitializationData, + LaneId, + MessageData, + MessageKey, + MessageNonce, + MessagesDeliveryProofOf, + MessagesProofOf, + OperatingMode, + OutboundLaneData, + OutboundMessageFee, + OutboundPayload, + Parameter, + RelayerId, + UnrewardedRelayer, + UnrewardedRelayersState, +} from '@polkadot/types/interfaces/bridges'; import type { BlockHash } from '@polkadot/types/interfaces/chain'; import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate'; import type { StatementKind } from '@polkadot/types/interfaces/claims'; import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective'; import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus'; -import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts'; -import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractConstructorSpecV4, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEnvironmentV4, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMessageSpecV3, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi'; +import type { + AliveContractInfo, + CodeHash, + CodeSource, + CodeUploadRequest, + CodeUploadResult, + CodeUploadResultValue, + ContractCallFlags, + ContractCallRequest, + ContractExecResult, + ContractExecResultOk, + ContractExecResultResult, + ContractExecResultSuccessTo255, + ContractExecResultSuccessTo260, + ContractExecResultTo255, + ContractExecResultTo260, + ContractExecResultTo267, + ContractExecResultU64, + ContractInfo, + ContractInstantiateResult, + ContractInstantiateResultTo267, + ContractInstantiateResultTo299, + ContractInstantiateResultU64, + ContractReturnFlags, + ContractStorageKey, + DeletedContract, + ExecReturnValue, + Gas, + HostFnWeights, + HostFnWeightsTo264, + InstantiateRequest, + InstantiateRequestV1, + InstantiateRequestV2, + InstantiateReturnValue, + InstantiateReturnValueOk, + InstantiateReturnValueTo267, + InstructionWeights, + Limits, + LimitsTo264, + PrefabWasmModule, + RentProjection, + Schedule, + ScheduleTo212, + ScheduleTo258, + ScheduleTo264, + SeedOf, + StorageDeposit, + TombstoneContractInfo, + TrieId, +} from '@polkadot/types/interfaces/contracts'; +import type { + ContractConstructorSpecLatest, + ContractConstructorSpecV0, + ContractConstructorSpecV1, + ContractConstructorSpecV2, + ContractConstructorSpecV3, + ContractConstructorSpecV4, + ContractContractSpecV0, + ContractContractSpecV1, + ContractContractSpecV2, + ContractContractSpecV3, + ContractContractSpecV4, + ContractCryptoHasher, + ContractDiscriminant, + ContractDisplayName, + ContractEnvironmentV4, + ContractEventParamSpecLatest, + ContractEventParamSpecV0, + ContractEventParamSpecV2, + ContractEventSpecLatest, + ContractEventSpecV0, + ContractEventSpecV1, + ContractEventSpecV2, + ContractLayoutArray, + ContractLayoutCell, + ContractLayoutEnum, + ContractLayoutHash, + ContractLayoutHashingStrategy, + ContractLayoutKey, + ContractLayoutStruct, + ContractLayoutStructField, + ContractMessageParamSpecLatest, + ContractMessageParamSpecV0, + ContractMessageParamSpecV2, + ContractMessageSpecLatest, + ContractMessageSpecV0, + ContractMessageSpecV1, + ContractMessageSpecV2, + ContractMessageSpecV3, + ContractMetadata, + ContractMetadataLatest, + ContractMetadataV0, + ContractMetadataV1, + ContractMetadataV2, + ContractMetadataV3, + ContractMetadataV4, + ContractProject, + ContractProjectContract, + ContractProjectInfo, + ContractProjectSource, + ContractProjectV0, + ContractSelector, + ContractStorageLayout, + ContractTypeSpec, +} from '@polkadot/types/interfaces/contractsAbi'; import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan'; -import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus'; -import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy'; +import type { + CollationInfo, + CollationInfoV1, + ConfigData, + MessageId, + OverweightIndex, + PageCounter, + PageIndexData, +} from '@polkadot/types/interfaces/cumulus'; +import type { + AccountVote, + AccountVoteSplit, + AccountVoteStandard, + Conviction, + Delegations, + PreimageStatus, + PreimageStatusAvailable, + PriorLock, + PropIndex, + Proposal, + ProxyState, + ReferendumIndex, + ReferendumInfo, + ReferendumInfoFinished, + ReferendumInfoTo239, + ReferendumStatus, + Tally, + Voting, + VotingDelegating, + VotingDirect, + VotingDirectVote, +} from '@polkadot/types/interfaces/democracy'; import type { BlockStats } from '@polkadot/types/interfaces/dev'; -import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections'; +import type { + ApprovalFlag, + DefunctVoter, + Renouncing, + SetIndex, + Vote, + VoteIndex, + VoteThreshold, + VoterInfo, +} from '@polkadot/types/interfaces/elections'; import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine'; -import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFeeHistory, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthReceiptV0, EthReceiptV3, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth'; -import type { EvmAccount, EvmCallInfo, EvmCallInfoV2, EvmCreateInfo, EvmCreateInfoV2, EvmLog, EvmVicinity, EvmWeightInfo, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@polkadot/types/interfaces/evm'; -import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV4, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@polkadot/types/interfaces/extrinsics'; +import type { + BlockV0, + BlockV1, + BlockV2, + EIP1559Transaction, + EIP2930Transaction, + EthAccessList, + EthAccessListItem, + EthAccount, + EthAddress, + EthBlock, + EthBloom, + EthCallRequest, + EthFeeHistory, + EthFilter, + EthFilterAddress, + EthFilterChanges, + EthFilterTopic, + EthFilterTopicEntry, + EthFilterTopicInner, + EthHeader, + EthLog, + EthReceipt, + EthReceiptV0, + EthReceiptV3, + EthRichBlock, + EthRichHeader, + EthStorageProof, + EthSubKind, + EthSubParams, + EthSubResult, + EthSyncInfo, + EthSyncStatus, + EthTransaction, + EthTransactionAction, + EthTransactionCondition, + EthTransactionRequest, + EthTransactionSignature, + EthTransactionStatus, + EthWork, + EthereumAccountId, + EthereumAddress, + EthereumLookupSource, + EthereumSignature, + LegacyTransaction, + TransactionV0, + TransactionV1, + TransactionV2, +} from '@polkadot/types/interfaces/eth'; +import type { + EvmAccount, + EvmCallInfo, + EvmCallInfoV2, + EvmCreateInfo, + EvmCreateInfoV2, + EvmLog, + EvmVicinity, + EvmWeightInfo, + ExitError, + ExitFatal, + ExitReason, + ExitRevert, + ExitSucceed, +} from '@polkadot/types/interfaces/evm'; +import type { + AnySignature, + EcdsaSignature, + Ed25519Signature, + Era, + Extrinsic, + ExtrinsicEra, + ExtrinsicPayload, + ExtrinsicPayloadUnknown, + ExtrinsicPayloadV4, + ExtrinsicSignature, + ExtrinsicSignatureV4, + ExtrinsicUnknown, + ExtrinsicV4, + ImmortalEra, + MortalEra, + MultiSignature, + Signature, + SignerPayload, + Sr25519Signature, +} from '@polkadot/types/interfaces/extrinsics'; import type { FungiblesAccessError } from '@polkadot/types/interfaces/fungibles'; import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset'; import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@polkadot/types/interfaces/gilt'; -import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa'; -import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@polkadot/types/interfaces/identity'; -import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline'; +import type { + AuthorityIndex, + AuthorityList, + AuthoritySet, + AuthoritySetChange, + AuthoritySetChanges, + AuthorityWeight, + DelayKind, + DelayKindBest, + EncodedFinalityProofs, + ForkTreePendingChange, + ForkTreePendingChangeNode, + GrandpaCommit, + GrandpaEquivocation, + GrandpaEquivocationProof, + GrandpaEquivocationValue, + GrandpaJustification, + GrandpaPrecommit, + GrandpaPrevote, + GrandpaSignedPrecommit, + JustificationNotification, + KeyOwnerProof, + NextAuthority, + PendingChange, + PendingPause, + PendingResume, + Precommits, + Prevotes, + ReportedRoundStates, + RoundState, + SetId, + StoredPendingChange, + StoredState, +} from '@polkadot/types/interfaces/grandpa'; +import type { + IdentityFields, + IdentityInfo, + IdentityInfoAdditional, + IdentityInfoTo198, + IdentityJudgement, + RegistrarIndex, + RegistrarInfo, + Registration, + RegistrationJudgement, + RegistrationTo198, +} from '@polkadot/types/interfaces/identity'; +import type { + AuthIndex, + AuthoritySignature, + Heartbeat, + HeartbeatTo244, + OpaqueMultiaddr, + OpaqueNetworkState, + OpaquePeerId, +} from '@polkadot/types/interfaces/imOnline'; import type { CallIndex, LotteryConfig } from '@polkadot/types/interfaces/lottery'; -import type { CustomMetadata15, CustomValueMetadata15, ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, ExtrinsicMetadataV15, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV15, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, OpaqueMetadata, OuterEnums15, PalletCallMetadataLatest, PalletCallMetadataV14, PalletConstantMetadataLatest, PalletConstantMetadataV14, PalletErrorMetadataLatest, PalletErrorMetadataV14, PalletEventMetadataLatest, PalletEventMetadataV14, PalletMetadataLatest, PalletMetadataV14, PalletMetadataV15, PalletStorageMetadataLatest, PalletStorageMetadataV14, PortableType, PortableTypeV14, RuntimeApiMetadataLatest, RuntimeApiMetadataV15, RuntimeApiMethodMetadataV15, RuntimeApiMethodParamMetadataV15, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9 } from '@polkadot/types/interfaces/metadata'; -import type { MmrBatchProof, MmrEncodableOpaqueLeaf, MmrError, MmrHash, MmrLeafBatchProof, MmrLeafIndex, MmrLeafProof, MmrNodeIndex, MmrProof } from '@polkadot/types/interfaces/mmr'; +import type { + CustomMetadata15, + CustomValueMetadata15, + ErrorMetadataLatest, + ErrorMetadataV10, + ErrorMetadataV11, + ErrorMetadataV12, + ErrorMetadataV13, + ErrorMetadataV14, + ErrorMetadataV9, + EventMetadataLatest, + EventMetadataV10, + EventMetadataV11, + EventMetadataV12, + EventMetadataV13, + EventMetadataV14, + EventMetadataV9, + ExtrinsicMetadataLatest, + ExtrinsicMetadataV11, + ExtrinsicMetadataV12, + ExtrinsicMetadataV13, + ExtrinsicMetadataV14, + ExtrinsicMetadataV15, + FunctionArgumentMetadataLatest, + FunctionArgumentMetadataV10, + FunctionArgumentMetadataV11, + FunctionArgumentMetadataV12, + FunctionArgumentMetadataV13, + FunctionArgumentMetadataV14, + FunctionArgumentMetadataV9, + FunctionMetadataLatest, + FunctionMetadataV10, + FunctionMetadataV11, + FunctionMetadataV12, + FunctionMetadataV13, + FunctionMetadataV14, + FunctionMetadataV9, + MetadataAll, + MetadataLatest, + MetadataV10, + MetadataV11, + MetadataV12, + MetadataV13, + MetadataV14, + MetadataV15, + MetadataV9, + ModuleConstantMetadataV10, + ModuleConstantMetadataV11, + ModuleConstantMetadataV12, + ModuleConstantMetadataV13, + ModuleConstantMetadataV9, + ModuleMetadataV10, + ModuleMetadataV11, + ModuleMetadataV12, + ModuleMetadataV13, + ModuleMetadataV9, + OpaqueMetadata, + OuterEnums15, + PalletCallMetadataLatest, + PalletCallMetadataV14, + PalletConstantMetadataLatest, + PalletConstantMetadataV14, + PalletErrorMetadataLatest, + PalletErrorMetadataV14, + PalletEventMetadataLatest, + PalletEventMetadataV14, + PalletMetadataLatest, + PalletMetadataV14, + PalletMetadataV15, + PalletStorageMetadataLatest, + PalletStorageMetadataV14, + PortableType, + PortableTypeV14, + RuntimeApiMetadataLatest, + RuntimeApiMetadataV15, + RuntimeApiMethodMetadataV15, + RuntimeApiMethodParamMetadataV15, + SignedExtensionMetadataLatest, + SignedExtensionMetadataV14, + StorageEntryMetadataLatest, + StorageEntryMetadataV10, + StorageEntryMetadataV11, + StorageEntryMetadataV12, + StorageEntryMetadataV13, + StorageEntryMetadataV14, + StorageEntryMetadataV9, + StorageEntryModifierLatest, + StorageEntryModifierV10, + StorageEntryModifierV11, + StorageEntryModifierV12, + StorageEntryModifierV13, + StorageEntryModifierV14, + StorageEntryModifierV9, + StorageEntryTypeLatest, + StorageEntryTypeV10, + StorageEntryTypeV11, + StorageEntryTypeV12, + StorageEntryTypeV13, + StorageEntryTypeV14, + StorageEntryTypeV9, + StorageHasher, + StorageHasherV10, + StorageHasherV11, + StorageHasherV12, + StorageHasherV13, + StorageHasherV14, + StorageHasherV9, + StorageMetadataV10, + StorageMetadataV11, + StorageMetadataV12, + StorageMetadataV13, + StorageMetadataV9, +} from '@polkadot/types/interfaces/metadata'; +import type { + MmrBatchProof, + MmrEncodableOpaqueLeaf, + MmrError, + MmrHash, + MmrLeafBatchProof, + MmrLeafIndex, + MmrLeafProof, + MmrNodeIndex, + MmrProof, +} from '@polkadot/types/interfaces/mmr'; import type { NftCollectionId, NftItemId } from '@polkadot/types/interfaces/nfts'; import type { NpApiError, NpPoolId } from '@polkadot/types/interfaces/nompools'; import type { StorageKind } from '@polkadot/types/interfaces/offchain'; import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences'; -import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, CoreState, DisputeLocation, DisputeProof, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DisputesTimeSlot, DoubleVoteReport, DownwardMessage, ExecutorParam, ExecutorParams, ExecutorParamsHash, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, GroupRotationInfo, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OccupiedCore, OccupiedCoreAssumption, OldV1SessionInfo, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PendingSlashes, PersistedValidationData, PvfCheckStatement, PvfExecTimeoutKind, PvfPrepTimeoutKind, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, ScheduledCore, Scheduling, ScrapedOnChainVotes, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlashingOffenceKind, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains'; +import type { + AbridgedCandidateReceipt, + AbridgedHostConfiguration, + AbridgedHrmpChannel, + AssignmentId, + AssignmentKind, + AttestedCandidate, + AuctionIndex, + AuthorityDiscoveryId, + AvailabilityBitfield, + AvailabilityBitfieldRecord, + BackedCandidate, + Bidder, + BufferedSessionChange, + CandidateCommitments, + CandidateDescriptor, + CandidateEvent, + CandidateHash, + CandidateInfo, + CandidatePendingAvailability, + CandidateReceipt, + CollatorId, + CollatorSignature, + CommittedCandidateReceipt, + CoreAssignment, + CoreIndex, + CoreOccupied, + CoreState, + DisputeLocation, + DisputeProof, + DisputeResult, + DisputeState, + DisputeStatement, + DisputeStatementSet, + DisputesTimeSlot, + DoubleVoteReport, + DownwardMessage, + ExecutorParam, + ExecutorParams, + ExecutorParamsHash, + ExplicitDisputeStatement, + GlobalValidationData, + GlobalValidationSchedule, + GroupIndex, + GroupRotationInfo, + HeadData, + HostConfiguration, + HrmpChannel, + HrmpChannelId, + HrmpOpenChannelRequest, + InboundDownwardMessage, + InboundHrmpMessage, + InboundHrmpMessages, + IncomingParachain, + IncomingParachainDeploy, + IncomingParachainFixed, + InvalidDisputeStatementKind, + LeasePeriod, + LeasePeriodOf, + LocalValidationData, + MessageIngestionType, + MessageQueueChain, + MessagingStateSnapshot, + MessagingStateSnapshotEgressEntry, + MultiDisputeStatementSet, + NewBidder, + OccupiedCore, + OccupiedCoreAssumption, + OldV1SessionInfo, + OutboundHrmpMessage, + ParaGenesisArgs, + ParaId, + ParaInfo, + ParaLifecycle, + ParaPastCodeMeta, + ParaScheduling, + ParaValidatorIndex, + ParachainDispatchOrigin, + ParachainInherentData, + ParachainProposal, + ParachainsInherentData, + ParathreadClaim, + ParathreadClaimQueue, + ParathreadEntry, + PendingSlashes, + PersistedValidationData, + PvfCheckStatement, + PvfExecTimeoutKind, + PvfPrepTimeoutKind, + QueuedParathread, + RegisteredParachainInfo, + RelayBlockNumber, + RelayChainBlockNumber, + RelayChainHash, + RelayHash, + Remark, + ReplacementTimes, + Retriable, + ScheduledCore, + Scheduling, + ScrapedOnChainVotes, + ServiceQuality, + SessionInfo, + SessionInfoValidatorGroup, + SignedAvailabilityBitfield, + SignedAvailabilityBitfields, + SigningContext, + SlashingOffenceKind, + SlotRange, + SlotRange10, + Statement, + SubId, + SystemInherentData, + TransientValidationData, + UpgradeGoAhead, + UpgradeRestriction, + UpwardMessage, + ValidDisputeStatementKind, + ValidationCode, + ValidationCodeHash, + ValidationData, + ValidationDataType, + ValidationFunctionParams, + ValidatorSignature, + ValidityAttestation, + VecInboundHrmpMessage, + WinnersData, + WinnersData10, + WinnersDataTuple, + WinnersDataTuple10, + WinningData, + WinningData10, + WinningDataEntry, +} from '@polkadot/types/interfaces/parachains'; import type { FeeDetails, InclusionFee, RuntimeDispatchInfo, RuntimeDispatchInfoV1, RuntimeDispatchInfoV2 } from '@polkadot/types/interfaces/payment'; import type { Approvals } from '@polkadot/types/interfaces/poll'; import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy'; import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase'; import type { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery'; import type { RpcMethods } from '@polkadot/types/interfaces/rpc'; -import type { AccountId, AccountId20, AccountId32, AccountId33, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, PalletId, PalletVersion, PalletsOrigin, Pays, PerU16, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Releases, RuntimeCall, RuntimeDbWeight, RuntimeEvent, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, SlotDuration, StorageData, StorageInfo, StorageProof, TransactionInfo, TransactionLongevity, TransactionPriority, TransactionStorageProof, TransactionTag, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier, WeightV0, WeightV1, WeightV2 } from '@polkadot/types/interfaces/runtime'; -import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@polkadot/types/interfaces/scaleInfo'; -import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@polkadot/types/interfaces/scheduler'; -import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@polkadot/types/interfaces/session'; +import type { + AccountId, + AccountId20, + AccountId32, + AccountId33, + AccountIdOf, + AccountIndex, + Address, + AssetId, + Balance, + BalanceOf, + Block, + BlockNumber, + BlockNumberFor, + BlockNumberOf, + Call, + CallHash, + CallHashOf, + ChangesTrieConfiguration, + ChangesTrieSignal, + CodecHash, + Consensus, + ConsensusEngineId, + CrateVersion, + Digest, + DigestItem, + EncodedJustification, + ExtrinsicsWeight, + Fixed128, + Fixed64, + FixedI128, + FixedI64, + FixedU128, + FixedU64, + H1024, + H128, + H160, + H2048, + H256, + H32, + H512, + H64, + Hash, + Header, + HeaderPartial, + I32F32, + Index, + IndicesLookupSource, + Justification, + Justifications, + KeyTypeId, + KeyValue, + LockIdentifier, + LookupSource, + LookupTarget, + ModuleId, + Moment, + MultiAddress, + MultiSigner, + OpaqueCall, + Origin, + OriginCaller, + PalletId, + PalletVersion, + PalletsOrigin, + Pays, + PerU16, + Perbill, + Percent, + Permill, + Perquintill, + Phantom, + PhantomData, + PreRuntime, + Releases, + RuntimeCall, + RuntimeDbWeight, + RuntimeEvent, + Seal, + SealV0, + SignedBlock, + SignedBlockWithJustification, + SignedBlockWithJustifications, + Slot, + SlotDuration, + StorageData, + StorageInfo, + StorageProof, + TransactionInfo, + TransactionLongevity, + TransactionPriority, + TransactionStorageProof, + TransactionTag, + U32F32, + ValidatorId, + ValidatorIdOf, + Weight, + WeightMultiplier, + WeightV0, + WeightV1, + WeightV2, +} from '@polkadot/types/interfaces/runtime'; +import type { + Si0Field, + Si0LookupTypeId, + Si0Path, + Si0Type, + Si0TypeDef, + Si0TypeDefArray, + Si0TypeDefBitSequence, + Si0TypeDefCompact, + Si0TypeDefComposite, + Si0TypeDefPhantom, + Si0TypeDefPrimitive, + Si0TypeDefSequence, + Si0TypeDefTuple, + Si0TypeDefVariant, + Si0TypeParameter, + Si0Variant, + Si1Field, + Si1LookupTypeId, + Si1Path, + Si1Type, + Si1TypeDef, + Si1TypeDefArray, + Si1TypeDefBitSequence, + Si1TypeDefCompact, + Si1TypeDefComposite, + Si1TypeDefPrimitive, + Si1TypeDefSequence, + Si1TypeDefTuple, + Si1TypeDefVariant, + Si1TypeParameter, + Si1Variant, + SiField, + SiLookupTypeId, + SiPath, + SiType, + SiTypeDef, + SiTypeDefArray, + SiTypeDefBitSequence, + SiTypeDefCompact, + SiTypeDefComposite, + SiTypeDefPrimitive, + SiTypeDefSequence, + SiTypeDefTuple, + SiTypeDefVariant, + SiTypeParameter, + SiVariant, +} from '@polkadot/types/interfaces/scaleInfo'; +import type { + Period, + Priority, + SchedulePeriod, + SchedulePriority, + Scheduled, + ScheduledTo254, + TaskAddress, +} from '@polkadot/types/interfaces/scheduler'; +import type { + BeefyKey, + FullIdentification, + IdentificationTuple, + Keys, + MembershipProof, + SessionIndex, + SessionKeys1, + SessionKeys10, + SessionKeys10B, + SessionKeys2, + SessionKeys3, + SessionKeys4, + SessionKeys5, + SessionKeys6, + SessionKeys6B, + SessionKeys7, + SessionKeys7B, + SessionKeys8, + SessionKeys8B, + SessionKeys9, + SessionKeys9B, + ValidatorCount, +} from '@polkadot/types/interfaces/session'; import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@polkadot/types/interfaces/society'; -import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@polkadot/types/interfaces/staking'; -import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, RuntimeVersionPre3, RuntimeVersionPre4, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@polkadot/types/interfaces/state'; +import type { + ActiveEraInfo, + CompactAssignments, + CompactAssignmentsTo257, + CompactAssignmentsTo265, + CompactAssignmentsWith16, + CompactAssignmentsWith24, + CompactScore, + CompactScoreCompact, + ElectionCompute, + ElectionPhase, + ElectionResult, + ElectionScore, + ElectionSize, + ElectionStatus, + EraIndex, + EraPoints, + EraRewardPoints, + EraRewards, + Exposure, + ExtendedBalance, + Forcing, + IndividualExposure, + KeyType, + MomentOf, + Nominations, + NominatorIndex, + NominatorIndexCompact, + OffchainAccuracy, + OffchainAccuracyCompact, + PhragmenScore, + Points, + RawSolution, + RawSolutionTo265, + RawSolutionWith16, + RawSolutionWith24, + ReadySolution, + RewardDestination, + RewardPoint, + RoundSnapshot, + SeatHolder, + SignedSubmission, + SignedSubmissionOf, + SignedSubmissionTo276, + SlashJournalEntry, + SlashingSpans, + SlashingSpansTo204, + SolutionOrSnapshotSize, + SolutionSupport, + SolutionSupports, + SpanIndex, + SpanRecord, + StakingLedger, + StakingLedgerTo223, + StakingLedgerTo240, + SubmissionIndicesOf, + Supports, + UnappliedSlash, + UnappliedSlashOther, + UnlockChunk, + ValidatorIndex, + ValidatorIndexCompact, + ValidatorPrefs, + ValidatorPrefsTo145, + ValidatorPrefsTo196, + ValidatorPrefsWithBlocked, + ValidatorPrefsWithCommission, + VoteWeight, + Voter, +} from '@polkadot/types/interfaces/staking'; +import type { + ApiId, + BlockTrace, + BlockTraceEvent, + BlockTraceEventData, + BlockTraceSpan, + KeyValueOption, + MigrationStatusResult, + ReadProof, + RuntimeVersion, + RuntimeVersionApi, + RuntimeVersionPartial, + RuntimeVersionPre3, + RuntimeVersionPre4, + SpecVersion, + StorageChangeSet, + TraceBlockResponse, + TraceError, +} from '@polkadot/types/interfaces/state'; import type { WeightToFeeCoefficient } from '@polkadot/types/interfaces/support'; -import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ApplyExtrinsicResultPre6, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModulePre6, DispatchErrorModuleU8, DispatchErrorModuleU8a, DispatchErrorPre6, DispatchErrorPre6First, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchOutcomePre6, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, TransactionalError, UnknownTransaction, WeightPerClass } from '@polkadot/types/interfaces/system'; -import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@polkadot/types/interfaces/treasury'; +import type { + AccountInfo, + AccountInfoWithDualRefCount, + AccountInfoWithProviders, + AccountInfoWithRefCount, + AccountInfoWithRefCountU8, + AccountInfoWithTripleRefCount, + ApplyExtrinsicResult, + ApplyExtrinsicResultPre6, + ArithmeticError, + BlockLength, + BlockWeights, + ChainProperties, + ChainType, + ConsumedWeight, + DigestOf, + DispatchClass, + DispatchError, + DispatchErrorModule, + DispatchErrorModulePre6, + DispatchErrorModuleU8, + DispatchErrorModuleU8a, + DispatchErrorPre6, + DispatchErrorPre6First, + DispatchErrorTo198, + DispatchInfo, + DispatchInfoTo190, + DispatchInfoTo244, + DispatchOutcome, + DispatchOutcomePre6, + DispatchResult, + DispatchResultOf, + DispatchResultTo198, + Event, + EventId, + EventIndex, + EventRecord, + Health, + InvalidTransaction, + Key, + LastRuntimeUpgradeInfo, + NetworkState, + NetworkStatePeerset, + NetworkStatePeersetInfo, + NodeRole, + NotConnectedPeer, + Peer, + PeerEndpoint, + PeerEndpointAddr, + PeerInfo, + PeerPing, + PerDispatchClassU32, + PerDispatchClassWeight, + PerDispatchClassWeightsPerClass, + Phase, + RawOrigin, + RefCount, + RefCountTo259, + SyncState, + SystemOrigin, + TokenError, + TransactionValidityError, + TransactionalError, + UnknownTransaction, + WeightPerClass, +} from '@polkadot/types/interfaces/system'; +import type { + Bounty, + BountyIndex, + BountyStatus, + BountyStatusActive, + BountyStatusCuratorProposed, + BountyStatusPendingPayout, + OpenTip, + OpenTipFinderTo225, + OpenTipTip, + OpenTipTo225, + TreasuryProposal, +} from '@polkadot/types/interfaces/treasury'; import type { Multiplier } from '@polkadot/types/interfaces/txpayment'; import type { TransactionSource, TransactionValidity, ValidTransaction } from '@polkadot/types/interfaces/txqueue'; -import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques'; +import type { + ClassDetails, + ClassId, + ClassMetadata, + DepositBalance, + DepositBalanceOf, + DestroyWitness, + InstanceDetails, + InstanceId, + InstanceMetadata, +} from '@polkadot/types/interfaces/uniques'; import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility'; import type { VestingInfo } from '@polkadot/types/interfaces/vesting'; -import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm'; +import type { + AssetInstance, + AssetInstanceV0, + AssetInstanceV1, + AssetInstanceV2, + BodyId, + BodyPart, + DoubleEncodedCall, + Fungibility, + FungibilityV0, + FungibilityV1, + FungibilityV2, + InboundStatus, + InstructionV2, + InteriorMultiLocation, + Junction, + JunctionV0, + JunctionV1, + JunctionV2, + Junctions, + JunctionsV1, + JunctionsV2, + MultiAsset, + MultiAssetFilter, + MultiAssetFilterV1, + MultiAssetFilterV2, + MultiAssetV0, + MultiAssetV1, + MultiAssetV2, + MultiAssets, + MultiAssetsV1, + MultiAssetsV2, + MultiLocation, + MultiLocationV0, + MultiLocationV1, + MultiLocationV2, + NetworkId, + OriginKindV0, + OriginKindV1, + OriginKindV2, + OutboundStatus, + Outcome, + QueryId, + QueryStatus, + QueueConfigData, + Response, + ResponseV0, + ResponseV1, + ResponseV2, + ResponseV2Error, + ResponseV2Result, + VersionMigrationStage, + VersionedMultiAsset, + VersionedMultiAssets, + VersionedMultiLocation, + VersionedResponse, + VersionedXcm, + WeightLimitV2, + WildFungibility, + WildFungibilityV0, + WildFungibilityV1, + WildFungibilityV2, + WildMultiAsset, + WildMultiAssetV1, + WildMultiAssetV2, + Xcm, + XcmAssetId, + XcmError, + XcmErrorV0, + XcmErrorV1, + XcmErrorV2, + XcmOrder, + XcmOrderV0, + XcmOrderV1, + XcmOrderV2, + XcmOrigin, + XcmOriginKind, + XcmV0, + XcmV1, + XcmV2, + XcmVersion, + XcmpMessageFormat, +} from '@polkadot/types/interfaces/xcm'; declare module '@polkadot/types/types/registry' { interface InterfaceTypes { diff --git a/src/interfaces/indexer/apollo-helpers.ts b/src/interfaces/indexer/apollo-helpers.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5738c5f8085cc4185a6f75364164c2e22deb306 --- /dev/null +++ b/src/interfaces/indexer/apollo-helpers.ts @@ -0,0 +1,928 @@ +// Auto-generated via `npx graphql-codegen`, do not edit +/* eslint-disable */ +import { FieldPolicy, FieldReadFunction, TypePolicies, TypePolicy } from '@apollo/client/cache'; +export type AccountKeySpecifier = ( + | 'id' + | 'identity' + | 'linkedIdentity' + | 'transfersIssued' + | 'transfersReceived' + | 'wasIdentity' + | AccountKeySpecifier +)[]; +export type AccountFieldPolicy = { + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; + linkedIdentity?: FieldPolicy<any> | FieldReadFunction<any>; + transfersIssued?: FieldPolicy<any> | FieldReadFunction<any>; + transfersReceived?: FieldPolicy<any> | FieldReadFunction<any>; + wasIdentity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type AccountEdgeKeySpecifier = ('cursor' | 'node' | AccountEdgeKeySpecifier)[]; +export type AccountEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type AccountsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | AccountsConnectionKeySpecifier)[]; +export type AccountsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlockKeySpecifier = ( + | 'calls' + | 'callsCount' + | 'events' + | 'eventsCount' + | 'extrinsics' + | 'extrinsicsCount' + | 'extrinsicsicRoot' + | 'hash' + | 'height' + | 'id' + | 'implName' + | 'implVersion' + | 'parentHash' + | 'specName' + | 'specVersion' + | 'stateRoot' + | 'timestamp' + | 'validator' + | BlockKeySpecifier +)[]; +export type BlockFieldPolicy = { + calls?: FieldPolicy<any> | FieldReadFunction<any>; + callsCount?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + eventsCount?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsics?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsCount?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsicRoot?: FieldPolicy<any> | FieldReadFunction<any>; + hash?: FieldPolicy<any> | FieldReadFunction<any>; + height?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + implName?: FieldPolicy<any> | FieldReadFunction<any>; + implVersion?: FieldPolicy<any> | FieldReadFunction<any>; + parentHash?: FieldPolicy<any> | FieldReadFunction<any>; + specName?: FieldPolicy<any> | FieldReadFunction<any>; + specVersion?: FieldPolicy<any> | FieldReadFunction<any>; + stateRoot?: FieldPolicy<any> | FieldReadFunction<any>; + timestamp?: FieldPolicy<any> | FieldReadFunction<any>; + validator?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlockEdgeKeySpecifier = ('cursor' | 'node' | BlockEdgeKeySpecifier)[]; +export type BlockEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type BlocksConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | BlocksConnectionKeySpecifier)[]; +export type BlocksConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallKeySpecifier = ( + | 'address' + | 'args' + | 'argsStr' + | 'block' + | 'error' + | 'events' + | 'extrinsic' + | 'id' + | 'name' + | 'pallet' + | 'parent' + | 'subcalls' + | 'success' + | CallKeySpecifier +)[]; +export type CallFieldPolicy = { + address?: FieldPolicy<any> | FieldReadFunction<any>; + args?: FieldPolicy<any> | FieldReadFunction<any>; + argsStr?: FieldPolicy<any> | FieldReadFunction<any>; + block?: FieldPolicy<any> | FieldReadFunction<any>; + error?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsic?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + pallet?: FieldPolicy<any> | FieldReadFunction<any>; + parent?: FieldPolicy<any> | FieldReadFunction<any>; + subcalls?: FieldPolicy<any> | FieldReadFunction<any>; + success?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallEdgeKeySpecifier = ('cursor' | 'node' | CallEdgeKeySpecifier)[]; +export type CallEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CallsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CallsConnectionKeySpecifier)[]; +export type CallsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertKeySpecifier = ( + | 'active' + | 'createdOn' + | 'creation' + | 'expireOn' + | 'id' + | 'issuer' + | 'receiver' + | 'removal' + | 'renewal' + | CertKeySpecifier +)[]; +export type CertFieldPolicy = { + active?: FieldPolicy<any> | FieldReadFunction<any>; + createdOn?: FieldPolicy<any> | FieldReadFunction<any>; + creation?: FieldPolicy<any> | FieldReadFunction<any>; + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + issuer?: FieldPolicy<any> | FieldReadFunction<any>; + receiver?: FieldPolicy<any> | FieldReadFunction<any>; + removal?: FieldPolicy<any> | FieldReadFunction<any>; + renewal?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertCreationKeySpecifier)[]; +export type CertCreationFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationEdgeKeySpecifier = ('cursor' | 'node' | CertCreationEdgeKeySpecifier)[]; +export type CertCreationEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertCreationsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertCreationsConnectionKeySpecifier)[]; +export type CertCreationsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertEdgeKeySpecifier = ('cursor' | 'node' | CertEdgeKeySpecifier)[]; +export type CertEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertRemovalKeySpecifier)[]; +export type CertRemovalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalEdgeKeySpecifier = ('cursor' | 'node' | CertRemovalEdgeKeySpecifier)[]; +export type CertRemovalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRemovalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertRemovalsConnectionKeySpecifier)[]; +export type CertRemovalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalKeySpecifier = ('blockNumber' | 'cert' | 'id' | CertRenewalKeySpecifier)[]; +export type CertRenewalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalEdgeKeySpecifier = ('cursor' | 'node' | CertRenewalEdgeKeySpecifier)[]; +export type CertRenewalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertRenewalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertRenewalsConnectionKeySpecifier)[]; +export type CertRenewalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type CertsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | CertsConnectionKeySpecifier)[]; +export type CertsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeyKeySpecifier = ('blockNumber' | 'id' | 'identity' | 'next' | 'previous' | ChangeOwnerKeyKeySpecifier)[]; +export type ChangeOwnerKeyFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; + next?: FieldPolicy<any> | FieldReadFunction<any>; + previous?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeyEdgeKeySpecifier = ('cursor' | 'node' | ChangeOwnerKeyEdgeKeySpecifier)[]; +export type ChangeOwnerKeyEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ChangeOwnerKeysConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ChangeOwnerKeysConnectionKeySpecifier)[]; +export type ChangeOwnerKeysConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventKeySpecifier = ( + | 'args' + | 'argsStr' + | 'block' + | 'call' + | 'extrinsic' + | 'id' + | 'index' + | 'name' + | 'pallet' + | 'phase' + | EventKeySpecifier +)[]; +export type EventFieldPolicy = { + args?: FieldPolicy<any> | FieldReadFunction<any>; + argsStr?: FieldPolicy<any> | FieldReadFunction<any>; + block?: FieldPolicy<any> | FieldReadFunction<any>; + call?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsic?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + pallet?: FieldPolicy<any> | FieldReadFunction<any>; + phase?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventEdgeKeySpecifier = ('cursor' | 'node' | EventEdgeKeySpecifier)[]; +export type EventEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type EventsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | EventsConnectionKeySpecifier)[]; +export type EventsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicKeySpecifier = ( + | 'block' + | 'call' + | 'calls' + | 'error' + | 'events' + | 'fee' + | 'hash' + | 'id' + | 'index' + | 'signature' + | 'success' + | 'tip' + | 'version' + | ExtrinsicKeySpecifier +)[]; +export type ExtrinsicFieldPolicy = { + block?: FieldPolicy<any> | FieldReadFunction<any>; + call?: FieldPolicy<any> | FieldReadFunction<any>; + calls?: FieldPolicy<any> | FieldReadFunction<any>; + error?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + fee?: FieldPolicy<any> | FieldReadFunction<any>; + hash?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + signature?: FieldPolicy<any> | FieldReadFunction<any>; + success?: FieldPolicy<any> | FieldReadFunction<any>; + tip?: FieldPolicy<any> | FieldReadFunction<any>; + version?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicEdgeKeySpecifier = ('cursor' | 'node' | ExtrinsicEdgeKeySpecifier)[]; +export type ExtrinsicEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicSignatureKeySpecifier = ('address' | 'signature' | 'signedExtensions' | ExtrinsicSignatureKeySpecifier)[]; +export type ExtrinsicSignatureFieldPolicy = { + address?: FieldPolicy<any> | FieldReadFunction<any>; + signature?: FieldPolicy<any> | FieldReadFunction<any>; + signedExtensions?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ExtrinsicsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ExtrinsicsConnectionKeySpecifier)[]; +export type ExtrinsicsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentitiesConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | IdentitiesConnectionKeySpecifier)[]; +export type IdentitiesConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentityKeySpecifier = ( + | 'account' + | 'certIssued' + | 'certReceived' + | 'id' + | 'index' + | 'linkedAccount' + | 'membership' + | 'name' + | 'ownerKeyChange' + | 'smithCertIssued' + | 'smithCertReceived' + | 'smithMembership' + | IdentityKeySpecifier +)[]; +export type IdentityFieldPolicy = { + account?: FieldPolicy<any> | FieldReadFunction<any>; + certIssued?: FieldPolicy<any> | FieldReadFunction<any>; + certReceived?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + index?: FieldPolicy<any> | FieldReadFunction<any>; + linkedAccount?: FieldPolicy<any> | FieldReadFunction<any>; + membership?: FieldPolicy<any> | FieldReadFunction<any>; + name?: FieldPolicy<any> | FieldReadFunction<any>; + ownerKeyChange?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertIssued?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertReceived?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembership?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type IdentityEdgeKeySpecifier = ('cursor' | 'node' | IdentityEdgeKeySpecifier)[]; +export type IdentityEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCounterKeySpecifier = ('id' | 'level' | 'total' | 'type' | ItemsCounterKeySpecifier)[]; +export type ItemsCounterFieldPolicy = { + id?: FieldPolicy<any> | FieldReadFunction<any>; + level?: FieldPolicy<any> | FieldReadFunction<any>; + total?: FieldPolicy<any> | FieldReadFunction<any>; + type?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCounterEdgeKeySpecifier = ('cursor' | 'node' | ItemsCounterEdgeKeySpecifier)[]; +export type ItemsCounterEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type ItemsCountersConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | ItemsCountersConnectionKeySpecifier)[]; +export type ItemsCountersConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipKeySpecifier = ('expireOn' | 'id' | 'identity' | MembershipKeySpecifier)[]; +export type MembershipFieldPolicy = { + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipEdgeKeySpecifier = ('cursor' | 'node' | MembershipEdgeKeySpecifier)[]; +export type MembershipEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type MembershipsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | MembershipsConnectionKeySpecifier)[]; +export type MembershipsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type PageInfoKeySpecifier = ('endCursor' | 'hasNextPage' | 'hasPreviousPage' | 'startCursor' | PageInfoKeySpecifier)[]; +export type PageInfoFieldPolicy = { + endCursor?: FieldPolicy<any> | FieldReadFunction<any>; + hasNextPage?: FieldPolicy<any> | FieldReadFunction<any>; + hasPreviousPage?: FieldPolicy<any> | FieldReadFunction<any>; + startCursor?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type QueryKeySpecifier = ( + | 'accountById' + | 'accountByUniqueInput' + | 'accounts' + | 'accountsConnection' + | 'blockById' + | 'blockByUniqueInput' + | 'blocks' + | 'blocksConnection' + | 'callById' + | 'callByUniqueInput' + | 'calls' + | 'callsConnection' + | 'certById' + | 'certByUniqueInput' + | 'certCreationById' + | 'certCreationByUniqueInput' + | 'certCreations' + | 'certCreationsConnection' + | 'certRemovalById' + | 'certRemovalByUniqueInput' + | 'certRemovals' + | 'certRemovalsConnection' + | 'certRenewalById' + | 'certRenewalByUniqueInput' + | 'certRenewals' + | 'certRenewalsConnection' + | 'certs' + | 'certsConnection' + | 'changeOwnerKeyById' + | 'changeOwnerKeyByUniqueInput' + | 'changeOwnerKeys' + | 'changeOwnerKeysConnection' + | 'eventById' + | 'eventByUniqueInput' + | 'events' + | 'eventsConnection' + | 'extrinsicById' + | 'extrinsicByUniqueInput' + | 'extrinsics' + | 'extrinsicsConnection' + | 'identities' + | 'identitiesConnection' + | 'identityById' + | 'identityByUniqueInput' + | 'itemsCounterById' + | 'itemsCounterByUniqueInput' + | 'itemsCounters' + | 'itemsCountersConnection' + | 'membershipById' + | 'membershipByUniqueInput' + | 'memberships' + | 'membershipsConnection' + | 'smithCertById' + | 'smithCertByUniqueInput' + | 'smithCertCreationById' + | 'smithCertCreationByUniqueInput' + | 'smithCertCreations' + | 'smithCertCreationsConnection' + | 'smithCertRemovalById' + | 'smithCertRemovalByUniqueInput' + | 'smithCertRemovals' + | 'smithCertRemovalsConnection' + | 'smithCertRenewalById' + | 'smithCertRenewalByUniqueInput' + | 'smithCertRenewals' + | 'smithCertRenewalsConnection' + | 'smithCerts' + | 'smithCertsConnection' + | 'smithMembershipById' + | 'smithMembershipByUniqueInput' + | 'smithMemberships' + | 'smithMembershipsConnection' + | 'squidStatus' + | 'transferById' + | 'transferByUniqueInput' + | 'transfers' + | 'transfersConnection' + | QueryKeySpecifier +)[]; +export type QueryFieldPolicy = { + accountById?: FieldPolicy<any> | FieldReadFunction<any>; + accountByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + accounts?: FieldPolicy<any> | FieldReadFunction<any>; + accountsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + blockById?: FieldPolicy<any> | FieldReadFunction<any>; + blockByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + blocks?: FieldPolicy<any> | FieldReadFunction<any>; + blocksConnection?: FieldPolicy<any> | FieldReadFunction<any>; + callById?: FieldPolicy<any> | FieldReadFunction<any>; + callByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + calls?: FieldPolicy<any> | FieldReadFunction<any>; + callsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certById?: FieldPolicy<any> | FieldReadFunction<any>; + certByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationById?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certCreations?: FieldPolicy<any> | FieldReadFunction<any>; + certCreationsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalById?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovals?: FieldPolicy<any> | FieldReadFunction<any>; + certRemovalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalById?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewals?: FieldPolicy<any> | FieldReadFunction<any>; + certRenewalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + certs?: FieldPolicy<any> | FieldReadFunction<any>; + certsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeyById?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeyByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeys?: FieldPolicy<any> | FieldReadFunction<any>; + changeOwnerKeysConnection?: FieldPolicy<any> | FieldReadFunction<any>; + eventById?: FieldPolicy<any> | FieldReadFunction<any>; + eventByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + events?: FieldPolicy<any> | FieldReadFunction<any>; + eventsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicById?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsics?: FieldPolicy<any> | FieldReadFunction<any>; + extrinsicsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + identities?: FieldPolicy<any> | FieldReadFunction<any>; + identitiesConnection?: FieldPolicy<any> | FieldReadFunction<any>; + identityById?: FieldPolicy<any> | FieldReadFunction<any>; + identityByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounterById?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounterByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCounters?: FieldPolicy<any> | FieldReadFunction<any>; + itemsCountersConnection?: FieldPolicy<any> | FieldReadFunction<any>; + membershipById?: FieldPolicy<any> | FieldReadFunction<any>; + membershipByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + memberships?: FieldPolicy<any> | FieldReadFunction<any>; + membershipsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreations?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertCreationsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovals?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRemovalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalById?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewals?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertRenewalsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithCerts?: FieldPolicy<any> | FieldReadFunction<any>; + smithCertsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipById?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + smithMemberships?: FieldPolicy<any> | FieldReadFunction<any>; + smithMembershipsConnection?: FieldPolicy<any> | FieldReadFunction<any>; + squidStatus?: FieldPolicy<any> | FieldReadFunction<any>; + transferById?: FieldPolicy<any> | FieldReadFunction<any>; + transferByUniqueInput?: FieldPolicy<any> | FieldReadFunction<any>; + transfers?: FieldPolicy<any> | FieldReadFunction<any>; + transfersConnection?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertKeySpecifier = ( + | 'active' + | 'createdOn' + | 'creation' + | 'expireOn' + | 'id' + | 'issuer' + | 'receiver' + | 'removal' + | 'renewal' + | SmithCertKeySpecifier +)[]; +export type SmithCertFieldPolicy = { + active?: FieldPolicy<any> | FieldReadFunction<any>; + createdOn?: FieldPolicy<any> | FieldReadFunction<any>; + creation?: FieldPolicy<any> | FieldReadFunction<any>; + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + issuer?: FieldPolicy<any> | FieldReadFunction<any>; + receiver?: FieldPolicy<any> | FieldReadFunction<any>; + removal?: FieldPolicy<any> | FieldReadFunction<any>; + renewal?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertCreationKeySpecifier)[]; +export type SmithCertCreationFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationEdgeKeySpecifier = ('cursor' | 'node' | SmithCertCreationEdgeKeySpecifier)[]; +export type SmithCertCreationEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertCreationsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertCreationsConnectionKeySpecifier)[]; +export type SmithCertCreationsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertEdgeKeySpecifier = ('cursor' | 'node' | SmithCertEdgeKeySpecifier)[]; +export type SmithCertEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertRemovalKeySpecifier)[]; +export type SmithCertRemovalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalEdgeKeySpecifier = ('cursor' | 'node' | SmithCertRemovalEdgeKeySpecifier)[]; +export type SmithCertRemovalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRemovalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertRemovalsConnectionKeySpecifier)[]; +export type SmithCertRemovalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalKeySpecifier = ('blockNumber' | 'cert' | 'id' | SmithCertRenewalKeySpecifier)[]; +export type SmithCertRenewalFieldPolicy = { + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + cert?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalEdgeKeySpecifier = ('cursor' | 'node' | SmithCertRenewalEdgeKeySpecifier)[]; +export type SmithCertRenewalEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertRenewalsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertRenewalsConnectionKeySpecifier)[]; +export type SmithCertRenewalsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithCertsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithCertsConnectionKeySpecifier)[]; +export type SmithCertsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipKeySpecifier = ('expireOn' | 'id' | 'identity' | SmithMembershipKeySpecifier)[]; +export type SmithMembershipFieldPolicy = { + expireOn?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + identity?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipEdgeKeySpecifier = ('cursor' | 'node' | SmithMembershipEdgeKeySpecifier)[]; +export type SmithMembershipEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SmithMembershipsConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | SmithMembershipsConnectionKeySpecifier)[]; +export type SmithMembershipsConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type SquidStatusKeySpecifier = ('height' | SquidStatusKeySpecifier)[]; +export type SquidStatusFieldPolicy = { + height?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransferKeySpecifier = ('amount' | 'blockNumber' | 'comment' | 'from' | 'id' | 'timestamp' | 'to' | TransferKeySpecifier)[]; +export type TransferFieldPolicy = { + amount?: FieldPolicy<any> | FieldReadFunction<any>; + blockNumber?: FieldPolicy<any> | FieldReadFunction<any>; + comment?: FieldPolicy<any> | FieldReadFunction<any>; + from?: FieldPolicy<any> | FieldReadFunction<any>; + id?: FieldPolicy<any> | FieldReadFunction<any>; + timestamp?: FieldPolicy<any> | FieldReadFunction<any>; + to?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransferEdgeKeySpecifier = ('cursor' | 'node' | TransferEdgeKeySpecifier)[]; +export type TransferEdgeFieldPolicy = { + cursor?: FieldPolicy<any> | FieldReadFunction<any>; + node?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type TransfersConnectionKeySpecifier = ('edges' | 'pageInfo' | 'totalCount' | TransfersConnectionKeySpecifier)[]; +export type TransfersConnectionFieldPolicy = { + edges?: FieldPolicy<any> | FieldReadFunction<any>; + pageInfo?: FieldPolicy<any> | FieldReadFunction<any>; + totalCount?: FieldPolicy<any> | FieldReadFunction<any>; +}; +export type StrictTypedTypePolicies = { + Account?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountKeySpecifier | (() => undefined | AccountKeySpecifier); + fields?: AccountFieldPolicy; + }; + AccountEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountEdgeKeySpecifier | (() => undefined | AccountEdgeKeySpecifier); + fields?: AccountEdgeFieldPolicy; + }; + AccountsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | AccountsConnectionKeySpecifier | (() => undefined | AccountsConnectionKeySpecifier); + fields?: AccountsConnectionFieldPolicy; + }; + Block?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlockKeySpecifier | (() => undefined | BlockKeySpecifier); + fields?: BlockFieldPolicy; + }; + BlockEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlockEdgeKeySpecifier | (() => undefined | BlockEdgeKeySpecifier); + fields?: BlockEdgeFieldPolicy; + }; + BlocksConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | BlocksConnectionKeySpecifier | (() => undefined | BlocksConnectionKeySpecifier); + fields?: BlocksConnectionFieldPolicy; + }; + Call?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallKeySpecifier | (() => undefined | CallKeySpecifier); + fields?: CallFieldPolicy; + }; + CallEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallEdgeKeySpecifier | (() => undefined | CallEdgeKeySpecifier); + fields?: CallEdgeFieldPolicy; + }; + CallsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CallsConnectionKeySpecifier | (() => undefined | CallsConnectionKeySpecifier); + fields?: CallsConnectionFieldPolicy; + }; + Cert?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertKeySpecifier | (() => undefined | CertKeySpecifier); + fields?: CertFieldPolicy; + }; + CertCreation?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationKeySpecifier | (() => undefined | CertCreationKeySpecifier); + fields?: CertCreationFieldPolicy; + }; + CertCreationEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationEdgeKeySpecifier | (() => undefined | CertCreationEdgeKeySpecifier); + fields?: CertCreationEdgeFieldPolicy; + }; + CertCreationsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertCreationsConnectionKeySpecifier | (() => undefined | CertCreationsConnectionKeySpecifier); + fields?: CertCreationsConnectionFieldPolicy; + }; + CertEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertEdgeKeySpecifier | (() => undefined | CertEdgeKeySpecifier); + fields?: CertEdgeFieldPolicy; + }; + CertRemoval?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalKeySpecifier | (() => undefined | CertRemovalKeySpecifier); + fields?: CertRemovalFieldPolicy; + }; + CertRemovalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalEdgeKeySpecifier | (() => undefined | CertRemovalEdgeKeySpecifier); + fields?: CertRemovalEdgeFieldPolicy; + }; + CertRemovalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRemovalsConnectionKeySpecifier | (() => undefined | CertRemovalsConnectionKeySpecifier); + fields?: CertRemovalsConnectionFieldPolicy; + }; + CertRenewal?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalKeySpecifier | (() => undefined | CertRenewalKeySpecifier); + fields?: CertRenewalFieldPolicy; + }; + CertRenewalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalEdgeKeySpecifier | (() => undefined | CertRenewalEdgeKeySpecifier); + fields?: CertRenewalEdgeFieldPolicy; + }; + CertRenewalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertRenewalsConnectionKeySpecifier | (() => undefined | CertRenewalsConnectionKeySpecifier); + fields?: CertRenewalsConnectionFieldPolicy; + }; + CertsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | CertsConnectionKeySpecifier | (() => undefined | CertsConnectionKeySpecifier); + fields?: CertsConnectionFieldPolicy; + }; + ChangeOwnerKey?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeyKeySpecifier | (() => undefined | ChangeOwnerKeyKeySpecifier); + fields?: ChangeOwnerKeyFieldPolicy; + }; + ChangeOwnerKeyEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeyEdgeKeySpecifier | (() => undefined | ChangeOwnerKeyEdgeKeySpecifier); + fields?: ChangeOwnerKeyEdgeFieldPolicy; + }; + ChangeOwnerKeysConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ChangeOwnerKeysConnectionKeySpecifier | (() => undefined | ChangeOwnerKeysConnectionKeySpecifier); + fields?: ChangeOwnerKeysConnectionFieldPolicy; + }; + Event?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventKeySpecifier | (() => undefined | EventKeySpecifier); + fields?: EventFieldPolicy; + }; + EventEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventEdgeKeySpecifier | (() => undefined | EventEdgeKeySpecifier); + fields?: EventEdgeFieldPolicy; + }; + EventsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | EventsConnectionKeySpecifier | (() => undefined | EventsConnectionKeySpecifier); + fields?: EventsConnectionFieldPolicy; + }; + Extrinsic?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicKeySpecifier | (() => undefined | ExtrinsicKeySpecifier); + fields?: ExtrinsicFieldPolicy; + }; + ExtrinsicEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicEdgeKeySpecifier | (() => undefined | ExtrinsicEdgeKeySpecifier); + fields?: ExtrinsicEdgeFieldPolicy; + }; + ExtrinsicSignature?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicSignatureKeySpecifier | (() => undefined | ExtrinsicSignatureKeySpecifier); + fields?: ExtrinsicSignatureFieldPolicy; + }; + ExtrinsicsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ExtrinsicsConnectionKeySpecifier | (() => undefined | ExtrinsicsConnectionKeySpecifier); + fields?: ExtrinsicsConnectionFieldPolicy; + }; + IdentitiesConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentitiesConnectionKeySpecifier | (() => undefined | IdentitiesConnectionKeySpecifier); + fields?: IdentitiesConnectionFieldPolicy; + }; + Identity?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentityKeySpecifier | (() => undefined | IdentityKeySpecifier); + fields?: IdentityFieldPolicy; + }; + IdentityEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | IdentityEdgeKeySpecifier | (() => undefined | IdentityEdgeKeySpecifier); + fields?: IdentityEdgeFieldPolicy; + }; + ItemsCounter?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCounterKeySpecifier | (() => undefined | ItemsCounterKeySpecifier); + fields?: ItemsCounterFieldPolicy; + }; + ItemsCounterEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCounterEdgeKeySpecifier | (() => undefined | ItemsCounterEdgeKeySpecifier); + fields?: ItemsCounterEdgeFieldPolicy; + }; + ItemsCountersConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | ItemsCountersConnectionKeySpecifier | (() => undefined | ItemsCountersConnectionKeySpecifier); + fields?: ItemsCountersConnectionFieldPolicy; + }; + Membership?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipKeySpecifier | (() => undefined | MembershipKeySpecifier); + fields?: MembershipFieldPolicy; + }; + MembershipEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipEdgeKeySpecifier | (() => undefined | MembershipEdgeKeySpecifier); + fields?: MembershipEdgeFieldPolicy; + }; + MembershipsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | MembershipsConnectionKeySpecifier | (() => undefined | MembershipsConnectionKeySpecifier); + fields?: MembershipsConnectionFieldPolicy; + }; + PageInfo?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | PageInfoKeySpecifier | (() => undefined | PageInfoKeySpecifier); + fields?: PageInfoFieldPolicy; + }; + Query?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | QueryKeySpecifier | (() => undefined | QueryKeySpecifier); + fields?: QueryFieldPolicy; + }; + SmithCert?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertKeySpecifier | (() => undefined | SmithCertKeySpecifier); + fields?: SmithCertFieldPolicy; + }; + SmithCertCreation?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationKeySpecifier | (() => undefined | SmithCertCreationKeySpecifier); + fields?: SmithCertCreationFieldPolicy; + }; + SmithCertCreationEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationEdgeKeySpecifier | (() => undefined | SmithCertCreationEdgeKeySpecifier); + fields?: SmithCertCreationEdgeFieldPolicy; + }; + SmithCertCreationsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertCreationsConnectionKeySpecifier | (() => undefined | SmithCertCreationsConnectionKeySpecifier); + fields?: SmithCertCreationsConnectionFieldPolicy; + }; + SmithCertEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertEdgeKeySpecifier | (() => undefined | SmithCertEdgeKeySpecifier); + fields?: SmithCertEdgeFieldPolicy; + }; + SmithCertRemoval?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalKeySpecifier | (() => undefined | SmithCertRemovalKeySpecifier); + fields?: SmithCertRemovalFieldPolicy; + }; + SmithCertRemovalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalEdgeKeySpecifier | (() => undefined | SmithCertRemovalEdgeKeySpecifier); + fields?: SmithCertRemovalEdgeFieldPolicy; + }; + SmithCertRemovalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRemovalsConnectionKeySpecifier | (() => undefined | SmithCertRemovalsConnectionKeySpecifier); + fields?: SmithCertRemovalsConnectionFieldPolicy; + }; + SmithCertRenewal?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalKeySpecifier | (() => undefined | SmithCertRenewalKeySpecifier); + fields?: SmithCertRenewalFieldPolicy; + }; + SmithCertRenewalEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalEdgeKeySpecifier | (() => undefined | SmithCertRenewalEdgeKeySpecifier); + fields?: SmithCertRenewalEdgeFieldPolicy; + }; + SmithCertRenewalsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertRenewalsConnectionKeySpecifier | (() => undefined | SmithCertRenewalsConnectionKeySpecifier); + fields?: SmithCertRenewalsConnectionFieldPolicy; + }; + SmithCertsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithCertsConnectionKeySpecifier | (() => undefined | SmithCertsConnectionKeySpecifier); + fields?: SmithCertsConnectionFieldPolicy; + }; + SmithMembership?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipKeySpecifier | (() => undefined | SmithMembershipKeySpecifier); + fields?: SmithMembershipFieldPolicy; + }; + SmithMembershipEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipEdgeKeySpecifier | (() => undefined | SmithMembershipEdgeKeySpecifier); + fields?: SmithMembershipEdgeFieldPolicy; + }; + SmithMembershipsConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SmithMembershipsConnectionKeySpecifier | (() => undefined | SmithMembershipsConnectionKeySpecifier); + fields?: SmithMembershipsConnectionFieldPolicy; + }; + SquidStatus?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | SquidStatusKeySpecifier | (() => undefined | SquidStatusKeySpecifier); + fields?: SquidStatusFieldPolicy; + }; + Transfer?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransferKeySpecifier | (() => undefined | TransferKeySpecifier); + fields?: TransferFieldPolicy; + }; + TransferEdge?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransferEdgeKeySpecifier | (() => undefined | TransferEdgeKeySpecifier); + fields?: TransferEdgeFieldPolicy; + }; + TransfersConnection?: Omit<TypePolicy, 'fields' | 'keyFields'> & { + keyFields?: false | TransfersConnectionKeySpecifier | (() => undefined | TransfersConnectionKeySpecifier); + fields?: TransfersConnectionFieldPolicy; + }; +}; +export type TypedTypePolicies = StrictTypedTypePolicies & TypePolicies; diff --git a/src/interfaces/indexer/types.ts b/src/interfaces/indexer/types.ts new file mode 100644 index 0000000000000000000000000000000000000000..91ec4dbc235177897a73b2978ea4c6f05cc17dd6 --- /dev/null +++ b/src/interfaces/indexer/types.ts @@ -0,0 +1,3448 @@ +// Auto-generated via `npx graphql-codegen`, do not edit +/* eslint-disable */ +import { gql } from 'apollo-angular'; +import { Injectable } from '@angular/core'; +import * as Apollo from 'apollo-angular'; +import * as ApolloCore from '@apollo/client/core'; +export type Maybe<T> = T | null; +export type InputMaybe<T> = Maybe<T>; +export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; +export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> }; +export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> }; +export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never }; +export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + /** Big number integer */ + BigInt: { input: any; output: any }; + /** Binary data encoded as a hex string always prefixed with 0x */ + Bytes: { input: any; output: any }; + /** A date-time string in simplified extended ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ) */ + DateTime: { input: any; output: any }; + /** A scalar that can represent any JSON value */ + JSON: { input: any; output: any }; +}; + +export type Account = { + __typename?: 'Account'; + /** Account address is SS58 format */ + id: Scalars['String']['output']; + /** current account for the identity */ + identity?: Maybe<Identity>; + /** linked to the identity */ + linkedIdentity?: Maybe<Identity>; + transfersIssued: Array<Transfer>; + transfersReceived: Array<Transfer>; + /** was once account of the identity */ + wasIdentity: Array<ChangeOwnerKey>; +}; + +export type AccountTransfersIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type AccountTransfersReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type AccountWasIdentityArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type AccountEdge = { + __typename?: 'AccountEdge'; + cursor: Scalars['String']['output']; + node: Account; +}; + +export enum AccountOrderByInput { + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', + LinkedIdentityIdAsc = 'linkedIdentity_id_ASC', + LinkedIdentityIdAscNullsFirst = 'linkedIdentity_id_ASC_NULLS_FIRST', + LinkedIdentityIdDesc = 'linkedIdentity_id_DESC', + LinkedIdentityIdDescNullsLast = 'linkedIdentity_id_DESC_NULLS_LAST', + LinkedIdentityIndexAsc = 'linkedIdentity_index_ASC', + LinkedIdentityIndexAscNullsFirst = 'linkedIdentity_index_ASC_NULLS_FIRST', + LinkedIdentityIndexDesc = 'linkedIdentity_index_DESC', + LinkedIdentityIndexDescNullsLast = 'linkedIdentity_index_DESC_NULLS_LAST', + LinkedIdentityNameAsc = 'linkedIdentity_name_ASC', + LinkedIdentityNameAscNullsFirst = 'linkedIdentity_name_ASC_NULLS_FIRST', + LinkedIdentityNameDesc = 'linkedIdentity_name_DESC', + LinkedIdentityNameDescNullsLast = 'linkedIdentity_name_DESC_NULLS_LAST', +} + +export type AccountWhereInput = { + AND?: InputMaybe<Array<AccountWhereInput>>; + OR?: InputMaybe<Array<AccountWhereInput>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + linkedIdentity?: InputMaybe<IdentityWhereInput>; + linkedIdentity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + transfersIssued_every?: InputMaybe<TransferWhereInput>; + transfersIssued_none?: InputMaybe<TransferWhereInput>; + transfersIssued_some?: InputMaybe<TransferWhereInput>; + transfersReceived_every?: InputMaybe<TransferWhereInput>; + transfersReceived_none?: InputMaybe<TransferWhereInput>; + transfersReceived_some?: InputMaybe<TransferWhereInput>; + wasIdentity_every?: InputMaybe<ChangeOwnerKeyWhereInput>; + wasIdentity_none?: InputMaybe<ChangeOwnerKeyWhereInput>; + wasIdentity_some?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type AccountsConnection = { + __typename?: 'AccountsConnection'; + edges: Array<AccountEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Block = { + __typename?: 'Block'; + calls: Array<Call>; + callsCount: Scalars['Int']['output']; + events: Array<Event>; + eventsCount: Scalars['Int']['output']; + extrinsics: Array<Extrinsic>; + extrinsicsCount: Scalars['Int']['output']; + extrinsicsicRoot: Scalars['Bytes']['output']; + hash: Scalars['Bytes']['output']; + height: Scalars['Int']['output']; + /** BlockHeight-blockHash - e.g. 0001812319-0001c */ + id: Scalars['String']['output']; + implName: Scalars['String']['output']; + implVersion: Scalars['Int']['output']; + parentHash: Scalars['Bytes']['output']; + specName: Scalars['String']['output']; + specVersion: Scalars['Int']['output']; + stateRoot: Scalars['Bytes']['output']; + timestamp: Scalars['DateTime']['output']; + validator?: Maybe<Scalars['Bytes']['output']>; +}; + +export type BlockCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type BlockEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type BlockExtrinsicsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ExtrinsicOrderByInput>>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type BlockEdge = { + __typename?: 'BlockEdge'; + cursor: Scalars['String']['output']; + node: Block; +}; + +export enum BlockOrderByInput { + CallsCountAsc = 'callsCount_ASC', + CallsCountAscNullsFirst = 'callsCount_ASC_NULLS_FIRST', + CallsCountDesc = 'callsCount_DESC', + CallsCountDescNullsLast = 'callsCount_DESC_NULLS_LAST', + EventsCountAsc = 'eventsCount_ASC', + EventsCountAscNullsFirst = 'eventsCount_ASC_NULLS_FIRST', + EventsCountDesc = 'eventsCount_DESC', + EventsCountDescNullsLast = 'eventsCount_DESC_NULLS_LAST', + ExtrinsicsCountAsc = 'extrinsicsCount_ASC', + ExtrinsicsCountAscNullsFirst = 'extrinsicsCount_ASC_NULLS_FIRST', + ExtrinsicsCountDesc = 'extrinsicsCount_DESC', + ExtrinsicsCountDescNullsLast = 'extrinsicsCount_DESC_NULLS_LAST', + ExtrinsicsicRootAsc = 'extrinsicsicRoot_ASC', + ExtrinsicsicRootAscNullsFirst = 'extrinsicsicRoot_ASC_NULLS_FIRST', + ExtrinsicsicRootDesc = 'extrinsicsicRoot_DESC', + ExtrinsicsicRootDescNullsLast = 'extrinsicsicRoot_DESC_NULLS_LAST', + HashAsc = 'hash_ASC', + HashAscNullsFirst = 'hash_ASC_NULLS_FIRST', + HashDesc = 'hash_DESC', + HashDescNullsLast = 'hash_DESC_NULLS_LAST', + HeightAsc = 'height_ASC', + HeightAscNullsFirst = 'height_ASC_NULLS_FIRST', + HeightDesc = 'height_DESC', + HeightDescNullsLast = 'height_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + ImplNameAsc = 'implName_ASC', + ImplNameAscNullsFirst = 'implName_ASC_NULLS_FIRST', + ImplNameDesc = 'implName_DESC', + ImplNameDescNullsLast = 'implName_DESC_NULLS_LAST', + ImplVersionAsc = 'implVersion_ASC', + ImplVersionAscNullsFirst = 'implVersion_ASC_NULLS_FIRST', + ImplVersionDesc = 'implVersion_DESC', + ImplVersionDescNullsLast = 'implVersion_DESC_NULLS_LAST', + ParentHashAsc = 'parentHash_ASC', + ParentHashAscNullsFirst = 'parentHash_ASC_NULLS_FIRST', + ParentHashDesc = 'parentHash_DESC', + ParentHashDescNullsLast = 'parentHash_DESC_NULLS_LAST', + SpecNameAsc = 'specName_ASC', + SpecNameAscNullsFirst = 'specName_ASC_NULLS_FIRST', + SpecNameDesc = 'specName_DESC', + SpecNameDescNullsLast = 'specName_DESC_NULLS_LAST', + SpecVersionAsc = 'specVersion_ASC', + SpecVersionAscNullsFirst = 'specVersion_ASC_NULLS_FIRST', + SpecVersionDesc = 'specVersion_DESC', + SpecVersionDescNullsLast = 'specVersion_DESC_NULLS_LAST', + StateRootAsc = 'stateRoot_ASC', + StateRootAscNullsFirst = 'stateRoot_ASC_NULLS_FIRST', + StateRootDesc = 'stateRoot_DESC', + StateRootDescNullsLast = 'stateRoot_DESC_NULLS_LAST', + TimestampAsc = 'timestamp_ASC', + TimestampAscNullsFirst = 'timestamp_ASC_NULLS_FIRST', + TimestampDesc = 'timestamp_DESC', + TimestampDescNullsLast = 'timestamp_DESC_NULLS_LAST', + ValidatorAsc = 'validator_ASC', + ValidatorAscNullsFirst = 'validator_ASC_NULLS_FIRST', + ValidatorDesc = 'validator_DESC', + ValidatorDescNullsLast = 'validator_DESC_NULLS_LAST', +} + +export type BlockWhereInput = { + AND?: InputMaybe<Array<BlockWhereInput>>; + OR?: InputMaybe<Array<BlockWhereInput>>; + callsCount_eq?: InputMaybe<Scalars['Int']['input']>; + callsCount_gt?: InputMaybe<Scalars['Int']['input']>; + callsCount_gte?: InputMaybe<Scalars['Int']['input']>; + callsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + callsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + callsCount_lt?: InputMaybe<Scalars['Int']['input']>; + callsCount_lte?: InputMaybe<Scalars['Int']['input']>; + callsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + callsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + calls_every?: InputMaybe<CallWhereInput>; + calls_none?: InputMaybe<CallWhereInput>; + calls_some?: InputMaybe<CallWhereInput>; + eventsCount_eq?: InputMaybe<Scalars['Int']['input']>; + eventsCount_gt?: InputMaybe<Scalars['Int']['input']>; + eventsCount_gte?: InputMaybe<Scalars['Int']['input']>; + eventsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + eventsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + eventsCount_lt?: InputMaybe<Scalars['Int']['input']>; + eventsCount_lte?: InputMaybe<Scalars['Int']['input']>; + eventsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + eventsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + extrinsicsCount_eq?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_gt?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_gte?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_in?: InputMaybe<Array<Scalars['Int']['input']>>; + extrinsicsCount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsicsCount_lt?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_lte?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_not_eq?: InputMaybe<Scalars['Int']['input']>; + extrinsicsCount_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + extrinsics_every?: InputMaybe<ExtrinsicWhereInput>; + extrinsics_none?: InputMaybe<ExtrinsicWhereInput>; + extrinsics_some?: InputMaybe<ExtrinsicWhereInput>; + extrinsicsicRoot_eq?: InputMaybe<Scalars['Bytes']['input']>; + extrinsicsicRoot_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsicsicRoot_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + hash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + height_eq?: InputMaybe<Scalars['Int']['input']>; + height_gt?: InputMaybe<Scalars['Int']['input']>; + height_gte?: InputMaybe<Scalars['Int']['input']>; + height_in?: InputMaybe<Array<Scalars['Int']['input']>>; + height_isNull?: InputMaybe<Scalars['Boolean']['input']>; + height_lt?: InputMaybe<Scalars['Int']['input']>; + height_lte?: InputMaybe<Scalars['Int']['input']>; + height_not_eq?: InputMaybe<Scalars['Int']['input']>; + height_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + implName_contains?: InputMaybe<Scalars['String']['input']>; + implName_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + implName_endsWith?: InputMaybe<Scalars['String']['input']>; + implName_eq?: InputMaybe<Scalars['String']['input']>; + implName_gt?: InputMaybe<Scalars['String']['input']>; + implName_gte?: InputMaybe<Scalars['String']['input']>; + implName_in?: InputMaybe<Array<Scalars['String']['input']>>; + implName_isNull?: InputMaybe<Scalars['Boolean']['input']>; + implName_lt?: InputMaybe<Scalars['String']['input']>; + implName_lte?: InputMaybe<Scalars['String']['input']>; + implName_not_contains?: InputMaybe<Scalars['String']['input']>; + implName_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + implName_not_endsWith?: InputMaybe<Scalars['String']['input']>; + implName_not_eq?: InputMaybe<Scalars['String']['input']>; + implName_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + implName_not_startsWith?: InputMaybe<Scalars['String']['input']>; + implName_startsWith?: InputMaybe<Scalars['String']['input']>; + implVersion_eq?: InputMaybe<Scalars['Int']['input']>; + implVersion_gt?: InputMaybe<Scalars['Int']['input']>; + implVersion_gte?: InputMaybe<Scalars['Int']['input']>; + implVersion_in?: InputMaybe<Array<Scalars['Int']['input']>>; + implVersion_isNull?: InputMaybe<Scalars['Boolean']['input']>; + implVersion_lt?: InputMaybe<Scalars['Int']['input']>; + implVersion_lte?: InputMaybe<Scalars['Int']['input']>; + implVersion_not_eq?: InputMaybe<Scalars['Int']['input']>; + implVersion_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + parentHash_eq?: InputMaybe<Scalars['Bytes']['input']>; + parentHash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + parentHash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + specName_contains?: InputMaybe<Scalars['String']['input']>; + specName_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + specName_endsWith?: InputMaybe<Scalars['String']['input']>; + specName_eq?: InputMaybe<Scalars['String']['input']>; + specName_gt?: InputMaybe<Scalars['String']['input']>; + specName_gte?: InputMaybe<Scalars['String']['input']>; + specName_in?: InputMaybe<Array<Scalars['String']['input']>>; + specName_isNull?: InputMaybe<Scalars['Boolean']['input']>; + specName_lt?: InputMaybe<Scalars['String']['input']>; + specName_lte?: InputMaybe<Scalars['String']['input']>; + specName_not_contains?: InputMaybe<Scalars['String']['input']>; + specName_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + specName_not_endsWith?: InputMaybe<Scalars['String']['input']>; + specName_not_eq?: InputMaybe<Scalars['String']['input']>; + specName_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + specName_not_startsWith?: InputMaybe<Scalars['String']['input']>; + specName_startsWith?: InputMaybe<Scalars['String']['input']>; + specVersion_eq?: InputMaybe<Scalars['Int']['input']>; + specVersion_gt?: InputMaybe<Scalars['Int']['input']>; + specVersion_gte?: InputMaybe<Scalars['Int']['input']>; + specVersion_in?: InputMaybe<Array<Scalars['Int']['input']>>; + specVersion_isNull?: InputMaybe<Scalars['Boolean']['input']>; + specVersion_lt?: InputMaybe<Scalars['Int']['input']>; + specVersion_lte?: InputMaybe<Scalars['Int']['input']>; + specVersion_not_eq?: InputMaybe<Scalars['Int']['input']>; + specVersion_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + stateRoot_eq?: InputMaybe<Scalars['Bytes']['input']>; + stateRoot_isNull?: InputMaybe<Scalars['Boolean']['input']>; + stateRoot_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + timestamp_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + timestamp_isNull?: InputMaybe<Scalars['Boolean']['input']>; + timestamp_lt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_lte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + validator_eq?: InputMaybe<Scalars['Bytes']['input']>; + validator_isNull?: InputMaybe<Scalars['Boolean']['input']>; + validator_not_eq?: InputMaybe<Scalars['Bytes']['input']>; +}; + +export type BlocksConnection = { + __typename?: 'BlocksConnection'; + edges: Array<BlockEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Call = { + __typename?: 'Call'; + address: Array<Scalars['Int']['output']>; + args?: Maybe<Scalars['JSON']['output']>; + argsStr?: Maybe<Array<Maybe<Scalars['String']['output']>>>; + block: Block; + error?: Maybe<Scalars['JSON']['output']>; + events: Array<Event>; + extrinsic?: Maybe<Extrinsic>; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + pallet: Scalars['String']['output']; + parent?: Maybe<Call>; + subcalls: Array<Call>; + success: Scalars['Boolean']['output']; +}; + +export type CallEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type CallSubcallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type CallEdge = { + __typename?: 'CallEdge'; + cursor: Scalars['String']['output']; + node: Call; +}; + +export enum CallOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + ExtrinsicFeeAsc = 'extrinsic_fee_ASC', + ExtrinsicFeeAscNullsFirst = 'extrinsic_fee_ASC_NULLS_FIRST', + ExtrinsicFeeDesc = 'extrinsic_fee_DESC', + ExtrinsicFeeDescNullsLast = 'extrinsic_fee_DESC_NULLS_LAST', + ExtrinsicHashAsc = 'extrinsic_hash_ASC', + ExtrinsicHashAscNullsFirst = 'extrinsic_hash_ASC_NULLS_FIRST', + ExtrinsicHashDesc = 'extrinsic_hash_DESC', + ExtrinsicHashDescNullsLast = 'extrinsic_hash_DESC_NULLS_LAST', + ExtrinsicIdAsc = 'extrinsic_id_ASC', + ExtrinsicIdAscNullsFirst = 'extrinsic_id_ASC_NULLS_FIRST', + ExtrinsicIdDesc = 'extrinsic_id_DESC', + ExtrinsicIdDescNullsLast = 'extrinsic_id_DESC_NULLS_LAST', + ExtrinsicIndexAsc = 'extrinsic_index_ASC', + ExtrinsicIndexAscNullsFirst = 'extrinsic_index_ASC_NULLS_FIRST', + ExtrinsicIndexDesc = 'extrinsic_index_DESC', + ExtrinsicIndexDescNullsLast = 'extrinsic_index_DESC_NULLS_LAST', + ExtrinsicSuccessAsc = 'extrinsic_success_ASC', + ExtrinsicSuccessAscNullsFirst = 'extrinsic_success_ASC_NULLS_FIRST', + ExtrinsicSuccessDesc = 'extrinsic_success_DESC', + ExtrinsicSuccessDescNullsLast = 'extrinsic_success_DESC_NULLS_LAST', + ExtrinsicTipAsc = 'extrinsic_tip_ASC', + ExtrinsicTipAscNullsFirst = 'extrinsic_tip_ASC_NULLS_FIRST', + ExtrinsicTipDesc = 'extrinsic_tip_DESC', + ExtrinsicTipDescNullsLast = 'extrinsic_tip_DESC_NULLS_LAST', + ExtrinsicVersionAsc = 'extrinsic_version_ASC', + ExtrinsicVersionAscNullsFirst = 'extrinsic_version_ASC_NULLS_FIRST', + ExtrinsicVersionDesc = 'extrinsic_version_DESC', + ExtrinsicVersionDescNullsLast = 'extrinsic_version_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + PalletAsc = 'pallet_ASC', + PalletAscNullsFirst = 'pallet_ASC_NULLS_FIRST', + PalletDesc = 'pallet_DESC', + PalletDescNullsLast = 'pallet_DESC_NULLS_LAST', + ParentIdAsc = 'parent_id_ASC', + ParentIdAscNullsFirst = 'parent_id_ASC_NULLS_FIRST', + ParentIdDesc = 'parent_id_DESC', + ParentIdDescNullsLast = 'parent_id_DESC_NULLS_LAST', + ParentNameAsc = 'parent_name_ASC', + ParentNameAscNullsFirst = 'parent_name_ASC_NULLS_FIRST', + ParentNameDesc = 'parent_name_DESC', + ParentNameDescNullsLast = 'parent_name_DESC_NULLS_LAST', + ParentPalletAsc = 'parent_pallet_ASC', + ParentPalletAscNullsFirst = 'parent_pallet_ASC_NULLS_FIRST', + ParentPalletDesc = 'parent_pallet_DESC', + ParentPalletDescNullsLast = 'parent_pallet_DESC_NULLS_LAST', + ParentSuccessAsc = 'parent_success_ASC', + ParentSuccessAscNullsFirst = 'parent_success_ASC_NULLS_FIRST', + ParentSuccessDesc = 'parent_success_DESC', + ParentSuccessDescNullsLast = 'parent_success_DESC_NULLS_LAST', + SuccessAsc = 'success_ASC', + SuccessAscNullsFirst = 'success_ASC_NULLS_FIRST', + SuccessDesc = 'success_DESC', + SuccessDescNullsLast = 'success_DESC_NULLS_LAST', +} + +export type CallWhereInput = { + AND?: InputMaybe<Array<CallWhereInput>>; + OR?: InputMaybe<Array<CallWhereInput>>; + address_containsAll?: InputMaybe<Array<Scalars['Int']['input']>>; + address_containsAny?: InputMaybe<Array<Scalars['Int']['input']>>; + address_containsNone?: InputMaybe<Array<Scalars['Int']['input']>>; + address_isNull?: InputMaybe<Scalars['Boolean']['input']>; + argsStr_containsAll?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsAny?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsNone?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_eq?: InputMaybe<Scalars['JSON']['input']>; + args_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + args_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + args_not_eq?: InputMaybe<Scalars['JSON']['input']>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_eq?: InputMaybe<Scalars['JSON']['input']>; + error_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + error_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + error_not_eq?: InputMaybe<Scalars['JSON']['input']>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + extrinsic?: InputMaybe<ExtrinsicWhereInput>; + extrinsic_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_contains?: InputMaybe<Scalars['String']['input']>; + pallet_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_eq?: InputMaybe<Scalars['String']['input']>; + pallet_gt?: InputMaybe<Scalars['String']['input']>; + pallet_gte?: InputMaybe<Scalars['String']['input']>; + pallet_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_isNull?: InputMaybe<Scalars['Boolean']['input']>; + pallet_lt?: InputMaybe<Scalars['String']['input']>; + pallet_lte?: InputMaybe<Scalars['String']['input']>; + pallet_not_contains?: InputMaybe<Scalars['String']['input']>; + pallet_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_not_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_not_eq?: InputMaybe<Scalars['String']['input']>; + pallet_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_not_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_startsWith?: InputMaybe<Scalars['String']['input']>; + parent?: InputMaybe<CallWhereInput>; + parent_isNull?: InputMaybe<Scalars['Boolean']['input']>; + subcalls_every?: InputMaybe<CallWhereInput>; + subcalls_none?: InputMaybe<CallWhereInput>; + subcalls_some?: InputMaybe<CallWhereInput>; + success_eq?: InputMaybe<Scalars['Boolean']['input']>; + success_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_not_eq?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type CallsConnection = { + __typename?: 'CallsConnection'; + edges: Array<CallEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Certification */ +export type Cert = { + __typename?: 'Cert'; + /** whether the certification is currently active or not */ + active: Scalars['Boolean']['output']; + /** the last createdOn value */ + createdOn: Scalars['Int']['output']; + creation: Array<CertCreation>; + /** the current expireOn value */ + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + issuer: Identity; + receiver: Identity; + removal: Array<CertRemoval>; + renewal: Array<CertRenewal>; +}; + +/** Certification */ +export type CertCreationArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertCreationOrderByInput>>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +/** Certification */ +export type CertRemovalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRemovalOrderByInput>>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +/** Certification */ +export type CertRenewalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRenewalOrderByInput>>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +/** Certification creation */ +export type CertCreation = { + __typename?: 'CertCreation'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertCreationEdge = { + __typename?: 'CertCreationEdge'; + cursor: Scalars['String']['output']; + node: CertCreation; +}; + +export enum CertCreationOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertCreationWhereInput = { + AND?: InputMaybe<Array<CertCreationWhereInput>>; + OR?: InputMaybe<Array<CertCreationWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertCreationsConnection = { + __typename?: 'CertCreationsConnection'; + edges: Array<CertCreationEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type CertEdge = { + __typename?: 'CertEdge'; + cursor: Scalars['String']['output']; + node: Cert; +}; + +export enum CertOrderByInput { + ActiveAsc = 'active_ASC', + ActiveAscNullsFirst = 'active_ASC_NULLS_FIRST', + ActiveDesc = 'active_DESC', + ActiveDescNullsLast = 'active_DESC_NULLS_LAST', + CreatedOnAsc = 'createdOn_ASC', + CreatedOnAscNullsFirst = 'createdOn_ASC_NULLS_FIRST', + CreatedOnDesc = 'createdOn_DESC', + CreatedOnDescNullsLast = 'createdOn_DESC_NULLS_LAST', + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IssuerIdAsc = 'issuer_id_ASC', + IssuerIdAscNullsFirst = 'issuer_id_ASC_NULLS_FIRST', + IssuerIdDesc = 'issuer_id_DESC', + IssuerIdDescNullsLast = 'issuer_id_DESC_NULLS_LAST', + IssuerIndexAsc = 'issuer_index_ASC', + IssuerIndexAscNullsFirst = 'issuer_index_ASC_NULLS_FIRST', + IssuerIndexDesc = 'issuer_index_DESC', + IssuerIndexDescNullsLast = 'issuer_index_DESC_NULLS_LAST', + IssuerNameAsc = 'issuer_name_ASC', + IssuerNameAscNullsFirst = 'issuer_name_ASC_NULLS_FIRST', + IssuerNameDesc = 'issuer_name_DESC', + IssuerNameDescNullsLast = 'issuer_name_DESC_NULLS_LAST', + ReceiverIdAsc = 'receiver_id_ASC', + ReceiverIdAscNullsFirst = 'receiver_id_ASC_NULLS_FIRST', + ReceiverIdDesc = 'receiver_id_DESC', + ReceiverIdDescNullsLast = 'receiver_id_DESC_NULLS_LAST', + ReceiverIndexAsc = 'receiver_index_ASC', + ReceiverIndexAscNullsFirst = 'receiver_index_ASC_NULLS_FIRST', + ReceiverIndexDesc = 'receiver_index_DESC', + ReceiverIndexDescNullsLast = 'receiver_index_DESC_NULLS_LAST', + ReceiverNameAsc = 'receiver_name_ASC', + ReceiverNameAscNullsFirst = 'receiver_name_ASC_NULLS_FIRST', + ReceiverNameDesc = 'receiver_name_DESC', + ReceiverNameDescNullsLast = 'receiver_name_DESC_NULLS_LAST', +} + +/** Certification removal */ +export type CertRemoval = { + __typename?: 'CertRemoval'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertRemovalEdge = { + __typename?: 'CertRemovalEdge'; + cursor: Scalars['String']['output']; + node: CertRemoval; +}; + +export enum CertRemovalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertRemovalWhereInput = { + AND?: InputMaybe<Array<CertRemovalWhereInput>>; + OR?: InputMaybe<Array<CertRemovalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertRemovalsConnection = { + __typename?: 'CertRemovalsConnection'; + edges: Array<CertRemovalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Certification renewal */ +export type CertRenewal = { + __typename?: 'CertRenewal'; + blockNumber: Scalars['Int']['output']; + cert: Cert; + id: Scalars['String']['output']; +}; + +export type CertRenewalEdge = { + __typename?: 'CertRenewalEdge'; + cursor: Scalars['String']['output']; + node: CertRenewal; +}; + +export enum CertRenewalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type CertRenewalWhereInput = { + AND?: InputMaybe<Array<CertRenewalWhereInput>>; + OR?: InputMaybe<Array<CertRenewalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<CertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type CertRenewalsConnection = { + __typename?: 'CertRenewalsConnection'; + edges: Array<CertRenewalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type CertWhereInput = { + AND?: InputMaybe<Array<CertWhereInput>>; + OR?: InputMaybe<Array<CertWhereInput>>; + active_eq?: InputMaybe<Scalars['Boolean']['input']>; + active_isNull?: InputMaybe<Scalars['Boolean']['input']>; + active_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_gt?: InputMaybe<Scalars['Int']['input']>; + createdOn_gte?: InputMaybe<Scalars['Int']['input']>; + createdOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + createdOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_lt?: InputMaybe<Scalars['Int']['input']>; + createdOn_lte?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + creation_every?: InputMaybe<CertCreationWhereInput>; + creation_none?: InputMaybe<CertCreationWhereInput>; + creation_some?: InputMaybe<CertCreationWhereInput>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + issuer?: InputMaybe<IdentityWhereInput>; + issuer_isNull?: InputMaybe<Scalars['Boolean']['input']>; + receiver?: InputMaybe<IdentityWhereInput>; + receiver_isNull?: InputMaybe<Scalars['Boolean']['input']>; + removal_every?: InputMaybe<CertRemovalWhereInput>; + removal_none?: InputMaybe<CertRemovalWhereInput>; + removal_some?: InputMaybe<CertRemovalWhereInput>; + renewal_every?: InputMaybe<CertRenewalWhereInput>; + renewal_none?: InputMaybe<CertRenewalWhereInput>; + renewal_some?: InputMaybe<CertRenewalWhereInput>; +}; + +export type CertsConnection = { + __typename?: 'CertsConnection'; + edges: Array<CertEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** owner key change */ +export type ChangeOwnerKey = { + __typename?: 'ChangeOwnerKey'; + blockNumber: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; + next: Account; + previous: Account; +}; + +export type ChangeOwnerKeyEdge = { + __typename?: 'ChangeOwnerKeyEdge'; + cursor: Scalars['String']['output']; + node: ChangeOwnerKey; +}; + +export enum ChangeOwnerKeyOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', + NextIdAsc = 'next_id_ASC', + NextIdAscNullsFirst = 'next_id_ASC_NULLS_FIRST', + NextIdDesc = 'next_id_DESC', + NextIdDescNullsLast = 'next_id_DESC_NULLS_LAST', + PreviousIdAsc = 'previous_id_ASC', + PreviousIdAscNullsFirst = 'previous_id_ASC_NULLS_FIRST', + PreviousIdDesc = 'previous_id_DESC', + PreviousIdDescNullsLast = 'previous_id_DESC_NULLS_LAST', +} + +export type ChangeOwnerKeyWhereInput = { + AND?: InputMaybe<Array<ChangeOwnerKeyWhereInput>>; + OR?: InputMaybe<Array<ChangeOwnerKeyWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; + next?: InputMaybe<AccountWhereInput>; + next_isNull?: InputMaybe<Scalars['Boolean']['input']>; + previous?: InputMaybe<AccountWhereInput>; + previous_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type ChangeOwnerKeysConnection = { + __typename?: 'ChangeOwnerKeysConnection'; + edges: Array<ChangeOwnerKeyEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export enum CounterLevel { + Global = 'Global', + Item = 'Item', + Pallet = 'Pallet', +} + +export type Event = { + __typename?: 'Event'; + args?: Maybe<Scalars['JSON']['output']>; + argsStr?: Maybe<Array<Maybe<Scalars['String']['output']>>>; + block: Block; + call?: Maybe<Call>; + extrinsic?: Maybe<Extrinsic>; + /** Event id - e.g. 0000000001-000000-272d6 */ + id: Scalars['String']['output']; + index: Scalars['Int']['output']; + name: Scalars['String']['output']; + pallet: Scalars['String']['output']; + phase: Scalars['String']['output']; +}; + +export type EventEdge = { + __typename?: 'EventEdge'; + cursor: Scalars['String']['output']; + node: Event; +}; + +export enum EventOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + CallIdAsc = 'call_id_ASC', + CallIdAscNullsFirst = 'call_id_ASC_NULLS_FIRST', + CallIdDesc = 'call_id_DESC', + CallIdDescNullsLast = 'call_id_DESC_NULLS_LAST', + CallNameAsc = 'call_name_ASC', + CallNameAscNullsFirst = 'call_name_ASC_NULLS_FIRST', + CallNameDesc = 'call_name_DESC', + CallNameDescNullsLast = 'call_name_DESC_NULLS_LAST', + CallPalletAsc = 'call_pallet_ASC', + CallPalletAscNullsFirst = 'call_pallet_ASC_NULLS_FIRST', + CallPalletDesc = 'call_pallet_DESC', + CallPalletDescNullsLast = 'call_pallet_DESC_NULLS_LAST', + CallSuccessAsc = 'call_success_ASC', + CallSuccessAscNullsFirst = 'call_success_ASC_NULLS_FIRST', + CallSuccessDesc = 'call_success_DESC', + CallSuccessDescNullsLast = 'call_success_DESC_NULLS_LAST', + ExtrinsicFeeAsc = 'extrinsic_fee_ASC', + ExtrinsicFeeAscNullsFirst = 'extrinsic_fee_ASC_NULLS_FIRST', + ExtrinsicFeeDesc = 'extrinsic_fee_DESC', + ExtrinsicFeeDescNullsLast = 'extrinsic_fee_DESC_NULLS_LAST', + ExtrinsicHashAsc = 'extrinsic_hash_ASC', + ExtrinsicHashAscNullsFirst = 'extrinsic_hash_ASC_NULLS_FIRST', + ExtrinsicHashDesc = 'extrinsic_hash_DESC', + ExtrinsicHashDescNullsLast = 'extrinsic_hash_DESC_NULLS_LAST', + ExtrinsicIdAsc = 'extrinsic_id_ASC', + ExtrinsicIdAscNullsFirst = 'extrinsic_id_ASC_NULLS_FIRST', + ExtrinsicIdDesc = 'extrinsic_id_DESC', + ExtrinsicIdDescNullsLast = 'extrinsic_id_DESC_NULLS_LAST', + ExtrinsicIndexAsc = 'extrinsic_index_ASC', + ExtrinsicIndexAscNullsFirst = 'extrinsic_index_ASC_NULLS_FIRST', + ExtrinsicIndexDesc = 'extrinsic_index_DESC', + ExtrinsicIndexDescNullsLast = 'extrinsic_index_DESC_NULLS_LAST', + ExtrinsicSuccessAsc = 'extrinsic_success_ASC', + ExtrinsicSuccessAscNullsFirst = 'extrinsic_success_ASC_NULLS_FIRST', + ExtrinsicSuccessDesc = 'extrinsic_success_DESC', + ExtrinsicSuccessDescNullsLast = 'extrinsic_success_DESC_NULLS_LAST', + ExtrinsicTipAsc = 'extrinsic_tip_ASC', + ExtrinsicTipAscNullsFirst = 'extrinsic_tip_ASC_NULLS_FIRST', + ExtrinsicTipDesc = 'extrinsic_tip_DESC', + ExtrinsicTipDescNullsLast = 'extrinsic_tip_DESC_NULLS_LAST', + ExtrinsicVersionAsc = 'extrinsic_version_ASC', + ExtrinsicVersionAscNullsFirst = 'extrinsic_version_ASC_NULLS_FIRST', + ExtrinsicVersionDesc = 'extrinsic_version_DESC', + ExtrinsicVersionDescNullsLast = 'extrinsic_version_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + PalletAsc = 'pallet_ASC', + PalletAscNullsFirst = 'pallet_ASC_NULLS_FIRST', + PalletDesc = 'pallet_DESC', + PalletDescNullsLast = 'pallet_DESC_NULLS_LAST', + PhaseAsc = 'phase_ASC', + PhaseAscNullsFirst = 'phase_ASC_NULLS_FIRST', + PhaseDesc = 'phase_DESC', + PhaseDescNullsLast = 'phase_DESC_NULLS_LAST', +} + +export type EventWhereInput = { + AND?: InputMaybe<Array<EventWhereInput>>; + OR?: InputMaybe<Array<EventWhereInput>>; + argsStr_containsAll?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsAny?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_containsNone?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>; + argsStr_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_eq?: InputMaybe<Scalars['JSON']['input']>; + args_isNull?: InputMaybe<Scalars['Boolean']['input']>; + args_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + args_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + args_not_eq?: InputMaybe<Scalars['JSON']['input']>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + call?: InputMaybe<CallWhereInput>; + call_isNull?: InputMaybe<Scalars['Boolean']['input']>; + extrinsic?: InputMaybe<ExtrinsicWhereInput>; + extrinsic_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_contains?: InputMaybe<Scalars['String']['input']>; + pallet_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_eq?: InputMaybe<Scalars['String']['input']>; + pallet_gt?: InputMaybe<Scalars['String']['input']>; + pallet_gte?: InputMaybe<Scalars['String']['input']>; + pallet_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_isNull?: InputMaybe<Scalars['Boolean']['input']>; + pallet_lt?: InputMaybe<Scalars['String']['input']>; + pallet_lte?: InputMaybe<Scalars['String']['input']>; + pallet_not_contains?: InputMaybe<Scalars['String']['input']>; + pallet_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + pallet_not_endsWith?: InputMaybe<Scalars['String']['input']>; + pallet_not_eq?: InputMaybe<Scalars['String']['input']>; + pallet_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + pallet_not_startsWith?: InputMaybe<Scalars['String']['input']>; + pallet_startsWith?: InputMaybe<Scalars['String']['input']>; + phase_contains?: InputMaybe<Scalars['String']['input']>; + phase_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + phase_endsWith?: InputMaybe<Scalars['String']['input']>; + phase_eq?: InputMaybe<Scalars['String']['input']>; + phase_gt?: InputMaybe<Scalars['String']['input']>; + phase_gte?: InputMaybe<Scalars['String']['input']>; + phase_in?: InputMaybe<Array<Scalars['String']['input']>>; + phase_isNull?: InputMaybe<Scalars['Boolean']['input']>; + phase_lt?: InputMaybe<Scalars['String']['input']>; + phase_lte?: InputMaybe<Scalars['String']['input']>; + phase_not_contains?: InputMaybe<Scalars['String']['input']>; + phase_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + phase_not_endsWith?: InputMaybe<Scalars['String']['input']>; + phase_not_eq?: InputMaybe<Scalars['String']['input']>; + phase_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + phase_not_startsWith?: InputMaybe<Scalars['String']['input']>; + phase_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type EventsConnection = { + __typename?: 'EventsConnection'; + edges: Array<EventEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type Extrinsic = { + __typename?: 'Extrinsic'; + block: Block; + call: Call; + calls: Array<Call>; + error?: Maybe<Scalars['JSON']['output']>; + events: Array<Event>; + fee?: Maybe<Scalars['BigInt']['output']>; + hash: Scalars['Bytes']['output']; + id: Scalars['String']['output']; + index: Scalars['Int']['output']; + signature?: Maybe<ExtrinsicSignature>; + success?: Maybe<Scalars['Boolean']['output']>; + tip?: Maybe<Scalars['BigInt']['output']>; + version: Scalars['Int']['output']; +}; + +export type ExtrinsicCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type ExtrinsicEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type ExtrinsicEdge = { + __typename?: 'ExtrinsicEdge'; + cursor: Scalars['String']['output']; + node: Extrinsic; +}; + +export enum ExtrinsicOrderByInput { + BlockCallsCountAsc = 'block_callsCount_ASC', + BlockCallsCountAscNullsFirst = 'block_callsCount_ASC_NULLS_FIRST', + BlockCallsCountDesc = 'block_callsCount_DESC', + BlockCallsCountDescNullsLast = 'block_callsCount_DESC_NULLS_LAST', + BlockEventsCountAsc = 'block_eventsCount_ASC', + BlockEventsCountAscNullsFirst = 'block_eventsCount_ASC_NULLS_FIRST', + BlockEventsCountDesc = 'block_eventsCount_DESC', + BlockEventsCountDescNullsLast = 'block_eventsCount_DESC_NULLS_LAST', + BlockExtrinsicsCountAsc = 'block_extrinsicsCount_ASC', + BlockExtrinsicsCountAscNullsFirst = 'block_extrinsicsCount_ASC_NULLS_FIRST', + BlockExtrinsicsCountDesc = 'block_extrinsicsCount_DESC', + BlockExtrinsicsCountDescNullsLast = 'block_extrinsicsCount_DESC_NULLS_LAST', + BlockExtrinsicsicRootAsc = 'block_extrinsicsicRoot_ASC', + BlockExtrinsicsicRootAscNullsFirst = 'block_extrinsicsicRoot_ASC_NULLS_FIRST', + BlockExtrinsicsicRootDesc = 'block_extrinsicsicRoot_DESC', + BlockExtrinsicsicRootDescNullsLast = 'block_extrinsicsicRoot_DESC_NULLS_LAST', + BlockHashAsc = 'block_hash_ASC', + BlockHashAscNullsFirst = 'block_hash_ASC_NULLS_FIRST', + BlockHashDesc = 'block_hash_DESC', + BlockHashDescNullsLast = 'block_hash_DESC_NULLS_LAST', + BlockHeightAsc = 'block_height_ASC', + BlockHeightAscNullsFirst = 'block_height_ASC_NULLS_FIRST', + BlockHeightDesc = 'block_height_DESC', + BlockHeightDescNullsLast = 'block_height_DESC_NULLS_LAST', + BlockIdAsc = 'block_id_ASC', + BlockIdAscNullsFirst = 'block_id_ASC_NULLS_FIRST', + BlockIdDesc = 'block_id_DESC', + BlockIdDescNullsLast = 'block_id_DESC_NULLS_LAST', + BlockImplNameAsc = 'block_implName_ASC', + BlockImplNameAscNullsFirst = 'block_implName_ASC_NULLS_FIRST', + BlockImplNameDesc = 'block_implName_DESC', + BlockImplNameDescNullsLast = 'block_implName_DESC_NULLS_LAST', + BlockImplVersionAsc = 'block_implVersion_ASC', + BlockImplVersionAscNullsFirst = 'block_implVersion_ASC_NULLS_FIRST', + BlockImplVersionDesc = 'block_implVersion_DESC', + BlockImplVersionDescNullsLast = 'block_implVersion_DESC_NULLS_LAST', + BlockParentHashAsc = 'block_parentHash_ASC', + BlockParentHashAscNullsFirst = 'block_parentHash_ASC_NULLS_FIRST', + BlockParentHashDesc = 'block_parentHash_DESC', + BlockParentHashDescNullsLast = 'block_parentHash_DESC_NULLS_LAST', + BlockSpecNameAsc = 'block_specName_ASC', + BlockSpecNameAscNullsFirst = 'block_specName_ASC_NULLS_FIRST', + BlockSpecNameDesc = 'block_specName_DESC', + BlockSpecNameDescNullsLast = 'block_specName_DESC_NULLS_LAST', + BlockSpecVersionAsc = 'block_specVersion_ASC', + BlockSpecVersionAscNullsFirst = 'block_specVersion_ASC_NULLS_FIRST', + BlockSpecVersionDesc = 'block_specVersion_DESC', + BlockSpecVersionDescNullsLast = 'block_specVersion_DESC_NULLS_LAST', + BlockStateRootAsc = 'block_stateRoot_ASC', + BlockStateRootAscNullsFirst = 'block_stateRoot_ASC_NULLS_FIRST', + BlockStateRootDesc = 'block_stateRoot_DESC', + BlockStateRootDescNullsLast = 'block_stateRoot_DESC_NULLS_LAST', + BlockTimestampAsc = 'block_timestamp_ASC', + BlockTimestampAscNullsFirst = 'block_timestamp_ASC_NULLS_FIRST', + BlockTimestampDesc = 'block_timestamp_DESC', + BlockTimestampDescNullsLast = 'block_timestamp_DESC_NULLS_LAST', + BlockValidatorAsc = 'block_validator_ASC', + BlockValidatorAscNullsFirst = 'block_validator_ASC_NULLS_FIRST', + BlockValidatorDesc = 'block_validator_DESC', + BlockValidatorDescNullsLast = 'block_validator_DESC_NULLS_LAST', + CallIdAsc = 'call_id_ASC', + CallIdAscNullsFirst = 'call_id_ASC_NULLS_FIRST', + CallIdDesc = 'call_id_DESC', + CallIdDescNullsLast = 'call_id_DESC_NULLS_LAST', + CallNameAsc = 'call_name_ASC', + CallNameAscNullsFirst = 'call_name_ASC_NULLS_FIRST', + CallNameDesc = 'call_name_DESC', + CallNameDescNullsLast = 'call_name_DESC_NULLS_LAST', + CallPalletAsc = 'call_pallet_ASC', + CallPalletAscNullsFirst = 'call_pallet_ASC_NULLS_FIRST', + CallPalletDesc = 'call_pallet_DESC', + CallPalletDescNullsLast = 'call_pallet_DESC_NULLS_LAST', + CallSuccessAsc = 'call_success_ASC', + CallSuccessAscNullsFirst = 'call_success_ASC_NULLS_FIRST', + CallSuccessDesc = 'call_success_DESC', + CallSuccessDescNullsLast = 'call_success_DESC_NULLS_LAST', + FeeAsc = 'fee_ASC', + FeeAscNullsFirst = 'fee_ASC_NULLS_FIRST', + FeeDesc = 'fee_DESC', + FeeDescNullsLast = 'fee_DESC_NULLS_LAST', + HashAsc = 'hash_ASC', + HashAscNullsFirst = 'hash_ASC_NULLS_FIRST', + HashDesc = 'hash_DESC', + HashDescNullsLast = 'hash_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + SuccessAsc = 'success_ASC', + SuccessAscNullsFirst = 'success_ASC_NULLS_FIRST', + SuccessDesc = 'success_DESC', + SuccessDescNullsLast = 'success_DESC_NULLS_LAST', + TipAsc = 'tip_ASC', + TipAscNullsFirst = 'tip_ASC_NULLS_FIRST', + TipDesc = 'tip_DESC', + TipDescNullsLast = 'tip_DESC_NULLS_LAST', + VersionAsc = 'version_ASC', + VersionAscNullsFirst = 'version_ASC_NULLS_FIRST', + VersionDesc = 'version_DESC', + VersionDescNullsLast = 'version_DESC_NULLS_LAST', +} + +export type ExtrinsicSignature = { + __typename?: 'ExtrinsicSignature'; + address?: Maybe<Scalars['JSON']['output']>; + signature?: Maybe<Scalars['JSON']['output']>; + signedExtensions?: Maybe<Scalars['JSON']['output']>; +}; + +export type ExtrinsicSignatureWhereInput = { + address_eq?: InputMaybe<Scalars['JSON']['input']>; + address_isNull?: InputMaybe<Scalars['Boolean']['input']>; + address_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + address_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + address_not_eq?: InputMaybe<Scalars['JSON']['input']>; + signature_eq?: InputMaybe<Scalars['JSON']['input']>; + signature_isNull?: InputMaybe<Scalars['Boolean']['input']>; + signature_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + signature_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + signature_not_eq?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_eq?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_isNull?: InputMaybe<Scalars['Boolean']['input']>; + signedExtensions_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + signedExtensions_not_eq?: InputMaybe<Scalars['JSON']['input']>; +}; + +export type ExtrinsicWhereInput = { + AND?: InputMaybe<Array<ExtrinsicWhereInput>>; + OR?: InputMaybe<Array<ExtrinsicWhereInput>>; + block?: InputMaybe<BlockWhereInput>; + block_isNull?: InputMaybe<Scalars['Boolean']['input']>; + call?: InputMaybe<CallWhereInput>; + call_isNull?: InputMaybe<Scalars['Boolean']['input']>; + calls_every?: InputMaybe<CallWhereInput>; + calls_none?: InputMaybe<CallWhereInput>; + calls_some?: InputMaybe<CallWhereInput>; + error_eq?: InputMaybe<Scalars['JSON']['input']>; + error_isNull?: InputMaybe<Scalars['Boolean']['input']>; + error_jsonContains?: InputMaybe<Scalars['JSON']['input']>; + error_jsonHasKey?: InputMaybe<Scalars['JSON']['input']>; + error_not_eq?: InputMaybe<Scalars['JSON']['input']>; + events_every?: InputMaybe<EventWhereInput>; + events_none?: InputMaybe<EventWhereInput>; + events_some?: InputMaybe<EventWhereInput>; + fee_eq?: InputMaybe<Scalars['BigInt']['input']>; + fee_gt?: InputMaybe<Scalars['BigInt']['input']>; + fee_gte?: InputMaybe<Scalars['BigInt']['input']>; + fee_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + fee_isNull?: InputMaybe<Scalars['Boolean']['input']>; + fee_lt?: InputMaybe<Scalars['BigInt']['input']>; + fee_lte?: InputMaybe<Scalars['BigInt']['input']>; + fee_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + fee_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + hash_eq?: InputMaybe<Scalars['Bytes']['input']>; + hash_isNull?: InputMaybe<Scalars['Boolean']['input']>; + hash_not_eq?: InputMaybe<Scalars['Bytes']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + signature?: InputMaybe<ExtrinsicSignatureWhereInput>; + signature_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_eq?: InputMaybe<Scalars['Boolean']['input']>; + success_isNull?: InputMaybe<Scalars['Boolean']['input']>; + success_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + tip_eq?: InputMaybe<Scalars['BigInt']['input']>; + tip_gt?: InputMaybe<Scalars['BigInt']['input']>; + tip_gte?: InputMaybe<Scalars['BigInt']['input']>; + tip_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + tip_isNull?: InputMaybe<Scalars['Boolean']['input']>; + tip_lt?: InputMaybe<Scalars['BigInt']['input']>; + tip_lte?: InputMaybe<Scalars['BigInt']['input']>; + tip_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + tip_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + version_eq?: InputMaybe<Scalars['Int']['input']>; + version_gt?: InputMaybe<Scalars['Int']['input']>; + version_gte?: InputMaybe<Scalars['Int']['input']>; + version_in?: InputMaybe<Array<Scalars['Int']['input']>>; + version_isNull?: InputMaybe<Scalars['Boolean']['input']>; + version_lt?: InputMaybe<Scalars['Int']['input']>; + version_lte?: InputMaybe<Scalars['Int']['input']>; + version_not_eq?: InputMaybe<Scalars['Int']['input']>; + version_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; +}; + +export type ExtrinsicsConnection = { + __typename?: 'ExtrinsicsConnection'; + edges: Array<ExtrinsicEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type IdentitiesConnection = { + __typename?: 'IdentitiesConnection'; + edges: Array<IdentityEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Identity */ +export type Identity = { + __typename?: 'Identity'; + /** Current account */ + account: Account; + /** Certifications issued */ + certIssued: Array<Cert>; + /** Certifications received */ + certReceived: Array<Cert>; + id: Scalars['String']['output']; + /** Identity index */ + index: Scalars['Int']['output']; + /** linked accounts */ + linkedAccount: Array<Account>; + /** Membership of the identity */ + membership?: Maybe<Membership>; + /** Name */ + name: Scalars['String']['output']; + /** Owner key changes */ + ownerKeyChange: Array<ChangeOwnerKey>; + /** Smith certifications issued */ + smithCertIssued: Array<SmithCert>; + /** Smith certifications received */ + smithCertReceived: Array<SmithCert>; + /** Smith Membership of the identity */ + smithMembership?: Maybe<SmithMembership>; +}; + +/** Identity */ +export type IdentityCertIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +/** Identity */ +export type IdentityCertReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +/** Identity */ +export type IdentityLinkedAccountArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<AccountOrderByInput>>; + where?: InputMaybe<AccountWhereInput>; +}; + +/** Identity */ +export type IdentityOwnerKeyChangeArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +/** Identity */ +export type IdentitySmithCertIssuedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +/** Identity */ +export type IdentitySmithCertReceivedArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type IdentityEdge = { + __typename?: 'IdentityEdge'; + cursor: Scalars['String']['output']; + node: Identity; +}; + +export enum IdentityOrderByInput { + AccountIdAsc = 'account_id_ASC', + AccountIdAscNullsFirst = 'account_id_ASC_NULLS_FIRST', + AccountIdDesc = 'account_id_DESC', + AccountIdDescNullsLast = 'account_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IndexAsc = 'index_ASC', + IndexAscNullsFirst = 'index_ASC_NULLS_FIRST', + IndexDesc = 'index_DESC', + IndexDescNullsLast = 'index_DESC_NULLS_LAST', + MembershipExpireOnAsc = 'membership_expireOn_ASC', + MembershipExpireOnAscNullsFirst = 'membership_expireOn_ASC_NULLS_FIRST', + MembershipExpireOnDesc = 'membership_expireOn_DESC', + MembershipExpireOnDescNullsLast = 'membership_expireOn_DESC_NULLS_LAST', + MembershipIdAsc = 'membership_id_ASC', + MembershipIdAscNullsFirst = 'membership_id_ASC_NULLS_FIRST', + MembershipIdDesc = 'membership_id_DESC', + MembershipIdDescNullsLast = 'membership_id_DESC_NULLS_LAST', + NameAsc = 'name_ASC', + NameAscNullsFirst = 'name_ASC_NULLS_FIRST', + NameDesc = 'name_DESC', + NameDescNullsLast = 'name_DESC_NULLS_LAST', + SmithMembershipExpireOnAsc = 'smithMembership_expireOn_ASC', + SmithMembershipExpireOnAscNullsFirst = 'smithMembership_expireOn_ASC_NULLS_FIRST', + SmithMembershipExpireOnDesc = 'smithMembership_expireOn_DESC', + SmithMembershipExpireOnDescNullsLast = 'smithMembership_expireOn_DESC_NULLS_LAST', + SmithMembershipIdAsc = 'smithMembership_id_ASC', + SmithMembershipIdAscNullsFirst = 'smithMembership_id_ASC_NULLS_FIRST', + SmithMembershipIdDesc = 'smithMembership_id_DESC', + SmithMembershipIdDescNullsLast = 'smithMembership_id_DESC_NULLS_LAST', +} + +export type IdentityWhereInput = { + AND?: InputMaybe<Array<IdentityWhereInput>>; + OR?: InputMaybe<Array<IdentityWhereInput>>; + account?: InputMaybe<AccountWhereInput>; + account_isNull?: InputMaybe<Scalars['Boolean']['input']>; + certIssued_every?: InputMaybe<CertWhereInput>; + certIssued_none?: InputMaybe<CertWhereInput>; + certIssued_some?: InputMaybe<CertWhereInput>; + certReceived_every?: InputMaybe<CertWhereInput>; + certReceived_none?: InputMaybe<CertWhereInput>; + certReceived_some?: InputMaybe<CertWhereInput>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + index_eq?: InputMaybe<Scalars['Int']['input']>; + index_gt?: InputMaybe<Scalars['Int']['input']>; + index_gte?: InputMaybe<Scalars['Int']['input']>; + index_in?: InputMaybe<Array<Scalars['Int']['input']>>; + index_isNull?: InputMaybe<Scalars['Boolean']['input']>; + index_lt?: InputMaybe<Scalars['Int']['input']>; + index_lte?: InputMaybe<Scalars['Int']['input']>; + index_not_eq?: InputMaybe<Scalars['Int']['input']>; + index_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + linkedAccount_every?: InputMaybe<AccountWhereInput>; + linkedAccount_none?: InputMaybe<AccountWhereInput>; + linkedAccount_some?: InputMaybe<AccountWhereInput>; + membership?: InputMaybe<MembershipWhereInput>; + membership_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_contains?: InputMaybe<Scalars['String']['input']>; + name_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_endsWith?: InputMaybe<Scalars['String']['input']>; + name_eq?: InputMaybe<Scalars['String']['input']>; + name_gt?: InputMaybe<Scalars['String']['input']>; + name_gte?: InputMaybe<Scalars['String']['input']>; + name_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_isNull?: InputMaybe<Scalars['Boolean']['input']>; + name_lt?: InputMaybe<Scalars['String']['input']>; + name_lte?: InputMaybe<Scalars['String']['input']>; + name_not_contains?: InputMaybe<Scalars['String']['input']>; + name_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + name_not_endsWith?: InputMaybe<Scalars['String']['input']>; + name_not_eq?: InputMaybe<Scalars['String']['input']>; + name_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + name_not_startsWith?: InputMaybe<Scalars['String']['input']>; + name_startsWith?: InputMaybe<Scalars['String']['input']>; + ownerKeyChange_every?: InputMaybe<ChangeOwnerKeyWhereInput>; + ownerKeyChange_none?: InputMaybe<ChangeOwnerKeyWhereInput>; + ownerKeyChange_some?: InputMaybe<ChangeOwnerKeyWhereInput>; + smithCertIssued_every?: InputMaybe<SmithCertWhereInput>; + smithCertIssued_none?: InputMaybe<SmithCertWhereInput>; + smithCertIssued_some?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_every?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_none?: InputMaybe<SmithCertWhereInput>; + smithCertReceived_some?: InputMaybe<SmithCertWhereInput>; + smithMembership?: InputMaybe<SmithMembershipWhereInput>; + smithMembership_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export enum ItemType { + Calls = 'Calls', + Events = 'Events', + Extrinsics = 'Extrinsics', +} + +export type ItemsCounter = { + __typename?: 'ItemsCounter'; + id: Scalars['String']['output']; + level: CounterLevel; + total: Scalars['Int']['output']; + type: ItemType; +}; + +export type ItemsCounterEdge = { + __typename?: 'ItemsCounterEdge'; + cursor: Scalars['String']['output']; + node: ItemsCounter; +}; + +export enum ItemsCounterOrderByInput { + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + LevelAsc = 'level_ASC', + LevelAscNullsFirst = 'level_ASC_NULLS_FIRST', + LevelDesc = 'level_DESC', + LevelDescNullsLast = 'level_DESC_NULLS_LAST', + TotalAsc = 'total_ASC', + TotalAscNullsFirst = 'total_ASC_NULLS_FIRST', + TotalDesc = 'total_DESC', + TotalDescNullsLast = 'total_DESC_NULLS_LAST', + TypeAsc = 'type_ASC', + TypeAscNullsFirst = 'type_ASC_NULLS_FIRST', + TypeDesc = 'type_DESC', + TypeDescNullsLast = 'type_DESC_NULLS_LAST', +} + +export type ItemsCounterWhereInput = { + AND?: InputMaybe<Array<ItemsCounterWhereInput>>; + OR?: InputMaybe<Array<ItemsCounterWhereInput>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + level_eq?: InputMaybe<CounterLevel>; + level_in?: InputMaybe<Array<CounterLevel>>; + level_isNull?: InputMaybe<Scalars['Boolean']['input']>; + level_not_eq?: InputMaybe<CounterLevel>; + level_not_in?: InputMaybe<Array<CounterLevel>>; + total_eq?: InputMaybe<Scalars['Int']['input']>; + total_gt?: InputMaybe<Scalars['Int']['input']>; + total_gte?: InputMaybe<Scalars['Int']['input']>; + total_in?: InputMaybe<Array<Scalars['Int']['input']>>; + total_isNull?: InputMaybe<Scalars['Boolean']['input']>; + total_lt?: InputMaybe<Scalars['Int']['input']>; + total_lte?: InputMaybe<Scalars['Int']['input']>; + total_not_eq?: InputMaybe<Scalars['Int']['input']>; + total_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + type_eq?: InputMaybe<ItemType>; + type_in?: InputMaybe<Array<ItemType>>; + type_isNull?: InputMaybe<Scalars['Boolean']['input']>; + type_not_eq?: InputMaybe<ItemType>; + type_not_in?: InputMaybe<Array<ItemType>>; +}; + +export type ItemsCountersConnection = { + __typename?: 'ItemsCountersConnection'; + edges: Array<ItemsCounterEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Membership */ +export type Membership = { + __typename?: 'Membership'; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; +}; + +export type MembershipEdge = { + __typename?: 'MembershipEdge'; + cursor: Scalars['String']['output']; + node: Membership; +}; + +export enum MembershipOrderByInput { + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', +} + +export type MembershipWhereInput = { + AND?: InputMaybe<Array<MembershipWhereInput>>; + OR?: InputMaybe<Array<MembershipWhereInput>>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type MembershipsConnection = { + __typename?: 'MembershipsConnection'; + edges: Array<MembershipEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + endCursor: Scalars['String']['output']; + hasNextPage: Scalars['Boolean']['output']; + hasPreviousPage: Scalars['Boolean']['output']; + startCursor: Scalars['String']['output']; +}; + +export type Query = { + __typename?: 'Query'; + accountById?: Maybe<Account>; + /** @deprecated Use accountById */ + accountByUniqueInput?: Maybe<Account>; + accounts: Array<Account>; + accountsConnection: AccountsConnection; + blockById?: Maybe<Block>; + /** @deprecated Use blockById */ + blockByUniqueInput?: Maybe<Block>; + blocks: Array<Block>; + blocksConnection: BlocksConnection; + callById?: Maybe<Call>; + /** @deprecated Use callById */ + callByUniqueInput?: Maybe<Call>; + calls: Array<Call>; + callsConnection: CallsConnection; + certById?: Maybe<Cert>; + /** @deprecated Use certById */ + certByUniqueInput?: Maybe<Cert>; + certCreationById?: Maybe<CertCreation>; + /** @deprecated Use certCreationById */ + certCreationByUniqueInput?: Maybe<CertCreation>; + certCreations: Array<CertCreation>; + certCreationsConnection: CertCreationsConnection; + certRemovalById?: Maybe<CertRemoval>; + /** @deprecated Use certRemovalById */ + certRemovalByUniqueInput?: Maybe<CertRemoval>; + certRemovals: Array<CertRemoval>; + certRemovalsConnection: CertRemovalsConnection; + certRenewalById?: Maybe<CertRenewal>; + /** @deprecated Use certRenewalById */ + certRenewalByUniqueInput?: Maybe<CertRenewal>; + certRenewals: Array<CertRenewal>; + certRenewalsConnection: CertRenewalsConnection; + certs: Array<Cert>; + certsConnection: CertsConnection; + changeOwnerKeyById?: Maybe<ChangeOwnerKey>; + /** @deprecated Use changeOwnerKeyById */ + changeOwnerKeyByUniqueInput?: Maybe<ChangeOwnerKey>; + changeOwnerKeys: Array<ChangeOwnerKey>; + changeOwnerKeysConnection: ChangeOwnerKeysConnection; + eventById?: Maybe<Event>; + /** @deprecated Use eventById */ + eventByUniqueInput?: Maybe<Event>; + events: Array<Event>; + eventsConnection: EventsConnection; + extrinsicById?: Maybe<Extrinsic>; + /** @deprecated Use extrinsicById */ + extrinsicByUniqueInput?: Maybe<Extrinsic>; + extrinsics: Array<Extrinsic>; + extrinsicsConnection: ExtrinsicsConnection; + identities: Array<Identity>; + identitiesConnection: IdentitiesConnection; + identityById?: Maybe<Identity>; + /** @deprecated Use identityById */ + identityByUniqueInput?: Maybe<Identity>; + itemsCounterById?: Maybe<ItemsCounter>; + /** @deprecated Use itemsCounterById */ + itemsCounterByUniqueInput?: Maybe<ItemsCounter>; + itemsCounters: Array<ItemsCounter>; + itemsCountersConnection: ItemsCountersConnection; + membershipById?: Maybe<Membership>; + /** @deprecated Use membershipById */ + membershipByUniqueInput?: Maybe<Membership>; + memberships: Array<Membership>; + membershipsConnection: MembershipsConnection; + smithCertById?: Maybe<SmithCert>; + /** @deprecated Use smithCertById */ + smithCertByUniqueInput?: Maybe<SmithCert>; + smithCertCreationById?: Maybe<SmithCertCreation>; + /** @deprecated Use smithCertCreationById */ + smithCertCreationByUniqueInput?: Maybe<SmithCertCreation>; + smithCertCreations: Array<SmithCertCreation>; + smithCertCreationsConnection: SmithCertCreationsConnection; + smithCertRemovalById?: Maybe<SmithCertRemoval>; + /** @deprecated Use smithCertRemovalById */ + smithCertRemovalByUniqueInput?: Maybe<SmithCertRemoval>; + smithCertRemovals: Array<SmithCertRemoval>; + smithCertRemovalsConnection: SmithCertRemovalsConnection; + smithCertRenewalById?: Maybe<SmithCertRenewal>; + /** @deprecated Use smithCertRenewalById */ + smithCertRenewalByUniqueInput?: Maybe<SmithCertRenewal>; + smithCertRenewals: Array<SmithCertRenewal>; + smithCertRenewalsConnection: SmithCertRenewalsConnection; + smithCerts: Array<SmithCert>; + smithCertsConnection: SmithCertsConnection; + smithMembershipById?: Maybe<SmithMembership>; + /** @deprecated Use smithMembershipById */ + smithMembershipByUniqueInput?: Maybe<SmithMembership>; + smithMemberships: Array<SmithMembership>; + smithMembershipsConnection: SmithMembershipsConnection; + squidStatus?: Maybe<SquidStatus>; + transferById?: Maybe<Transfer>; + /** @deprecated Use transferById */ + transferByUniqueInput?: Maybe<Transfer>; + transfers: Array<Transfer>; + transfersConnection: TransfersConnection; +}; + +export type QueryAccountByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryAccountByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryAccountsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<AccountOrderByInput>>; + where?: InputMaybe<AccountWhereInput>; +}; + +export type QueryAccountsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<AccountOrderByInput>; + where?: InputMaybe<AccountWhereInput>; +}; + +export type QueryBlockByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryBlockByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryBlocksArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<BlockOrderByInput>>; + where?: InputMaybe<BlockWhereInput>; +}; + +export type QueryBlocksConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<BlockOrderByInput>; + where?: InputMaybe<BlockWhereInput>; +}; + +export type QueryCallByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCallByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCallsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CallOrderByInput>>; + where?: InputMaybe<CallWhereInput>; +}; + +export type QueryCallsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CallOrderByInput>; + where?: InputMaybe<CallWhereInput>; +}; + +export type QueryCertByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertCreationByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertCreationByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertCreationsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertCreationOrderByInput>>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +export type QueryCertCreationsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertCreationOrderByInput>; + where?: InputMaybe<CertCreationWhereInput>; +}; + +export type QueryCertRemovalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertRemovalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertRemovalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRemovalOrderByInput>>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +export type QueryCertRemovalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertRemovalOrderByInput>; + where?: InputMaybe<CertRemovalWhereInput>; +}; + +export type QueryCertRenewalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryCertRenewalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryCertRenewalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertRenewalOrderByInput>>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +export type QueryCertRenewalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertRenewalOrderByInput>; + where?: InputMaybe<CertRenewalWhereInput>; +}; + +export type QueryCertsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<CertOrderByInput>>; + where?: InputMaybe<CertWhereInput>; +}; + +export type QueryCertsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<CertOrderByInput>; + where?: InputMaybe<CertWhereInput>; +}; + +export type QueryChangeOwnerKeyByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryChangeOwnerKeyByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryChangeOwnerKeysArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ChangeOwnerKeyOrderByInput>>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type QueryChangeOwnerKeysConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ChangeOwnerKeyOrderByInput>; + where?: InputMaybe<ChangeOwnerKeyWhereInput>; +}; + +export type QueryEventByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryEventByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryEventsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<EventOrderByInput>>; + where?: InputMaybe<EventWhereInput>; +}; + +export type QueryEventsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<EventOrderByInput>; + where?: InputMaybe<EventWhereInput>; +}; + +export type QueryExtrinsicByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryExtrinsicByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryExtrinsicsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ExtrinsicOrderByInput>>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type QueryExtrinsicsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ExtrinsicOrderByInput>; + where?: InputMaybe<ExtrinsicWhereInput>; +}; + +export type QueryIdentitiesArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<IdentityOrderByInput>>; + where?: InputMaybe<IdentityWhereInput>; +}; + +export type QueryIdentitiesConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<IdentityOrderByInput>; + where?: InputMaybe<IdentityWhereInput>; +}; + +export type QueryIdentityByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryIdentityByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryItemsCounterByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryItemsCounterByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryItemsCountersArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<ItemsCounterOrderByInput>>; + where?: InputMaybe<ItemsCounterWhereInput>; +}; + +export type QueryItemsCountersConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<ItemsCounterOrderByInput>; + where?: InputMaybe<ItemsCounterWhereInput>; +}; + +export type QueryMembershipByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryMembershipByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryMembershipsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<MembershipOrderByInput>>; + where?: InputMaybe<MembershipWhereInput>; +}; + +export type QueryMembershipsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<MembershipOrderByInput>; + where?: InputMaybe<MembershipWhereInput>; +}; + +export type QuerySmithCertByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertCreationByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertCreationByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertCreationsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertCreationOrderByInput>>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +export type QuerySmithCertCreationsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertCreationOrderByInput>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +export type QuerySmithCertRemovalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertRemovalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertRemovalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRemovalOrderByInput>>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +export type QuerySmithCertRemovalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertRemovalOrderByInput>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +export type QuerySmithCertRenewalByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithCertRenewalByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithCertRenewalsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRenewalOrderByInput>>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type QuerySmithCertRenewalsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertRenewalOrderByInput>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type QuerySmithCertsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertOrderByInput>>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type QuerySmithCertsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithCertOrderByInput>; + where?: InputMaybe<SmithCertWhereInput>; +}; + +export type QuerySmithMembershipByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QuerySmithMembershipByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QuerySmithMembershipsArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithMembershipOrderByInput>>; + where?: InputMaybe<SmithMembershipWhereInput>; +}; + +export type QuerySmithMembershipsConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<SmithMembershipOrderByInput>; + where?: InputMaybe<SmithMembershipWhereInput>; +}; + +export type QueryTransferByIdArgs = { + id: Scalars['String']['input']; +}; + +export type QueryTransferByUniqueInputArgs = { + where: WhereIdInput; +}; + +export type QueryTransfersArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<TransferOrderByInput>>; + where?: InputMaybe<TransferWhereInput>; +}; + +export type QueryTransfersConnectionArgs = { + after?: InputMaybe<Scalars['String']['input']>; + first?: InputMaybe<Scalars['Int']['input']>; + orderBy: Array<TransferOrderByInput>; + where?: InputMaybe<TransferWhereInput>; +}; + +/** Smith certification */ +export type SmithCert = { + __typename?: 'SmithCert'; + active: Scalars['Boolean']['output']; + createdOn: Scalars['Int']['output']; + creation: Array<SmithCertCreation>; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + issuer: Identity; + receiver: Identity; + removal: Array<SmithCertRemoval>; + renewal: Array<SmithCertRenewal>; +}; + +/** Smith certification */ +export type SmithCertCreationArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertCreationOrderByInput>>; + where?: InputMaybe<SmithCertCreationWhereInput>; +}; + +/** Smith certification */ +export type SmithCertRemovalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRemovalOrderByInput>>; + where?: InputMaybe<SmithCertRemovalWhereInput>; +}; + +/** Smith certification */ +export type SmithCertRenewalArgs = { + limit?: InputMaybe<Scalars['Int']['input']>; + offset?: InputMaybe<Scalars['Int']['input']>; + orderBy?: InputMaybe<Array<SmithCertRenewalOrderByInput>>; + where?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type SmithCertCreation = { + __typename?: 'SmithCertCreation'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertCreationEdge = { + __typename?: 'SmithCertCreationEdge'; + cursor: Scalars['String']['output']; + node: SmithCertCreation; +}; + +export enum SmithCertCreationOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertCreationWhereInput = { + AND?: InputMaybe<Array<SmithCertCreationWhereInput>>; + OR?: InputMaybe<Array<SmithCertCreationWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertCreationsConnection = { + __typename?: 'SmithCertCreationsConnection'; + edges: Array<SmithCertCreationEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertEdge = { + __typename?: 'SmithCertEdge'; + cursor: Scalars['String']['output']; + node: SmithCert; +}; + +export enum SmithCertOrderByInput { + ActiveAsc = 'active_ASC', + ActiveAscNullsFirst = 'active_ASC_NULLS_FIRST', + ActiveDesc = 'active_DESC', + ActiveDescNullsLast = 'active_DESC_NULLS_LAST', + CreatedOnAsc = 'createdOn_ASC', + CreatedOnAscNullsFirst = 'createdOn_ASC_NULLS_FIRST', + CreatedOnDesc = 'createdOn_DESC', + CreatedOnDescNullsLast = 'createdOn_DESC_NULLS_LAST', + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IssuerIdAsc = 'issuer_id_ASC', + IssuerIdAscNullsFirst = 'issuer_id_ASC_NULLS_FIRST', + IssuerIdDesc = 'issuer_id_DESC', + IssuerIdDescNullsLast = 'issuer_id_DESC_NULLS_LAST', + IssuerIndexAsc = 'issuer_index_ASC', + IssuerIndexAscNullsFirst = 'issuer_index_ASC_NULLS_FIRST', + IssuerIndexDesc = 'issuer_index_DESC', + IssuerIndexDescNullsLast = 'issuer_index_DESC_NULLS_LAST', + IssuerNameAsc = 'issuer_name_ASC', + IssuerNameAscNullsFirst = 'issuer_name_ASC_NULLS_FIRST', + IssuerNameDesc = 'issuer_name_DESC', + IssuerNameDescNullsLast = 'issuer_name_DESC_NULLS_LAST', + ReceiverIdAsc = 'receiver_id_ASC', + ReceiverIdAscNullsFirst = 'receiver_id_ASC_NULLS_FIRST', + ReceiverIdDesc = 'receiver_id_DESC', + ReceiverIdDescNullsLast = 'receiver_id_DESC_NULLS_LAST', + ReceiverIndexAsc = 'receiver_index_ASC', + ReceiverIndexAscNullsFirst = 'receiver_index_ASC_NULLS_FIRST', + ReceiverIndexDesc = 'receiver_index_DESC', + ReceiverIndexDescNullsLast = 'receiver_index_DESC_NULLS_LAST', + ReceiverNameAsc = 'receiver_name_ASC', + ReceiverNameAscNullsFirst = 'receiver_name_ASC_NULLS_FIRST', + ReceiverNameDesc = 'receiver_name_DESC', + ReceiverNameDescNullsLast = 'receiver_name_DESC_NULLS_LAST', +} + +export type SmithCertRemoval = { + __typename?: 'SmithCertRemoval'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertRemovalEdge = { + __typename?: 'SmithCertRemovalEdge'; + cursor: Scalars['String']['output']; + node: SmithCertRemoval; +}; + +export enum SmithCertRemovalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertRemovalWhereInput = { + AND?: InputMaybe<Array<SmithCertRemovalWhereInput>>; + OR?: InputMaybe<Array<SmithCertRemovalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertRemovalsConnection = { + __typename?: 'SmithCertRemovalsConnection'; + edges: Array<SmithCertRemovalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertRenewal = { + __typename?: 'SmithCertRenewal'; + blockNumber: Scalars['Int']['output']; + cert: SmithCert; + id: Scalars['String']['output']; +}; + +export type SmithCertRenewalEdge = { + __typename?: 'SmithCertRenewalEdge'; + cursor: Scalars['String']['output']; + node: SmithCertRenewal; +}; + +export enum SmithCertRenewalOrderByInput { + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CertActiveAsc = 'cert_active_ASC', + CertActiveAscNullsFirst = 'cert_active_ASC_NULLS_FIRST', + CertActiveDesc = 'cert_active_DESC', + CertActiveDescNullsLast = 'cert_active_DESC_NULLS_LAST', + CertCreatedOnAsc = 'cert_createdOn_ASC', + CertCreatedOnAscNullsFirst = 'cert_createdOn_ASC_NULLS_FIRST', + CertCreatedOnDesc = 'cert_createdOn_DESC', + CertCreatedOnDescNullsLast = 'cert_createdOn_DESC_NULLS_LAST', + CertExpireOnAsc = 'cert_expireOn_ASC', + CertExpireOnAscNullsFirst = 'cert_expireOn_ASC_NULLS_FIRST', + CertExpireOnDesc = 'cert_expireOn_DESC', + CertExpireOnDescNullsLast = 'cert_expireOn_DESC_NULLS_LAST', + CertIdAsc = 'cert_id_ASC', + CertIdAscNullsFirst = 'cert_id_ASC_NULLS_FIRST', + CertIdDesc = 'cert_id_DESC', + CertIdDescNullsLast = 'cert_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', +} + +export type SmithCertRenewalWhereInput = { + AND?: InputMaybe<Array<SmithCertRenewalWhereInput>>; + OR?: InputMaybe<Array<SmithCertRenewalWhereInput>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + cert?: InputMaybe<SmithCertWhereInput>; + cert_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; +}; + +export type SmithCertRenewalsConnection = { + __typename?: 'SmithCertRenewalsConnection'; + edges: Array<SmithCertRenewalEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SmithCertWhereInput = { + AND?: InputMaybe<Array<SmithCertWhereInput>>; + OR?: InputMaybe<Array<SmithCertWhereInput>>; + active_eq?: InputMaybe<Scalars['Boolean']['input']>; + active_isNull?: InputMaybe<Scalars['Boolean']['input']>; + active_not_eq?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_gt?: InputMaybe<Scalars['Int']['input']>; + createdOn_gte?: InputMaybe<Scalars['Int']['input']>; + createdOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + createdOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + createdOn_lt?: InputMaybe<Scalars['Int']['input']>; + createdOn_lte?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + createdOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + creation_every?: InputMaybe<SmithCertCreationWhereInput>; + creation_none?: InputMaybe<SmithCertCreationWhereInput>; + creation_some?: InputMaybe<SmithCertCreationWhereInput>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + issuer?: InputMaybe<IdentityWhereInput>; + issuer_isNull?: InputMaybe<Scalars['Boolean']['input']>; + receiver?: InputMaybe<IdentityWhereInput>; + receiver_isNull?: InputMaybe<Scalars['Boolean']['input']>; + removal_every?: InputMaybe<SmithCertRemovalWhereInput>; + removal_none?: InputMaybe<SmithCertRemovalWhereInput>; + removal_some?: InputMaybe<SmithCertRemovalWhereInput>; + renewal_every?: InputMaybe<SmithCertRenewalWhereInput>; + renewal_none?: InputMaybe<SmithCertRenewalWhereInput>; + renewal_some?: InputMaybe<SmithCertRenewalWhereInput>; +}; + +export type SmithCertsConnection = { + __typename?: 'SmithCertsConnection'; + edges: Array<SmithCertEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +/** Smith membership */ +export type SmithMembership = { + __typename?: 'SmithMembership'; + expireOn: Scalars['Int']['output']; + id: Scalars['String']['output']; + identity: Identity; +}; + +export type SmithMembershipEdge = { + __typename?: 'SmithMembershipEdge'; + cursor: Scalars['String']['output']; + node: SmithMembership; +}; + +export enum SmithMembershipOrderByInput { + ExpireOnAsc = 'expireOn_ASC', + ExpireOnAscNullsFirst = 'expireOn_ASC_NULLS_FIRST', + ExpireOnDesc = 'expireOn_DESC', + ExpireOnDescNullsLast = 'expireOn_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + IdentityIdAsc = 'identity_id_ASC', + IdentityIdAscNullsFirst = 'identity_id_ASC_NULLS_FIRST', + IdentityIdDesc = 'identity_id_DESC', + IdentityIdDescNullsLast = 'identity_id_DESC_NULLS_LAST', + IdentityIndexAsc = 'identity_index_ASC', + IdentityIndexAscNullsFirst = 'identity_index_ASC_NULLS_FIRST', + IdentityIndexDesc = 'identity_index_DESC', + IdentityIndexDescNullsLast = 'identity_index_DESC_NULLS_LAST', + IdentityNameAsc = 'identity_name_ASC', + IdentityNameAscNullsFirst = 'identity_name_ASC_NULLS_FIRST', + IdentityNameDesc = 'identity_name_DESC', + IdentityNameDescNullsLast = 'identity_name_DESC_NULLS_LAST', +} + +export type SmithMembershipWhereInput = { + AND?: InputMaybe<Array<SmithMembershipWhereInput>>; + OR?: InputMaybe<Array<SmithMembershipWhereInput>>; + expireOn_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_gt?: InputMaybe<Scalars['Int']['input']>; + expireOn_gte?: InputMaybe<Scalars['Int']['input']>; + expireOn_in?: InputMaybe<Array<Scalars['Int']['input']>>; + expireOn_isNull?: InputMaybe<Scalars['Boolean']['input']>; + expireOn_lt?: InputMaybe<Scalars['Int']['input']>; + expireOn_lte?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_eq?: InputMaybe<Scalars['Int']['input']>; + expireOn_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + identity?: InputMaybe<IdentityWhereInput>; + identity_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type SmithMembershipsConnection = { + __typename?: 'SmithMembershipsConnection'; + edges: Array<SmithMembershipEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type SquidStatus = { + __typename?: 'SquidStatus'; + /** The height of the processed part of the chain */ + height?: Maybe<Scalars['Int']['output']>; +}; + +export type Transfer = { + __typename?: 'Transfer'; + amount: Scalars['BigInt']['output']; + blockNumber: Scalars['Int']['output']; + comment?: Maybe<Scalars['String']['output']>; + from: Account; + id: Scalars['String']['output']; + timestamp: Scalars['DateTime']['output']; + to: Account; +}; + +export type TransferEdge = { + __typename?: 'TransferEdge'; + cursor: Scalars['String']['output']; + node: Transfer; +}; + +export enum TransferOrderByInput { + AmountAsc = 'amount_ASC', + AmountAscNullsFirst = 'amount_ASC_NULLS_FIRST', + AmountDesc = 'amount_DESC', + AmountDescNullsLast = 'amount_DESC_NULLS_LAST', + BlockNumberAsc = 'blockNumber_ASC', + BlockNumberAscNullsFirst = 'blockNumber_ASC_NULLS_FIRST', + BlockNumberDesc = 'blockNumber_DESC', + BlockNumberDescNullsLast = 'blockNumber_DESC_NULLS_LAST', + CommentAsc = 'comment_ASC', + CommentAscNullsFirst = 'comment_ASC_NULLS_FIRST', + CommentDesc = 'comment_DESC', + CommentDescNullsLast = 'comment_DESC_NULLS_LAST', + FromIdAsc = 'from_id_ASC', + FromIdAscNullsFirst = 'from_id_ASC_NULLS_FIRST', + FromIdDesc = 'from_id_DESC', + FromIdDescNullsLast = 'from_id_DESC_NULLS_LAST', + IdAsc = 'id_ASC', + IdAscNullsFirst = 'id_ASC_NULLS_FIRST', + IdDesc = 'id_DESC', + IdDescNullsLast = 'id_DESC_NULLS_LAST', + TimestampAsc = 'timestamp_ASC', + TimestampAscNullsFirst = 'timestamp_ASC_NULLS_FIRST', + TimestampDesc = 'timestamp_DESC', + TimestampDescNullsLast = 'timestamp_DESC_NULLS_LAST', + ToIdAsc = 'to_id_ASC', + ToIdAscNullsFirst = 'to_id_ASC_NULLS_FIRST', + ToIdDesc = 'to_id_DESC', + ToIdDescNullsLast = 'to_id_DESC_NULLS_LAST', +} + +export type TransferWhereInput = { + AND?: InputMaybe<Array<TransferWhereInput>>; + OR?: InputMaybe<Array<TransferWhereInput>>; + amount_eq?: InputMaybe<Scalars['BigInt']['input']>; + amount_gt?: InputMaybe<Scalars['BigInt']['input']>; + amount_gte?: InputMaybe<Scalars['BigInt']['input']>; + amount_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + amount_isNull?: InputMaybe<Scalars['Boolean']['input']>; + amount_lt?: InputMaybe<Scalars['BigInt']['input']>; + amount_lte?: InputMaybe<Scalars['BigInt']['input']>; + amount_not_eq?: InputMaybe<Scalars['BigInt']['input']>; + amount_not_in?: InputMaybe<Array<Scalars['BigInt']['input']>>; + blockNumber_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_gte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_in?: InputMaybe<Array<Scalars['Int']['input']>>; + blockNumber_isNull?: InputMaybe<Scalars['Boolean']['input']>; + blockNumber_lt?: InputMaybe<Scalars['Int']['input']>; + blockNumber_lte?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_eq?: InputMaybe<Scalars['Int']['input']>; + blockNumber_not_in?: InputMaybe<Array<Scalars['Int']['input']>>; + comment_contains?: InputMaybe<Scalars['String']['input']>; + comment_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + comment_endsWith?: InputMaybe<Scalars['String']['input']>; + comment_eq?: InputMaybe<Scalars['String']['input']>; + comment_gt?: InputMaybe<Scalars['String']['input']>; + comment_gte?: InputMaybe<Scalars['String']['input']>; + comment_in?: InputMaybe<Array<Scalars['String']['input']>>; + comment_isNull?: InputMaybe<Scalars['Boolean']['input']>; + comment_lt?: InputMaybe<Scalars['String']['input']>; + comment_lte?: InputMaybe<Scalars['String']['input']>; + comment_not_contains?: InputMaybe<Scalars['String']['input']>; + comment_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + comment_not_endsWith?: InputMaybe<Scalars['String']['input']>; + comment_not_eq?: InputMaybe<Scalars['String']['input']>; + comment_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + comment_not_startsWith?: InputMaybe<Scalars['String']['input']>; + comment_startsWith?: InputMaybe<Scalars['String']['input']>; + from?: InputMaybe<AccountWhereInput>; + from_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_contains?: InputMaybe<Scalars['String']['input']>; + id_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_endsWith?: InputMaybe<Scalars['String']['input']>; + id_eq?: InputMaybe<Scalars['String']['input']>; + id_gt?: InputMaybe<Scalars['String']['input']>; + id_gte?: InputMaybe<Scalars['String']['input']>; + id_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_isNull?: InputMaybe<Scalars['Boolean']['input']>; + id_lt?: InputMaybe<Scalars['String']['input']>; + id_lte?: InputMaybe<Scalars['String']['input']>; + id_not_contains?: InputMaybe<Scalars['String']['input']>; + id_not_containsInsensitive?: InputMaybe<Scalars['String']['input']>; + id_not_endsWith?: InputMaybe<Scalars['String']['input']>; + id_not_eq?: InputMaybe<Scalars['String']['input']>; + id_not_in?: InputMaybe<Array<Scalars['String']['input']>>; + id_not_startsWith?: InputMaybe<Scalars['String']['input']>; + id_startsWith?: InputMaybe<Scalars['String']['input']>; + timestamp_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_gte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + timestamp_isNull?: InputMaybe<Scalars['Boolean']['input']>; + timestamp_lt?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_lte?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_eq?: InputMaybe<Scalars['DateTime']['input']>; + timestamp_not_in?: InputMaybe<Array<Scalars['DateTime']['input']>>; + to?: InputMaybe<AccountWhereInput>; + to_isNull?: InputMaybe<Scalars['Boolean']['input']>; +}; + +export type TransfersConnection = { + __typename?: 'TransfersConnection'; + edges: Array<TransferEdge>; + pageInfo: PageInfo; + totalCount: Scalars['Int']['output']; +}; + +export type WhereIdInput = { + id: Scalars['String']['input']; +}; + +export type LightAccountFragment = { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; +}; + +export type WotSearchByTextQueryVariables = Exact<{ + searchText: Scalars['String']['input']; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; +}>; + +export type WotSearchByTextQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }>; +}; + +export type WotSearchByAddressQueryVariables = Exact<{ + address: Scalars['String']['input']; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; +}>; + +export type WotSearchByAddressQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }>; +}; + +export type WotSearchLastQueryVariables = Exact<{ + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<AccountOrderByInput> | AccountOrderByInput>; + pending: Scalars['Boolean']['input']; +}>; + +export type WotSearchLastQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }>; +}; + +export type TransferFragment = { + __typename?: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; + to: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; +}; + +export type TxHistoryByAddressQueryVariables = Exact<{ + address: Scalars['String']['input']; + limit: Scalars['Int']['input']; + offset: Scalars['Int']['input']; + orderBy?: InputMaybe<Array<TransferOrderByInput> | TransferOrderByInput>; +}>; + +export type TxHistoryByAddressQuery = { + __typename?: 'Query'; + accounts: Array<{ + __typename?: 'Account'; + transfersIssued: Array<{ + __typename?: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; + to: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; + }>; + transfersReceived: Array<{ + __typename?: 'Transfer'; + id: string; + amount: any; + timestamp: any; + blockNumber: number; + from: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; + to: { + __typename?: 'Account'; + id: string; + identity?: { __typename?: 'Identity'; name: string; membership?: { __typename?: 'Membership'; id: string } | null } | null; + }; + }>; + }>; +}; + +export const LightAccountFragmentDoc = gql` + fragment LightAccount on Account { + id + identity { + name + membership { + id + } + } + } +`; +export const TransferFragmentDoc = gql` + fragment Transfer on Transfer { + id + amount + timestamp + blockNumber + from { + ...LightAccount + } + to { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; +export const WotSearchByTextDocument = gql` + query WotSearchByText($searchText: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { id_startsWith: $searchText, OR: { identity: { name_containsInsensitive: $searchText } } } + ) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchByTextGQL extends Apollo.Query<WotSearchByTextQuery, WotSearchByTextQueryVariables> { + document = WotSearchByTextDocument; + + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const WotSearchByAddressDocument = gql` + query WotSearchByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!]) { + accounts(limit: $limit, offset: $offset, orderBy: $orderBy, where: { id_eq: $address }) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchByAddressGQL extends Apollo.Query<WotSearchByAddressQuery, WotSearchByAddressQueryVariables> { + document = WotSearchByAddressDocument; + + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const WotSearchLastDocument = gql` + query WotSearchLast($limit: Int!, $offset: Int!, $orderBy: [AccountOrderByInput!], $pending: Boolean!) { + accounts( + limit: $limit + offset: $offset + orderBy: $orderBy + where: { identity: { id_isNull: false }, AND: { identity: { membership_isNull: $pending } } } + ) { + ...LightAccount + } + } + ${LightAccountFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class WotSearchLastGQL extends Apollo.Query<WotSearchLastQuery, WotSearchLastQueryVariables> { + document = WotSearchLastDocument; + + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} +export const TxHistoryByAddressDocument = gql` + query txHistoryByAddress($address: String!, $limit: Int!, $offset: Int!, $orderBy: [TransferOrderByInput!]) { + accounts(limit: 1, offset: 0, where: { id_eq: $address }) { + transfersIssued(limit: $limit, offset: $offset, orderBy: $orderBy) { + ...Transfer + } + transfersReceived(limit: $limit, offset: $offset, orderBy: $orderBy) { + ...Transfer + } + } + } + ${TransferFragmentDoc} +`; + +@Injectable({ + providedIn: 'root', +}) +export class TxHistoryByAddressGQL extends Apollo.Query<TxHistoryByAddressQuery, TxHistoryByAddressQueryVariables> { + document = TxHistoryByAddressDocument; + + constructor(apollo: Apollo.Apollo) { + super(apollo); + } +} + +type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; + +interface WatchQueryOptionsAlone<V> extends Omit<ApolloCore.WatchQueryOptions<V>, 'query' | 'variables'> {} + +interface QueryOptionsAlone<V> extends Omit<ApolloCore.QueryOptions<V>, 'query' | 'variables'> {} + +@Injectable({ providedIn: 'root' }) +export class IndexerGraphqlService { + constructor( + private wotSearchByTextGql: WotSearchByTextGQL, + private wotSearchByAddressGql: WotSearchByAddressGQL, + private wotSearchLastGql: WotSearchLastGQL, + private txHistoryByAddressGql: TxHistoryByAddressGQL + ) {} + + wotSearchByText(variables: WotSearchByTextQueryVariables, options?: QueryOptionsAlone<WotSearchByTextQueryVariables>) { + return this.wotSearchByTextGql.fetch(variables, options); + } + + wotSearchByTextWatch(variables: WotSearchByTextQueryVariables, options?: WatchQueryOptionsAlone<WotSearchByTextQueryVariables>) { + return this.wotSearchByTextGql.watch(variables, options); + } + + wotSearchByAddress(variables: WotSearchByAddressQueryVariables, options?: QueryOptionsAlone<WotSearchByAddressQueryVariables>) { + return this.wotSearchByAddressGql.fetch(variables, options); + } + + wotSearchByAddressWatch(variables: WotSearchByAddressQueryVariables, options?: WatchQueryOptionsAlone<WotSearchByAddressQueryVariables>) { + return this.wotSearchByAddressGql.watch(variables, options); + } + + wotSearchLast(variables: WotSearchLastQueryVariables, options?: QueryOptionsAlone<WotSearchLastQueryVariables>) { + return this.wotSearchLastGql.fetch(variables, options); + } + + wotSearchLastWatch(variables: WotSearchLastQueryVariables, options?: WatchQueryOptionsAlone<WotSearchLastQueryVariables>) { + return this.wotSearchLastGql.watch(variables, options); + } + + txHistoryByAddress(variables: TxHistoryByAddressQueryVariables, options?: QueryOptionsAlone<TxHistoryByAddressQueryVariables>) { + return this.txHistoryByAddressGql.fetch(variables, options); + } + + txHistoryByAddressWatch(variables: TxHistoryByAddressQueryVariables, options?: WatchQueryOptionsAlone<TxHistoryByAddressQueryVariables>) { + return this.txHistoryByAddressGql.watch(variables, options); + } +} + +export interface PossibleTypesResultData { + possibleTypes: { + [key: string]: string[]; + }; +} +const result: PossibleTypesResultData = { + possibleTypes: {}, +}; +export default result; diff --git a/src/interfaces/lookup.ts b/src/interfaces/lookup.ts index 87132f4a0899a0116005fffc028d8c644f076f07..16194dd029d7b60a086b84121d9288dd4e443685 100644 --- a/src/interfaces/lookup.ts +++ b/src/interfaces/lookup.ts @@ -12,7 +12,7 @@ export default { consumers: 'u32', providers: 'u32', sufficients: 'u32', - data: 'PalletDuniterAccountAccountData' + data: 'PalletDuniterAccountAccountData', }, /** * Lookup5: pallet_duniter_account::types::AccountData<Balance, IdtyId> @@ -22,7 +22,7 @@ export default { free: 'u64', reserved: 'u64', feeFrozen: 'u64', - linkedIdty: 'Option<u32>' + linkedIdty: 'Option<u32>', }, /** * Lookup10: frame_support::dispatch::PerDispatchClass<sp_weights::weight_v2::Weight> @@ -30,20 +30,20 @@ export default { FrameSupportDispatchPerDispatchClassWeight: { normal: 'SpWeightsWeightV2Weight', operational: 'SpWeightsWeightV2Weight', - mandatory: 'SpWeightsWeightV2Weight' + mandatory: 'SpWeightsWeightV2Weight', }, /** * Lookup11: sp_weights::weight_v2::Weight **/ SpWeightsWeightV2Weight: { refTime: 'Compact<u64>', - proofSize: 'Compact<u64>' + proofSize: 'Compact<u64>', }, /** * Lookup14: sp_runtime::generic::digest::Digest **/ SpRuntimeDigest: { - logs: 'Vec<SpRuntimeDigestDigestItem>' + logs: 'Vec<SpRuntimeDigestDigestItem>', }, /** * Lookup16: sp_runtime::generic::digest::DigestItem @@ -58,8 +58,8 @@ export default { Seal: '([u8;4],Bytes)', PreRuntime: '([u8;4],Bytes)', __Unused7: 'Null', - RuntimeEnvironmentUpdated: 'Null' - } + RuntimeEnvironmentUpdated: 'Null', + }, }, /** * Lookup19: frame_system::EventRecord<gdev_runtime::RuntimeEvent, primitive_types::H256> @@ -67,7 +67,7 @@ export default { FrameSystemEventRecord: { phase: 'FrameSystemPhase', event: 'Event', - topics: 'Vec<H256>' + topics: 'Vec<H256>', }, /** * Lookup21: frame_system::pallet::Event<T> @@ -93,9 +93,9 @@ export default { hash_: 'hash', }, sender: 'AccountId32', - hash_: 'H256' - } - } + hash_: 'H256', + }, + }, }, /** * Lookup22: frame_support::dispatch::DispatchInfo @@ -103,19 +103,19 @@ export default { FrameSupportDispatchDispatchInfo: { weight: 'SpWeightsWeightV2Weight', class: 'FrameSupportDispatchDispatchClass', - paysFee: 'FrameSupportDispatchPays' + paysFee: 'FrameSupportDispatchPays', }, /** * Lookup23: frame_support::dispatch::DispatchClass **/ FrameSupportDispatchDispatchClass: { - _enum: ['Normal', 'Operational', 'Mandatory'] + _enum: ['Normal', 'Operational', 'Mandatory'], }, /** * Lookup24: frame_support::dispatch::Pays **/ FrameSupportDispatchPays: { - _enum: ['Yes', 'No'] + _enum: ['Yes', 'No'], }, /** * Lookup25: sp_runtime::DispatchError @@ -134,33 +134,43 @@ export default { Transactional: 'SpRuntimeTransactionalError', Exhausted: 'Null', Corruption: 'Null', - Unavailable: 'Null' - } + Unavailable: 'Null', + }, }, /** * Lookup26: sp_runtime::ModuleError **/ SpRuntimeModuleError: { index: 'u8', - error: '[u8;4]' + error: '[u8;4]', }, /** * Lookup27: sp_runtime::TokenError **/ SpRuntimeTokenError: { - _enum: ['FundsUnavailable', 'OnlyProvider', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported', 'CannotCreateHold', 'NotExpendable'] + _enum: [ + 'FundsUnavailable', + 'OnlyProvider', + 'BelowMinimum', + 'CannotCreate', + 'UnknownAsset', + 'Frozen', + 'Unsupported', + 'CannotCreateHold', + 'NotExpendable', + ], }, /** * Lookup28: sp_arithmetic::ArithmeticError **/ SpArithmeticArithmeticError: { - _enum: ['Underflow', 'Overflow', 'DivisionByZero'] + _enum: ['Underflow', 'Overflow', 'DivisionByZero'], }, /** * Lookup29: sp_runtime::TransactionalError **/ SpRuntimeTransactionalError: { - _enum: ['LimitReached', 'NoLayer'] + _enum: ['LimitReached', 'NoLayer'], }, /** * Lookup30: pallet_duniter_account::pallet::Event<T> @@ -179,8 +189,8 @@ export default { who: 'AccountId32', identity: 'u32', }, - AccountUnlinked: 'AccountId32' - } + AccountUnlinked: 'AccountId32', + }, }, /** * Lookup31: pallet_scheduler::pallet::Event<T> @@ -210,9 +220,9 @@ export default { }, PermanentlyOverweight: { task: '(u32,u32)', - id: 'Option<[u8;32]>' - } - } + id: 'Option<[u8;32]>', + }, + }, }, /** * Lookup36: pallet_balances::pallet::Event<T, I> @@ -301,15 +311,15 @@ export default { }, Thawed: { who: 'AccountId32', - amount: 'u64' - } - } + amount: 'u64', + }, + }, }, /** * Lookup37: frame_support::traits::tokens::misc::BalanceStatus **/ FrameSupportTokensMiscBalanceStatus: { - _enum: ['Free', 'Reserved'] + _enum: ['Free', 'Reserved'], }, /** * Lookup38: pallet_transaction_payment::pallet::Event<T> @@ -319,9 +329,9 @@ export default { TransactionFeePaid: { who: 'AccountId32', actualFee: 'u64', - tip: 'u64' - } - } + tip: 'u64', + }, + }, }, /** * Lookup39: pallet_oneshot_account::pallet::Event<T> @@ -340,9 +350,9 @@ export default { }, Withdraw: { account: 'AccountId32', - balance: 'u64' - } - } + balance: 'u64', + }, + }, }, /** * Lookup42: pallet_quota::pallet::Event<T> @@ -357,8 +367,8 @@ export default { NoQuotaForIdty: 'u32', NoMoreCurrencyForRefund: 'Null', RefundFailed: 'AccountId32', - RefundQueueFull: 'Null' - } + RefundQueueFull: 'Null', + }, }, /** * Lookup43: pallet_authority_members::pallet::Event<T> @@ -370,8 +380,8 @@ export default { MemberGoOffline: 'u32', MemberGoOnline: 'u32', MemberRemoved: 'u32', - MemberRemovedFromBlackList: 'u32' - } + MemberRemovedFromBlackList: 'u32', + }, }, /** * Lookup45: pallet_offences::pallet::Event @@ -380,9 +390,9 @@ export default { _enum: { Offence: { kind: '[u8;16]', - timeslot: 'Bytes' - } - } + timeslot: 'Bytes', + }, + }, }, /** * Lookup47: pallet_session::pallet::Event @@ -390,9 +400,9 @@ export default { PalletSessionEvent: { _enum: { NewSession: { - sessionIndex: 'u32' - } - } + sessionIndex: 'u32', + }, + }, }, /** * Lookup48: pallet_grandpa::pallet::Event @@ -403,8 +413,8 @@ export default { authoritySet: 'Vec<(SpConsensusGrandpaAppPublic,u64)>', }, Paused: 'Null', - Resumed: 'Null' - } + Resumed: 'Null', + }, }, /** * Lookup51: sp_consensus_grandpa::app::Public @@ -424,9 +434,9 @@ export default { }, AllGood: 'Null', SomeOffline: { - offline: 'Vec<(AccountId32,CommonRuntimeEntitiesValidatorFullIdentification)>' - } - } + offline: 'Vec<(AccountId32,CommonRuntimeEntitiesValidatorFullIdentification)>', + }, + }, }, /** * Lookup54: pallet_im_online::sr25519::app_sr25519::Public @@ -452,9 +462,9 @@ export default { oldSudoer: 'Option<AccountId32>', }, SudoAsDone: { - sudoResult: 'Result<Null, SpRuntimeDispatchError>' - } - } + sudoResult: 'Result<Null, SpRuntimeDispatchError>', + }, + }, }, /** * Lookup61: pallet_upgrade_origin::pallet::Event @@ -462,9 +472,9 @@ export default { PalletUpgradeOriginEvent: { _enum: { DispatchedAsRoot: { - result: 'Result<Null, SpRuntimeDispatchError>' - } - } + result: 'Result<Null, SpRuntimeDispatchError>', + }, + }, }, /** * Lookup62: pallet_preimage::pallet::Event<T> @@ -487,9 +497,9 @@ export default { _alias: { hash_: 'hash', }, - hash_: 'H256' - } - } + hash_: 'H256', + }, + }, }, /** * Lookup63: pallet_collective::pallet::Event<T, I> @@ -526,9 +536,9 @@ export default { Closed: { proposalHash: 'H256', yes: 'u32', - no: 'u32' - } - } + no: 'u32', + }, + }, }, /** * Lookup65: pallet_universal_dividend::pallet::Event<T> @@ -554,9 +564,9 @@ export default { UdsClaimed: { count: 'u16', total: 'u64', - who: 'AccountId32' - } - } + who: 'AccountId32', + }, + }, }, /** * Lookup67: pallet_identity::pallet::Event<T> @@ -581,9 +591,9 @@ export default { }, IdtyRemoved: { idtyIndex: 'u32', - reason: 'PalletIdentityIdtyRemovalReason' - } - } + reason: 'PalletIdentityIdtyRemovalReason', + }, + }, }, /** * Lookup69: pallet_identity::types::IdtyRemovalReason<pallet_duniter_wot::types::IdtyRemovalWotReason> @@ -593,14 +603,14 @@ export default { Expired: 'Null', Manual: 'Null', Other: 'PalletDuniterWotIdtyRemovalWotReason', - Revoked: 'Null' - } + Revoked: 'Null', + }, }, /** * Lookup70: pallet_duniter_wot::types::IdtyRemovalWotReason **/ PalletDuniterWotIdtyRemovalWotReason: { - _enum: ['MembershipExpired', 'Other'] + _enum: ['MembershipExpired', 'Other'], }, /** * Lookup71: pallet_membership::pallet::Event<T, I> @@ -612,8 +622,8 @@ export default { MembershipRenewed: 'u32', MembershipRequested: 'u32', MembershipRevoked: 'u32', - PendingMembershipExpired: 'u32' - } + PendingMembershipExpired: 'u32', + }, }, /** * Lookup72: pallet_certification::pallet::Event<T, I> @@ -635,9 +645,9 @@ export default { }, RenewedCert: { issuer: 'u32', - receiver: 'u32' - } - } + receiver: 'u32', + }, + }, }, /** * Lookup75: pallet_atomic_swap::pallet::Event<T> @@ -656,9 +666,9 @@ export default { }, SwapCancelled: { account: 'AccountId32', - proof: '[u8;32]' - } - } + proof: '[u8;32]', + }, + }, }, /** * Lookup76: pallet_atomic_swap::PendingSwap<T> @@ -666,13 +676,13 @@ export default { PalletAtomicSwapPendingSwap: { source: 'AccountId32', action: 'PalletAtomicSwapBalanceSwapAction', - endBlock: 'u32' + endBlock: 'u32', }, /** * Lookup77: pallet_atomic_swap::BalanceSwapAction<sp_core::crypto::AccountId32, C> **/ PalletAtomicSwapBalanceSwapAction: { - value: 'u64' + value: 'u64', }, /** * Lookup78: pallet_multisig::pallet::Event<T> @@ -701,16 +711,16 @@ export default { cancelling: 'AccountId32', timepoint: 'PalletMultisigTimepoint', multisig: 'AccountId32', - callHash: '[u8;32]' - } - } + callHash: '[u8;32]', + }, + }, }, /** * Lookup79: pallet_multisig::Timepoint<BlockNumber> **/ PalletMultisigTimepoint: { height: 'u32', - index: 'u32' + index: 'u32', }, /** * Lookup80: pallet_provide_randomness::pallet::Event @@ -727,15 +737,15 @@ export default { }, requestId: 'u64', salt: 'H256', - r_type: 'PalletProvideRandomnessRandomnessType' - } - } + r_type: 'PalletProvideRandomnessRandomnessType', + }, + }, }, /** * Lookup81: pallet_provide_randomness::types::RandomnessType **/ PalletProvideRandomnessRandomnessType: { - _enum: ['RandomnessFromPreviousBlock', 'RandomnessFromOneEpochAgo', 'RandomnessFromTwoEpochsAgo'] + _enum: ['RandomnessFromPreviousBlock', 'RandomnessFromOneEpochAgo', 'RandomnessFromTwoEpochsAgo'], }, /** * Lookup82: pallet_proxy::pallet::Event<T> @@ -766,15 +776,15 @@ export default { delegator: 'AccountId32', delegatee: 'AccountId32', proxyType: 'GdevRuntimeProxyType', - delay: 'u32' - } - } + delay: 'u32', + }, + }, }, /** * Lookup83: gdev_runtime::ProxyType **/ GdevRuntimeProxyType: { - _enum: ['AlmostAny', 'TransferOnly', 'CancelProxy', 'TechnicalCommitteePropose'] + _enum: ['AlmostAny', 'TransferOnly', 'CancelProxy', 'TechnicalCommitteePropose'], }, /** * Lookup84: pallet_utility::pallet::Event @@ -792,9 +802,9 @@ export default { error: 'SpRuntimeDispatchError', }, DispatchedAs: { - result: 'Result<Null, SpRuntimeDispatchError>' - } - } + result: 'Result<Null, SpRuntimeDispatchError>', + }, + }, }, /** * Lookup85: pallet_treasury::pallet::Event<T, I> @@ -832,9 +842,9 @@ export default { }, UpdatedInactive: { reactivated: 'u64', - deactivated: 'u64' - } - } + deactivated: 'u64', + }, + }, }, /** * Lookup86: frame_system::Phase @@ -843,15 +853,15 @@ export default { _enum: { ApplyExtrinsic: 'u32', Finalization: 'Null', - Initialization: 'Null' - } + Initialization: 'Null', + }, }, /** * Lookup89: frame_system::LastRuntimeUpgradeInfo **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: 'Compact<u32>', - specName: 'Text' + specName: 'Text', }, /** * Lookup91: frame_system::pallet::Call<T> @@ -884,9 +894,9 @@ export default { subkeys: 'u32', }, remark_with_event: { - remark: 'Bytes' - } - } + remark: 'Bytes', + }, + }, }, /** * Lookup95: frame_system::limits::BlockWeights @@ -894,7 +904,7 @@ export default { FrameSystemLimitsBlockWeights: { baseBlock: 'SpWeightsWeightV2Weight', maxBlock: 'SpWeightsWeightV2Weight', - perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass' + perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass', }, /** * Lookup96: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass> @@ -902,7 +912,7 @@ export default { FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: 'FrameSystemLimitsWeightsPerClass', operational: 'FrameSystemLimitsWeightsPerClass', - mandatory: 'FrameSystemLimitsWeightsPerClass' + mandatory: 'FrameSystemLimitsWeightsPerClass', }, /** * Lookup97: frame_system::limits::WeightsPerClass @@ -911,13 +921,13 @@ export default { baseExtrinsic: 'SpWeightsWeightV2Weight', maxExtrinsic: 'Option<SpWeightsWeightV2Weight>', maxTotal: 'Option<SpWeightsWeightV2Weight>', - reserved: 'Option<SpWeightsWeightV2Weight>' + reserved: 'Option<SpWeightsWeightV2Weight>', }, /** * Lookup99: frame_system::limits::BlockLength **/ FrameSystemLimitsBlockLength: { - max: 'FrameSupportDispatchPerDispatchClassU32' + max: 'FrameSupportDispatchPerDispatchClassU32', }, /** * Lookup100: frame_support::dispatch::PerDispatchClass<T> @@ -925,14 +935,14 @@ export default { FrameSupportDispatchPerDispatchClassU32: { normal: 'u32', operational: 'u32', - mandatory: 'u32' + mandatory: 'u32', }, /** * Lookup101: sp_weights::RuntimeDbWeight **/ SpWeightsRuntimeDbWeight: { read: 'u64', - write: 'u64' + write: 'u64', }, /** * Lookup102: sp_version::RuntimeVersion @@ -945,19 +955,26 @@ export default { implVersion: 'u32', apis: 'Vec<([u8;8],u32)>', transactionVersion: 'u32', - stateVersion: 'u8' + stateVersion: 'u8', }, /** * Lookup107: frame_system::pallet::Error<T> **/ FrameSystemError: { - _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered'] + _enum: [ + 'InvalidSpecName', + 'SpecVersionNeedsToIncrease', + 'FailedToExtractRuntimeVersion', + 'NonDefaultComposite', + 'NonZeroRefCount', + 'CallFiltered', + ], }, /** * Lookup108: pallet_duniter_account::pallet::Call<T> **/ PalletDuniterAccountCall: { - _enum: ['unlink_identity'] + _enum: ['unlink_identity'], }, /** * Lookup111: pallet_scheduler::Scheduled<Name, frame_support::traits::preimages::Bounded<gdev_runtime::RuntimeCall>, BlockNumber, gdev_runtime::OriginCaller, sp_core::crypto::AccountId32> @@ -967,7 +984,7 @@ export default { priority: 'u8', call: 'FrameSupportPreimagesBounded', maybePeriodic: 'Option<(u32,u32)>', - origin: 'GdevRuntimeOriginCaller' + origin: 'GdevRuntimeOriginCaller', }, /** * Lookup112: frame_support::traits::preimages::Bounded<gdev_runtime::RuntimeCall> @@ -986,9 +1003,9 @@ export default { hash_: 'hash', }, hash_: 'H256', - len: 'u32' - } - } + len: 'u32', + }, + }, }, /** * Lookup114: pallet_scheduler::pallet::Call<T> @@ -1026,9 +1043,9 @@ export default { after: 'u32', maybePeriodic: 'Option<(u32,u32)>', priority: 'u8', - call: 'Call' - } - } + call: 'Call', + }, + }, }, /** * Lookup116: pallet_babe::pallet::Call<T> @@ -1044,9 +1061,9 @@ export default { keyOwnerProof: 'SpSessionMembershipProof', }, plan_config_change: { - config: 'SpConsensusBabeDigestsNextConfigDescriptor' - } - } + config: 'SpConsensusBabeDigestsNextConfigDescriptor', + }, + }, }, /** * Lookup117: sp_consensus_slots::EquivocationProof<sp_runtime::generic::header::Header<Number, sp_runtime::traits::BlakeTwo256>, sp_consensus_babe::app::Public> @@ -1055,7 +1072,7 @@ export default { offender: 'SpConsensusBabeAppPublic', slot: 'u64', firstHeader: 'SpRuntimeHeader', - secondHeader: 'SpRuntimeHeader' + secondHeader: 'SpRuntimeHeader', }, /** * Lookup118: sp_runtime::generic::header::Header<Number, sp_runtime::traits::BlakeTwo256> @@ -1065,7 +1082,7 @@ export default { number: 'Compact<u32>', stateRoot: 'H256', extrinsicsRoot: 'H256', - digest: 'SpRuntimeDigest' + digest: 'SpRuntimeDigest', }, /** * Lookup119: sp_runtime::traits::BlakeTwo256 @@ -1081,7 +1098,7 @@ export default { SpSessionMembershipProof: { session: 'u32', trieNodes: 'Vec<Bytes>', - validatorCount: 'u32' + validatorCount: 'u32', }, /** * Lookup123: sp_consensus_babe::digests::NextConfigDescriptor @@ -1091,15 +1108,15 @@ export default { __Unused0: 'Null', V1: { c: '(u64,u64)', - allowedSlots: 'SpConsensusBabeAllowedSlots' - } - } + allowedSlots: 'SpConsensusBabeAllowedSlots', + }, + }, }, /** * Lookup125: sp_consensus_babe::AllowedSlots **/ SpConsensusBabeAllowedSlots: { - _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots'] + _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots'], }, /** * Lookup126: pallet_timestamp::pallet::Call<T> @@ -1107,9 +1124,9 @@ export default { PalletTimestampCall: { _enum: { set: { - now: 'Compact<u64>' - } - } + now: 'Compact<u64>', + }, + }, }, /** * Lookup127: pallet_balances::pallet::Call<T, I> @@ -1151,9 +1168,9 @@ export default { }, force_set_balance: { who: 'MultiAddress', - newFree: 'Compact<u64>' - } - } + newFree: 'Compact<u64>', + }, + }, }, /** * Lookup132: pallet_oneshot_account::pallet::Call<T> @@ -1172,9 +1189,9 @@ export default { blockHeight: 'u32', dest: 'PalletOneshotAccountAccount', remainingTo: 'PalletOneshotAccountAccount', - balance: 'Compact<u64>' - } - } + balance: 'Compact<u64>', + }, + }, }, /** * Lookup133: pallet_oneshot_account::types::Account<sp_runtime::multiaddress::MultiAddress<sp_core::crypto::AccountId32, AccountIndex>> @@ -1182,8 +1199,8 @@ export default { PalletOneshotAccountAccount: { _enum: { Normal: 'MultiAddress', - Oneshot: 'MultiAddress' - } + Oneshot: 'MultiAddress', + }, }, /** * Lookup134: pallet_authority_members::pallet::Call<T> @@ -1202,9 +1219,9 @@ export default { memberId: 'u32', }, remove_member_from_blacklist: { - memberId: 'u32' - } - } + memberId: 'u32', + }, + }, }, /** * Lookup135: gdev_runtime::opaque::SessionKeys @@ -1213,7 +1230,7 @@ export default { grandpa: 'SpConsensusGrandpaAppPublic', babe: 'SpConsensusBabeAppPublic', imOnline: 'PalletImOnlineSr25519AppSr25519Public', - authorityDiscovery: 'SpAuthorityDiscoveryAppPublic' + authorityDiscovery: 'SpAuthorityDiscoveryAppPublic', }, /** * Lookup136: sp_authority_discovery::app::Public @@ -1231,8 +1248,8 @@ export default { keys_: 'GdevRuntimeOpaqueSessionKeys', proof: 'Bytes', }, - purge_keys: 'Null' - } + purge_keys: 'Null', + }, }, /** * Lookup138: pallet_grandpa::pallet::Call<T> @@ -1249,16 +1266,16 @@ export default { }, note_stalled: { delay: 'u32', - bestFinalizedBlockNumber: 'u32' - } - } + bestFinalizedBlockNumber: 'u32', + }, + }, }, /** * Lookup139: sp_consensus_grandpa::EquivocationProof<primitive_types::H256, N> **/ SpConsensusGrandpaEquivocationProof: { setId: 'u64', - equivocation: 'SpConsensusGrandpaEquivocation' + equivocation: 'SpConsensusGrandpaEquivocation', }, /** * Lookup140: sp_consensus_grandpa::Equivocation<primitive_types::H256, N> @@ -1266,8 +1283,8 @@ export default { SpConsensusGrandpaEquivocation: { _enum: { Prevote: 'FinalityGrandpaEquivocationPrevote', - Precommit: 'FinalityGrandpaEquivocationPrecommit' - } + Precommit: 'FinalityGrandpaEquivocationPrecommit', + }, }, /** * Lookup141: finality_grandpa::Equivocation<sp_consensus_grandpa::app::Public, finality_grandpa::Prevote<primitive_types::H256, N>, sp_consensus_grandpa::app::Signature> @@ -1276,14 +1293,14 @@ export default { roundNumber: 'u64', identity: 'SpConsensusGrandpaAppPublic', first: '(FinalityGrandpaPrevote,SpConsensusGrandpaAppSignature)', - second: '(FinalityGrandpaPrevote,SpConsensusGrandpaAppSignature)' + second: '(FinalityGrandpaPrevote,SpConsensusGrandpaAppSignature)', }, /** * Lookup142: finality_grandpa::Prevote<primitive_types::H256, N> **/ FinalityGrandpaPrevote: { targetHash: 'H256', - targetNumber: 'u32' + targetNumber: 'u32', }, /** * Lookup143: sp_consensus_grandpa::app::Signature @@ -1300,14 +1317,14 @@ export default { roundNumber: 'u64', identity: 'SpConsensusGrandpaAppPublic', first: '(FinalityGrandpaPrecommit,SpConsensusGrandpaAppSignature)', - second: '(FinalityGrandpaPrecommit,SpConsensusGrandpaAppSignature)' + second: '(FinalityGrandpaPrecommit,SpConsensusGrandpaAppSignature)', }, /** * Lookup148: finality_grandpa::Precommit<primitive_types::H256, N> **/ FinalityGrandpaPrecommit: { targetHash: 'H256', - targetNumber: 'u32' + targetNumber: 'u32', }, /** * Lookup150: pallet_im_online::pallet::Call<T> @@ -1316,9 +1333,9 @@ export default { _enum: { heartbeat: { heartbeat: 'PalletImOnlineHeartbeat', - signature: 'PalletImOnlineSr25519AppSr25519Signature' - } - } + signature: 'PalletImOnlineSr25519AppSr25519Signature', + }, + }, }, /** * Lookup151: pallet_im_online::Heartbeat<BlockNumber> @@ -1328,14 +1345,14 @@ export default { networkState: 'SpCoreOffchainOpaqueNetworkState', sessionIndex: 'u32', authorityIndex: 'u32', - validatorsLen: 'u32' + validatorsLen: 'u32', }, /** * Lookup152: sp_core::offchain::OpaqueNetworkState **/ SpCoreOffchainOpaqueNetworkState: { peerId: 'OpaquePeerId', - externalAddresses: 'Vec<OpaqueMultiaddr>' + externalAddresses: 'Vec<OpaqueMultiaddr>', }, /** * Lookup156: pallet_im_online::sr25519::app_sr25519::Signature @@ -1365,9 +1382,9 @@ export default { }, sudo_as: { who: 'MultiAddress', - call: 'Call' - } - } + call: 'Call', + }, + }, }, /** * Lookup159: pallet_upgrade_origin::pallet::Call<T> @@ -1379,9 +1396,9 @@ export default { }, dispatch_as_root_unchecked_weight: { call: 'Call', - weight: 'SpWeightsWeightV2Weight' - } - } + weight: 'SpWeightsWeightV2Weight', + }, + }, }, /** * Lookup160: pallet_preimage::pallet::Call<T> @@ -1407,9 +1424,9 @@ export default { _alias: { hash_: 'hash', }, - hash_: 'H256' - } - } + hash_: 'H256', + }, + }, }, /** * Lookup161: pallet_collective::pallet::Call<T, I> @@ -1443,9 +1460,9 @@ export default { proposalHash: 'H256', index: 'Compact<u32>', proposalWeightBound: 'SpWeightsWeightV2Weight', - lengthBound: 'Compact<u32>' - } - } + lengthBound: 'Compact<u32>', + }, + }, }, /** * Lookup162: pallet_universal_dividend::pallet::Call<T> @@ -1459,9 +1476,9 @@ export default { }, transfer_ud_keep_alive: { dest: 'MultiAddress', - value: 'Compact<u64>' - } - } + value: 'Compact<u64>', + }, + }, }, /** * Lookup163: pallet_identity::pallet::Call<T> @@ -1500,9 +1517,9 @@ export default { }, link_account: { accountId: 'AccountId32', - payloadSig: 'SpRuntimeMultiSignature' - } - } + payloadSig: 'SpRuntimeMultiSignature', + }, + }, }, /** * Lookup164: sp_runtime::MultiSignature @@ -1511,8 +1528,8 @@ export default { _enum: { Ed25519: 'SpCoreEd25519Signature', Sr25519: 'SpCoreSr25519Signature', - Ecdsa: 'SpCoreEcdsaSignature' - } + Ecdsa: 'SpCoreEcdsaSignature', + }, }, /** * Lookup165: sp_core::ecdsa::Signature @@ -1522,7 +1539,7 @@ export default { * Lookup169: pallet_membership::pallet::Call<T, I> **/ PalletMembershipCall: { - _enum: ['request_membership', 'claim_membership', 'renew_membership', 'revoke_membership'] + _enum: ['request_membership', 'claim_membership', 'renew_membership', 'revoke_membership'], }, /** * Lookup170: pallet_certification::pallet::Call<T, I> @@ -1538,9 +1555,9 @@ export default { receiver: 'u32', }, remove_all_certs_received_by: { - idtyIndex: 'u32' - } - } + idtyIndex: 'u32', + }, + }, }, /** * Lookup171: pallet_distance::pallet::Call<T> @@ -1557,21 +1574,21 @@ export default { }, force_set_distance_status: { identity: 'u32', - status: 'Option<(AccountId32,PalletDistanceDistanceStatus)>' - } - } + status: 'Option<(AccountId32,PalletDistanceDistanceStatus)>', + }, + }, }, /** * Lookup172: sp_distance::ComputationResult **/ SpDistanceComputationResult: { - distances: 'Vec<Perbill>' + distances: 'Vec<Perbill>', }, /** * Lookup177: pallet_distance::types::DistanceStatus **/ PalletDistanceDistanceStatus: { - _enum: ['Pending', 'Valid'] + _enum: ['Pending', 'Valid'], }, /** * Lookup180: pallet_atomic_swap::pallet::Call<T> @@ -1590,9 +1607,9 @@ export default { }, cancel_swap: { target: 'AccountId32', - hashedProof: '[u8;32]' - } - } + hashedProof: '[u8;32]', + }, + }, }, /** * Lookup181: pallet_multisig::pallet::Call<T> @@ -1621,9 +1638,9 @@ export default { threshold: 'u16', otherSignatories: 'Vec<AccountId32>', timepoint: 'PalletMultisigTimepoint', - callHash: '[u8;32]' - } - } + callHash: '[u8;32]', + }, + }, }, /** * Lookup183: pallet_provide_randomness::pallet::Call<T> @@ -1632,9 +1649,9 @@ export default { _enum: { request: { randomnessType: 'PalletProvideRandomnessRandomnessType', - salt: 'H256' - } - } + salt: 'H256', + }, + }, }, /** * Lookup184: pallet_proxy::pallet::Call<T> @@ -1685,9 +1702,9 @@ export default { delegate: 'MultiAddress', real: 'MultiAddress', forceProxyType: 'Option<GdevRuntimeProxyType>', - call: 'Call' - } - } + call: 'Call', + }, + }, }, /** * Lookup186: pallet_utility::pallet::Call<T> @@ -1713,9 +1730,9 @@ export default { }, with_weight: { call: 'Call', - weight: 'SpWeightsWeightV2Weight' - } - } + weight: 'SpWeightsWeightV2Weight', + }, + }, }, /** * Lookup188: gdev_runtime::OriginCaller @@ -1745,8 +1762,8 @@ export default { __Unused20: 'Null', __Unused21: 'Null', __Unused22: 'Null', - TechnicalCommittee: 'PalletCollectiveRawOrigin' - } + TechnicalCommittee: 'PalletCollectiveRawOrigin', + }, }, /** * Lookup189: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32> @@ -1755,8 +1772,8 @@ export default { _enum: { Root: 'Null', Signed: 'AccountId32', - None: 'Null' - } + None: 'Null', + }, }, /** * Lookup190: pallet_collective::RawOrigin<sp_core::crypto::AccountId32, I> @@ -1765,8 +1782,8 @@ export default { _enum: { Members: '(u32,u32)', Member: 'AccountId32', - _Phantom: 'Null' - } + _Phantom: 'Null', + }, }, /** * Lookup191: sp_core::Void @@ -1792,15 +1809,15 @@ export default { beneficiary: 'MultiAddress', }, remove_approval: { - proposalId: 'Compact<u32>' - } - } + proposalId: 'Compact<u32>', + }, + }, }, /** * Lookup195: pallet_scheduler::pallet::Error<T> **/ PalletSchedulerError: { - _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange', 'Named'] + _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange', 'Named'], }, /** * Lookup202: sp_consensus_babe::digests::PreDigest @@ -1810,8 +1827,8 @@ export default { __Unused0: 'Null', Primary: 'SpConsensusBabeDigestsPrimaryPreDigest', SecondaryPlain: 'SpConsensusBabeDigestsSecondaryPlainPreDigest', - SecondaryVRF: 'SpConsensusBabeDigestsSecondaryVRFPreDigest' - } + SecondaryVRF: 'SpConsensusBabeDigestsSecondaryVRFPreDigest', + }, }, /** * Lookup203: sp_consensus_babe::digests::PrimaryPreDigest @@ -1819,21 +1836,21 @@ export default { SpConsensusBabeDigestsPrimaryPreDigest: { authorityIndex: 'u32', slot: 'u64', - vrfSignature: 'SpCoreSr25519VrfVrfSignature' + vrfSignature: 'SpCoreSr25519VrfVrfSignature', }, /** * Lookup204: sp_core::sr25519::vrf::VrfSignature **/ SpCoreSr25519VrfVrfSignature: { output: '[u8;32]', - proof: '[u8;64]' + proof: '[u8;64]', }, /** * Lookup205: sp_consensus_babe::digests::SecondaryPlainPreDigest **/ SpConsensusBabeDigestsSecondaryPlainPreDigest: { authorityIndex: 'u32', - slot: 'u64' + slot: 'u64', }, /** * Lookup206: sp_consensus_babe::digests::SecondaryVRFPreDigest @@ -1841,20 +1858,20 @@ export default { SpConsensusBabeDigestsSecondaryVRFPreDigest: { authorityIndex: 'u32', slot: 'u64', - vrfSignature: 'SpCoreSr25519VrfVrfSignature' + vrfSignature: 'SpCoreSr25519VrfVrfSignature', }, /** * Lookup207: sp_consensus_babe::BabeEpochConfiguration **/ SpConsensusBabeBabeEpochConfiguration: { c: '(u64,u64)', - allowedSlots: 'SpConsensusBabeAllowedSlots' + allowedSlots: 'SpConsensusBabeAllowedSlots', }, /** * Lookup211: pallet_babe::pallet::Error<T> **/ PalletBabeError: { - _enum: ['InvalidEquivocationProof', 'InvalidKeyOwnershipProof', 'DuplicateOffenceReport', 'InvalidConfiguration'] + _enum: ['InvalidEquivocationProof', 'InvalidKeyOwnershipProof', 'DuplicateOffenceReport', 'InvalidConfiguration'], }, /** * Lookup212: pallet_duniter_test_parameters::types::Parameters<BlockNumber, CertCount, PeriodCount> @@ -1881,7 +1898,7 @@ export default { smithWotMinCertForMembership: 'u32', wotFirstCertIssuableOn: 'u32', wotMinCertForCreateIdtyRight: 'u32', - wotMinCertForMembership: 'u32' + wotMinCertForMembership: 'u32', }, /** * Lookup213: pallet_balances::types::AccountData<Balance> @@ -1890,7 +1907,7 @@ export default { free: 'u64', reserved: 'u64', frozen: 'u64', - flags: 'u128' + flags: 'u128', }, /** * Lookup217: pallet_balances::types::BalanceLock<Balance> @@ -1898,52 +1915,71 @@ export default { PalletBalancesBalanceLock: { id: '[u8;8]', amount: 'u64', - reasons: 'PalletBalancesReasons' + reasons: 'PalletBalancesReasons', }, /** * Lookup218: pallet_balances::types::Reasons **/ PalletBalancesReasons: { - _enum: ['Fee', 'Misc', 'All'] + _enum: ['Fee', 'Misc', 'All'], }, /** * Lookup221: pallet_balances::types::ReserveData<ReserveIdentifier, Balance> **/ PalletBalancesReserveData: { id: '[u8;8]', - amount: 'u64' + amount: 'u64', }, /** * Lookup224: pallet_balances::types::IdAmount<Id, Balance> **/ PalletBalancesIdAmount: { id: 'Null', - amount: 'u64' + amount: 'u64', }, /** * Lookup226: pallet_balances::pallet::Error<T, I> **/ PalletBalancesError: { - _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'Expendability', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves', 'TooManyHolds', 'TooManyFreezes'] + _enum: [ + 'VestingBalance', + 'LiquidityRestrictions', + 'InsufficientBalance', + 'ExistentialDeposit', + 'Expendability', + 'ExistingVestingSchedule', + 'DeadAccount', + 'TooManyReserves', + 'TooManyHolds', + 'TooManyFreezes', + ], }, /** * Lookup228: pallet_transaction_payment::Releases **/ PalletTransactionPaymentReleases: { - _enum: ['V1Ancient', 'V2'] + _enum: ['V1Ancient', 'V2'], }, /** * Lookup229: pallet_oneshot_account::pallet::Error<T> **/ PalletOneshotAccountError: { - _enum: ['BlockHeightInFuture', 'BlockHeightTooOld', 'DestAccountNotExist', 'ExistentialDeposit', 'InsufficientBalance', 'OneshotAccountAlreadyCreated', 'OneshotAccountNotExist'] + _enum: [ + 'BlockHeightInFuture', + 'BlockHeightTooOld', + 'DestAccountNotExist', + 'ExistentialDeposit', + 'InsufficientBalance', + 'OneshotAccountAlreadyCreated', + 'OneshotAccountNotExist', + ], }, /** * Lookup230: pallet_quota::pallet::Quota<BlockNumber, Balance> **/ PalletQuotaQuota: { lastUse: 'u32', - amount: 'u64' + amount: 'u64', }, /** * Lookup232: pallet_quota::pallet::Refund<sp_core::crypto::AccountId32, IdtyId, Balance> @@ -1951,26 +1987,39 @@ export default { PalletQuotaRefund: { account: 'AccountId32', identity: 'u32', - amount: 'u64' + amount: 'u64', }, /** * Lookup234: pallet_authority_members::types::MemberData<sp_core::crypto::AccountId32> **/ PalletAuthorityMembersMemberData: { - ownerKey: 'AccountId32' + ownerKey: 'AccountId32', }, /** * Lookup235: pallet_authority_members::pallet::Error<T> **/ PalletAuthorityMembersError: { - _enum: ['AlreadyIncoming', 'AlreadyOnline', 'AlreadyOutgoing', 'MemberIdNotFound', 'MemberIdBlackListed', 'MemberNotBlackListed', 'MemberNotFound', 'NotOnlineNorIncoming', 'NotOwner', 'NotMember', 'SessionKeysNotProvided', 'TooManyAuthorities'] + _enum: [ + 'AlreadyIncoming', + 'AlreadyOnline', + 'AlreadyOutgoing', + 'MemberIdNotFound', + 'MemberIdBlackListed', + 'MemberNotBlackListed', + 'MemberNotFound', + 'NotOnlineNorIncoming', + 'NotOwner', + 'NotMember', + 'SessionKeysNotProvided', + 'TooManyAuthorities', + ], }, /** * Lookup236: sp_staking::offence::OffenceDetails<sp_core::crypto::AccountId32, Offender> **/ SpStakingOffenceOffenceDetails: { offender: '(AccountId32,CommonRuntimeEntitiesValidatorFullIdentification)', - reporters: 'Vec<AccountId32>' + reporters: 'Vec<AccountId32>', }, /** * Lookup241: sp_core::crypto::KeyTypeId @@ -1980,7 +2029,7 @@ export default { * Lookup242: pallet_session::pallet::Error<T> **/ PalletSessionError: { - _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'] + _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'], }, /** * Lookup243: pallet_grandpa::StoredState<N> @@ -1995,9 +2044,9 @@ export default { Paused: 'Null', PendingResume: { scheduledAt: 'u32', - delay: 'u32' - } - } + delay: 'u32', + }, + }, }, /** * Lookup244: pallet_grandpa::StoredPendingChange<N, Limit> @@ -2006,32 +2055,40 @@ export default { scheduledAt: 'u32', delay: 'u32', nextAuthorities: 'Vec<(SpConsensusGrandpaAppPublic,u64)>', - forced: 'Option<u32>' + forced: 'Option<u32>', }, /** * Lookup246: pallet_grandpa::pallet::Error<T> **/ PalletGrandpaError: { - _enum: ['PauseFailed', 'ResumeFailed', 'ChangePending', 'TooSoon', 'InvalidKeyOwnershipProof', 'InvalidEquivocationProof', 'DuplicateOffenceReport'] + _enum: [ + 'PauseFailed', + 'ResumeFailed', + 'ChangePending', + 'TooSoon', + 'InvalidKeyOwnershipProof', + 'InvalidEquivocationProof', + 'DuplicateOffenceReport', + ], }, /** * Lookup250: pallet_im_online::BoundedOpaqueNetworkState<PeerIdEncodingLimit, MultiAddrEncodingLimit, AddressesLimit> **/ PalletImOnlineBoundedOpaqueNetworkState: { peerId: 'Bytes', - externalAddresses: 'Vec<Bytes>' + externalAddresses: 'Vec<Bytes>', }, /** * Lookup255: pallet_im_online::pallet::Error<T> **/ PalletImOnlineError: { - _enum: ['InvalidKey', 'DuplicatedHeartbeat'] + _enum: ['InvalidKey', 'DuplicatedHeartbeat'], }, /** * Lookup256: pallet_sudo::pallet::Error<T> **/ PalletSudoError: { - _enum: ['RequireSudo'] + _enum: ['RequireSudo'], }, /** * Lookup257: pallet_preimage::RequestStatus<sp_core::crypto::AccountId32, Balance> @@ -2045,15 +2102,15 @@ export default { Requested: { deposit: 'Option<(AccountId32,u64)>', count: 'u32', - len: 'Option<u32>' - } - } + len: 'Option<u32>', + }, + }, }, /** * Lookup260: pallet_preimage::pallet::Error<T> **/ PalletPreimageError: { - _enum: ['TooBig', 'AlreadyNoted', 'NotAuthorized', 'NotNoted', 'Requested', 'NotRequested'] + _enum: ['TooBig', 'AlreadyNoted', 'NotAuthorized', 'NotNoted', 'Requested', 'NotRequested'], }, /** * Lookup262: pallet_collective::Votes<sp_core::crypto::AccountId32, BlockNumber> @@ -2063,25 +2120,49 @@ export default { threshold: 'u32', ayes: 'Vec<AccountId32>', nays: 'Vec<AccountId32>', - end: 'u32' + end: 'u32', }, /** * Lookup263: pallet_collective::pallet::Error<T, I> **/ PalletCollectiveError: { - _enum: ['NotMember', 'DuplicateProposal', 'ProposalMissing', 'WrongIndex', 'DuplicateVote', 'AlreadyInitialized', 'TooEarly', 'TooManyProposals', 'WrongProposalWeight', 'WrongProposalLength'] + _enum: [ + 'NotMember', + 'DuplicateProposal', + 'ProposalMissing', + 'WrongIndex', + 'DuplicateVote', + 'AlreadyInitialized', + 'TooEarly', + 'TooManyProposals', + 'WrongProposalWeight', + 'WrongProposalLength', + ], }, /** * Lookup267: pallet_universal_dividend::pallet::Error<T> **/ PalletUniversalDividendError: { - _enum: ['AccountNotAllowedToClaimUds'] + _enum: ['AccountNotAllowedToClaimUds'], }, /** * Lookup268: pallet_duniter_wot::pallet::Error<T, I> **/ PalletDuniterWotError: { - _enum: ['NotEnoughCertsToClaimMembership', 'DistanceNotOK', 'IdtyNotAllowedToRequestMembership', 'IdtyNotAllowedToRenewMembership', 'IdtyCreationPeriodNotRespected', 'NotEnoughReceivedCertsToCreateIdty', 'MaxEmittedCertsReached', 'NotAllowedToChangeIdtyAddress', 'NotAllowedToRemoveIdty', 'IssuerCanNotEmitCert', 'CertToUndefined', 'IdtyNotFound'] + _enum: [ + 'NotEnoughCertsToClaimMembership', + 'DistanceNotOK', + 'IdtyNotAllowedToRequestMembership', + 'IdtyNotAllowedToRenewMembership', + 'IdtyCreationPeriodNotRespected', + 'NotEnoughReceivedCertsToCreateIdty', + 'MaxEmittedCertsReached', + 'NotAllowedToChangeIdtyAddress', + 'NotAllowedToRemoveIdty', + 'IssuerCanNotEmitCert', + 'CertToUndefined', + 'IdtyNotFound', + ], }, /** * Lookup269: pallet_identity::types::IdtyValue<BlockNumber, sp_core::crypto::AccountId32, common_runtime::entities::IdtyData> @@ -2092,37 +2173,66 @@ export default { oldOwnerKey: 'Option<(AccountId32,u32)>', ownerKey: 'AccountId32', removableOn: 'u32', - status: 'PalletIdentityIdtyStatus' + status: 'PalletIdentityIdtyStatus', }, /** * Lookup270: common_runtime::entities::IdtyData **/ CommonRuntimeEntitiesIdtyData: { - firstEligibleUd: 'u16' + firstEligibleUd: 'u16', }, /** * Lookup273: pallet_identity::types::IdtyStatus **/ PalletIdentityIdtyStatus: { - _enum: ['Created', 'ConfirmedByOwner', 'Validated'] + _enum: ['Created', 'ConfirmedByOwner', 'Validated'], }, /** * Lookup276: pallet_identity::pallet::Error<T> **/ PalletIdentityError: { - _enum: ['IdtyAlreadyConfirmed', 'IdtyAlreadyCreated', 'IdtyAlreadyValidated', 'IdtyCreationNotAllowed', 'IdtyIndexNotFound', 'IdtyNameAlreadyExist', 'IdtyNameInvalid', 'IdtyNotConfirmedByOwner', 'IdtyNotFound', 'IdtyNotMember', 'IdtyNotValidated', 'IdtyNotYetRenewable', 'InvalidSignature', 'InvalidRevocationKey', 'NotRespectIdtyCreationPeriod', 'NotSameIdtyName', 'OwnerKeyAlreadyRecentlyChanged', 'OwnerKeyAlreadyUsed', 'ProhibitedToRevertToAnOldKey', 'RightAlreadyAdded', 'RightNotExist'] + _enum: [ + 'IdtyAlreadyConfirmed', + 'IdtyAlreadyCreated', + 'IdtyAlreadyValidated', + 'IdtyCreationNotAllowed', + 'IdtyIndexNotFound', + 'IdtyNameAlreadyExist', + 'IdtyNameInvalid', + 'IdtyNotConfirmedByOwner', + 'IdtyNotFound', + 'IdtyNotMember', + 'IdtyNotValidated', + 'IdtyNotYetRenewable', + 'InvalidSignature', + 'InvalidRevocationKey', + 'NotRespectIdtyCreationPeriod', + 'NotSameIdtyName', + 'OwnerKeyAlreadyRecentlyChanged', + 'OwnerKeyAlreadyUsed', + 'ProhibitedToRevertToAnOldKey', + 'RightAlreadyAdded', + 'RightNotExist', + ], }, /** * Lookup277: sp_membership::MembershipData<BlockNumber> **/ SpMembershipMembershipData: { - expireOn: 'u32' + expireOn: 'u32', }, /** * Lookup278: pallet_membership::pallet::Error<T, I> **/ PalletMembershipError: { - _enum: ['IdtyIdNotFound', 'MembershipAlreadyAcquired', 'MembershipAlreadyRequested', 'MembershipNotFound', 'OriginNotAllowedToUseIdty', 'MembershipRequestNotFound'] + _enum: [ + 'IdtyIdNotFound', + 'MembershipAlreadyAcquired', + 'MembershipAlreadyRequested', + 'MembershipNotFound', + 'OriginNotAllowedToUseIdty', + 'MembershipRequestNotFound', + ], }, /** * Lookup279: pallet_certification::types::IdtyCertMeta<BlockNumber> @@ -2130,20 +2240,20 @@ export default { PalletCertificationIdtyCertMeta: { issuedCount: 'u32', nextIssuableOn: 'u32', - receivedCount: 'u32' + receivedCount: 'u32', }, /** * Lookup280: pallet_certification::pallet::Error<T, I> **/ PalletCertificationError: { - _enum: ['CannotCertifySelf', 'IssuedTooManyCert', 'IssuerNotFound', 'NotEnoughCertReceived', 'NotRespectCertPeriod'] + _enum: ['CannotCertifySelf', 'IssuedTooManyCert', 'IssuerNotFound', 'NotEnoughCertReceived', 'NotRespectCertPeriod'], }, /** * Lookup281: pallet_distance::types::EvaluationPool<sp_core::crypto::AccountId32, IdtyIndex> **/ PalletDistanceEvaluationPool: { evaluations: 'Vec<(u32,PalletDistanceMedianMedianAcc)>', - evaluators: 'BTreeSet<AccountId32>' + evaluators: 'BTreeSet<AccountId32>', }, /** * Lookup284: pallet_distance::median::MedianAcc<sp_arithmetic::per_things::Perbill> @@ -2151,19 +2261,39 @@ export default { PalletDistanceMedianMedianAcc: { samples: 'Vec<(Perbill,u32)>', medianIndex: 'Option<u32>', - medianSubindex: 'u32' + medianSubindex: 'u32', }, /** * Lookup292: pallet_distance::pallet::Error<T> **/ PalletDistanceError: { - _enum: ['AlreadyInEvaluation', 'CannotReserve', 'ManyEvaluationsByAuthor', 'ManyEvaluationsInBlock', 'NoAuthor', 'NoIdentity', 'NonEligibleForEvaluation', 'QueueFull', 'TooManyEvaluators', 'WrongResultLength'] + _enum: [ + 'AlreadyInEvaluation', + 'CannotReserve', + 'ManyEvaluationsByAuthor', + 'ManyEvaluationsInBlock', + 'NoAuthor', + 'NoIdentity', + 'NonEligibleForEvaluation', + 'QueueFull', + 'TooManyEvaluators', + 'WrongResultLength', + ], }, /** * Lookup297: pallet_atomic_swap::pallet::Error<T> **/ PalletAtomicSwapError: { - _enum: ['AlreadyExist', 'InvalidProof', 'ProofTooLarge', 'SourceMismatch', 'AlreadyClaimed', 'NotExist', 'ClaimActionMismatch', 'DurationNotPassed'] + _enum: [ + 'AlreadyExist', + 'InvalidProof', + 'ProofTooLarge', + 'SourceMismatch', + 'AlreadyClaimed', + 'NotExist', + 'ClaimActionMismatch', + 'DurationNotPassed', + ], }, /** * Lookup298: pallet_multisig::Multisig<BlockNumber, Balance, sp_core::crypto::AccountId32, MaxApprovals> @@ -2172,26 +2302,41 @@ export default { when: 'PalletMultisigTimepoint', deposit: 'u64', depositor: 'AccountId32', - approvals: 'Vec<AccountId32>' + approvals: 'Vec<AccountId32>', }, /** * Lookup300: pallet_multisig::pallet::Error<T> **/ PalletMultisigError: { - _enum: ['MinimumThreshold', 'AlreadyApproved', 'NoApprovalsNeeded', 'TooFewSignatories', 'TooManySignatories', 'SignatoriesOutOfOrder', 'SenderInSignatories', 'NotFound', 'NotOwner', 'NoTimepoint', 'WrongTimepoint', 'UnexpectedTimepoint', 'MaxWeightTooLow', 'AlreadyStored'] + _enum: [ + 'MinimumThreshold', + 'AlreadyApproved', + 'NoApprovalsNeeded', + 'TooFewSignatories', + 'TooManySignatories', + 'SignatoriesOutOfOrder', + 'SenderInSignatories', + 'NotFound', + 'NotOwner', + 'NoTimepoint', + 'WrongTimepoint', + 'UnexpectedTimepoint', + 'MaxWeightTooLow', + 'AlreadyStored', + ], }, /** * Lookup302: pallet_provide_randomness::types::Request **/ PalletProvideRandomnessRequest: { requestId: 'u64', - salt: 'H256' + salt: 'H256', }, /** * Lookup303: pallet_provide_randomness::pallet::Error<T> **/ PalletProvideRandomnessError: { - _enum: ['FullQueue'] + _enum: ['FullQueue'], }, /** * Lookup306: pallet_proxy::ProxyDefinition<sp_core::crypto::AccountId32, gdev_runtime::ProxyType, BlockNumber> @@ -2199,7 +2344,7 @@ export default { PalletProxyProxyDefinition: { delegate: 'AccountId32', proxyType: 'GdevRuntimeProxyType', - delay: 'u32' + delay: 'u32', }, /** * Lookup310: pallet_proxy::Announcement<sp_core::crypto::AccountId32, primitive_types::H256, BlockNumber> @@ -2207,19 +2352,19 @@ export default { PalletProxyAnnouncement: { real: 'AccountId32', callHash: 'H256', - height: 'u32' + height: 'u32', }, /** * Lookup312: pallet_proxy::pallet::Error<T> **/ PalletProxyError: { - _enum: ['TooMany', 'NotFound', 'NotProxy', 'Unproxyable', 'Duplicate', 'NoPermission', 'Unannounced', 'NoSelfProxy'] + _enum: ['TooMany', 'NotFound', 'NotProxy', 'Unproxyable', 'Duplicate', 'NoPermission', 'Unannounced', 'NoSelfProxy'], }, /** * Lookup313: pallet_utility::pallet::Error<T> **/ PalletUtilityError: { - _enum: ['TooManyCalls'] + _enum: ['TooManyCalls'], }, /** * Lookup314: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance> @@ -2228,7 +2373,7 @@ export default { proposer: 'AccountId32', value: 'u64', beneficiary: 'AccountId32', - bond: 'u64' + bond: 'u64', }, /** * Lookup318: frame_support::PalletId @@ -2238,7 +2383,7 @@ export default { * Lookup319: pallet_treasury::pallet::Error<T, I> **/ PalletTreasuryError: { - _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved'] + _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved'], }, /** * Lookup322: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender<T> @@ -2275,5 +2420,5 @@ export default { /** * Lookup332: pallet_transaction_payment::ChargeTransactionPayment<T> **/ - PalletTransactionPaymentChargeTransactionPayment: 'Compact<u64>' + PalletTransactionPaymentChargeTransactionPayment: 'Compact<u64>', }; diff --git a/src/interfaces/registry.ts b/src/interfaces/registry.ts index ea0827913830ccaeda03e22198033c3a2dd23d0c..0d15906736c8902b42e458013381ccd5239ee452 100644 --- a/src/interfaces/registry.ts +++ b/src/interfaces/registry.ts @@ -5,7 +5,198 @@ // this is required to allow for ambient/previous definitions import '@polkadot/types/types/registry'; -import type { CommonRuntimeEntitiesIdtyData, CommonRuntimeEntitiesValidatorFullIdentification, FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportPreimagesBounded, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonZeroSender, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, GdevRuntimeOpaqueSessionKeys, GdevRuntimeOriginCaller, GdevRuntimeProxyType, GdevRuntimeRuntime, PalletAtomicSwapBalanceSwapAction, PalletAtomicSwapCall, PalletAtomicSwapError, PalletAtomicSwapEvent, PalletAtomicSwapPendingSwap, PalletAuthorityMembersCall, PalletAuthorityMembersError, PalletAuthorityMembersEvent, PalletAuthorityMembersMemberData, PalletBabeCall, PalletBabeError, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesIdAmount, PalletBalancesReasons, PalletBalancesReserveData, PalletCertificationCall, PalletCertificationError, PalletCertificationEvent, PalletCertificationIdtyCertMeta, PalletCollectiveCall, PalletCollectiveError, PalletCollectiveEvent, PalletCollectiveRawOrigin, PalletCollectiveVotes, PalletDistanceCall, PalletDistanceDistanceStatus, PalletDistanceError, PalletDistanceEvaluationPool, PalletDistanceMedianMedianAcc, PalletDuniterAccountAccountData, PalletDuniterAccountCall, PalletDuniterAccountEvent, PalletDuniterTestParametersParameters, PalletDuniterWotError, PalletDuniterWotIdtyRemovalWotReason, PalletGrandpaCall, PalletGrandpaError, PalletGrandpaEvent, PalletGrandpaStoredPendingChange, PalletGrandpaStoredState, PalletIdentityCall, PalletIdentityError, PalletIdentityEvent, PalletIdentityIdtyRemovalReason, PalletIdentityIdtyStatus, PalletIdentityIdtyValue, PalletImOnlineBoundedOpaqueNetworkState, PalletImOnlineCall, PalletImOnlineError, PalletImOnlineEvent, PalletImOnlineHeartbeat, PalletImOnlineSr25519AppSr25519Public, PalletImOnlineSr25519AppSr25519Signature, PalletMembershipCall, PalletMembershipError, PalletMembershipEvent, PalletMultisigCall, PalletMultisigError, PalletMultisigEvent, PalletMultisigMultisig, PalletMultisigTimepoint, PalletOffencesEvent, PalletOneshotAccountAccount, PalletOneshotAccountCall, PalletOneshotAccountCheckNonce, PalletOneshotAccountError, PalletOneshotAccountEvent, PalletPreimageCall, PalletPreimageError, PalletPreimageEvent, PalletPreimageRequestStatus, PalletProvideRandomnessCall, PalletProvideRandomnessError, PalletProvideRandomnessEvent, PalletProvideRandomnessRandomnessType, PalletProvideRandomnessRequest, PalletProxyAnnouncement, PalletProxyCall, PalletProxyError, PalletProxyEvent, PalletProxyProxyDefinition, PalletQuotaEvent, PalletQuotaQuota, PalletQuotaRefund, PalletSchedulerCall, PalletSchedulerError, PalletSchedulerEvent, PalletSchedulerScheduled, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTimestampCall, PalletTransactionPaymentChargeTransactionPayment, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniversalDividendCall, PalletUniversalDividendError, PalletUniversalDividendEvent, PalletUpgradeOriginCall, PalletUpgradeOriginEvent, PalletUtilityCall, PalletUtilityError, PalletUtilityEvent, SpArithmeticArithmeticError, SpAuthorityDiscoveryAppPublic, SpConsensusBabeAllowedSlots, SpConsensusBabeAppPublic, SpConsensusBabeBabeEpochConfiguration, SpConsensusBabeDigestsNextConfigDescriptor, SpConsensusBabeDigestsPreDigest, SpConsensusBabeDigestsPrimaryPreDigest, SpConsensusBabeDigestsSecondaryPlainPreDigest, SpConsensusBabeDigestsSecondaryVRFPreDigest, SpConsensusGrandpaAppPublic, SpConsensusGrandpaAppSignature, SpConsensusGrandpaEquivocation, SpConsensusGrandpaEquivocationProof, SpConsensusSlotsEquivocationProof, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Public, SpCoreEd25519Signature, SpCoreOffchainOpaqueNetworkState, SpCoreSr25519Public, SpCoreSr25519Signature, SpCoreSr25519VrfVrfSignature, SpCoreVoid, SpDistanceComputationResult, SpMembershipMembershipData, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpSessionMembershipProof, SpStakingOffenceOffenceDetails, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight } from '@polkadot/types/lookup'; +import type { + CommonRuntimeEntitiesIdtyData, + CommonRuntimeEntitiesValidatorFullIdentification, + FinalityGrandpaEquivocationPrecommit, + FinalityGrandpaEquivocationPrevote, + FinalityGrandpaPrecommit, + FinalityGrandpaPrevote, + FrameSupportDispatchDispatchClass, + FrameSupportDispatchDispatchInfo, + FrameSupportDispatchPays, + FrameSupportDispatchPerDispatchClassU32, + FrameSupportDispatchPerDispatchClassWeight, + FrameSupportDispatchPerDispatchClassWeightsPerClass, + FrameSupportDispatchRawOrigin, + FrameSupportPalletId, + FrameSupportPreimagesBounded, + FrameSupportTokensMiscBalanceStatus, + FrameSystemAccountInfo, + FrameSystemCall, + FrameSystemError, + FrameSystemEvent, + FrameSystemEventRecord, + FrameSystemExtensionsCheckGenesis, + FrameSystemExtensionsCheckNonZeroSender, + FrameSystemExtensionsCheckNonce, + FrameSystemExtensionsCheckSpecVersion, + FrameSystemExtensionsCheckTxVersion, + FrameSystemExtensionsCheckWeight, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + FrameSystemLimitsWeightsPerClass, + FrameSystemPhase, + GdevRuntimeOpaqueSessionKeys, + GdevRuntimeOriginCaller, + GdevRuntimeProxyType, + GdevRuntimeRuntime, + PalletAtomicSwapBalanceSwapAction, + PalletAtomicSwapCall, + PalletAtomicSwapError, + PalletAtomicSwapEvent, + PalletAtomicSwapPendingSwap, + PalletAuthorityMembersCall, + PalletAuthorityMembersError, + PalletAuthorityMembersEvent, + PalletAuthorityMembersMemberData, + PalletBabeCall, + PalletBabeError, + PalletBalancesAccountData, + PalletBalancesBalanceLock, + PalletBalancesCall, + PalletBalancesError, + PalletBalancesEvent, + PalletBalancesIdAmount, + PalletBalancesReasons, + PalletBalancesReserveData, + PalletCertificationCall, + PalletCertificationError, + PalletCertificationEvent, + PalletCertificationIdtyCertMeta, + PalletCollectiveCall, + PalletCollectiveError, + PalletCollectiveEvent, + PalletCollectiveRawOrigin, + PalletCollectiveVotes, + PalletDistanceCall, + PalletDistanceDistanceStatus, + PalletDistanceError, + PalletDistanceEvaluationPool, + PalletDistanceMedianMedianAcc, + PalletDuniterAccountAccountData, + PalletDuniterAccountCall, + PalletDuniterAccountEvent, + PalletDuniterTestParametersParameters, + PalletDuniterWotError, + PalletDuniterWotIdtyRemovalWotReason, + PalletGrandpaCall, + PalletGrandpaError, + PalletGrandpaEvent, + PalletGrandpaStoredPendingChange, + PalletGrandpaStoredState, + PalletIdentityCall, + PalletIdentityError, + PalletIdentityEvent, + PalletIdentityIdtyRemovalReason, + PalletIdentityIdtyStatus, + PalletIdentityIdtyValue, + PalletImOnlineBoundedOpaqueNetworkState, + PalletImOnlineCall, + PalletImOnlineError, + PalletImOnlineEvent, + PalletImOnlineHeartbeat, + PalletImOnlineSr25519AppSr25519Public, + PalletImOnlineSr25519AppSr25519Signature, + PalletMembershipCall, + PalletMembershipError, + PalletMembershipEvent, + PalletMultisigCall, + PalletMultisigError, + PalletMultisigEvent, + PalletMultisigMultisig, + PalletMultisigTimepoint, + PalletOffencesEvent, + PalletOneshotAccountAccount, + PalletOneshotAccountCall, + PalletOneshotAccountCheckNonce, + PalletOneshotAccountError, + PalletOneshotAccountEvent, + PalletPreimageCall, + PalletPreimageError, + PalletPreimageEvent, + PalletPreimageRequestStatus, + PalletProvideRandomnessCall, + PalletProvideRandomnessError, + PalletProvideRandomnessEvent, + PalletProvideRandomnessRandomnessType, + PalletProvideRandomnessRequest, + PalletProxyAnnouncement, + PalletProxyCall, + PalletProxyError, + PalletProxyEvent, + PalletProxyProxyDefinition, + PalletQuotaEvent, + PalletQuotaQuota, + PalletQuotaRefund, + PalletSchedulerCall, + PalletSchedulerError, + PalletSchedulerEvent, + PalletSchedulerScheduled, + PalletSessionCall, + PalletSessionError, + PalletSessionEvent, + PalletSudoCall, + PalletSudoError, + PalletSudoEvent, + PalletTimestampCall, + PalletTransactionPaymentChargeTransactionPayment, + PalletTransactionPaymentEvent, + PalletTransactionPaymentReleases, + PalletTreasuryCall, + PalletTreasuryError, + PalletTreasuryEvent, + PalletTreasuryProposal, + PalletUniversalDividendCall, + PalletUniversalDividendError, + PalletUniversalDividendEvent, + PalletUpgradeOriginCall, + PalletUpgradeOriginEvent, + PalletUtilityCall, + PalletUtilityError, + PalletUtilityEvent, + SpArithmeticArithmeticError, + SpAuthorityDiscoveryAppPublic, + SpConsensusBabeAllowedSlots, + SpConsensusBabeAppPublic, + SpConsensusBabeBabeEpochConfiguration, + SpConsensusBabeDigestsNextConfigDescriptor, + SpConsensusBabeDigestsPreDigest, + SpConsensusBabeDigestsPrimaryPreDigest, + SpConsensusBabeDigestsSecondaryPlainPreDigest, + SpConsensusBabeDigestsSecondaryVRFPreDigest, + SpConsensusGrandpaAppPublic, + SpConsensusGrandpaAppSignature, + SpConsensusGrandpaEquivocation, + SpConsensusGrandpaEquivocationProof, + SpConsensusSlotsEquivocationProof, + SpCoreCryptoKeyTypeId, + SpCoreEcdsaSignature, + SpCoreEd25519Public, + SpCoreEd25519Signature, + SpCoreOffchainOpaqueNetworkState, + SpCoreSr25519Public, + SpCoreSr25519Signature, + SpCoreSr25519VrfVrfSignature, + SpCoreVoid, + SpDistanceComputationResult, + SpMembershipMembershipData, + SpRuntimeBlakeTwo256, + SpRuntimeDigest, + SpRuntimeDigestDigestItem, + SpRuntimeDispatchError, + SpRuntimeHeader, + SpRuntimeModuleError, + SpRuntimeMultiSignature, + SpRuntimeTokenError, + SpRuntimeTransactionalError, + SpSessionMembershipProof, + SpStakingOffenceOffenceDetails, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight, +} from '@polkadot/types/lookup'; declare module '@polkadot/types/types/registry' { interface InterfaceTypes { diff --git a/src/interfaces/types-lookup.ts b/src/interfaces/types-lookup.ts index 657880db6058eea1d61b7923b3ef0caef07f0185..294a6880639784e0cf59309e9b840e1f19e45374 100644 --- a/src/interfaces/types-lookup.ts +++ b/src/interfaces/types-lookup.ts @@ -5,7 +5,25 @@ // this is required to allow for ambient/previous definitions import '@polkadot/types/lookup'; -import type { BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { + BTreeSet, + Bytes, + Compact, + Enum, + Null, + Option, + Result, + Struct, + Text, + U8aFixed, + Vec, + bool, + u128, + u16, + u32, + u64, + u8, +} from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; import type { OpaqueMultiaddr, OpaquePeerId } from '@polkadot/types/interfaces/imOnline'; import type { AccountId32, Call, H256, MultiAddress, Perbill } from '@polkadot/types/interfaces/runtime'; @@ -138,7 +156,20 @@ declare module '@polkadot/types/lookup' { readonly isExhausted: boolean; readonly isCorruption: boolean; readonly isUnavailable: boolean; - readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional' | 'Exhausted' | 'Corruption' | 'Unavailable'; + readonly type: + | 'Other' + | 'CannotLookup' + | 'BadOrigin' + | 'Module' + | 'ConsumerRemaining' + | 'NoProviders' + | 'TooManyConsumers' + | 'Token' + | 'Arithmetic' + | 'Transactional' + | 'Exhausted' + | 'Corruption' + | 'Unavailable'; } /** @name SpRuntimeModuleError (26) */ @@ -158,7 +189,16 @@ declare module '@polkadot/types/lookup' { readonly isUnsupported: boolean; readonly isCannotCreateHold: boolean; readonly isNotExpendable: boolean; - readonly type: 'FundsUnavailable' | 'OnlyProvider' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported' | 'CannotCreateHold' | 'NotExpendable'; + readonly type: + | 'FundsUnavailable' + | 'OnlyProvider' + | 'BelowMinimum' + | 'CannotCreate' + | 'UnknownAsset' + | 'Frozen' + | 'Unsupported' + | 'CannotCreateHold' + | 'NotExpendable'; } /** @name SpArithmeticArithmeticError (28) */ @@ -341,7 +381,28 @@ declare module '@polkadot/types/lookup' { readonly who: AccountId32; readonly amount: u64; } & Struct; - readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed' | 'Minted' | 'Burned' | 'Suspended' | 'Restored' | 'Upgraded' | 'Issued' | 'Rescinded' | 'Locked' | 'Unlocked' | 'Frozen' | 'Thawed'; + readonly type: + | 'Endowed' + | 'DustLost' + | 'Transfer' + | 'BalanceSet' + | 'Reserved' + | 'Unreserved' + | 'ReserveRepatriated' + | 'Deposit' + | 'Withdraw' + | 'Slashed' + | 'Minted' + | 'Burned' + | 'Suspended' + | 'Restored' + | 'Upgraded' + | 'Issued' + | 'Rescinded' + | 'Locked' + | 'Unlocked' + | 'Frozen' + | 'Thawed'; } /** @name FrameSupportTokensMiscBalanceStatus (37) */ @@ -415,7 +476,13 @@ declare module '@polkadot/types/lookup' { readonly asMemberRemoved: u32; readonly isMemberRemovedFromBlackList: boolean; readonly asMemberRemovedFromBlackList: u32; - readonly type: 'IncomingAuthorities' | 'OutgoingAuthorities' | 'MemberGoOffline' | 'MemberGoOnline' | 'MemberRemoved' | 'MemberRemovedFromBlackList'; + readonly type: + | 'IncomingAuthorities' + | 'OutgoingAuthorities' + | 'MemberGoOffline' + | 'MemberGoOnline' + | 'MemberRemoved' + | 'MemberRemovedFromBlackList'; } /** @name PalletOffencesEvent (45) */ @@ -655,7 +722,13 @@ declare module '@polkadot/types/lookup' { readonly asMembershipRevoked: u32; readonly isPendingMembershipExpired: boolean; readonly asPendingMembershipExpired: u32; - readonly type: 'MembershipAcquired' | 'MembershipExpired' | 'MembershipRenewed' | 'MembershipRequested' | 'MembershipRevoked' | 'PendingMembershipExpired'; + readonly type: + | 'MembershipAcquired' + | 'MembershipExpired' + | 'MembershipRenewed' + | 'MembershipRequested' + | 'MembershipRevoked' + | 'PendingMembershipExpired'; } /** @name PalletCertificationEvent (72) */ @@ -1006,7 +1079,13 @@ declare module '@polkadot/types/lookup' { readonly isNonDefaultComposite: boolean; readonly isNonZeroRefCount: boolean; readonly isCallFiltered: boolean; - readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered'; + readonly type: + | 'InvalidSpecName' + | 'SpecVersionNeedsToIncrease' + | 'FailedToExtractRuntimeVersion' + | 'NonDefaultComposite' + | 'NonZeroRefCount' + | 'CallFiltered'; } /** @name PalletDuniterAccountCall (108) */ @@ -1208,7 +1287,16 @@ declare module '@polkadot/types/lookup' { readonly who: MultiAddress; readonly newFree: Compact<u64>; } & Struct; - readonly type: 'TransferAllowDeath' | 'SetBalanceDeprecated' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve' | 'UpgradeAccounts' | 'Transfer' | 'ForceSetBalance'; + readonly type: + | 'TransferAllowDeath' + | 'SetBalanceDeprecated' + | 'ForceTransfer' + | 'TransferKeepAlive' + | 'TransferAll' + | 'ForceUnreserve' + | 'UpgradeAccounts' + | 'Transfer' + | 'ForceSetBalance'; } /** @name PalletOneshotAccountCall (132) */ @@ -1541,7 +1629,16 @@ declare module '@polkadot/types/lookup' { readonly accountId: AccountId32; readonly payloadSig: SpRuntimeMultiSignature; } & Struct; - readonly type: 'CreateIdentity' | 'ConfirmIdentity' | 'ValidateIdentity' | 'ChangeOwnerKey' | 'RevokeIdentity' | 'RemoveIdentity' | 'PruneItemIdentitiesNames' | 'FixSufficients' | 'LinkAccount'; + readonly type: + | 'CreateIdentity' + | 'ConfirmIdentity' + | 'ValidateIdentity' + | 'ChangeOwnerKey' + | 'RevokeIdentity' + | 'RemoveIdentity' + | 'PruneItemIdentitiesNames' + | 'FixSufficients' + | 'LinkAccount'; } /** @name SpRuntimeMultiSignature (164) */ @@ -1740,7 +1837,17 @@ declare module '@polkadot/types/lookup' { readonly forceProxyType: Option<GdevRuntimeProxyType>; readonly call: Call; } & Struct; - readonly type: 'Proxy' | 'AddProxy' | 'RemoveProxy' | 'RemoveProxies' | 'CreatePure' | 'KillPure' | 'Announce' | 'RemoveAnnouncement' | 'RejectAnnouncement' | 'ProxyAnnounced'; + readonly type: + | 'Proxy' + | 'AddProxy' + | 'RemoveProxy' + | 'RemoveProxies' + | 'CreatePure' + | 'KillPure' + | 'Announce' + | 'RemoveAnnouncement' + | 'RejectAnnouncement' + | 'ProxyAnnounced'; } /** @name PalletUtilityCall (186) */ @@ -1969,7 +2076,17 @@ declare module '@polkadot/types/lookup' { readonly isTooManyReserves: boolean; readonly isTooManyHolds: boolean; readonly isTooManyFreezes: boolean; - readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'Expendability' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves' | 'TooManyHolds' | 'TooManyFreezes'; + readonly type: + | 'VestingBalance' + | 'LiquidityRestrictions' + | 'InsufficientBalance' + | 'ExistentialDeposit' + | 'Expendability' + | 'ExistingVestingSchedule' + | 'DeadAccount' + | 'TooManyReserves' + | 'TooManyHolds' + | 'TooManyFreezes'; } /** @name PalletTransactionPaymentReleases (228) */ @@ -1988,7 +2105,14 @@ declare module '@polkadot/types/lookup' { readonly isInsufficientBalance: boolean; readonly isOneshotAccountAlreadyCreated: boolean; readonly isOneshotAccountNotExist: boolean; - readonly type: 'BlockHeightInFuture' | 'BlockHeightTooOld' | 'DestAccountNotExist' | 'ExistentialDeposit' | 'InsufficientBalance' | 'OneshotAccountAlreadyCreated' | 'OneshotAccountNotExist'; + readonly type: + | 'BlockHeightInFuture' + | 'BlockHeightTooOld' + | 'DestAccountNotExist' + | 'ExistentialDeposit' + | 'InsufficientBalance' + | 'OneshotAccountAlreadyCreated' + | 'OneshotAccountNotExist'; } /** @name PalletQuotaQuota (230) */ @@ -2023,7 +2147,19 @@ declare module '@polkadot/types/lookup' { readonly isNotMember: boolean; readonly isSessionKeysNotProvided: boolean; readonly isTooManyAuthorities: boolean; - readonly type: 'AlreadyIncoming' | 'AlreadyOnline' | 'AlreadyOutgoing' | 'MemberIdNotFound' | 'MemberIdBlackListed' | 'MemberNotBlackListed' | 'MemberNotFound' | 'NotOnlineNorIncoming' | 'NotOwner' | 'NotMember' | 'SessionKeysNotProvided' | 'TooManyAuthorities'; + readonly type: + | 'AlreadyIncoming' + | 'AlreadyOnline' + | 'AlreadyOutgoing' + | 'MemberIdNotFound' + | 'MemberIdBlackListed' + | 'MemberNotBlackListed' + | 'MemberNotFound' + | 'NotOnlineNorIncoming' + | 'NotOwner' + | 'NotMember' + | 'SessionKeysNotProvided' + | 'TooManyAuthorities'; } /** @name SpStakingOffenceOffenceDetails (236) */ @@ -2079,7 +2215,14 @@ declare module '@polkadot/types/lookup' { readonly isInvalidKeyOwnershipProof: boolean; readonly isInvalidEquivocationProof: boolean; readonly isDuplicateOffenceReport: boolean; - readonly type: 'PauseFailed' | 'ResumeFailed' | 'ChangePending' | 'TooSoon' | 'InvalidKeyOwnershipProof' | 'InvalidEquivocationProof' | 'DuplicateOffenceReport'; + readonly type: + | 'PauseFailed' + | 'ResumeFailed' + | 'ChangePending' + | 'TooSoon' + | 'InvalidKeyOwnershipProof' + | 'InvalidEquivocationProof' + | 'DuplicateOffenceReport'; } /** @name PalletImOnlineBoundedOpaqueNetworkState (250) */ @@ -2149,7 +2292,17 @@ declare module '@polkadot/types/lookup' { readonly isTooManyProposals: boolean; readonly isWrongProposalWeight: boolean; readonly isWrongProposalLength: boolean; - readonly type: 'NotMember' | 'DuplicateProposal' | 'ProposalMissing' | 'WrongIndex' | 'DuplicateVote' | 'AlreadyInitialized' | 'TooEarly' | 'TooManyProposals' | 'WrongProposalWeight' | 'WrongProposalLength'; + readonly type: + | 'NotMember' + | 'DuplicateProposal' + | 'ProposalMissing' + | 'WrongIndex' + | 'DuplicateVote' + | 'AlreadyInitialized' + | 'TooEarly' + | 'TooManyProposals' + | 'WrongProposalWeight' + | 'WrongProposalLength'; } /** @name PalletUniversalDividendError (267) */ @@ -2172,7 +2325,19 @@ declare module '@polkadot/types/lookup' { readonly isIssuerCanNotEmitCert: boolean; readonly isCertToUndefined: boolean; readonly isIdtyNotFound: boolean; - readonly type: 'NotEnoughCertsToClaimMembership' | 'DistanceNotOK' | 'IdtyNotAllowedToRequestMembership' | 'IdtyNotAllowedToRenewMembership' | 'IdtyCreationPeriodNotRespected' | 'NotEnoughReceivedCertsToCreateIdty' | 'MaxEmittedCertsReached' | 'NotAllowedToChangeIdtyAddress' | 'NotAllowedToRemoveIdty' | 'IssuerCanNotEmitCert' | 'CertToUndefined' | 'IdtyNotFound'; + readonly type: + | 'NotEnoughCertsToClaimMembership' + | 'DistanceNotOK' + | 'IdtyNotAllowedToRequestMembership' + | 'IdtyNotAllowedToRenewMembership' + | 'IdtyCreationPeriodNotRespected' + | 'NotEnoughReceivedCertsToCreateIdty' + | 'MaxEmittedCertsReached' + | 'NotAllowedToChangeIdtyAddress' + | 'NotAllowedToRemoveIdty' + | 'IssuerCanNotEmitCert' + | 'CertToUndefined' + | 'IdtyNotFound'; } /** @name PalletIdentityIdtyValue (269) */ @@ -2221,7 +2386,28 @@ declare module '@polkadot/types/lookup' { readonly isProhibitedToRevertToAnOldKey: boolean; readonly isRightAlreadyAdded: boolean; readonly isRightNotExist: boolean; - readonly type: 'IdtyAlreadyConfirmed' | 'IdtyAlreadyCreated' | 'IdtyAlreadyValidated' | 'IdtyCreationNotAllowed' | 'IdtyIndexNotFound' | 'IdtyNameAlreadyExist' | 'IdtyNameInvalid' | 'IdtyNotConfirmedByOwner' | 'IdtyNotFound' | 'IdtyNotMember' | 'IdtyNotValidated' | 'IdtyNotYetRenewable' | 'InvalidSignature' | 'InvalidRevocationKey' | 'NotRespectIdtyCreationPeriod' | 'NotSameIdtyName' | 'OwnerKeyAlreadyRecentlyChanged' | 'OwnerKeyAlreadyUsed' | 'ProhibitedToRevertToAnOldKey' | 'RightAlreadyAdded' | 'RightNotExist'; + readonly type: + | 'IdtyAlreadyConfirmed' + | 'IdtyAlreadyCreated' + | 'IdtyAlreadyValidated' + | 'IdtyCreationNotAllowed' + | 'IdtyIndexNotFound' + | 'IdtyNameAlreadyExist' + | 'IdtyNameInvalid' + | 'IdtyNotConfirmedByOwner' + | 'IdtyNotFound' + | 'IdtyNotMember' + | 'IdtyNotValidated' + | 'IdtyNotYetRenewable' + | 'InvalidSignature' + | 'InvalidRevocationKey' + | 'NotRespectIdtyCreationPeriod' + | 'NotSameIdtyName' + | 'OwnerKeyAlreadyRecentlyChanged' + | 'OwnerKeyAlreadyUsed' + | 'ProhibitedToRevertToAnOldKey' + | 'RightAlreadyAdded' + | 'RightNotExist'; } /** @name SpMembershipMembershipData (277) */ @@ -2237,7 +2423,13 @@ declare module '@polkadot/types/lookup' { readonly isMembershipNotFound: boolean; readonly isOriginNotAllowedToUseIdty: boolean; readonly isMembershipRequestNotFound: boolean; - readonly type: 'IdtyIdNotFound' | 'MembershipAlreadyAcquired' | 'MembershipAlreadyRequested' | 'MembershipNotFound' | 'OriginNotAllowedToUseIdty' | 'MembershipRequestNotFound'; + readonly type: + | 'IdtyIdNotFound' + | 'MembershipAlreadyAcquired' + | 'MembershipAlreadyRequested' + | 'MembershipNotFound' + | 'OriginNotAllowedToUseIdty' + | 'MembershipRequestNotFound'; } /** @name PalletCertificationIdtyCertMeta (279) */ @@ -2282,7 +2474,17 @@ declare module '@polkadot/types/lookup' { readonly isQueueFull: boolean; readonly isTooManyEvaluators: boolean; readonly isWrongResultLength: boolean; - readonly type: 'AlreadyInEvaluation' | 'CannotReserve' | 'ManyEvaluationsByAuthor' | 'ManyEvaluationsInBlock' | 'NoAuthor' | 'NoIdentity' | 'NonEligibleForEvaluation' | 'QueueFull' | 'TooManyEvaluators' | 'WrongResultLength'; + readonly type: + | 'AlreadyInEvaluation' + | 'CannotReserve' + | 'ManyEvaluationsByAuthor' + | 'ManyEvaluationsInBlock' + | 'NoAuthor' + | 'NoIdentity' + | 'NonEligibleForEvaluation' + | 'QueueFull' + | 'TooManyEvaluators' + | 'WrongResultLength'; } /** @name PalletAtomicSwapError (297) */ @@ -2295,7 +2497,15 @@ declare module '@polkadot/types/lookup' { readonly isNotExist: boolean; readonly isClaimActionMismatch: boolean; readonly isDurationNotPassed: boolean; - readonly type: 'AlreadyExist' | 'InvalidProof' | 'ProofTooLarge' | 'SourceMismatch' | 'AlreadyClaimed' | 'NotExist' | 'ClaimActionMismatch' | 'DurationNotPassed'; + readonly type: + | 'AlreadyExist' + | 'InvalidProof' + | 'ProofTooLarge' + | 'SourceMismatch' + | 'AlreadyClaimed' + | 'NotExist' + | 'ClaimActionMismatch' + | 'DurationNotPassed'; } /** @name PalletMultisigMultisig (298) */ @@ -2322,7 +2532,21 @@ declare module '@polkadot/types/lookup' { readonly isUnexpectedTimepoint: boolean; readonly isMaxWeightTooLow: boolean; readonly isAlreadyStored: boolean; - readonly type: 'MinimumThreshold' | 'AlreadyApproved' | 'NoApprovalsNeeded' | 'TooFewSignatories' | 'TooManySignatories' | 'SignatoriesOutOfOrder' | 'SenderInSignatories' | 'NotFound' | 'NotOwner' | 'NoTimepoint' | 'WrongTimepoint' | 'UnexpectedTimepoint' | 'MaxWeightTooLow' | 'AlreadyStored'; + readonly type: + | 'MinimumThreshold' + | 'AlreadyApproved' + | 'NoApprovalsNeeded' + | 'TooFewSignatories' + | 'TooManySignatories' + | 'SignatoriesOutOfOrder' + | 'SenderInSignatories' + | 'NotFound' + | 'NotOwner' + | 'NoTimepoint' + | 'WrongTimepoint' + | 'UnexpectedTimepoint' + | 'MaxWeightTooLow' + | 'AlreadyStored'; } /** @name PalletProvideRandomnessRequest (302) */ @@ -2417,5 +2641,4 @@ declare module '@polkadot/types/lookup' { /** @name PalletTransactionPaymentChargeTransactionPayment (332) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact<u64> {} - } // declare module diff --git a/src/interfaces/types.json b/src/interfaces/types.json index 50ed928123daae15a9f3f9f3baff6361f0c25f22..23a4c207e9b61d56bda1ba32fec4c0649abb2503 100644 --- a/src/interfaces/types.json +++ b/src/interfaces/types.json @@ -1 +1,5 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e3505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c5870616c6c65745f64756e697465725f6163636f756e741474797065732c4163636f756e7444617461081c42616c616e636501181849647479496401100014012472616e646f6d5f69641c01304f7074696f6e3c483235363e0001106672656518011c42616c616e6365000120726573657276656418011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500012c6c696e6b65645f696474792401384f7074696f6e3c4964747949643e00001800000506001c04184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000020083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000280c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454012c000c01186e6f726d616c2c01045400012c6f7065726174696f6e616c2c0104540001246d616e6461746f72792c01045400002c0c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6530010c75363400012870726f6f665f73697a6530010c753634000030000006180034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540120000c011470686173655901011450686173650001146576656e7450010445000118746f706963735d0101185665633c543e0000500830676465765f72756e74696d653052756e74696d654576656e740001701853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c4163636f756e74040078019870616c6c65745f64756e697465725f6163636f756e743a3a4576656e743c52756e74696d653e000100245363686564756c657204007c018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0002002042616c616e636573040090017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e7404009801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e002000384f6e6573686f744163636f756e7404009c019870616c6c65745f6f6e6573686f745f6163636f756e743a3a4576656e743c52756e74696d653e0007001451756f74610400a8017070616c6c65745f71756f74613a3a4576656e743c52756e74696d653e00420040417574686f726974794d656d626572730400ac01a070616c6c65745f617574686f726974795f6d656d626572733a3a4576656e743c52756e74696d653e000a00204f6666656e6365730400b4015870616c6c65745f6f6666656e6365733a3a4576656e74000c001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e74000e001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000f0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001000105375646f0400ec016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00140034557067726164654f726967696e0400f4017070616c6c65745f757067726164655f6f726967696e3a3a4576656e7400150020507265696d6167650400f8017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00160048546563686e6963616c436f6d6d69747465650400fc01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00170044556e6976657273616c4469766964656e640400050101a470616c6c65745f756e6976657273616c5f6469766964656e643a3a4576656e743c52756e74696d653e001e00204964656e7469747904000d01017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e002900284d656d6265727368697004001d0101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e002a0010436572740400210101150170616c6c65745f63657274696669636174696f6e3a3a4576656e743c52756e74696d652c2070616c6c65745f63657274696669636174696f6e3a3a496e7374616e6365313e002b003c536d6974684d656d626572736869700400250101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365323e00340024536d697468436572740400290101150170616c6c65745f63657274696669636174696f6e3a3a4576656e743c52756e74696d652c2070616c6c65745f63657274696669636174696f6e3a3a496e7374616e6365323e0035002841746f6d69635377617004002d01018870616c6c65745f61746f6d69635f737761703a3a4576656e743c52756e74696d653e003c00204d756c746973696704003901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e003d004450726f7669646552616e646f6d6e65737304004101018070616c6c65745f70726f766964655f72616e646f6d6e6573733a3a4576656e74003e001450726f787904004901017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e003f001c5574696c69747904005101015470616c6c65745f7574696c6974793a3a4576656e7400400020547265617375727904005501017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00410000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736820011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c01187765696768742c0118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001244046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c5870616c6c65745f64756e697465725f6163636f756e741870616c6c6574144576656e7404045400011030466f72636544657374726f7908010c77686f000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e636500000c4d01466f72636520746865206465737472756374696f6e206f6620616e206163636f756e7420626563617573652069747320667265652062616c616e636520697320696e73756666696369656e7420746f207061796c746865206163636f756e74206372656174696f6e2070726963652e385b77686f2c2062616c616e63655d4052616e646f6d496441737369676e656408010c77686f000130543a3a4163636f756e74496400012472616e646f6d5f6964200110483235360001084852616e646f6d2069642061737369676e65645c5b6163636f756e745f69642c2072616e646f6d5f69645d344163636f756e744c696e6b656408010c77686f000130543a3a4163636f756e7449640001206964656e7469747910012c4964747949644f663c543e000204686163636f756e74206c696e6b656420746f206964656e746974793c4163636f756e74556e6c696e6b65640400000130543a3a4163636f756e744964000304786163636f756e7420756e6c696e6b65642066726f6d206964656e7469747904a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909097c0c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e000118726573756c748801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652e80000004081010008404184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000880418526573756c74080454018c044501640108084f6b04008c000000000c45727204006400000100008c0000040000900c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909099414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000980c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909099c0c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c6574144576656e7404045400010c544f6e6573686f744163636f756e74437265617465640c011c6163636f756e74000130543a3a4163636f756e74496400011c62616c616e63651801c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e636500011c63726561746f72000130543a3a4163636f756e744964000000584f6e6573686f744163636f756e74436f6e73756d65640c011c6163636f756e74000130543a3a4163636f756e7449640001146465737431a001010128543a3a4163636f756e7449642c3c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63652c290001146465737432a40129014f7074696f6e3c0a28543a3a4163636f756e7449642c3c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63652c290a3e00010020576974686472617708011c6163636f756e74000130543a3a4163636f756e74496400011c62616c616e63651801c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e636500020004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909a000000408001800a404184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000a80c3070616c6c65745f71756f74611870616c6c6574144576656e7404045400011420526566756e6465640c010c77686f000130543a3a4163636f756e7449640001206964656e746974791001244964747949643c543e000118616d6f756e7418013042616c616e63654f663c543e0000046c526566756e646564206665657320746f20616e206163636f756e74384e6f51756f7461466f724964747904001001244964747949643c543e000104544e6f2071756f746120666f72206964656e746974795c4e6f4d6f726543757272656e6379466f72526566756e64000204944e6f206d6f72652063757272656e637920617661696c61626c6520666f7220726566756e6430526566756e644661696c65640400000130543a3a4163636f756e74496400030434526566756e64206661696c65643c526566756e64517565756546756c6c00040444526566756e642071756575652066756c6c04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c6574144576656e740404540001184c496e636f6d696e67417574686f7269746965730400b001405665633c543a3a4d656d62657249643e00000829014c697374206f66206d656d626572732077686f2077696c6c20656e7465722074686520736574206f6620617574686f72697469657320617420746865206e6578742073657373696f6e2e405b5665633c6d656d6265725f69643e5d4c4f7574676f696e67417574686f7269746965730400b001405665633c543a3a4d656d62657249643e00010829014c697374206f66206d656d626572732077686f2077696c6c206c656176652074686520736574206f6620617574686f72697469657320617420746865206e6578742073657373696f6e2e405b5665633c6d656d6265725f69643e5d3c4d656d626572476f4f66666c696e65040010012c543a3a4d656d6265724964000208e441206d656d6265722077696c6c206c656176652074686520736574206f6620617574686f72697469657320696e20322073657373696f6e732e2c5b6d656d6265725f69645d384d656d626572476f4f6e6c696e65040010012c543a3a4d656d6265724964000308e441206d656d6265722077696c6c20656e7465722074686520736574206f6620617574686f72697469657320696e20322073657373696f6e732e2c5b6d656d6265725f69645d344d656d62657252656d6f766564040010012c543a3a4d656d626572496400040ce841206d656d62657220686173206c6f73742074686520726967687420746f2062652070617274206f662074686520617574686f7269746965732c050174686973206d656d6265722077696c6c2062652072656d6f7665642066726f6d2074686520617574686f726974792073657420696e20322073657373696f6e732e2c5b6d656d6265725f69645d684d656d62657252656d6f76656446726f6d426c61636b4c697374040010012c543a3a4d656d6265724964000508b441206d656d62657220686173206265656e2072656d6f7665642066726f6d2074686520626c61636b6c6973742e2c5b6d656d6265725f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909b00000021000b40c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64b801104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652eb8000003100000000800bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc1800cc0c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e80c38636f6d6d6f6e5f72756e74696d6520656e7469746965736c56616c696461746f7246756c6c4964656e74696669636174696f6e00000000ec0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c748801384469737061746368526573756c740000048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e6765640401286f6c645f7375646f6572f001504f7074696f6e3c543a3a4163636f756e7449643e0001043901546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c696564206966206f6e6520657869737465642e285375646f4173446f6e6504012c7375646f5f726573756c748801384469737061746368526573756c740002048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f004184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f40c5470616c6c65745f757067726164655f6f726967696e1870616c6c6574144576656e7400010440446973706174636865644173526f6f74040118726573756c748801384469737061746368526573756c74000004dc412063616c6c20776173206469737061746368656420617320726f6f742066726f6d20616e2075706772616461626c65206f726967696e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f80c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736820011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736820011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736820011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909fc0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736820011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736820011c543a3a48617368000114766f74656401010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736820011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736820011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736820011c543a3a48617368000118726573756c748801384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736820011c543a3a48617368000118726573756c748801384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736820011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090101000005000005010c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c6574144576656e74040454000110304e6577556443726561746564100118616d6f756e7418013042616c616e63654f663c543e000114696e6465780901011c5564496e6465780001346d6f6e65746172795f6d61737318013042616c616e63654f663c543e0001346d656d626572735f636f756e7418013042616c616e63654f663c543e0000049041206e657720756e6976657273616c206469766964656e6420697320637265617465642e2c556452656576616c7565640c01346e65775f75645f616d6f756e7418013042616c616e63654f663c543e0001346d6f6e65746172795f6d61737318013042616c616e63654f663c543e0001346d656d626572735f636f756e7418013042616c616e63654f663c543e000104b454686520756e6976657273616c206469766964656e6420686173206265656e2072652d6576616c75617465642e505564734175746f50616964417452656d6f76616c0c0114636f756e740901011c5564496e646578000114746f74616c18013042616c616e63654f663c543e00010c77686f000130543a3a4163636f756e744964000204fc4455732077657265206175746f6d61746963616c6c79207472616e736665727265642061732070617274206f662061206d656d6265722072656d6f76616c2e28556473436c61696d65640c0114636f756e740901011c5564496e646578000114746f74616c18013042616c616e63654f663c543e00010c77686f000130543a3a4163636f756e7449640003046441206d656d62657220636c61696d656420686973205544732e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909090100000504000d010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001142c4964747943726561746564080128696474795f696e646578100130543a3a49647479496e6465780001246f776e65725f6b6579000130543a3a4163636f756e7449640000087c41206e6577206964656e7469747920686173206265656e20637265617465645c5b696474795f696e6465782c206f776e65725f6b65795d3449647479436f6e6669726d65640c0128696474795f696e646578100130543a3a49647479496e6465780001246f776e65725f6b6579000130543a3a4163636f756e7449640001106e616d6511010120496474794e616d65000108ac416e206964656e7469747920686173206265656e20636f6e6669726d656420627920697473206f776e6572745b696474795f696e6465782c206f776e65725f6b65792c206e616d655d344964747956616c696461746564040128696474795f696e646578100130543a3a49647479496e64657800020878416e206964656e7469747920686173206265656e2076616c696461746564305b696474795f696e6465785d4c496474794368616e6765644f776e65724b6579080128696474795f696e646578100130543a3a49647479496e6465780001346e65775f6f776e65725f6b6579000130543a3a4163636f756e7449640003002c4964747952656d6f766564080128696474795f696e646578100130543a3a49647479496e646578000118726561736f6e150101b04964747952656d6f76616c526561736f6e3c543a3a4964747952656d6f76616c4f74686572526561736f6e3e00040870416e206964656e7469747920686173206265656e2072656d6f766564305b696474795f696e6465785d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909091101000005020015010c3c70616c6c65745f6964656e74697479147479706573444964747952656d6f76616c526561736f6e042c4f74686572526561736f6e01190101101c45787069726564000000184d616e75616c000100144f7468657204001901012c4f74686572526561736f6e0002001c5265766f6b65640003000019010c4870616c6c65745f64756e697465725f776f74147479706573504964747952656d6f76616c576f74526561736f6e000108444d656d6265727368697045787069726564000000144f74686572000100001d010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e74080454000449000118484d656d6265727368697041637175697265640400100124543a3a4964747949640000086441206d656d6265727368697020776173206163717569726564245b696474795f69645d444d656d62657273686970457870697265640400100124543a3a4964747949640001085041206d656d626572736869702065787069726564245b696474795f69645d444d656d6265727368697052656e657765640400100124543a3a4964747949640002086041206d656d62657273686970207761732072656e65776564245b696474795f69645d4c4d656d626572736869705265717565737465640400100124543a3a4964747949640003086c416e206d656d626572736869702077617320726571756573746564245b696474795f69645d444d656d626572736869705265766f6b65640400100124543a3a4964747949640004086041206d656d6265727368697020776173207265766f6b6564245b696474795f69645d6050656e64696e674d656d62657273686970457870697265640400100124543a3a496474794964000508a0412070656e64696e67206d656d626572736869702072657175657374206861732065787069726564245b696474795f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090921010c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144576656e7408045400044900010c1c4e657743657274100118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c753332000008444e65772063657274696669636174696f6e01015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e745d2c52656d6f76656443657274140118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c75333200012865787069726174696f6e01010110626f6f6c0001085452656d6f7665642063657274696669636174696f6e31015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e742c2065787069726174696f6e5d2c52656e6577656443657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780002085452656e657765642063657274696669636174696f6e485b6973737565722c2072656365697665725d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090925010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e74080454000449000118484d656d6265727368697041637175697265640400100124543a3a4964747949640000086441206d656d6265727368697020776173206163717569726564245b696474795f69645d444d656d62657273686970457870697265640400100124543a3a4964747949640001085041206d656d626572736869702065787069726564245b696474795f69645d444d656d6265727368697052656e657765640400100124543a3a4964747949640002086041206d656d62657273686970207761732072656e65776564245b696474795f69645d4c4d656d626572736869705265717565737465640400100124543a3a4964747949640003086c416e206d656d626572736869702077617320726571756573746564245b696474795f69645d444d656d626572736869705265766f6b65640400100124543a3a4964747949640004086041206d656d6265727368697020776173207265766f6b6564245b696474795f69645d6050656e64696e674d656d62657273686970457870697265640400100124543a3a496474794964000508a0412070656e64696e67206d656d626572736869702072657175657374206861732065787069726564245b696474795f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090929010c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144576656e7408045400044900010c1c4e657743657274100118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c753332000008444e65772063657274696669636174696f6e01015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e745d2c52656d6f76656443657274140118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c75333200012865787069726174696f6e01010110626f6f6c0001085452656d6f7665642063657274696669636174696f6e31015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e742c2065787069726174696f6e5d2c52656e6577656443657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780002085452656e657765642063657274696669636174696f6e485b6973737565722c2072656365697665725d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909092d010c4870616c6c65745f61746f6d69635f737761701870616c6c6574144576656e7404045400010c1c4e6577537761700c011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f66000110737761703101013850656e64696e67537761703c543e000004345377617020637265617465642e2c53776170436c61696d65640c011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f6600011c7375636365737301010110626f6f6c00010429015377617020636c61696d65642e20546865206c61737420706172616d6574657220696e6469636174657320776865746865722074686520657865637574696f6e2073756363656564732e345377617043616e63656c6c656408011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f660002043c537761702063616e63656c6c65642e04704576656e74206f662061746f6d696320737761702070616c6c65742e3101084870616c6c65745f61746f6d69635f737761702c50656e64696e675377617004045400000c0118736f75726365000130543a3a4163636f756e744964000118616374696f6e35010134543a3a53776170416374696f6e000124656e645f626c6f636b100138543a3a426c6f636b4e756d62657200003501084870616c6c65745f61746f6d69635f737761704442616c616e636553776170416374696f6e08244163636f756e74496401000443000004011476616c756518018c3c432061732043757272656e63793c4163636f756e7449643e3e3a3a42616c616e6365000039010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000041010c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c6574144576656e740001084046696c6c656452616e646f6d6e657373080128726571756573745f696418012452657175657374496400012872616e646f6d6e657373200110483235360000044446696c6c65642072616e646f6d6e6573734c52657175657374656452616e646f6d6e6573730c0128726571756573745f696418012452657175657374496400011073616c74200110483235360001187223747970654501013852616e646f6d6e65737354797065000104505265717565737465642072616e646f6d6e65737304a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090945010c6470616c6c65745f70726f766964655f72616e646f6d6e6573731474797065733852616e646f6d6e6573735479706500010c6c52616e646f6d6e65737346726f6d50726576696f7573426c6f636b0000006452616e646f6d6e65737346726f6d4f6e6545706f636841676f0001006852616e646f6d6e65737346726f6d54776f45706f63687341676f0002000049010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c748801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465780901010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736820013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200040450412070726f7879207761732072656d6f7665642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909094d010830676465765f72756e74696d652450726f78795479706500011024416c6d6f7374416e79000000305472616e736665724f6e6c790001002c43616e63656c50726f787900020064546563686e6963616c436f6d6d697474656550726f706f73650003000051010c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090955010c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001242050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000804cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909590108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200005d01000002200061010000028000650108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e6901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651101016473705f72756e74696d653a3a52756e74696d65537472696e670000690100000610006d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657318010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646534011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73710101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973790101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7101000002750100750100000408343400790100000234007d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2c01185765696768740001246d61785f626c6f636b2c01185765696768740001247065725f636c617373810101845065724469737061746368436c6173733c57656967687473506572436c6173733e000081010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454018501000c01186e6f726d616c850101045400012c6f7065726174696f6e616c85010104540001246d616e6461746f72798501010454000085010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632c01185765696768740001346d61785f65787472696e736963890101384f7074696f6e3c5765696768743e0001246d61785f746f74616c890101384f7074696f6e3c5765696768743e0001207265736572766564890101384f7074696f6e3c5765696768743e0000890104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100008d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178910101545065724469737061746368436c6173733c7533323e000091010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400009501082873705f776569676874733c52756e74696d65446257656967687400000801107265616418010c753634000114777269746518010c75363400009901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651101013452756e74696d65537472696e67000124696d706c5f6e616d651101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069739d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800009d01040c436f7704045401a101000400a101000000a101000002a50100a50100000408a9011000a901000003080000000800ad010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c6574b1010c5870616c6c65745f64756e697465725f6163636f756e741870616c6c65741043616c6c0404540001043c756e6c696e6b5f6964656e74697479000004bc756e6c696e6b20746865206964656e74697479206173736f636961746564207769746820746865206163636f756e74042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b901045300000400090301185665633c543e0000b90104184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd010000010000bd01084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c01c1012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01f102244163636f756e7449640100001401206d617962655f69648401304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc101011043616c6c0001386d617962655f706572696f646963cd0101944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ef102013450616c6c6574734f726967696e0000c10110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e64656404045401c501010c184c6567616379040110686173682001104861736800000018496e6c696e65040005030134426f756e646564496e6c696e65000100184c6f6f6b7570080110686173682001104861736800010c6c656e10010c75333200020000c5010830676465765f72756e74696d652c52756e74696d6543616c6c0001701853797374656d04006d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c4163636f756e740400b10101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4163636f756e742c2052756e74696d653e000100245363686564756c65720400c90101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00020010426162650400d10101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0003002454696d657374616d700400f90101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0004002042616c616e6365730400fd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000600384f6e6573686f744163636f756e740400110201cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f6e6573686f744163636f756e742c2052756e74696d653e00070040417574686f726974794d656d626572730400190201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f726974794d656d626572732c2052756e74696d653e000a001c53657373696f6e0400250201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000e001c4772616e6470610400290201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000f0020496d4f6e6c696e650400590201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001000105375646f0400790201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00140034557067726164654f726967696e04007d0201c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c557067726164654f726967696e2c2052756e74696d653e00150020507265696d6167650400810201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00160048546563686e6963616c436f6d6d69747465650400850201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e00170044556e6976657273616c4469766964656e640400890201d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e6976657273616c4469766964656e642c2052756e74696d653e001e00204964656e7469747904008d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e002900284d656d626572736869700400a50201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572736869702c2052756e74696d653e002a0010436572740400a90201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436572742c2052756e74696d653e002b002044697374616e63650400ad0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44697374616e63652c2052756e74696d653e002c003c536d6974684d656d626572736869700400c90201d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536d6974684d656d626572736869702c2052756e74696d653e00340024536d697468436572740400cd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536d697468436572742c2052756e74696d653e0035002841746f6d6963537761700400d10201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41746f6d6963537761702c2052756e74696d653e003c00204d756c74697369670400d50201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e003d004450726f7669646552616e646f6d6e6573730400dd0201d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646552616e646f6d6e6573732c2052756e74696d653e003e001450726f78790400e10201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e003f001c5574696c6974790400e90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0040002054726561737572790400010301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00410000c9010c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd0104184f7074696f6e04045401800108104e6f6e6500000010536f6d650400800000010000d1010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66d5010184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66d5010184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967ed0101504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d90108496401e101001001206f6666656e646572e10101084964000110736c6f74e5010110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d6265720110104861736801dd010014012c706172656e745f68617368200130486173683a3a4f75747075740001186e756d626572690101184e756d62657200012873746174655f726f6f74200130486173683a3a4f757470757400013c65787472696e736963735f726f6f74200130486173683a3a4f75747075740001186469676573743801184469676573740000dd010c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000e1010c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c69630000e501084873705f636f6e73656e7375735f736c6f747310536c6f740000040018010c7536340000e901082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573790101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e740000ed010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f7200010408563108010463f1010128287536342c2075363429000134616c6c6f7765645f736c6f7473f5010130416c6c6f776564536c6f747300010000f10100000408181800f501084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f747300020000f9010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77300124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e587365745f62616c616e63655f646570726563617465640c010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565300128543a3a42616c616e63650001306f6c645f7265736572766564300128543a3a42616c616e636500011855015365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e743b20697420616c736f2074616b657320612072657365727665642062616c616e6365206275742074686973ec6d757374206265207468652073616d6520617320746865206163636f756e7427732063757272656e742072657365727665642062616c616e63652e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e0009015741524e494e473a20546869732063616c6c206973204445505245434154454421205573652060666f7263655f7365745f62616c616e63656020696e73746561642e38666f7263655f7472616e736665720c0118736f75726365010201504163636f756e7449644c6f6f6b75704f663c543e00011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374010201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766501010110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f0d0201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e207472616e7366657208011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e636500070c3101416c69617320666f7220607472616e736665725f616c6c6f775f6465617468602c2070726f7669646564206f6e6c7920666f72206e616d652d7769736520636f6d7061746962696c6974792e0001015741524e494e473a2044455052454341544544212057696c6c2062652072656c656173656420696e20617070726f78696d6174656c792033206d6f6e7468732e44666f7263655f7365745f62616c616e636508010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565300128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e01020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578018c011408496404000001244163636f756e74496400000014496e6465780400050201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400090201205b75383b2032305d0004000005020000068c0009020000031400000008000d02000002000011020c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c65741043616c6c04045400010c586372656174655f6f6e6573686f745f6163636f756e74080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c75653001c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e6365000018c043726561746520616e206163636f756e7420746861742063616e206f6e6c7920626520636f6e73756d6564206f6e636500b02d206064657374603a20546865206f6e6573686f74206163636f756e7420746f20626520637265617465642e09012d206062616c616e6365603a205468652062616c616e636520746f206265207472616e73666572656420746f2074686973206f6e6573686f74206163636f756e742e00744f726967696e206163636f756e74206973206b65707420616c6976652e5c636f6e73756d655f6f6e6573686f745f6163636f756e74080130626c6f636b5f686569676874100138543a3a426c6f636b4e756d62657200011064657374150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e0001140101436f6e73756d652061206f6e6573686f74206163636f756e7420616e64207472616e73666572206974732062616c616e636520746f20616e206163636f756e7400fd012d2060626c6f636b5f686569676874603a204d757374206265206120726563656e7420626c6f636b206e756d6265722e20546865206c696d69742069732060426c6f636b48617368436f756e746020696e2074686520706173742e20287468697320697320746f2070726576656e74207265706c61792061747461636b7329882d206064657374603a205468652064657374696e6174696f6e206163636f756e742efd012d2060646573745f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e742069732063726561746564206174206064657374602e20456c73652c206064657374602068617320746f20626520616e206578697374696e67206163636f756e742e98636f6e73756d655f6f6e6573686f745f6163636f756e745f776974685f72656d61696e696e67100130626c6f636b5f686569676874100138543a3a426c6f636b4e756d62657200011064657374150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00013072656d61696e696e675f746f150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00011c62616c616e63653001c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63650002280901436f6e73756d652061206f6e6573686f74206163636f756e74207468656e207472616e7366657220736f6d6520616d6f756e7420746f20616e206163636f756e742cb0616e64207468652072656d61696e696e6720616d6f756e7420746f20616e6f74686572206163636f756e742e00c02d2060626c6f636b5f686569676874603a204d757374206265206120726563656e7420626c6f636b206e756d6265722e41012020546865206c696d69742069732060426c6f636b48617368436f756e746020696e2074686520706173742e20287468697320697320746f2070726576656e74207265706c61792061747461636b7329882d206064657374603a205468652064657374696e6174696f6e206163636f756e742efd012d2060646573745f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e742069732063726561746564206174206064657374602e20456c73652c206064657374602068617320746f20626520616e206578697374696e67206163636f756e742ea82d20606465737432603a20546865207365636f6e642064657374696e6174696f6e206163636f756e742e09022d206064657374325f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e74206973206372656174656420617420606465737432602e20456c73652c20606465737432602068617320746f20626520616e206578697374696e67206163636f756e742e61012d206062616c616e636531603a2054686520616d6f756e74207472616e73666572656420746f206064657374602c20746865206c6566746f766572206265696e67207472616e73666572656420746f20606465737432602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e15020c5870616c6c65745f6f6e6573686f745f6163636f756e741474797065731c4163636f756e7404244163636f756e7449640101020108184e6f726d616c0400010201244163636f756e7449640000001c4f6e6573686f740400010201244163636f756e7449640001000019020c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c65741043616c6c04045400011428676f5f6f66666c696e65000004d461736b20746f206c656176652074686520736574206f662076616c696461746f72732074776f2073657373696f6e7320616674657224676f5f6f6e6c696e65000104d061736b20746f206a6f696e2074686520736574206f662076616c696461746f72732074776f2073657373696f6e73206166746572407365745f73657373696f6e5f6b6579730401106b6579731d02011c543a3a4b657973000204c06465636c617265206e65772073657373696f6e206b65797320746f207265706c6163652063757272656e74206f6e65733472656d6f76655f6d656d6265720401246d656d6265725f696410012c543a3a4d656d6265724964000304b872656d6f766520616e206964656e746974792066726f6d2074686520736574206f6620617574686f7269746965737072656d6f76655f6d656d6265725f66726f6d5f626c61636b6c6973740401246d656d6265725f696410012c543a3a4d656d62657249640004049472656d6f766520616e206964656e746974792066726f6d2074686520626c61636b6c697374042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1d020c30676465765f72756e74696d65186f70617175652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265e10101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279210201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000021020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000025020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579731d02011c543a3a4b65797300011470726f6f6634011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f662d0201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f662d0201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e2d02085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480120044e0110000801187365745f6964180114536574496400013065717569766f636174696f6e3102014845717569766f636174696f6e3c482c204e3e00003102085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480120044e011001081c507265766f7465040035020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d697404004d020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100003502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc04560139020453013d0200100130726f756e645f6e756d62657218010c7536340001206964656e74697479cc0108496400011466697273744902011828562c2053290001187365636f6e644902011828562c20532900003902084066696e616c6974795f6772616e6470611c507265766f74650804480120044e01100008012c7461726765745f68617368200104480001347461726765745f6e756d6265721001044e00003d020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040041020148656432353531393a3a5369676e6174757265000041020c1c73705f636f72651c65643235353139245369676e617475726500000400450201205b75383b2036345d0000450200000340000000080049020000040839023d02004d02084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc04560151020453013d0200100130726f756e645f6e756d62657218010c7536340001206964656e74697479cc0108496400011466697273745502011828562c2053290001187365636f6e645502011828562c20532900005102084066696e616c6974795f6772616e64706124507265636f6d6d69740804480120044e01100008012c7461726765745f68617368200104480001347461726765745f6e756d6265721001044e000055020000040851023d020059020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c040454000104246865617274626561740801246865617274626561745d0201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265710201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d02084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465610201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c753332000061020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964650201304f706171756550656572496400014865787465726e616c5f616464726573736573690201505665633c4f70617175654d756c7469616464723e00006502081c73705f636f7265304f70617175655065657249640000040034011c5665633c75383e000069020000026d02006d020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040034011c5665633c75383e00007102104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e61747572650000040075020148737232353531393a3a5369676e6174757265000075020c1c73705f636f72651c73723235353139245369676e617475726500000400450201205b75383b2036345d000079020c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000018350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e547375646f5f756e636865636b65645f77656967687408011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001187765696768742c0118576569676874000120350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e1c7365745f6b657904010c6e6577010201504163636f756e7449644c6f6f6b75704f663c543e00021c5d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e1c7375646f5f617308010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00031c4d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d020c5470616c6c65745f757067726164655f6f726967696e1870616c6c65741043616c6c0404540001084064697370617463685f61735f726f6f7404011063616c6cc5010160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00000cb04469737061746368657320612066756e6374696f6e2063616c6c2066726f6d20726f6f74206f726967696e2e00c454686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e8464697370617463685f61735f726f6f745f756e636865636b65645f77656967687408011063616c6cc5010160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0001187765696768742c0118576569676874000114b04469737061746368657320612066756e6374696f6e2063616c6c2066726f6d20726f6f74206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865a463616c6c657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c454686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e81020c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000110346e6f74655f707265696d616765040114627974657334011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736820011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736820011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736820011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572730d0201445665633c543a3a4163636f756e7449643e0001147072696d65f001504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616cc501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646901010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c646901012c4d656d626572436f756e7400012070726f706f73616cc501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646901010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c20011c543a3a48617368000114696e6465786901013450726f706f73616c496e64657800011c617070726f766501010110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736820011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736820011c543a3a48617368000114696e6465786901013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642c01185765696768740001306c656e6774685f626f756e646901010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e89020c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c65741043616c6c04045400010c24636c61696d5f75647300000464436c61696d20556e6976657273616c204469766964656e64732c7472616e736665725f7564080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756530013042616c616e63654f663c543e00010405015472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742c20696e206d696c6c6955442e587472616e736665725f75645f6b6565705f616c697665080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756530013042616c616e63654f663c543e00020405015472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742c20696e206d696c6c6955442e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8d020c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c0404540001243c6372656174655f6964656e746974790401246f776e65725f6b6579000130543a3a4163636f756e744964000014a843726561746520616e206964656e7469747920666f7220616e206578697374696e67206163636f756e740025012d20606f776e65725f6b6579603a20746865207075626c6963206b657920636f72726573706f6e64696e6720746f20746865206964656e7469747920746f206265206372656174656400c4546865206f726967696e206d75737420626520616c6c6f77656420746f2063726561746520616e206964656e746974792e40636f6e6669726d5f6964656e74697479040124696474795f6e616d6511010120496474794e616d65000114d8436f6e6669726d20746865206372656174696f6e206f6620616e206964656e7469747920616e6420676976652069742061206e616d6500d5012d2060696474795f6e616d65603a20746865206e616d6520756e697175656c79206173736f63696174656420746f2074686973206964656e746974792e204d757374206d61746368207468652076616c69646174696f6e2072756c657320646566696e6564206279207468652072756e74696d652e005d01546865206964656e74697479206d7573742068617665206265656e2063726561746564207573696e6720606372656174655f6964656e7469747960206265666f72652069742063616e20626520636f6e6669726d65642e4476616c69646174655f6964656e74697479040128696474795f696e646578100130543a3a49647479496e646578000204050176616c696461746520746865206f776e6564206964656e7469747920286d757374206d65657420746865206d61696e20776f7420726571756972656d656e747329406368616e67655f6f776e65725f6b657908011c6e65775f6b6579000130543a3a4163636f756e74496400012c6e65775f6b65795f73696791020130543a3a5369676e617475726500031c684368616e6765206964656e74697479206f776e6572206b65792e007c2d20606e65775f6b6579603a20746865206e6577206f776e6572206b65792e49012d20606e65775f6b65795f736967603a20746865207369676e6174757265206f662074686520656e636f64656420666f726d206f66206049647479496e6465784163636f756e7449645061796c6f6164602eb420202020202020202020202020202020204d757374206265207369676e656420627920606e65775f6b6579602e00c0546865206f726967696e2073686f756c6420626520746865206f6c64206964656e74697479206f776e6572206b65792e3c7265766f6b655f6964656e746974790c0128696474795f696e646578100130543a3a49647479496e6465780001387265766f636174696f6e5f6b6579000130543a3a4163636f756e7449640001387265766f636174696f6e5f73696791020130543a3a5369676e6174757265000420bc5265766f6b6520616e206964656e74697479207573696e672061207265766f636174696f6e207369676e617475726500e02d2060696474795f696e646578603a2074686520696e646578206f6620746865206964656e7469747920746f206265207265766f6b65642e01012d20607265766f636174696f6e5f6b6579603a20746865206b6579207573656420746f207369676e20746865207265766f636174696f6e207061796c6f61642e35012d20607265766f636174696f6e5f736967603a20746865207369676e6174757265206f662074686520656e636f64656420666f726d206f6620605265766f636174696f6e5061796c6f6164602edc20202020202020202020202020202020202020204d757374206265207369676e656420627920607265766f636174696f6e5f6b6579602e00a0416e79207369676e6564206f726967696e2063616e206578656375746520746869732063616c6c2e3c72656d6f76655f6964656e746974790c0128696474795f696e646578100130543a3a49647479496e646578000124696474795f6e616d659d0201404f7074696f6e3c496474794e616d653e000118726561736f6e150101b04964747952656d6f76616c526561736f6e3c543a3a4964747952656d6f76616c4f74686572526561736f6e3e0005047c72656d6f766520616e206964656e746974792066726f6d2073746f726167656c7072756e655f6974656d5f6964656e7469746965735f6e616d65730401146e616d6573a10201345665633c496474794e616d653e0006048872656d6f7665206964656e74697479206e616d65732066726f6d2073746f726167653c6669785f73756666696369656e74730801246f776e65725f6b6579000130543a3a4163636f756e74496400010c696e6301010110626f6f6c000704a46368616e67652073756666696369656e742072656620636f756e7420666f7220676976656e206b6579306c696e6b5f6163636f756e740801286163636f756e745f6964000130543a3a4163636f756e74496400012c7061796c6f61645f73696791020130543a3a5369676e6174757265000804784c696e6b20616e206163636f756e7420746f20616e206964656e74697479042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9102082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040041020148656432353531393a3a5369676e61747572650000001c53723235353139040075020148737232353531393a3a5369676e617475726500010014456364736104009502014065636473613a3a5369676e61747572650002000095020c1c73705f636f7265146563647361245369676e617475726500000400990201205b75383b2036355d000099020000034100000008009d0204184f7074696f6e0404540111010108104e6f6e6500000010536f6d65040011010000010000a102000002110100a5020c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011048726571756573745f6d656d62657273686970000008ec7375626d69742061206d656d62657273686970207265717565737420286d75737420686176652061206465636c61726564206964656e7469747929d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f742940636c61696d5f6d656d6265727368697000011448636c61696d206d656d6265727368697020208c612070656e64696e67206d656d626572736869702073686f756c642065786973742020d46974206d7573742066756c6c66696c6c2074686520726571756972656d656e7473202863657274732c2064697374616e63652920204101666f72206d61696e20776f7420636c61696d5f6d656d626572736869702069732063616c6c6564206175746f6d61746963616c6c79207768656e2076616c69646174696e67206964656e746974792020dc666f7220736d69746820776f742c206974206d65616e73206a6f696e696e672074686520617574686f72697479206d656d6265727320204072656e65775f6d656d62657273686970000204c8657874656e64207468652076616c696469747920706572696f64206f6620616e20616374697665206d656d62657273686970447265766f6b655f6d656d626572736869700003086c7265766f6b6520616e20616374697665206d656d62657273686970d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea9020c5070616c6c65745f63657274696669636174696f6e1870616c6c65741043616c6c08045400044900010c206164645f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e646578000014c04164642061206e65772063657274696669636174696f6e206f722072656e657720616e206578697374696e67206f6e650015012d20607265636569766572603a20746865206163636f756e7420726563656976696e67207468652063657274696669636174696f6e2066726f6d20746865206f726967696e0090546865206f726967696e206d75737420626520616c6c6f7720746f20636572746966792e2064656c5f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780001048872656d6f766520612063657274696669636174696f6e20286f6e6c7920726f6f74297072656d6f76655f616c6c5f63657274735f72656365697665645f6279040128696474795f696e646578100130543a3a49647479496e646578000204f472656d6f766520616c6c2063657274696669636174696f6e7320726563656976656420627920616e206964656e7469747920286f6e6c7920726f6f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ead020c3c70616c6c65745f64697374616e63651870616c6c65741043616c6c0404540001106c726571756573745f64697374616e63655f6576616c756174696f6e0000048c5265717565737420616e206964656e7469747920746f206265206576616c7561746564447570646174655f6576616c756174696f6e040148636f6d7075746174696f6e5f726573756c74b1020144436f6d7075746174696f6e526573756c74000104c028496e686572656e7429205075736820616e206576616c756174696f6e20726573756c7420746f2074686520706f6f6c5c666f7263655f7570646174655f6576616c756174696f6e0801246576616c7561746f720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000148636f6d7075746174696f6e5f726573756c74b1020144436f6d7075746174696f6e526573756c74000204945075736820616e206576616c756174696f6e20726573756c7420746f2074686520706f6f6c64666f7263655f7365745f64697374616e63655f7374617475730801206964656e746974791001a43c542061732070616c6c65745f6964656e746974793a3a436f6e6669673e3a3a49647479496e646578000118737461747573bd020101014f7074696f6e3c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2044697374616e6365537461747573293e00031cc4536574207468652064697374616e6365206576616c756174696f6e20737461747573206f6620616e206964656e7469747900a452656d6f766573207468652073746174757320696620607374617475736020697320604e6f6e65602e0031012a20607374617475732e306020697320746865206163636f756e7420666f722077686f6d207468652070726963652077696c6c20626520756e7265736572766564206f7220736c61736865648020207768656e20746865206576616c756174696f6e20636f6d706c657465732eb42a20607374617475732e31602069732074686520737461747573206f6620746865206576616c756174696f6e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb102082c73705f64697374616e636544436f6d7075746174696f6e526573756c74000004012464697374616e636573b50201305665633c50657262696c6c3e0000b502000002b90200b9020c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd0204184f7074696f6e04045401c1020108104e6f6e6500000010536f6d650400c1020000010000c1020000040800c50200c5020c3c70616c6c65745f64697374616e63651474797065733844697374616e63655374617475730001081c50656e64696e670000001456616c696400010000c9020c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011048726571756573745f6d656d62657273686970000008ec7375626d69742061206d656d62657273686970207265717565737420286d75737420686176652061206465636c61726564206964656e7469747929d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f742940636c61696d5f6d656d6265727368697000011448636c61696d206d656d6265727368697020208c612070656e64696e67206d656d626572736869702073686f756c642065786973742020d46974206d7573742066756c6c66696c6c2074686520726571756972656d656e7473202863657274732c2064697374616e63652920204101666f72206d61696e20776f7420636c61696d5f6d656d626572736869702069732063616c6c6564206175746f6d61746963616c6c79207768656e2076616c69646174696e67206964656e746974792020dc666f7220736d69746820776f742c206974206d65616e73206a6f696e696e672074686520617574686f72697479206d656d6265727320204072656e65775f6d656d62657273686970000204c8657874656e64207468652076616c696469747920706572696f64206f6620616e20616374697665206d656d62657273686970447265766f6b655f6d656d626572736869700003086c7265766f6b6520616e20616374697665206d656d62657273686970d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd020c5070616c6c65745f63657274696669636174696f6e1870616c6c65741043616c6c08045400044900010c206164645f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e646578000014c04164642061206e65772063657274696669636174696f6e206f722072656e657720616e206578697374696e67206f6e650015012d20607265636569766572603a20746865206163636f756e7420726563656976696e67207468652063657274696669636174696f6e2066726f6d20746865206f726967696e0090546865206f726967696e206d75737420626520616c6c6f7720746f20636572746966792e2064656c5f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780001048872656d6f766520612063657274696669636174696f6e20286f6e6c7920726f6f74297072656d6f76655f616c6c5f63657274735f72656365697665645f6279040128696474795f696e646578100130543a3a49647479496e646578000204f472656d6f766520616c6c2063657274696669636174696f6e7320726563656976656420627920616e206964656e7469747920286f6e6c7920726f6f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed1020c4870616c6c65745f61746f6d69635f737761701870616c6c65741043616c6c04045400010c2c6372656174655f73776170100118746172676574000130543a3a4163636f756e7449640001306861736865645f70726f6f6604012c48617368656450726f6f66000118616374696f6e35010134543a3a53776170416374696f6e0001206475726174696f6e100138543a3a426c6f636b4e756d626572000030590152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e642066756e64732066726f6d206f726967696e20746f2074617267657455016f6e207468652063757272656e7420626c6f636b636861696e2e20546865207461726765742063616e20636c61696d207468652066756e64207573696e67207468652072657665616c65642070726f6f662e20496655017468652066756e64206973206e6f7420636c61696d656420616674657220606475726174696f6e6020626c6f636b732c207468656e207468652073656e6465722063616e2063616e63656c2074686520737761702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060746172676574603a205265636569766572206f66207468652061746f6d696320737761702ee82d20606861736865645f70726f6f66603a2054686520626c616b65325f3235362068617368206f6620746865207365637265742070726f6f662ea82d206062616c616e6365603a2046756e647320746f2062652073656e742066726f6d206f726967696e2e5d012d20606475726174696f6e603a204c6f636b6564206475726174696f6e206f66207468652061746f6d696320737761702e20466f722073616665747920726561736f6e732c206974206973207265636f6d6d656e6465644501202074686174207468652072657665616c6572207573657320612073686f72746572206475726174696f6e207468616e2074686520636f756e74657270617274792c20746f2070726576656e74207468653d012020736974756174696f6e207768657265207468652072657665616c65722072657665616c73207468652070726f6f6620746f6f206c6174652061726f756e642074686520656e6420626c6f636b2e28636c61696d5f7377617008011470726f6f6634011c5665633c75383e000118616374696f6e35010134543a3a53776170416374696f6e00011c54436c61696d20616e2061746f6d696320737761702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e009c2d206070726f6f66603a2052657665616c65642070726f6f66206f662074686520636c61696d2e61012d2060616374696f6e603a20416374696f6e20646566696e656420696e2074686520737761702c206974206d757374206d617463682074686520656e74727920696e20626c6f636b636861696e2e204f7468657277697365ec2020746865206f7065726174696f6e206661696c732e2054686973206973207573656420666f72207765696768742063616c63756c6174696f6e2e2c63616e63656c5f73776170080118746172676574000130543a3a4163636f756e7449640001306861736865645f70726f6f6604012c48617368656450726f6f66000218490143616e63656c20616e2061746f6d696320737761702e204f6e6c7920706f737369626c6520616674657220746865206f726967696e616c6c7920736574206475726174696f6e20686173207061737365642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00bc2d2060746172676574603a20546172676574206f6620746865206f726967696e616c2061746f6d696320737761702eec2d20606861736865645f70726f6f66603a204861736865642070726f6f66206f6620746865206f726967696e616c2061746f6d696320737761702e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed5020c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90201844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f7765696768742c011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90201844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742c01185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90204184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d010000010000dd020c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c65741043616c6c0404540001041c7265717565737408013c72616e646f6d6e6573735f747970654501013852616e646f6d6e6573735479706500011073616c7420011048323536000004505265717565737420612072616e646f6d6e657373042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c010201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065e50201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465780901010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f787954797065000114696e6465780901010c75313600011868656967687469010138543a3a426c6f636b4e756d6265720001246578745f696e6465786901010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c010201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065e50201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50204184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d010000010000e9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465780901010c75313600011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696ef1020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001187765696768742c0118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed02000002c50100f1020830676465765f72756e74696d65304f726967696e43616c6c657200010c1873797374656d0400f50201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000048546563686e6963616c436f6d6d69747465650400f90201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00170010566f69640400fd0201110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400020000f5020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000f902084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000fd02081c73705f636f726510566f69640001000001030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001143470726f706f73655f7370656e6408011476616c756530013c42616c616e63654f663c542c20493e00012c62656e6566696369617279010201504163636f756e7449644c6f6f6b75704f663c543e000018290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e0034232320436f6d706c6578697479182d204f2831293c72656a6563745f70726f706f73616c04012c70726f706f73616c5f69646901013450726f706f73616c496e646578000118f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e0034232320436f6d706c6578697479182d204f28312940617070726f76655f70726f706f73616c04012c70726f706f73616c5f69646901013450726f706f73616c496e64657800021c5901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e0034232320436f6d706c657869747920202d204f2831292e147370656e64080118616d6f756e7430013c42616c616e63654f663c542c20493e00012c62656e6566696369617279010201504163636f756e7449644c6f6f6b75704f663c543e000320b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e004d012d20606f726967696e603a204d75737420626520605370656e644f726967696e60207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e0045014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69646901013450726f706f73616c496e6465780004342d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652ec0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602ea02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c0034232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c73001c4572726f72733a61012d206050726f706f73616c4e6f74417070726f766564603a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686520617070726f76616c2071756575652c5101692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468652070726f706f73616c20646f6573206e6f745901657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f76656420696e2074686520666972737420706c6163652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00000903000002b901000d030c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090911030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454011503045300000400190301185665633c543e0000150300000408e101180019030000021503001d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400210301185665633c543e000021030000020400250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d61727904002d0301405072696d617279507265446967657374000100385365636f6e64617279506c61696e04003503015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400390301545365636f6e64617279565246507265446967657374000300002d030c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f740001347672665f7369676e6174757265310301305672665369676e617475726500003103101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f664502012056726650726f6f66000035030c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f74000039030c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f740001347672665f7369676e6174757265310301305672665369676e617475726500003d03084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e000008010463f1010128287536342c2075363429000134616c6c6f7765645f736c6f7473f5010130416c6c6f776564536c6f7473000041030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014503045300000400490301185665633c543e000045030000040818100049030000024503004d030c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090951030c7870616c6c65745f64756e697465725f746573745f706172616d657465727314747970657328506172616d65746572730c2c426c6f636b4e756d62657201102443657274436f756e7401102c506572696f64436f756e7401180058014c626162655f65706f63685f6475726174696f6e18012c506572696f64436f756e7400012c636572745f706572696f6410012c426c6f636b4e756d626572000148636572745f6d61785f62795f69737375657210012443657274436f756e74000190636572745f6d696e5f72656365697665645f636572745f746f5f69737375655f6365727410012443657274436f756e74000150636572745f76616c69646974795f706572696f6410012c426c6f636b4e756d62657200014c696474795f636f6e6669726d5f706572696f6410012c426c6f636b4e756d626572000150696474795f6372656174696f6e5f706572696f6410012c426c6f636b4e756d6265720001446d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200016470656e64696e675f6d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200014875645f6372656174696f6e5f706572696f6418012c506572696f64436f756e7400014075645f72656576616c5f706572696f6418012c506572696f64436f756e74000144736d6974685f636572745f706572696f6410012c426c6f636b4e756d626572000160736d6974685f636572745f6d61785f62795f69737375657210012443657274436f756e740001a8736d6974685f636572745f6d696e5f72656365697665645f636572745f746f5f69737375655f6365727410012443657274436f756e74000168736d6974685f636572745f76616c69646974795f706572696f6410012c426c6f636b4e756d62657200015c736d6974685f6d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200017c736d6974685f70656e64696e675f6d656d626572736869705f706572696f6410012c426c6f636b4e756d626572000180736d6974685f776f745f66697273745f636572745f6973737561626c655f6f6e10012c426c6f636b4e756d626572000184736d6974685f776f745f6d696e5f636572745f666f725f6d656d6265727368697010012443657274436f756e74000168776f745f66697273745f636572745f6973737561626c655f6f6e10012c426c6f636b4e756d626572000188776f745f6d696e5f636572745f666f725f6372656174655f696474795f726967687410012443657274436f756e7400016c776f745f6d696e5f636572745f666f725f6d656d6265727368697010012443657274436f756e74000055030c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c616773590301284578747261466c616773000059030c3c70616c6c65745f62616c616e636573147479706573284578747261466c616773000004005d0301107531323800005d03000005070061030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540165030453000004006d0301185665633c543e000065030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964a90101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e736903011c526561736f6e73000069030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200006d0300000265030071030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017503045300000400790301185665633c543e000075030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201a9011c42616c616e63650118000801086964a9010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000079030000027503007d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018103045300000400850301185665633c543e000081030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964018c1c42616c616e636501180008010869648c01084964000118616d6f756e7418011c42616c616e63650000850300000281030089030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909098d030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004005d0301107531323800009103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000095030c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c6574144572726f7204045400011c4c426c6f636b486569676874496e46757475726500000474426c6f636b2068656967687420697320696e207468652066757475726544426c6f636b486569676874546f6f4f6c640001045c426c6f636b2068656967687420697320746f6f206f6c644c446573744163636f756e744e6f7445786973740002048844657374696e6174696f6e206163636f756e7420646f6573206e6f74206578697374484578697374656e7469616c4465706f736974000304f444657374696e6174696f6e206163636f756e74206861732062616c616e6365206c657373207468616e206578697374656e7469616c206465706f7369744c496e73756666696369656e7442616c616e63650004049c536f75726365206163636f756e742068617320696e73756666696369656e742062616c616e6365704f6e6573686f744163636f756e74416c726561647943726561746564000504a844657374696e6174696f6e206f6e6573686f74206163636f756e7420616c726561647920657869737473584f6e6573686f744163636f756e744e6f74457869737400060494536f75726365206f6e6573686f74206163636f756e7420646f6573206e6f7420657869737404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090999030c3070616c6c65745f71756f74611870616c6c65741451756f7461082c426c6f636b4e756d62657201101c42616c616e63650118000801206c6173745f75736510012c426c6f636b4e756d626572000118616d6f756e7418011c42616c616e636500009d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a103045300000400a50301185665633c543e0000a1030c3070616c6c65745f71756f74611870616c6c657418526566756e640c244163636f756e74496401001849647479496401101c42616c616e63650118000c011c6163636f756e740001244163636f756e7449640001206964656e74697479100118496474794964000118616d6f756e7418011c42616c616e63650000a503000002a10300a9030c6070616c6c65745f617574686f726974795f6d656d62657273147479706573284d656d6265724461746104244163636f756e7449640100000401246f776e65725f6b65790001244163636f756e7449640000ad030c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c6574144572726f720404540001303c416c7265616479496e636f6d696e6700000440416c726561647920696e636f6d696e6734416c72656164794f6e6c696e6500010438416c7265616479206f6e6c696e653c416c72656164794f7574676f696e6700020440416c7265616479206f7574676f696e67404d656d62657249644e6f74466f756e640003044c4e6f7420666f756e64206f776e6572206b65794c4d656d6265724964426c61636b4c6973746564000404544d656d62657220697320626c61636b6c6973746564504d656d6265724e6f74426c61636b4c6973746564000504644d656d626572206973206e6f7420626c61636b6c6973746564384d656d6265724e6f74466f756e64000604404d656d626572206e6f7420666f756e64504e6f744f6e6c696e654e6f72496e636f6d696e67000704704e656974686572206f6e6c696e65206e6f72207363686564756c6564204e6f744f776e6572000804244e6f74206f776e6572244e6f744d656d626572000904284e6f74206d656d6265725853657373696f6e4b6579734e6f7450726f7669646564000a046453657373696f6e206b657973206e6f742070726f766964656448546f6f4d616e79417574686f726974696573000b0450546f6f206d616e2061417574686f72697469657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b1030c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572730d0201345665633c5265706f727465723e0000b50300000408b83400b903000002bd0300bd0300000408001d0200c10300000408c5033400c5030c1c73705f636f72651863727970746f244b65795479706549640000040044011c5b75383b20345d0000c9030c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ecd03083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000d103083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573d503016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365642401244f7074696f6e3c4e3e0000d5030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000d9030c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909dd030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400e10301185665633c543e0000e103000002d800e50310346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401e9030008006901000000e9030104540000e903084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964ed03019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573f103012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000ed030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003401185665633c543e0000f1030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401ed03045300000400f50301185665633c543e0000f503000002ed0300f90300000408100000fd030c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090901040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65740504083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974a00150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974a401704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e24012c4f7074696f6e3c7533323e000100000904000004082010000d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000011040c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400011818546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090915040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401200453000004005d0101185665633c543e00001904084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965730d0201385665633c4163636f756e7449643e0001106e6179730d0201385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d62657200001d040c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090921040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012504045300000400290401185665633c543e00002504000004080901180029040000022504002d040c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c6574144572726f720404540001046c4163636f756e744e6f74416c6c6f776564546f436c61696d556473000004a454686973206163636f756e74206973206e6f7420616c6c6f77656420746f20636c61696d205544732e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090931040c4870616c6c65745f64756e697465725f776f741870616c6c6574144572726f720804540004490001307c4e6f74456e6f7567684365727473546f436c61696d4d656d62657273686970000004d84e6f7420656e6f7567682063657274696669636174696f6e7320726563656976656420746f20636c61696d206d656d626572736869703444697374616e63654e6f744f4b000104a844697374616e636520686173206e6f74206265656e206576616c756174656420706f7369746976656c7984496474794e6f74416c6c6f776564546f526571756573744d656d62657273686970000204a84964656e74697479206e6f7420616c6c6f77656420746f2072657175657374206d656d626572736869707c496474794e6f74416c6c6f776564546f52656e65774d656d62657273686970000304a04964656e74697479206e6f7420616c6c6f77656420746f2072656e6577206d656d6265727368697078496474794372656174696f6e506572696f644e6f74526573706563746564000404984964656e74697479206372656174696f6e20706572696f64206e6f7420726573706563746564884e6f74456e6f75676852656365697665644365727473546f43726561746549647479000504d44e6f7420656e6f7567682072656365697665642063657274696669636174696f6e7320746f20637265617465206964656e74697479584d6178456d69747465644365727473526561636865640006048c4d6178206e756d626572206f6620656d69747465642063657274732072656163686564744e6f74416c6c6f776564546f4368616e67654964747941646472657373000704984e6f7420616c6c6f77656420746f206368616e6765206964656e746974792061646472657373584e6f74416c6c6f776564546f52656d6f766549647479000804784e6f7420616c6c6f77656420746f2072656d6f7665206964656e746974795049737375657243616e4e6f74456d697443657274000904d04973737565722063616e206e6f7420656d697420636572742062656361757365206974206973206e6f742076616c6964617465643c43657274546f556e646566696e6564000a041d0143616e206e6f74206973737565206365727420746f206964656e7469747920776974686f7574206d656d62657273686970206f722070656e64696e67206d656d6265727368697030496474794e6f74466f756e64000b0470497373756572206f72207265636569766572206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090935040c3c70616c6c65745f6964656e74697479147479706573244964747956616c75650c2c426c6f636b4e756d6265720110244163636f756e744964010020496474794461746101390400180110646174613904012049647479446174610001686e6578745f637265617461626c655f6964656e746974795f6f6e10012c426c6f636b4e756d6265720001346f6c645f6f776e65725f6b65793d0401804f7074696f6e3c284163636f756e7449642c20426c6f636b4e756d626572293e0001246f776e65725f6b65790001244163636f756e74496400013072656d6f7661626c655f6f6e10012c426c6f636b4e756d6265720001187374617475734504012849647479537461747573000039040c38636f6d6d6f6e5f72756e74696d6520656e746974696573204964747944617461000004014466697273745f656c696769626c655f7564090101a870616c6c65745f756e6976657273616c5f6469766964656e643a3a4669727374456c696769626c65556400003d0404184f7074696f6e0404540141040108104e6f6e6500000010536f6d6504004104000001000041040000040800100045040c3c70616c6c65745f6964656e74697479147479706573284964747953746174757300010c1c4372656174656400000040436f6e6669726d656442794f776e65720001002456616c6964617465640002000049040000024d04004d04000004081045040051040c3c70616c6c65745f6964656e746974791870616c6c6574144572726f720404540001545049647479416c7265616479436f6e6669726d6564000004684964656e7469747920616c726561647920636f6e6669726d65644849647479416c726561647943726561746564000104604964656e7469747920616c726561647920637265617465645049647479416c726561647956616c696461746564000204684964656e7469747920616c72656164792076616c69646174656458496474794372656174696f6e4e6f74416c6c6f776564000304c0596f7520617265206e6f7420616c6c6f77656420746f206372656174652061206e6577206964656e74697479206e6f774449647479496e6465784e6f74466f756e64000404604964656e7469747920696e646578206e6f7420666f756e6450496474794e616d65416c72656164794578697374000504704964656e74697479206e616d6520616c7265616479206578697374733c496474794e616d65496e76616c696400060454496e76616c6964206964656e74697479206e616d655c496474794e6f74436f6e6669726d656442794f776e65720007048c4964656e74697479206e6f7420636f6e6669726d656420627920697473206f776e657230496474794e6f74466f756e64000804484964656e74697479206e6f7420666f756e6434496474794e6f744d656d6265720009044c4964656e74697479206e6f74206d656d62657240496474794e6f7456616c696461746564000a04584964656e74697479206e6f742076616c6964617465644c496474794e6f7459657452656e657761626c65000b04684964656e74697479206e6f74207965742072656e657761626c6540496e76616c69645369676e6174757265000c04707061796c6f6164207369676e617475726520697320696e76616c696450496e76616c69645265766f636174696f6e4b6579000d04645265766f636174696f6e206b657920697320696e76616c6964704e6f7452657370656374496474794372656174696f6e506572696f64000e04a44964656e74697479206372656174696f6e20706572696f64206973206e6f74207265737065637465643c4e6f7453616d65496474794e616d65000f04684e6f74207468652073616d65206964656e74697479206e616d65784f776e65724b6579416c7265616479526563656e746c794368616e676564001004884f776e6572206b657920616c726561647920726563656e746c79206368616e6765644c4f776e65724b6579416c726561647955736564001104584f776e6572206b657920616c726561647920757365647050726f68696269746564546f526576657274546f416e4f6c644b65790012048850726f6869626974656420746f2072657665727420746f20616e206f6c64206b6579445269676874416c726561647941646465640013044c526967687420616c72656164792061646465643452696768744e6f74457869737400140450526967687420646f6573206e6f7420657869737404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095504083473705f6d656d62657273686970384d656d6265727368697044617461042c426c6f636b4e756d6265720110000401246578706972655f6f6e10012c426c6f636b4e756d626572000059040c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f72080454000449000118384964747949644e6f74466f756e64000004544964656e74697479206964206e6f7420666f756e64644d656d62657273686970416c726561647941637175697265640001046c4d656d6265727368697020616c7265616479206163717569726564684d656d62657273686970416c7265616479526571756573746564000204704d656d6265727368697020616c726561647920726571756573746564484d656d626572736869704e6f74466f756e64000304504d656d62657273686970206e6f7420666f756e64644f726967696e4e6f74416c6c6f776564546f557365496474790004049c4f726967696e206e6f7420616c6c6f77656420746f207573652074686973206964656e74697479644d656d62657273686970526571756573744e6f74466f756e64000504704d656d626572736869702072657175657374206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095d040c5070616c6c65745f63657274696669636174696f6e1474797065733049647479436572744d657461042c426c6f636b4e756d6265720110000c01306973737565645f636f756e7410010c7533320001406e6578745f6973737561626c655f6f6e10012c426c6f636b4e756d62657200013872656365697665645f636f756e7410010c753332000061040c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144572726f720804540004490001144443616e6e6f744365727469667953656c6600000484416e206964656e746974792063616e6e6f74206365727469667920697473656c6644497373756564546f6f4d616e7943657274000104150154686973206964656e746974792068617320616c72656164792069737375656420746865206d6178696d756d206e756d626572206f662063657274696669636174696f6e73384973737565724e6f74466f756e6400020440497373756572206e6f7420666f756e64544e6f74456e6f756768436572745265636569766564000304884e6f7420656e6f7567682063657274696669636174696f6e73207265636569766564504e6f745265737065637443657274506572696f64000404f454686973206964656e746974792068617320616c72656164792069737375656420612063657274696669636174696f6e20746f6f20726563656e746c7904b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090965040c3c70616c6c65745f64697374616e6365147479706573384576616c756174696f6e506f6f6c08244163636f756e74496401002449647479496e64657801100008012c6576616c756174696f6e73690401bd01426f756e6465645665633c2849647479496e6465782c204d656469616e4163633c50657262696c6c2c204d41585f4556414c5541544f52535f5045525f53455353494f4e3e292c0a436f6e73745533323c4d41585f4556414c554154494f4e535f5045525f53455353494f4e3e2c3e0001286576616c7561746f72738504010101426f756e64656442547265655365743c4163636f756e7449642c20436f6e73745533323c4d41585f4556414c5541544f52535f5045525f53455353494f4e3e3e000069040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400810401185665633c543e00006d04000004081071040071040c3c70616c6c65745f64697374616e6365186d656469616e244d656469616e41636304045401b902000c011c73616d706c657375040184426f756e6465645665633c28542c20753332292c20436f6e73745533323c533e3e0001306d656469616e5f696e64657824012c4f7074696f6e3c7533323e00013c6d656469616e5f737562696e64657810010c753332000075040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540179040453000004007d0401185665633c543e0000790400000408b90210007d0400000279040081040000026d040085040c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004008904012c42547265655365743c543e000089040420425472656553657404045401000004000d020000008d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400b001185665633c543e000091040c3c70616c6c65745f64697374616e63651870616c6c6574144572726f720404540001284c416c7265616479496e4576616c756174696f6e0000003443616e6e6f74526573657276650001005c4d616e794576616c756174696f6e734279417574686f72000200584d616e794576616c756174696f6e73496e426c6f636b000300204e6f417574686f72000400284e6f4964656e74697479000500604e6f6e456c696769626c65466f724576616c756174696f6e00060024517565756546756c6c00070044546f6f4d616e794576616c7561746f72730008004457726f6e67526573756c744c656e67746800090004b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090995040c4870616c6c65745f64756e697465725f776f741870616c6c6574144572726f720804540004490001307c4e6f74456e6f7567684365727473546f436c61696d4d656d62657273686970000004d84e6f7420656e6f7567682063657274696669636174696f6e7320726563656976656420746f20636c61696d206d656d626572736869703444697374616e63654e6f744f4b000104a844697374616e636520686173206e6f74206265656e206576616c756174656420706f7369746976656c7984496474794e6f74416c6c6f776564546f526571756573744d656d62657273686970000204a84964656e74697479206e6f7420616c6c6f77656420746f2072657175657374206d656d626572736869707c496474794e6f74416c6c6f776564546f52656e65774d656d62657273686970000304a04964656e74697479206e6f7420616c6c6f77656420746f2072656e6577206d656d6265727368697078496474794372656174696f6e506572696f644e6f74526573706563746564000404984964656e74697479206372656174696f6e20706572696f64206e6f7420726573706563746564884e6f74456e6f75676852656365697665644365727473546f43726561746549647479000504d44e6f7420656e6f7567682072656365697665642063657274696669636174696f6e7320746f20637265617465206964656e74697479584d6178456d69747465644365727473526561636865640006048c4d6178206e756d626572206f6620656d69747465642063657274732072656163686564744e6f74416c6c6f776564546f4368616e67654964747941646472657373000704984e6f7420616c6c6f77656420746f206368616e6765206964656e746974792061646472657373584e6f74416c6c6f776564546f52656d6f766549647479000804784e6f7420616c6c6f77656420746f2072656d6f7665206964656e746974795049737375657243616e4e6f74456d697443657274000904d04973737565722063616e206e6f7420656d697420636572742062656361757365206974206973206e6f742076616c6964617465643c43657274546f556e646566696e6564000a041d0143616e206e6f74206973737565206365727420746f206964656e7469747920776974686f7574206d656d62657273686970206f722070656e64696e67206d656d6265727368697030496474794e6f74466f756e64000b0470497373756572206f72207265636569766572206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090999040c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f72080454000449000118384964747949644e6f74466f756e64000004544964656e74697479206964206e6f7420666f756e64644d656d62657273686970416c726561647941637175697265640001046c4d656d6265727368697020616c7265616479206163717569726564684d656d62657273686970416c7265616479526571756573746564000204704d656d6265727368697020616c726561647920726571756573746564484d656d626572736869704e6f74466f756e64000304504d656d62657273686970206e6f7420666f756e64644f726967696e4e6f74416c6c6f776564546f557365496474790004049c4f726967696e206e6f7420616c6c6f77656420746f207573652074686973206964656e74697479644d656d62657273686970526571756573744e6f74466f756e64000504704d656d626572736869702072657175657374206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909099d040c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144572726f720804540004490001144443616e6e6f744365727469667953656c6600000484416e206964656e746974792063616e6e6f74206365727469667920697473656c6644497373756564546f6f4d616e7943657274000104150154686973206964656e746974792068617320616c72656164792069737375656420746865206d6178696d756d206e756d626572206f662063657274696669636174696f6e73384973737565724e6f74466f756e6400020440497373756572206e6f7420666f756e64544e6f74456e6f756768436572745265636569766564000304884e6f7420656e6f7567682063657274696669636174696f6e73207265636569766564504e6f745265737065637443657274506572696f64000404f454686973206964656e746974792068617320616c72656164792069737375656420612063657274696669636174696f6e20746f6f20726563656e746c7904b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a10400000408000400a5040c4870616c6c65745f61746f6d69635f737761701870616c6c6574144572726f7204045400012030416c72656164794578697374000004505377617020616c7265616479206578697374732e30496e76616c696450726f6f6600010458537761702070726f6f6620697320696e76616c69642e3450726f6f66546f6f4c617267650002044c50726f6f6620697320746f6f206c617267652e38536f757263654d69736d6174636800030458536f7572636520646f6573206e6f74206d617463682e38416c7265616479436c61696d656400040478537761702068617320616c7265616479206265656e20636c61696d65642e204e6f744578697374000504505377617020646f6573206e6f742065786973742e4c436c61696d416374696f6e4d69736d6174636800060458436c61696d20616374696f6e206d69736d617463682e444475726174696f6e4e6f74506173736564000704e44475726174696f6e20686173206e6f74207965742070617373656420666f7220746865207377617020746f2062652063616e63656c6c65642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a904083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e3d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73ad04018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000ad040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004000d0201185665633c543e0000b1040c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b504000002b90400b9040c6470616c6c65745f70726f766964655f72616e646f6d6e6573731474797065731c526571756573740000080128726571756573745f696418012452657175657374496400011073616c74200110483235360000bd040c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c6574144572726f720404540001042446756c6c5175657565000004945468652071756575652069732066756c6c2c20706c65617379207265747279206c6174657204b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909c10400000408c5041800c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c904045300000400cd0401185665633c543e0000c904083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f787954797065014d012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970654d01012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000cd04000002c90400d10400000408d5041800d5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d904045300000400dd0401185665633c543e0000d904083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801202c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682001104861736800011868656967687410012c426c6f636b4e756d6265720000dd04000002d90400e1040c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e904083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000ed040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400b001185665633c543e0000f1040c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f90408346672616d655f737570706f72742050616c6c6574496400000400a901011c5b75383b20385d0000fd040c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900011470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e04784572726f7220666f72207468652074726561737572792070616c6c65742e0105102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730101021043616c6c01c501245369676e61747572650191021445787472610105050004003400000005050000042009050d0511051505190521052d05310500090510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000000d0510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000110510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000190510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004001d05010c45726100001d05102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff000021050c5870616c6c65745f6f6e6573686f745f6163636f756e742c636865636b5f6e6f6e636528436865636b4e6f6e63650404540125050004002905016c6672616d655f73797374656d3a3a436865636b4e6f6e63653c543e000025050830676465765f72756e74696d651c52756e74696d6500000000290510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040069010120543a3a496e64657800002d0510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003105086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e740404540000040030013042616c616e63654f663c543e0000941853797374656d011853797374656d401c4163636f756e7401010402000ca800000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010028180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510208000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022061010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000650104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010001010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010001010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500005901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e016d0101541830426c6f636b576569676874737d0181018236b8a4000b00204aa9d10102004001425dff3500010bb0f089a02e010200d000010b0098f73e5d010200f000010000425dff3500010bb078dc0aa30102002001010b00204aa9d1010200400101070088526a7402005000425dff350000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774688d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687495014080b2e60e0000000000621132000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e9901a10210676465763064756e697465722d6764657601000000bc020000010000002c687ad44ad37f03c201000000cbca25e39f14238702000000df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ed99c5acb25eedf503000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780901082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ad01001c4163636f756e74011c4163636f756e74086850656e64696e6752616e646f6d496441737369676e6d656e74730001040518000400004850656e64696e674e65774163636f756e747300010402008c04000001b101017808584d61784e65774163636f756e7473506572426c6f636b101001000000003c4e65774163636f756e74507269636518202c01000000000000000001245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e64610101040510b5010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b7570000104050480040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01c901017c08344d6178696d756d5765696768742c2c0b00806e8774010200000104290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e010d03021042616265011042616265442845706f6368496e64657801001820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f726974696573010011030400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100e50120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100e50120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000ed0104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100110304000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e01010405101d0304000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000250304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301008404001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010080200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e66696700003d0304000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e66696700003d030400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100410304002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01d101000c3445706f63684475726174696f6e18201e000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d651820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010200000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564014d03032454696d657374616d70012454696d657374616d70080c4e6f7701001820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501000101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01f9010004344d696e696d756d506572696f641820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000428506172616d65746572730128506172616d65746572730444506172616d657465727353746f72616765010051039101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052042616c616e636573012042616c616e6365731c34546f74616c49737375616e636501001820000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e63650100182000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e7401010402005503a000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402006103040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402007103040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402007d030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01fd01019014484578697374656e7469616c4465706f7369741820640000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101005000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310100000000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01890306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201008d0340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100910304000000019804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e0020384f6e6573686f744163636f756e7401384f6e6573686f744163636f756e74043c4f6e6573686f744163636f756e7473000104020018040000011102019c00019503071451756f7461011451756f746108244964747951756f74610001040510990304000474206d617073206964656e7469747920696e64657820746f2071756f74612c526566756e64517565756501009d030400046020666565732077616974696e6720666f7220726566756e640001a80434526566756e644163636f756e7400806d6f646c70792f74727372790000000000000000000000000000000000000000046c204163636f756e74207573656420746f20726566756e6420666565004240417574686f726974794d656d626572730140417574686f726974794d656d626572731c2c4163636f756e7449644f6600010405100004000474206d617073206d656d62657220696420746f206163636f756e7420696448417574686f726974696573436f756e7465720100101000000000048020636f756e7420746865206e756d626572206f6620617574686f7269746965734c496e636f6d696e67417574686f7269746965730100b004000468206c69737420696e636f6d696e6720617574686f726974696573444f6e6c696e65417574686f7269746965730100b004000460206c697374206f6e6c696e6520617574686f7269746965734c4f7574676f696e67417574686f7269746965730100b004000468206c697374206f7574676f696e6720617574686f7269746965731c4d656d626572730001040510a90304000478206d617073206d656d62657220696420746f206d656d626572206461746124426c61636b4c6973740100b004000001190201ac04384d6178417574686f7269746965731010200000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401ad030a28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000000b204f6666656e63657301204f6666656e636573081c5265706f7274730001040520b103040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505b5035d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001b400000c28486973746f726963616c00000000000d1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301000d020400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e67656401000101040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100b9030400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100b00400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405001d020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405c10300040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01250201bc0001c9030e1c4772616e647061011c4772616e647061181453746174650100cd0304000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000d103040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000800400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010018200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405181004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01290201c008384d6178417574686f726974696573101020000000045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965731820e80300000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01d9030f20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100dd03040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e48526563656976656448656172746265617473000108050580e5030400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505f90310100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01590201d40440556e7369676e65645072696f726974791820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01fd031048417574686f72697479446973636f76657279000000000011105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01790201ec000101041434557067726164654f726967696e00017d0201f400001520507265696d6167650120507265696d6167650824537461747573466f72000104062005040400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f720001040609040d0404000001810201f8000111041648546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c7301001504040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001040620c501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700010406201904040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d6265727301000d020400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01850201fc04444d617850726f706f73616c5765696768742c28070010a5d4e80200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e011d041744556e6976657273616c4469766964656e640144556e6976657273616c4469766964656e64182443757272656e74556401001820000000000000000004482043757272656e7420554420616d6f756e743843757272656e745564496e6465780100090108010004442043757272656e7420554420696e646578304d6f6e65746172794d61737301001820000000000000000004d50120546f74616c207175616e74697479206f66206d6f6e6579206372656174656420627920756e6976657273616c206469766964656e642028646f6573206e6f742074616b6520696e746f206163636f756e742074686520706f737369626c65206465737472756374696f6e206f66206d6f6e657929284e65787452656576616c00001804000454204e6578742055442072656576616c756174696f6e184e657874556400001804000444204e657874205544206372656174696f6e2c5061737452656576616c73010021040400045820506173742055442072656576616c756174696f6e7301890201050114344d61785061737452656576616c1010a000000004ec204d6178696d756d206e756d626572206f66207061737420554420726576616c756174696f6e7320746f206b65657020696e2073746f726167652e545371756172654d6f6e657947726f77746852617465b902108056240004ec20537175617265206f6620746865206d6f6e65792067726f7774682072617465207065722075642072656576616c756174696f6e20706572696f644055644372656174696f6e506572696f64182060ea00000000000004a020556e6976657273616c206469766964656e64206372656174696f6e20706572696f6420286d732938556452656576616c506572696f641820804f12000000000004b020556e6976657273616c206469766964656e642072656576616c756174696f6e20706572696f6420286d732928556e69747350657255641820e8030000000000000c150120546865206e756d626572206f6620756e69747320746f206469766964652074686520616d6f756e74732065787072657373656420696e206e756d626572206f66205544735501204578616d706c653a20496620796f75207769736820746f20657870726573732074686520554420616d6f756e747320776974682061206d6178696d756d20707265636973696f6e206f6620746865206f7264657270206f6620746865206d696c6c6955442c2063686f6f73652031303030012d041e0c576f74000000103c46697273744973737561626c654f6e10101400000000204973537562576f740101040000504d696e43657274466f724d656d6265727368697010100200000000644d696e43657274466f724372656174654964747952696768741010020000000001310428204964656e7469747901204964656e7469747918284964656e7469746965730001040510350404000498206d617073206964656e7469747920696e64657820746f206964656e746974792076616c756550436f756e746572466f724964656e746974696573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4964656e74697479496e6465784f6600010402001004000488206d617073206163636f756e7420696420746f206964656e7469747920696e6465783c4964656e7469746965734e616d657300010402110110040004d0206d617073206964656e74697479206e616d6520746f206964656e7469747920696e646578202873696d706c7920612073657429344e65787449647479496e646578010010100000000004ec20636f756e746572206f6620746865206964656e7469747920696e64657820746f206769766520746f20746865206e657874206964656e74697479544964656e74697469657352656d6f7661626c654f6e010104051049040400042d01206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e7469746965732073657420746f2062652072656d6f766564206174207468697320626c6f63018d02010d010c34436f6e6669726d506572696f6410102800000004f020506572696f6420647572696e6720776869636820746865206f776e65722063616e20636f6e6669726d20746865206e6577206964656e746974792e504368616e67654f776e65724b6579506572696f641010c089010004bc204d696e696d756d206475726174696f6e206265747765656e2074776f206f776e6572206b6579206368616e67657348496474794372656174696f6e506572696f64101032000000042901204d696e696d756d206475726174696f6e206265747765656e20746865206372656174696f6e206f662032206964656e746974696573206279207468652073616d652063726561746f7201510429284d656d6265727368697001284d656d6265727368697014284d656d626572736869700001040510550404000490206d617073206964656e7469747920696420746f206d656d62657273686970206461746150436f756e746572466f724d656d62657273686970010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c4d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e746974792069642073657420746f20657870697265206174207468697320626c6f636b4450656e64696e674d656d6265727368697000010405108c040004ac206964656e74697469657320776974682070656e64696e67206d656d6265727368697020726571756573746850656e64696e674d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206d656d62657273686970732073657420746f20657870697265206174207468697320626c6f636b01a502011d0108404d656d62657273686970506572696f641010e8030000041901204d6178696d756d206c696665207370616e206f662061206e6f6e2d72656e657761626c65206d656d626572736869702028696e206e756d626572206f6620626c6f636b73295c50656e64696e674d656d62657273686970506572696f641010f4010000046501204d6178696d756d20706572696f642028696e206e756d626572206f6620626c6f636b73292c20776865726520616e206964656e746974792063616e2072656d61696e2070656e64696e6720737562736372697074696f6e2e0159042a10436572740110436572740c4c53746f7261676549647479436572744d65746101010405105d043000000000000000000000000004802043657274696669636174696f6e73206d6574616461206279206973737565723c436572747342795265636569766572010104051061010400046c2043657274696669636174696f6e732062792072656365697665725c53746f72616765436572747352656d6f7661626c654f6e00010405106101040004702043657274696669636174696f6e732072656d6f7661626c65206f6e01a902012101102843657274506572696f6410100f000000041901204d696e696d756d206475726174696f6e206265747765656e2074776f2063657274696669636174696f6e7320697373756564206279207468652073616d65206973737565722c4d6178427949737375657210100a00000004c8204d6178696d756d206e756d626572206f66206163746976652063657274696669636174696f6e7320627920697373756572884d696e526563656976656443657274546f426541626c65546f497373756543657274101002000000082d01204d696e696d756d206e756d626572206f662063657274696669636174696f6e732074686174206d75737420626520726563656976656420746f2062652061626c6520746f206973737565402063657274696669636174696f6e732e3856616c6964697479506572696f641010e803000004a0204475726174696f6e206f662076616c6964697479206f6620612063657274696669636174696f6e0161042b2044697374616e6365012044697374616e63651c3c4576616c756174696f6e506f6f6c300100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e506f6f6c310100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e506f6f6c320100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e426c6f636b01002080000000000000000000000000000000000000000000000000000000000000000004c820426c6f636b20666f72207768696368207468652064697374616e63652072756c65206d75737420626520636865636b6564584964656e7469747944697374616e63655374617475730001040510c1020400149c2044697374616e6365206576616c756174696f6e20737461747573206279206964656e74697479002901202a20602e306020697320746865206163636f756e742077686f2072657175657374656420616e206576616c756174696f6e20616e64207265736572766564207468652070726963652c4901202020666f722077686f6d207468652070726963652077696c6c20626520756e7265736572766564206f7220736c6173686564207768656e20746865206576616c756174696f6e20636f6d706c657465732ea0202a20602e31602069732074686520737461747573206f6620746865206576616c756174696f6e2e5844697374616e63655374617475734578706972654f6e01010405108d04040004dc204964656e7469746965732062792064697374616e6365207374617475732065787069726174696f6e2073657373696f6e20696e6465782444696455706461746501000101040004a820446964206576616c756174696f6e20676574207570646174656420696e207468697320626c6f636b3f01ad0200083c4576616c756174696f6e50726963651820e803000000000000048820416d6f756e7420726573657276656420647572696e67206576616c756174696f6e544d696e41636365737369626c655265666572656573b902100008af2f0494204d696e696d756d20726174696f206f662061636365737369626c652072656665726565730191042c2c536d697468537562576f74000000103c46697273744973737561626c654f6e10101400000000204973537562576f740101040100504d696e43657274466f724d656d6265727368697010100200000000644d696e43657274466f7243726561746549647479526967687410100000000000019504323c536d6974684d656d62657273686970013c536d6974684d656d6265727368697014284d656d626572736869700001040510550404000490206d617073206964656e7469747920696420746f206d656d62657273686970206461746150436f756e746572466f724d656d62657273686970010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c4d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e746974792069642073657420746f20657870697265206174207468697320626c6f636b4450656e64696e674d656d6265727368697000010405108c040004ac206964656e74697469657320776974682070656e64696e67206d656d6265727368697020726571756573746850656e64696e674d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206d656d62657273686970732073657420746f20657870697265206174207468697320626c6f636b01c90201250108404d656d62657273686970506572696f641010e8030000041901204d6178696d756d206c696665207370616e206f662061206e6f6e2d72656e657761626c65206d656d626572736869702028696e206e756d626572206f6620626c6f636b73295c50656e64696e674d656d62657273686970506572696f641010f4010000046501204d6178696d756d20706572696f642028696e206e756d626572206f6620626c6f636b73292c20776865726520616e206964656e746974792063616e2072656d61696e2070656e64696e6720737562736372697074696f6e2e0199043424536d697468436572740124536d697468436572740c4c53746f7261676549647479436572744d65746101010405105d043000000000000000000000000004802043657274696669636174696f6e73206d6574616461206279206973737565723c436572747342795265636569766572010104051061010400046c2043657274696669636174696f6e732062792072656365697665725c53746f72616765436572747352656d6f7661626c654f6e00010405106101040004702043657274696669636174696f6e732072656d6f7661626c65206f6e01cd02012901102843657274506572696f6410100f000000041901204d696e696d756d206475726174696f6e206265747765656e2074776f2063657274696669636174696f6e7320697373756564206279207468652073616d65206973737565722c4d6178427949737375657210100800000004c8204d6178696d756d206e756d626572206f66206163746976652063657274696669636174696f6e7320627920697373756572884d696e526563656976656443657274546f426541626c65546f497373756543657274101002000000082d01204d696e696d756d206e756d626572206f662063657274696669636174696f6e732074686174206d75737420626520726563656976656420746f2062652061626c6520746f206973737565402063657274696669636174696f6e732e3856616c6964697479506572696f641010e803000004a0204475726174696f6e206f662076616c6964697479206f6620612063657274696669636174696f6e019d04352841746f6d696353776170012841746f6d696353776170043050656e64696e6753776170730001080502a104310104000001d102012d01042850726f6f664c696d69741010000400002854204c696d6974206f662070726f6f662073697a652e0059012041746f6d69632073776170206973206f6e6c792061746f6d6963206966206f6e6365207468652070726f6f662069732072657665616c65642c20626f746820706172746965732063616e207375626d69742074686565012070726f6f6673206f6e2d636861696e2e204966204120697320746865206f6e6520746861742067656e657261746573207468652070726f6f662c207468656e2069742072657175697265732074686174206569746865723a1101202d2041277320626c6f636b636861696e20686173207468652073616d652070726f6f66206c656e677468206c696d69742061732042277320626c6f636b636861696e2e1901202d204f722041277320626c6f636b636861696e206861732073686f727465722070726f6f66206c656e677468206c696d69742061732042277320626c6f636b636861696e2e005501204966204220736565732041206973206f6e206120626c6f636b636861696e2077697468206c61726765722070726f6f66206c656e677468206c696d69742c207468656e2069742073686f756c64206b696e646c794d012072656675736520746f20616363657074207468652061746f6d69632073776170207265717565737420696620412067656e657261746573207468652070726f6f662c20616e642061736b7320746861742042742067656e657261746573207468652070726f6f6620696e73746561642e01a5043c204d756c746973696701204d756c746973696704244d756c7469736967730001080502a104a904040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01d5020139010c2c4465706f736974426173651820640000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72182020000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310100a00000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01b1043d4450726f7669646552616e646f6d6e657373014450726f7669646552616e646f6d6e65737318384e657845706f6368486f6f6b496e0100080400004452657175657374496450726f766964657201001820000000000000000000605265717565737473526561647941744e657874426c6f636b0100b5040400005052657175657374735265616479417445706f63680101040518b5040400002c526571756573747349647300010405188c04000054436f756e746572466f725265717565737473496473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617001dd02014101082c4d6178526571756573747310106400000004a8204d6178696d756d206e756d626572206f66206e6f74207965742066696c6c6564207265717565737473305265717565737450726963651820d007000000000000045c20546865207072696365206f662061207265717565737401bd043e1450726f7879011450726f7879081c50726f786965730101040500c104240000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500d1042400000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01e102014901184050726f78794465706f7369744261736518206c0000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721820210000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518206c0000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f721820420000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01e1043f1c5574696c6974790001e902015101044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01e5044020547265617375727901205472656173757279103450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510e9040400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c446561637469766174656401001820000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100ed04040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e0101030155011c3050726f706f73616c426f6e64f1041010270000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18201027000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756df5040400044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101040380000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ef10410000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964f9042070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e01fd04410105042048436865636b4e6f6e5a65726f53656e64657209058c40436865636b5370656356657273696f6e0d051038436865636b547856657273696f6e11051030436865636b47656e6573697315052038436865636b4d6f7274616c69747919052028436865636b4e6f6e636521058c2c436865636b5765696768742d058c604368617267655472616e73616374696f6e5061796d656e7431058c2505","id":"1"} \ No newline at end of file +{ + "jsonrpc": "2.0", + "result": "0x6d6574610e3505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c5870616c6c65745f64756e697465725f6163636f756e741474797065732c4163636f756e7444617461081c42616c616e636501181849647479496401100014012472616e646f6d5f69641c01304f7074696f6e3c483235363e0001106672656518011c42616c616e6365000120726573657276656418011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500012c6c696e6b65645f696474792401384f7074696f6e3c4964747949643e00001800000506001c04184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000020083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000280c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454012c000c01186e6f726d616c2c01045400012c6f7065726174696f6e616c2c0104540001246d616e6461746f72792c01045400002c0c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6530010c75363400012870726f6f665f73697a6530010c753634000030000006180034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540120000c011470686173655901011450686173650001146576656e7450010445000118746f706963735d0101185665633c543e0000500830676465765f72756e74696d653052756e74696d654576656e740001701853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c4163636f756e74040078019870616c6c65745f64756e697465725f6163636f756e743a3a4576656e743c52756e74696d653e000100245363686564756c657204007c018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0002002042616c616e636573040090017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e7404009801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e002000384f6e6573686f744163636f756e7404009c019870616c6c65745f6f6e6573686f745f6163636f756e743a3a4576656e743c52756e74696d653e0007001451756f74610400a8017070616c6c65745f71756f74613a3a4576656e743c52756e74696d653e00420040417574686f726974794d656d626572730400ac01a070616c6c65745f617574686f726974795f6d656d626572733a3a4576656e743c52756e74696d653e000a00204f6666656e6365730400b4015870616c6c65745f6f6666656e6365733a3a4576656e74000c001c53657373696f6e0400bc015470616c6c65745f73657373696f6e3a3a4576656e74000e001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000f0020496d4f6e6c696e650400d4018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001000105375646f0400ec016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00140034557067726164654f726967696e0400f4017070616c6c65745f757067726164655f6f726967696e3a3a4576656e7400150020507265696d6167650400f8017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00160048546563686e6963616c436f6d6d69747465650400fc01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00170044556e6976657273616c4469766964656e640400050101a470616c6c65745f756e6976657273616c5f6469766964656e643a3a4576656e743c52756e74696d653e001e00204964656e7469747904000d01017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e002900284d656d6265727368697004001d0101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e002a0010436572740400210101150170616c6c65745f63657274696669636174696f6e3a3a4576656e743c52756e74696d652c2070616c6c65745f63657274696669636174696f6e3a3a496e7374616e6365313e002b003c536d6974684d656d626572736869700400250101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365323e00340024536d697468436572740400290101150170616c6c65745f63657274696669636174696f6e3a3a4576656e743c52756e74696d652c2070616c6c65745f63657274696669636174696f6e3a3a496e7374616e6365323e0035002841746f6d69635377617004002d01018870616c6c65745f61746f6d69635f737761703a3a4576656e743c52756e74696d653e003c00204d756c746973696704003901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e003d004450726f7669646552616e646f6d6e65737304004101018070616c6c65745f70726f766964655f72616e646f6d6e6573733a3a4576656e74003e001450726f787904004901017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e003f001c5574696c69747904005101015470616c6c65745f7574696c6974793a3a4576656e7400400020547265617375727904005501017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00410000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736820011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c01187765696768742c0118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001244046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c5870616c6c65745f64756e697465725f6163636f756e741870616c6c6574144576656e7404045400011030466f72636544657374726f7908010c77686f000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e636500000c4d01466f72636520746865206465737472756374696f6e206f6620616e206163636f756e7420626563617573652069747320667265652062616c616e636520697320696e73756666696369656e7420746f207061796c746865206163636f756e74206372656174696f6e2070726963652e385b77686f2c2062616c616e63655d4052616e646f6d496441737369676e656408010c77686f000130543a3a4163636f756e74496400012472616e646f6d5f6964200110483235360001084852616e646f6d2069642061737369676e65645c5b6163636f756e745f69642c2072616e646f6d5f69645d344163636f756e744c696e6b656408010c77686f000130543a3a4163636f756e7449640001206964656e7469747910012c4964747949644f663c543e000204686163636f756e74206c696e6b656420746f206964656e746974793c4163636f756e74556e6c696e6b65640400000130543a3a4163636f756e744964000304786163636f756e7420756e6c696e6b65642066726f6d206964656e7469747904a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909097c0c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e000118726573756c748801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736b80016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869648401404f7074696f6e3c5461736b4e616d653e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652e80000004081010008404184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000880418526573756c74080454018c044501640108084f6b04008c000000000c45727204006400000100008c0000040000900c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909099414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000980c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909099c0c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c6574144576656e7404045400010c544f6e6573686f744163636f756e74437265617465640c011c6163636f756e74000130543a3a4163636f756e74496400011c62616c616e63651801c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e636500011c63726561746f72000130543a3a4163636f756e744964000000584f6e6573686f744163636f756e74436f6e73756d65640c011c6163636f756e74000130543a3a4163636f756e7449640001146465737431a001010128543a3a4163636f756e7449642c3c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63652c290001146465737432a40129014f7074696f6e3c0a28543a3a4163636f756e7449642c3c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63652c290a3e00010020576974686472617708011c6163636f756e74000130543a3a4163636f756e74496400011c62616c616e63651801c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e636500020004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909a000000408001800a404184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000a80c3070616c6c65745f71756f74611870616c6c6574144576656e7404045400011420526566756e6465640c010c77686f000130543a3a4163636f756e7449640001206964656e746974791001244964747949643c543e000118616d6f756e7418013042616c616e63654f663c543e0000046c526566756e646564206665657320746f20616e206163636f756e74384e6f51756f7461466f724964747904001001244964747949643c543e000104544e6f2071756f746120666f72206964656e746974795c4e6f4d6f726543757272656e6379466f72526566756e64000204944e6f206d6f72652063757272656e637920617661696c61626c6520666f7220726566756e6430526566756e644661696c65640400000130543a3a4163636f756e74496400030434526566756e64206661696c65643c526566756e64517565756546756c6c00040444526566756e642071756575652066756c6c04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ac0c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c6574144576656e740404540001184c496e636f6d696e67417574686f7269746965730400b001405665633c543a3a4d656d62657249643e00000829014c697374206f66206d656d626572732077686f2077696c6c20656e7465722074686520736574206f6620617574686f72697469657320617420746865206e6578742073657373696f6e2e405b5665633c6d656d6265725f69643e5d4c4f7574676f696e67417574686f7269746965730400b001405665633c543a3a4d656d62657249643e00010829014c697374206f66206d656d626572732077686f2077696c6c206c656176652074686520736574206f6620617574686f72697469657320617420746865206e6578742073657373696f6e2e405b5665633c6d656d6265725f69643e5d3c4d656d626572476f4f66666c696e65040010012c543a3a4d656d6265724964000208e441206d656d6265722077696c6c206c656176652074686520736574206f6620617574686f72697469657320696e20322073657373696f6e732e2c5b6d656d6265725f69645d384d656d626572476f4f6e6c696e65040010012c543a3a4d656d6265724964000308e441206d656d6265722077696c6c20656e7465722074686520736574206f6620617574686f72697469657320696e20322073657373696f6e732e2c5b6d656d6265725f69645d344d656d62657252656d6f766564040010012c543a3a4d656d626572496400040ce841206d656d62657220686173206c6f73742074686520726967687420746f2062652070617274206f662074686520617574686f7269746965732c050174686973206d656d6265722077696c6c2062652072656d6f7665642066726f6d2074686520617574686f726974792073657420696e20322073657373696f6e732e2c5b6d656d6265725f69645d684d656d62657252656d6f76656446726f6d426c61636b4c697374040010012c543a3a4d656d6265724964000508b441206d656d62657220686173206265656e2072656d6f7665642066726f6d2074686520626c61636b6c6973742e2c5b6d656d6265725f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909b00000021000b40c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64b801104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652eb8000003100000000800bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c4000002c800c800000408cc1800cc0c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c696300000400d0013c656432353531393a3a5075626c69630000d00c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d40c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964d80138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65e0016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d8104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400dc013c737232353531393a3a5075626c69630000dc0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e0000002e400e40000040800e800e80c38636f6d6d6f6e5f72756e74696d6520656e7469746965736c56616c696461746f7246756c6c4964656e74696669636174696f6e00000000ec0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c748801384469737061746368526573756c740000048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e6765640401286f6c645f7375646f6572f001504f7074696f6e3c543a3a4163636f756e7449643e0001043901546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c696564206966206f6e6520657869737465642e285375646f4173446f6e6504012c7375646f5f726573756c748801384469737061746368526573756c740002048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f004184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000f40c5470616c6c65745f757067726164655f6f726967696e1870616c6c6574144576656e7400010440446973706174636865644173526f6f74040118726573756c748801384469737061746368526573756c74000004dc412063616c6c20776173206469737061746368656420617320726f6f742066726f6d20616e2075706772616461626c65206f726967696e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f80c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736820011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736820011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736820011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909fc0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736820011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736820011c543a3a48617368000114766f74656401010110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736820011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736820011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736820011c543a3a48617368000118726573756c748801384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736820011c543a3a48617368000118726573756c748801384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736820011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090101000005000005010c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c6574144576656e74040454000110304e6577556443726561746564100118616d6f756e7418013042616c616e63654f663c543e000114696e6465780901011c5564496e6465780001346d6f6e65746172795f6d61737318013042616c616e63654f663c543e0001346d656d626572735f636f756e7418013042616c616e63654f663c543e0000049041206e657720756e6976657273616c206469766964656e6420697320637265617465642e2c556452656576616c7565640c01346e65775f75645f616d6f756e7418013042616c616e63654f663c543e0001346d6f6e65746172795f6d61737318013042616c616e63654f663c543e0001346d656d626572735f636f756e7418013042616c616e63654f663c543e000104b454686520756e6976657273616c206469766964656e6420686173206265656e2072652d6576616c75617465642e505564734175746f50616964417452656d6f76616c0c0114636f756e740901011c5564496e646578000114746f74616c18013042616c616e63654f663c543e00010c77686f000130543a3a4163636f756e744964000204fc4455732077657265206175746f6d61746963616c6c79207472616e736665727265642061732070617274206f662061206d656d6265722072656d6f76616c2e28556473436c61696d65640c0114636f756e740901011c5564496e646578000114746f74616c18013042616c616e63654f663c543e00010c77686f000130543a3a4163636f756e7449640003046441206d656d62657220636c61696d656420686973205544732e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909090100000504000d010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001142c4964747943726561746564080128696474795f696e646578100130543a3a49647479496e6465780001246f776e65725f6b6579000130543a3a4163636f756e7449640000087c41206e6577206964656e7469747920686173206265656e20637265617465645c5b696474795f696e6465782c206f776e65725f6b65795d3449647479436f6e6669726d65640c0128696474795f696e646578100130543a3a49647479496e6465780001246f776e65725f6b6579000130543a3a4163636f756e7449640001106e616d6511010120496474794e616d65000108ac416e206964656e7469747920686173206265656e20636f6e6669726d656420627920697473206f776e6572745b696474795f696e6465782c206f776e65725f6b65792c206e616d655d344964747956616c696461746564040128696474795f696e646578100130543a3a49647479496e64657800020878416e206964656e7469747920686173206265656e2076616c696461746564305b696474795f696e6465785d4c496474794368616e6765644f776e65724b6579080128696474795f696e646578100130543a3a49647479496e6465780001346e65775f6f776e65725f6b6579000130543a3a4163636f756e7449640003002c4964747952656d6f766564080128696474795f696e646578100130543a3a49647479496e646578000118726561736f6e150101b04964747952656d6f76616c526561736f6e3c543a3a4964747952656d6f76616c4f74686572526561736f6e3e00040870416e206964656e7469747920686173206265656e2072656d6f766564305b696474795f696e6465785d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909091101000005020015010c3c70616c6c65745f6964656e74697479147479706573444964747952656d6f76616c526561736f6e042c4f74686572526561736f6e01190101101c45787069726564000000184d616e75616c000100144f7468657204001901012c4f74686572526561736f6e0002001c5265766f6b65640003000019010c4870616c6c65745f64756e697465725f776f74147479706573504964747952656d6f76616c576f74526561736f6e000108444d656d6265727368697045787069726564000000144f74686572000100001d010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e74080454000449000118484d656d6265727368697041637175697265640400100124543a3a4964747949640000086441206d656d6265727368697020776173206163717569726564245b696474795f69645d444d656d62657273686970457870697265640400100124543a3a4964747949640001085041206d656d626572736869702065787069726564245b696474795f69645d444d656d6265727368697052656e657765640400100124543a3a4964747949640002086041206d656d62657273686970207761732072656e65776564245b696474795f69645d4c4d656d626572736869705265717565737465640400100124543a3a4964747949640003086c416e206d656d626572736869702077617320726571756573746564245b696474795f69645d444d656d626572736869705265766f6b65640400100124543a3a4964747949640004086041206d656d6265727368697020776173207265766f6b6564245b696474795f69645d6050656e64696e674d656d62657273686970457870697265640400100124543a3a496474794964000508a0412070656e64696e67206d656d626572736869702072657175657374206861732065787069726564245b696474795f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090921010c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144576656e7408045400044900010c1c4e657743657274100118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c753332000008444e65772063657274696669636174696f6e01015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e745d2c52656d6f76656443657274140118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c75333200012865787069726174696f6e01010110626f6f6c0001085452656d6f7665642063657274696669636174696f6e31015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e742c2065787069726174696f6e5d2c52656e6577656443657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780002085452656e657765642063657274696669636174696f6e485b6973737565722c2072656365697665725d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090925010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e74080454000449000118484d656d6265727368697041637175697265640400100124543a3a4964747949640000086441206d656d6265727368697020776173206163717569726564245b696474795f69645d444d656d62657273686970457870697265640400100124543a3a4964747949640001085041206d656d626572736869702065787069726564245b696474795f69645d444d656d6265727368697052656e657765640400100124543a3a4964747949640002086041206d656d62657273686970207761732072656e65776564245b696474795f69645d4c4d656d626572736869705265717565737465640400100124543a3a4964747949640003086c416e206d656d626572736869702077617320726571756573746564245b696474795f69645d444d656d626572736869705265766f6b65640400100124543a3a4964747949640004086041206d656d6265727368697020776173207265766f6b6564245b696474795f69645d6050656e64696e674d656d62657273686970457870697265640400100124543a3a496474794964000508a0412070656e64696e67206d656d626572736869702072657175657374206861732065787069726564245b696474795f69645d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090929010c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144576656e7408045400044900010c1c4e657743657274100118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c753332000008444e65772063657274696669636174696f6e01015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e745d2c52656d6f76656443657274140118697373756572100130543a3a49647479496e64657800014c6973737565725f6973737565645f636f756e7410010c7533320001207265636569766572100130543a3a49647479496e64657800015c72656365697665725f72656365697665645f636f756e7410010c75333200012865787069726174696f6e01010110626f6f6c0001085452656d6f7665642063657274696669636174696f6e31015b6973737565722c206973737565725f6973737565645f636f756e742c2072656365697665722c2072656365697665725f72656365697665645f636f756e742c2065787069726174696f6e5d2c52656e6577656443657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780002085452656e657765642063657274696669636174696f6e485b6973737565722c2072656365697665725d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909092d010c4870616c6c65745f61746f6d69635f737761701870616c6c6574144576656e7404045400010c1c4e6577537761700c011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f66000110737761703101013850656e64696e67537761703c543e000004345377617020637265617465642e2c53776170436c61696d65640c011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f6600011c7375636365737301010110626f6f6c00010429015377617020636c61696d65642e20546865206c61737420706172616d6574657220696e6469636174657320776865746865722074686520657865637574696f6e2073756363656564732e345377617043616e63656c6c656408011c6163636f756e74000130543a3a4163636f756e74496400011470726f6f6604012c48617368656450726f6f660002043c537761702063616e63656c6c65642e04704576656e74206f662061746f6d696320737761702070616c6c65742e3101084870616c6c65745f61746f6d69635f737761702c50656e64696e675377617004045400000c0118736f75726365000130543a3a4163636f756e744964000118616374696f6e35010134543a3a53776170416374696f6e000124656e645f626c6f636b100138543a3a426c6f636b4e756d62657200003501084870616c6c65745f61746f6d69635f737761704442616c616e636553776170416374696f6e08244163636f756e74496401000443000004011476616c756518018c3c432061732043757272656e63793c4163636f756e7449643e3e3a3a42616c616e6365000039010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909093d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000041010c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c6574144576656e740001084046696c6c656452616e646f6d6e657373080128726571756573745f696418012452657175657374496400012872616e646f6d6e657373200110483235360000044446696c6c65642072616e646f6d6e6573734c52657175657374656452616e646f6d6e6573730c0128726571756573745f696418012452657175657374496400011073616c74200110483235360001187223747970654501013852616e646f6d6e65737354797065000104505265717565737465642072616e646f6d6e65737304a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090945010c6470616c6c65745f70726f766964655f72616e646f6d6e6573731474797065733852616e646f6d6e6573735479706500010c6c52616e646f6d6e65737346726f6d50726576696f7573426c6f636b0000006452616e646f6d6e65737346726f6d4f6e6545706f636841676f0001006852616e646f6d6e65737346726f6d54776f45706f63687341676f0002000049010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c748801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465780901010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736820013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200040450412070726f7879207761732072656d6f7665642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909094d010830676465765f72756e74696d652450726f78795479706500011024416c6d6f7374416e79000000305472616e736665724f6e6c790001002c43616e63656c50726f787900020064546563686e6963616c436f6d6d697474656550726f706f73650003000051010c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090955010c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001242050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000804cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909590108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200005d01000002200061010000028000650108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e6901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651101016473705f72756e74696d653a3a52756e74696d65537472696e670000690100000610006d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e000010684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e0034232320436f6d706c6578697479202d20604f28312960387365745f686561705f7061676573040114706167657318010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646534011c5665633c75383e0002106453657420746865206e65772072756e74696d6520636f64652e0034232320436f6d706c657869747931012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f6465605c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0034232320436f6d706c65786974798c2d20604f2843296020776865726520604360206c656e677468206f662060636f6465602c7365745f73746f726167650401146974656d73710101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973790101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7101000002750100750100000408343400790100000234007d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2c01185765696768740001246d61785f626c6f636b2c01185765696768740001247065725f636c617373810101845065724469737061746368436c6173733c57656967687473506572436c6173733e000081010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454018501000c01186e6f726d616c850101045400012c6f7065726174696f6e616c85010104540001246d616e6461746f72798501010454000085010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632c01185765696768740001346d61785f65787472696e736963890101384f7074696f6e3c5765696768743e0001246d61785f746f74616c890101384f7074696f6e3c5765696768743e0001207265736572766564890101384f7074696f6e3c5765696768743e0000890104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100008d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178910101545065724469737061746368436c6173733c7533323e000091010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400009501082873705f776569676874733c52756e74696d65446257656967687400000801107265616418010c753634000114777269746518010c75363400009901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651101013452756e74696d65537472696e67000124696d706c5f6e616d651101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069739d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800009d01040c436f7704045401a101000400a101000000a101000002a50100a50100000408a9011000a901000003080000000800ad010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c6574b1010c5870616c6c65745f64756e697465725f6163636f756e741870616c6c65741043616c6c0404540001043c756e6c696e6b5f6964656e74697479000004bc756e6c696e6b20746865206964656e74697479206173736f636961746564207769746820746865206163636f756e74042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b901045300000400090301185665633c543e0000b90104184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd010000010000bd01084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c01c1012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01f102244163636f756e7449640100001401206d617962655f69648401304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc101011043616c6c0001386d617962655f706572696f646963cd0101944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ef102013450616c6c6574734f726967696e0000c10110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e64656404045401c501010c184c6567616379040110686173682001104861736800000018496e6c696e65040005030134426f756e646564496e6c696e65000100184c6f6f6b7570080110686173682001104861736800010c6c656e10010c75333200020000c5010830676465765f72756e74696d652c52756e74696d6543616c6c0001701853797374656d04006d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c4163636f756e740400b10101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4163636f756e742c2052756e74696d653e000100245363686564756c65720400c90101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00020010426162650400d10101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0003002454696d657374616d700400f90101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0004002042616c616e6365730400fd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000600384f6e6573686f744163636f756e740400110201cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f6e6573686f744163636f756e742c2052756e74696d653e00070040417574686f726974794d656d626572730400190201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f726974794d656d626572732c2052756e74696d653e000a001c53657373696f6e0400250201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000e001c4772616e6470610400290201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000f0020496d4f6e6c696e650400590201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001000105375646f0400790201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00140034557067726164654f726967696e04007d0201c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c557067726164654f726967696e2c2052756e74696d653e00150020507265696d6167650400810201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00160048546563686e6963616c436f6d6d69747465650400850201dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e00170044556e6976657273616c4469766964656e640400890201d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e6976657273616c4469766964656e642c2052756e74696d653e001e00204964656e7469747904008d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e002900284d656d626572736869700400a50201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d656d626572736869702c2052756e74696d653e002a0010436572740400a90201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436572742c2052756e74696d653e002b002044697374616e63650400ad0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44697374616e63652c2052756e74696d653e002c003c536d6974684d656d626572736869700400c90201d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536d6974684d656d626572736869702c2052756e74696d653e00340024536d697468436572740400cd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536d697468436572742c2052756e74696d653e0035002841746f6d6963537761700400d10201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41746f6d6963537761702c2052756e74696d653e003c00204d756c74697369670400d50201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e003d004450726f7669646552616e646f6d6e6573730400dd0201d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646552616e646f6d6e6573732c2052756e74696d653e003e001450726f78790400e10201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e003f001c5574696c6974790400e90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0040002054726561737572790400010301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00410000c9010c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963cd0101a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd0104184f7074696f6e04045401800108104e6f6e6500000010536f6d650400800000010000d1010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66d5010184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66d5010184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967ed0101504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d90108496401e101001001206f6666656e646572e10101084964000110736c6f74e5010110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d6265720110104861736801dd010014012c706172656e745f68617368200130486173683a3a4f75747075740001186e756d626572690101184e756d62657200012873746174655f726f6f74200130486173683a3a4f757470757400013c65787472696e736963735f726f6f74200130486173683a3a4f75747075740001186469676573743801184469676573740000dd010c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000e1010c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400dc013c737232353531393a3a5075626c69630000e501084873705f636f6e73656e7375735f736c6f747310536c6f740000040018010c7536340000e901082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573790101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e740000ed010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f7200010408563108010463f1010128287536342c2075363429000134616c6c6f7765645f736c6f7473f5010130416c6c6f776564536c6f747300010000f10100000408181800f501084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f747300020000f9010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77300124543a3a4d6f6d656e7400003c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e587365745f62616c616e63655f646570726563617465640c010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565300128543a3a42616c616e63650001306f6c645f7265736572766564300128543a3a42616c616e636500011855015365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e743b20697420616c736f2074616b657320612072657365727665642062616c616e6365206275742074686973ec6d757374206265207468652073616d6520617320746865206163636f756e7427732063757272656e742072657365727665642062616c616e63652e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e0009015741524e494e473a20546869732063616c6c206973204445505245434154454421205573652060666f7263655f7365745f62616c616e63656020696e73746561642e38666f7263655f7472616e736665720c0118736f75726365010201504163636f756e7449644c6f6f6b75704f663c543e00011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374010201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766501010110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f0d0201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e207472616e7366657208011064657374010201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565300128543a3a42616c616e636500070c3101416c69617320666f7220607472616e736665725f616c6c6f775f6465617468602c2070726f7669646564206f6e6c7920666f72206e616d652d7769736520636f6d7061746962696c6974792e0001015741524e494e473a2044455052454341544544212057696c6c2062652072656c656173656420696e20617070726f78696d6174656c792033206d6f6e7468732e44666f7263655f7365745f62616c616e636508010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565300128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e01020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578018c011408496404000001244163636f756e74496400000014496e6465780400050201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400090201205b75383b2032305d0004000005020000068c0009020000031400000008000d02000002000011020c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c65741043616c6c04045400010c586372656174655f6f6e6573686f745f6163636f756e74080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c75653001c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e6365000018c043726561746520616e206163636f756e7420746861742063616e206f6e6c7920626520636f6e73756d6564206f6e636500b02d206064657374603a20546865206f6e6573686f74206163636f756e7420746f20626520637265617465642e09012d206062616c616e6365603a205468652062616c616e636520746f206265207472616e73666572656420746f2074686973206f6e6573686f74206163636f756e742e00744f726967696e206163636f756e74206973206b65707420616c6976652e5c636f6e73756d655f6f6e6573686f745f6163636f756e74080130626c6f636b5f686569676874100138543a3a426c6f636b4e756d62657200011064657374150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e0001140101436f6e73756d652061206f6e6573686f74206163636f756e7420616e64207472616e73666572206974732062616c616e636520746f20616e206163636f756e7400fd012d2060626c6f636b5f686569676874603a204d757374206265206120726563656e7420626c6f636b206e756d6265722e20546865206c696d69742069732060426c6f636b48617368436f756e746020696e2074686520706173742e20287468697320697320746f2070726576656e74207265706c61792061747461636b7329882d206064657374603a205468652064657374696e6174696f6e206163636f756e742efd012d2060646573745f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e742069732063726561746564206174206064657374602e20456c73652c206064657374602068617320746f20626520616e206578697374696e67206163636f756e742e98636f6e73756d655f6f6e6573686f745f6163636f756e745f776974685f72656d61696e696e67100130626c6f636b5f686569676874100138543a3a426c6f636b4e756d62657200011064657374150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00013072656d61696e696e675f746f150201b04163636f756e743c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00011c62616c616e63653001c03c543a3a43757272656e63792061732043757272656e63793c543a3a4163636f756e7449643e3e3a3a42616c616e63650002280901436f6e73756d652061206f6e6573686f74206163636f756e74207468656e207472616e7366657220736f6d6520616d6f756e7420746f20616e206163636f756e742cb0616e64207468652072656d61696e696e6720616d6f756e7420746f20616e6f74686572206163636f756e742e00c02d2060626c6f636b5f686569676874603a204d757374206265206120726563656e7420626c6f636b206e756d6265722e41012020546865206c696d69742069732060426c6f636b48617368436f756e746020696e2074686520706173742e20287468697320697320746f2070726576656e74207265706c61792061747461636b7329882d206064657374603a205468652064657374696e6174696f6e206163636f756e742efd012d2060646573745f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e742069732063726561746564206174206064657374602e20456c73652c206064657374602068617320746f20626520616e206578697374696e67206163636f756e742ea82d20606465737432603a20546865207365636f6e642064657374696e6174696f6e206163636f756e742e09022d206064657374325f69735f6f6e6573686f74603a2049662073657420746f206074727565602c207468656e2061206f6e6573686f74206163636f756e74206973206372656174656420617420606465737432602e20456c73652c20606465737432602068617320746f20626520616e206578697374696e67206163636f756e742e61012d206062616c616e636531603a2054686520616d6f756e74207472616e73666572656420746f206064657374602c20746865206c6566746f766572206265696e67207472616e73666572656420746f20606465737432602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e15020c5870616c6c65745f6f6e6573686f745f6163636f756e741474797065731c4163636f756e7404244163636f756e7449640101020108184e6f726d616c0400010201244163636f756e7449640000001c4f6e6573686f740400010201244163636f756e7449640001000019020c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c65741043616c6c04045400011428676f5f6f66666c696e65000004d461736b20746f206c656176652074686520736574206f662076616c696461746f72732074776f2073657373696f6e7320616674657224676f5f6f6e6c696e65000104d061736b20746f206a6f696e2074686520736574206f662076616c696461746f72732074776f2073657373696f6e73206166746572407365745f73657373696f6e5f6b6579730401106b6579731d02011c543a3a4b657973000204c06465636c617265206e65772073657373696f6e206b65797320746f207265706c6163652063757272656e74206f6e65733472656d6f76655f6d656d6265720401246d656d6265725f696410012c543a3a4d656d6265724964000304b872656d6f766520616e206964656e746974792066726f6d2074686520736574206f6620617574686f7269746965737072656d6f76655f6d656d6265725f66726f6d5f626c61636b6c6973740401246d656d6265725f696410012c543a3a4d656d62657249640004049472656d6f766520616e206964656e746974792066726f6d2074686520626c61636b6c697374042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1d020c30676465765f72756e74696d65186f70617175652c53657373696f6e4b657973000010011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265e10101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65d801d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279210201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000021020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400dc013c737232353531393a3a5075626c6963000025020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579731d02011c543a3a4b65797300011470726f6f6634011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e29020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f662d0201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f662d0201bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f66e9010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d6265720002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e2d02085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480120044e0110000801187365745f6964180114536574496400013065717569766f636174696f6e3102014845717569766f636174696f6e3c482c204e3e00003102085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480120044e011001081c507265766f7465040035020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d697404004d020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100003502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc04560139020453013d0200100130726f756e645f6e756d62657218010c7536340001206964656e74697479cc0108496400011466697273744902011828562c2053290001187365636f6e644902011828562c20532900003902084066696e616c6974795f6772616e6470611c507265766f74650804480120044e01100008012c7461726765745f68617368200104480001347461726765745f6e756d6265721001044e00003d020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040041020148656432353531393a3a5369676e6174757265000041020c1c73705f636f72651c65643235353139245369676e617475726500000400450201205b75383b2036345d0000450200000340000000080049020000040839023d02004d02084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc04560151020453013d0200100130726f756e645f6e756d62657218010c7536340001206964656e74697479cc0108496400011466697273745502011828562c2053290001187365636f6e645502011828562c20532900005102084066696e616c6974795f6772616e64706124507265636f6d6d69740804480120044e01100008012c7461726765745f68617368200104480001347461726765745f6e756d6265721001044e000055020000040851023d020059020c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c040454000104246865617274626561740801246865617274626561745d0201644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265710201bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500001438232320436f6d706c65786974793a59012d20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973206c656e677468206f66b02020606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e67746820604560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5d02084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465610201484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c753332000061020c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964650201304f706171756550656572496400014865787465726e616c5f616464726573736573690201505665633c4f70617175654d756c7469616464723e00006502081c73705f636f7265304f70617175655065657249640000040034011c5665633c75383e000069020000026d02006d020c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040034011c5665633c75383e00007102104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e61747572650000040075020148737232353531393a3a5369676e6174757265000075020c1c73705f636f72651c73723235353139245369676e617475726500000400450201205b75383b2036345d000079020c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000018350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e547375646f5f756e636865636b65645f77656967687408011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001187765696768742c0118576569676874000120350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e1c7365745f6b657904010c6e6577010201504163636f756e7449644c6f6f6b75704f663c543e00021c5d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e1c7375646f5f617308010c77686f010201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00031c4d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0034232320436f6d706c65786974791c2d204f2831292e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d020c5470616c6c65745f757067726164655f6f726967696e1870616c6c65741043616c6c0404540001084064697370617463685f61735f726f6f7404011063616c6cc5010160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00000cb04469737061746368657320612066756e6374696f6e2063616c6c2066726f6d20726f6f74206f726967696e2e00c454686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e8464697370617463685f61735f726f6f745f756e636865636b65645f77656967687408011063616c6cc5010160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0001187765696768742c0118576569676874000114b04469737061746368657320612066756e6374696f6e2063616c6c2066726f6d20726f6f74206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865a463616c6c657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c454686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e81020c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000110346e6f74655f707265696d616765040114627974657334011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736820011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736820011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736820011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572730d0201445665633c543a3a4163636f756e7449643e0001147072696d65f001504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616cc501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646901010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c646901012c4d656d626572436f756e7400012070726f706f73616cc501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646901010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c20011c543a3a48617368000114696e6465786901013450726f706f73616c496e64657800011c617070726f766501010110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736820011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736820011c543a3a48617368000114696e6465786901013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642c01185765696768740001306c656e6774685f626f756e646901010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e89020c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c65741043616c6c04045400010c24636c61696d5f75647300000464436c61696d20556e6976657273616c204469766964656e64732c7472616e736665725f7564080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756530013042616c616e63654f663c543e00010405015472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742c20696e206d696c6c6955442e587472616e736665725f75645f6b6565705f616c697665080110646573740102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756530013042616c616e63654f663c543e00020405015472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742c20696e206d696c6c6955442e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8d020c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c0404540001243c6372656174655f6964656e746974790401246f776e65725f6b6579000130543a3a4163636f756e744964000014a843726561746520616e206964656e7469747920666f7220616e206578697374696e67206163636f756e740025012d20606f776e65725f6b6579603a20746865207075626c6963206b657920636f72726573706f6e64696e6720746f20746865206964656e7469747920746f206265206372656174656400c4546865206f726967696e206d75737420626520616c6c6f77656420746f2063726561746520616e206964656e746974792e40636f6e6669726d5f6964656e74697479040124696474795f6e616d6511010120496474794e616d65000114d8436f6e6669726d20746865206372656174696f6e206f6620616e206964656e7469747920616e6420676976652069742061206e616d6500d5012d2060696474795f6e616d65603a20746865206e616d6520756e697175656c79206173736f63696174656420746f2074686973206964656e746974792e204d757374206d61746368207468652076616c69646174696f6e2072756c657320646566696e6564206279207468652072756e74696d652e005d01546865206964656e74697479206d7573742068617665206265656e2063726561746564207573696e6720606372656174655f6964656e7469747960206265666f72652069742063616e20626520636f6e6669726d65642e4476616c69646174655f6964656e74697479040128696474795f696e646578100130543a3a49647479496e646578000204050176616c696461746520746865206f776e6564206964656e7469747920286d757374206d65657420746865206d61696e20776f7420726571756972656d656e747329406368616e67655f6f776e65725f6b657908011c6e65775f6b6579000130543a3a4163636f756e74496400012c6e65775f6b65795f73696791020130543a3a5369676e617475726500031c684368616e6765206964656e74697479206f776e6572206b65792e007c2d20606e65775f6b6579603a20746865206e6577206f776e6572206b65792e49012d20606e65775f6b65795f736967603a20746865207369676e6174757265206f662074686520656e636f64656420666f726d206f66206049647479496e6465784163636f756e7449645061796c6f6164602eb420202020202020202020202020202020204d757374206265207369676e656420627920606e65775f6b6579602e00c0546865206f726967696e2073686f756c6420626520746865206f6c64206964656e74697479206f776e6572206b65792e3c7265766f6b655f6964656e746974790c0128696474795f696e646578100130543a3a49647479496e6465780001387265766f636174696f6e5f6b6579000130543a3a4163636f756e7449640001387265766f636174696f6e5f73696791020130543a3a5369676e6174757265000420bc5265766f6b6520616e206964656e74697479207573696e672061207265766f636174696f6e207369676e617475726500e02d2060696474795f696e646578603a2074686520696e646578206f6620746865206964656e7469747920746f206265207265766f6b65642e01012d20607265766f636174696f6e5f6b6579603a20746865206b6579207573656420746f207369676e20746865207265766f636174696f6e207061796c6f61642e35012d20607265766f636174696f6e5f736967603a20746865207369676e6174757265206f662074686520656e636f64656420666f726d206f6620605265766f636174696f6e5061796c6f6164602edc20202020202020202020202020202020202020204d757374206265207369676e656420627920607265766f636174696f6e5f6b6579602e00a0416e79207369676e6564206f726967696e2063616e206578656375746520746869732063616c6c2e3c72656d6f76655f6964656e746974790c0128696474795f696e646578100130543a3a49647479496e646578000124696474795f6e616d659d0201404f7074696f6e3c496474794e616d653e000118726561736f6e150101b04964747952656d6f76616c526561736f6e3c543a3a4964747952656d6f76616c4f74686572526561736f6e3e0005047c72656d6f766520616e206964656e746974792066726f6d2073746f726167656c7072756e655f6974656d5f6964656e7469746965735f6e616d65730401146e616d6573a10201345665633c496474794e616d653e0006048872656d6f7665206964656e74697479206e616d65732066726f6d2073746f726167653c6669785f73756666696369656e74730801246f776e65725f6b6579000130543a3a4163636f756e74496400010c696e6301010110626f6f6c000704a46368616e67652073756666696369656e742072656620636f756e7420666f7220676976656e206b6579306c696e6b5f6163636f756e740801286163636f756e745f6964000130543a3a4163636f756e74496400012c7061796c6f61645f73696791020130543a3a5369676e6174757265000804784c696e6b20616e206163636f756e7420746f20616e206964656e74697479042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9102082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040041020148656432353531393a3a5369676e61747572650000001c53723235353139040075020148737232353531393a3a5369676e617475726500010014456364736104009502014065636473613a3a5369676e61747572650002000095020c1c73705f636f7265146563647361245369676e617475726500000400990201205b75383b2036355d000099020000034100000008009d0204184f7074696f6e0404540111010108104e6f6e6500000010536f6d65040011010000010000a102000002110100a5020c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011048726571756573745f6d656d62657273686970000008ec7375626d69742061206d656d62657273686970207265717565737420286d75737420686176652061206465636c61726564206964656e7469747929d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f742940636c61696d5f6d656d6265727368697000011448636c61696d206d656d6265727368697020208c612070656e64696e67206d656d626572736869702073686f756c642065786973742020d46974206d7573742066756c6c66696c6c2074686520726571756972656d656e7473202863657274732c2064697374616e63652920204101666f72206d61696e20776f7420636c61696d5f6d656d626572736869702069732063616c6c6564206175746f6d61746963616c6c79207768656e2076616c69646174696e67206964656e746974792020dc666f7220736d69746820776f742c206974206d65616e73206a6f696e696e672074686520617574686f72697479206d656d6265727320204072656e65775f6d656d62657273686970000204c8657874656e64207468652076616c696469747920706572696f64206f6620616e20616374697665206d656d62657273686970447265766f6b655f6d656d626572736869700003086c7265766f6b6520616e20616374697665206d656d62657273686970d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea9020c5070616c6c65745f63657274696669636174696f6e1870616c6c65741043616c6c08045400044900010c206164645f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e646578000014c04164642061206e65772063657274696669636174696f6e206f722072656e657720616e206578697374696e67206f6e650015012d20607265636569766572603a20746865206163636f756e7420726563656976696e67207468652063657274696669636174696f6e2066726f6d20746865206f726967696e0090546865206f726967696e206d75737420626520616c6c6f7720746f20636572746966792e2064656c5f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780001048872656d6f766520612063657274696669636174696f6e20286f6e6c7920726f6f74297072656d6f76655f616c6c5f63657274735f72656365697665645f6279040128696474795f696e646578100130543a3a49647479496e646578000204f472656d6f766520616c6c2063657274696669636174696f6e7320726563656976656420627920616e206964656e7469747920286f6e6c7920726f6f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ead020c3c70616c6c65745f64697374616e63651870616c6c65741043616c6c0404540001106c726571756573745f64697374616e63655f6576616c756174696f6e0000048c5265717565737420616e206964656e7469747920746f206265206576616c7561746564447570646174655f6576616c756174696f6e040148636f6d7075746174696f6e5f726573756c74b1020144436f6d7075746174696f6e526573756c74000104c028496e686572656e7429205075736820616e206576616c756174696f6e20726573756c7420746f2074686520706f6f6c5c666f7263655f7570646174655f6576616c756174696f6e0801246576616c7561746f720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000148636f6d7075746174696f6e5f726573756c74b1020144436f6d7075746174696f6e526573756c74000204945075736820616e206576616c756174696f6e20726573756c7420746f2074686520706f6f6c64666f7263655f7365745f64697374616e63655f7374617475730801206964656e746974791001a43c542061732070616c6c65745f6964656e746974793a3a436f6e6669673e3a3a49647479496e646578000118737461747573bd020101014f7074696f6e3c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2044697374616e6365537461747573293e00031cc4536574207468652064697374616e6365206576616c756174696f6e20737461747573206f6620616e206964656e7469747900a452656d6f766573207468652073746174757320696620607374617475736020697320604e6f6e65602e0031012a20607374617475732e306020697320746865206163636f756e7420666f722077686f6d207468652070726963652077696c6c20626520756e7265736572766564206f7220736c61736865648020207768656e20746865206576616c756174696f6e20636f6d706c657465732eb42a20607374617475732e31602069732074686520737461747573206f6620746865206576616c756174696f6e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb102082c73705f64697374616e636544436f6d7075746174696f6e526573756c74000004012464697374616e636573b50201305665633c50657262696c6c3e0000b502000002b90200b9020c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000bd0204184f7074696f6e04045401c1020108104e6f6e6500000010536f6d650400c1020000010000c1020000040800c50200c5020c3c70616c6c65745f64697374616e63651474797065733844697374616e63655374617475730001081c50656e64696e670000001456616c696400010000c9020c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011048726571756573745f6d656d62657273686970000008ec7375626d69742061206d656d62657273686970207265717565737420286d75737420686176652061206465636c61726564206964656e7469747929d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f742940636c61696d5f6d656d6265727368697000011448636c61696d206d656d6265727368697020208c612070656e64696e67206d656d626572736869702073686f756c642065786973742020d46974206d7573742066756c6c66696c6c2074686520726571756972656d656e7473202863657274732c2064697374616e63652920204101666f72206d61696e20776f7420636c61696d5f6d656d626572736869702069732063616c6c6564206175746f6d61746963616c6c79207768656e2076616c69646174696e67206964656e746974792020dc666f7220736d69746820776f742c206974206d65616e73206a6f696e696e672074686520617574686f72697479206d656d6265727320204072656e65775f6d656d62657273686970000204c8657874656e64207468652076616c696469747920706572696f64206f6620616e20616374697665206d656d62657273686970447265766f6b655f6d656d626572736869700003086c7265766f6b6520616e20616374697665206d656d62657273686970d0286f6e6c7920617661696c61626c6520666f722073756220776f742c206175746f6d6174696320666f72206d61696e20776f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd020c5070616c6c65745f63657274696669636174696f6e1870616c6c65741043616c6c08045400044900010c206164645f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e646578000014c04164642061206e65772063657274696669636174696f6e206f722072656e657720616e206578697374696e67206f6e650015012d20607265636569766572603a20746865206163636f756e7420726563656976696e67207468652063657274696669636174696f6e2066726f6d20746865206f726967696e0090546865206f726967696e206d75737420626520616c6c6f7720746f20636572746966792e2064656c5f63657274080118697373756572100130543a3a49647479496e6465780001207265636569766572100130543a3a49647479496e6465780001048872656d6f766520612063657274696669636174696f6e20286f6e6c7920726f6f74297072656d6f76655f616c6c5f63657274735f72656365697665645f6279040128696474795f696e646578100130543a3a49647479496e646578000204f472656d6f766520616c6c2063657274696669636174696f6e7320726563656976656420627920616e206964656e7469747920286f6e6c7920726f6f7429042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed1020c4870616c6c65745f61746f6d69635f737761701870616c6c65741043616c6c04045400010c2c6372656174655f73776170100118746172676574000130543a3a4163636f756e7449640001306861736865645f70726f6f6604012c48617368656450726f6f66000118616374696f6e35010134543a3a53776170416374696f6e0001206475726174696f6e100138543a3a426c6f636b4e756d626572000030590152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e642066756e64732066726f6d206f726967696e20746f2074617267657455016f6e207468652063757272656e7420626c6f636b636861696e2e20546865207461726765742063616e20636c61696d207468652066756e64207573696e67207468652072657665616c65642070726f6f662e20496655017468652066756e64206973206e6f7420636c61696d656420616674657220606475726174696f6e6020626c6f636b732c207468656e207468652073656e6465722063616e2063616e63656c2074686520737761702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060746172676574603a205265636569766572206f66207468652061746f6d696320737761702ee82d20606861736865645f70726f6f66603a2054686520626c616b65325f3235362068617368206f6620746865207365637265742070726f6f662ea82d206062616c616e6365603a2046756e647320746f2062652073656e742066726f6d206f726967696e2e5d012d20606475726174696f6e603a204c6f636b6564206475726174696f6e206f66207468652061746f6d696320737761702e20466f722073616665747920726561736f6e732c206974206973207265636f6d6d656e6465644501202074686174207468652072657665616c6572207573657320612073686f72746572206475726174696f6e207468616e2074686520636f756e74657270617274792c20746f2070726576656e74207468653d012020736974756174696f6e207768657265207468652072657665616c65722072657665616c73207468652070726f6f6620746f6f206c6174652061726f756e642074686520656e6420626c6f636b2e28636c61696d5f7377617008011470726f6f6634011c5665633c75383e000118616374696f6e35010134543a3a53776170416374696f6e00011c54436c61696d20616e2061746f6d696320737761702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e009c2d206070726f6f66603a2052657665616c65642070726f6f66206f662074686520636c61696d2e61012d2060616374696f6e603a20416374696f6e20646566696e656420696e2074686520737761702c206974206d757374206d617463682074686520656e74727920696e20626c6f636b636861696e2e204f7468657277697365ec2020746865206f7065726174696f6e206661696c732e2054686973206973207573656420666f72207765696768742063616c63756c6174696f6e2e2c63616e63656c5f73776170080118746172676574000130543a3a4163636f756e7449640001306861736865645f70726f6f6604012c48617368656450726f6f66000218490143616e63656c20616e2061746f6d696320737761702e204f6e6c7920706f737369626c6520616674657220746865206f726967696e616c6c7920736574206475726174696f6e20686173207061737365642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00bc2d2060746172676574603a20546172676574206f6620746865206f726967696e616c2061746f6d696320737761702eec2d20606861736865645f70726f6f66603a204861736865642070726f6f66206f6620746865206f726967696e616c2061746f6d696320737761702e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed5020c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90201844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f7765696768742c011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74d90201844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742c01185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c640901010c7531360001446f746865725f7369676e61746f726965730d0201445665633c543a3a4163636f756e7449643e00012474696d65706f696e743d01016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed90204184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d010000010000dd020c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c65741043616c6c0404540001041c7265717565737408013c72616e646f6d6e6573735f747970654501013852616e646f6d6e6573735479706500011073616c7420011048323536000004505265717565737420612072616e646f6d6e657373042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1020c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c010201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065e50201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f747970654d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465780901010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572010201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970654d010130543a3a50726f787954797065000114696e6465780901010c75313600011868656967687469010138543a3a426c6f636b4e756d6265720001246578745f696e6465786901010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736820013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465010201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c010201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065e50201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee50204184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d010000010000e9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465780901010c75313600011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696ef1020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73ed02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cc501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001187765696768742c0118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed02000002c50100f1020830676465765f72756e74696d65304f726967696e43616c6c657200010c1873797374656d0400f50201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000048546563686e6963616c436f6d6d69747465650400f90201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00170010566f69640400fd0201110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f696400020000f5020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000f902084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000fd02081c73705f636f726510566f69640001000001030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001143470726f706f73655f7370656e6408011476616c756530013c42616c616e63654f663c542c20493e00012c62656e6566696369617279010201504163636f756e7449644c6f6f6b75704f663c543e000018290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e0034232320436f6d706c6578697479182d204f2831293c72656a6563745f70726f706f73616c04012c70726f706f73616c5f69646901013450726f706f73616c496e646578000118f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e0034232320436f6d706c6578697479182d204f28312940617070726f76655f70726f706f73616c04012c70726f706f73616c5f69646901013450726f706f73616c496e64657800021c5901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e0034232320436f6d706c657869747920202d204f2831292e147370656e64080118616d6f756e7430013c42616c616e63654f663c542c20493e00012c62656e6566696369617279010201504163636f756e7449644c6f6f6b75704f663c543e000320b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e004d012d20606f726967696e603a204d75737420626520605370656e644f726967696e60207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e0045014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69646901013450726f706f73616c496e6465780004342d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652ec0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602ea02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c0034232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c73001c4572726f72733a61012d206050726f706f73616c4e6f74417070726f766564603a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686520617070726f76616c2071756575652c5101692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468652070726f706f73616c20646f6573206e6f745901657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f76656420696e2074686520666972737420706c6163652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e05030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00000903000002b901000d030c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090911030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454011503045300000400190301185665633c543e0000150300000408e101180019030000021503001d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400210301185665633c543e000021030000020400250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d61727904002d0301405072696d617279507265446967657374000100385365636f6e64617279506c61696e04003503015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400390301545365636f6e64617279565246507265446967657374000300002d030c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f740001347672665f7369676e6174757265310301305672665369676e617475726500003103101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f664502012056726650726f6f66000035030c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f74000039030c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74e5010110536c6f740001347672665f7369676e6174757265310301305672665369676e617475726500003d03084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e000008010463f1010128287536342c2075363429000134616c6c6f7765645f736c6f7473f5010130416c6c6f776564536c6f7473000041030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014503045300000400490301185665633c543e000045030000040818100049030000024503004d030c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090951030c7870616c6c65745f64756e697465725f746573745f706172616d657465727314747970657328506172616d65746572730c2c426c6f636b4e756d62657201102443657274436f756e7401102c506572696f64436f756e7401180058014c626162655f65706f63685f6475726174696f6e18012c506572696f64436f756e7400012c636572745f706572696f6410012c426c6f636b4e756d626572000148636572745f6d61785f62795f69737375657210012443657274436f756e74000190636572745f6d696e5f72656365697665645f636572745f746f5f69737375655f6365727410012443657274436f756e74000150636572745f76616c69646974795f706572696f6410012c426c6f636b4e756d62657200014c696474795f636f6e6669726d5f706572696f6410012c426c6f636b4e756d626572000150696474795f6372656174696f6e5f706572696f6410012c426c6f636b4e756d6265720001446d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200016470656e64696e675f6d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200014875645f6372656174696f6e5f706572696f6418012c506572696f64436f756e7400014075645f72656576616c5f706572696f6418012c506572696f64436f756e74000144736d6974685f636572745f706572696f6410012c426c6f636b4e756d626572000160736d6974685f636572745f6d61785f62795f69737375657210012443657274436f756e740001a8736d6974685f636572745f6d696e5f72656365697665645f636572745f746f5f69737375655f6365727410012443657274436f756e74000168736d6974685f636572745f76616c69646974795f706572696f6410012c426c6f636b4e756d62657200015c736d6974685f6d656d626572736869705f706572696f6410012c426c6f636b4e756d62657200017c736d6974685f70656e64696e675f6d656d626572736869705f706572696f6410012c426c6f636b4e756d626572000180736d6974685f776f745f66697273745f636572745f6973737561626c655f6f6e10012c426c6f636b4e756d626572000184736d6974685f776f745f6d696e5f636572745f666f725f6d656d6265727368697010012443657274436f756e74000168776f745f66697273745f636572745f6973737561626c655f6f6e10012c426c6f636b4e756d626572000188776f745f6d696e5f636572745f666f725f6372656174655f696474795f726967687410012443657274436f756e7400016c776f745f6d696e5f636572745f666f725f6d656d6265727368697010012443657274436f756e74000055030c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c616773590301284578747261466c616773000059030c3c70616c6c65745f62616c616e636573147479706573284578747261466c616773000004005d0301107531323800005d03000005070061030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540165030453000004006d0301185665633c543e000065030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964a90101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e736903011c526561736f6e73000069030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200006d0300000265030071030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017503045300000400790301185665633c543e000075030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201a9011c42616c616e63650118000801086964a9010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000079030000027503007d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018103045300000400850301185665633c543e000081030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964018c1c42616c616e636501180008010869648c01084964000118616d6f756e7418011c42616c616e63650000850300000281030089030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909098d030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004005d0301107531323800009103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000095030c5870616c6c65745f6f6e6573686f745f6163636f756e741870616c6c6574144572726f7204045400011c4c426c6f636b486569676874496e46757475726500000474426c6f636b2068656967687420697320696e207468652066757475726544426c6f636b486569676874546f6f4f6c640001045c426c6f636b2068656967687420697320746f6f206f6c644c446573744163636f756e744e6f7445786973740002048844657374696e6174696f6e206163636f756e7420646f6573206e6f74206578697374484578697374656e7469616c4465706f736974000304f444657374696e6174696f6e206163636f756e74206861732062616c616e6365206c657373207468616e206578697374656e7469616c206465706f7369744c496e73756666696369656e7442616c616e63650004049c536f75726365206163636f756e742068617320696e73756666696369656e742062616c616e6365704f6e6573686f744163636f756e74416c726561647943726561746564000504a844657374696e6174696f6e206f6e6573686f74206163636f756e7420616c726561647920657869737473584f6e6573686f744163636f756e744e6f74457869737400060494536f75726365206f6e6573686f74206163636f756e7420646f6573206e6f7420657869737404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090999030c3070616c6c65745f71756f74611870616c6c65741451756f7461082c426c6f636b4e756d62657201101c42616c616e63650118000801206c6173745f75736510012c426c6f636b4e756d626572000118616d6f756e7418011c42616c616e636500009d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a103045300000400a50301185665633c543e0000a1030c3070616c6c65745f71756f74611870616c6c657418526566756e640c244163636f756e74496401001849647479496401101c42616c616e63650118000c011c6163636f756e740001244163636f756e7449640001206964656e74697479100118496474794964000118616d6f756e7418011c42616c616e63650000a503000002a10300a9030c6070616c6c65745f617574686f726974795f6d656d62657273147479706573284d656d6265724461746104244163636f756e7449640100000401246f776e65725f6b65790001244163636f756e7449640000ad030c6070616c6c65745f617574686f726974795f6d656d626572731870616c6c6574144572726f720404540001303c416c7265616479496e636f6d696e6700000440416c726561647920696e636f6d696e6734416c72656164794f6e6c696e6500010438416c7265616479206f6e6c696e653c416c72656164794f7574676f696e6700020440416c7265616479206f7574676f696e67404d656d62657249644e6f74466f756e640003044c4e6f7420666f756e64206f776e6572206b65794c4d656d6265724964426c61636b4c6973746564000404544d656d62657220697320626c61636b6c6973746564504d656d6265724e6f74426c61636b4c6973746564000504644d656d626572206973206e6f7420626c61636b6c6973746564384d656d6265724e6f74466f756e64000604404d656d626572206e6f7420666f756e64504e6f744f6e6c696e654e6f72496e636f6d696e67000704704e656974686572206f6e6c696e65206e6f72207363686564756c6564204e6f744f776e6572000804244e6f74206f776e6572244e6f744d656d626572000904284e6f74206d656d6265725853657373696f6e4b6579734e6f7450726f7669646564000a046453657373696f6e206b657973206e6f742070726f766964656448546f6f4d616e79417574686f726974696573000b0450546f6f206d616e2061417574686f72697469657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b1030c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201e4000801206f6666656e646572e401204f6666656e6465720001247265706f72746572730d0201345665633c5265706f727465723e0000b50300000408b83400b903000002bd0300bd0300000408001d0200c10300000408c5033400c5030c1c73705f636f72651863727970746f244b65795479706549640000040044011c5b75383b20345d0000c9030c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ecd03083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000d103083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573d503016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365642401244f7074696f6e3c4e3e0000d5030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e0000d9030c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909dd030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d8045300000400e10301185665633c543e0000e103000002d800e50310346672616d655f737570706f727418747261697473106d69736334577261707065724f706171756504045401e9030008006901000000e9030104540000e903084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f6964ed03019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f616464726573736573f103012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e0000ed030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003401185665633c543e0000f1030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401ed03045300000400f50301185665633c543e0000f503000002ed0300f90300000408100000fd030c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090901040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65740504083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974a00150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974a401704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e24012c4f7074696f6e3c7533323e000100000904000004082010000d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000011040c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400011818546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090915040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401200453000004005d0101185665633c543e00001904084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965730d0201385665633c4163636f756e7449643e0001106e6179730d0201385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d62657200001d040c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090921040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012504045300000400290401185665633c543e00002504000004080901180029040000022504002d040c6470616c6c65745f756e6976657273616c5f6469766964656e641870616c6c6574144572726f720404540001046c4163636f756e744e6f74416c6c6f776564546f436c61696d556473000004a454686973206163636f756e74206973206e6f7420616c6c6f77656420746f20636c61696d205544732e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090931040c4870616c6c65745f64756e697465725f776f741870616c6c6574144572726f720804540004490001307c4e6f74456e6f7567684365727473546f436c61696d4d656d62657273686970000004d84e6f7420656e6f7567682063657274696669636174696f6e7320726563656976656420746f20636c61696d206d656d626572736869703444697374616e63654e6f744f4b000104a844697374616e636520686173206e6f74206265656e206576616c756174656420706f7369746976656c7984496474794e6f74416c6c6f776564546f526571756573744d656d62657273686970000204a84964656e74697479206e6f7420616c6c6f77656420746f2072657175657374206d656d626572736869707c496474794e6f74416c6c6f776564546f52656e65774d656d62657273686970000304a04964656e74697479206e6f7420616c6c6f77656420746f2072656e6577206d656d6265727368697078496474794372656174696f6e506572696f644e6f74526573706563746564000404984964656e74697479206372656174696f6e20706572696f64206e6f7420726573706563746564884e6f74456e6f75676852656365697665644365727473546f43726561746549647479000504d44e6f7420656e6f7567682072656365697665642063657274696669636174696f6e7320746f20637265617465206964656e74697479584d6178456d69747465644365727473526561636865640006048c4d6178206e756d626572206f6620656d69747465642063657274732072656163686564744e6f74416c6c6f776564546f4368616e67654964747941646472657373000704984e6f7420616c6c6f77656420746f206368616e6765206964656e746974792061646472657373584e6f74416c6c6f776564546f52656d6f766549647479000804784e6f7420616c6c6f77656420746f2072656d6f7665206964656e746974795049737375657243616e4e6f74456d697443657274000904d04973737565722063616e206e6f7420656d697420636572742062656361757365206974206973206e6f742076616c6964617465643c43657274546f556e646566696e6564000a041d0143616e206e6f74206973737565206365727420746f206964656e7469747920776974686f7574206d656d62657273686970206f722070656e64696e67206d656d6265727368697030496474794e6f74466f756e64000b0470497373756572206f72207265636569766572206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090935040c3c70616c6c65745f6964656e74697479147479706573244964747956616c75650c2c426c6f636b4e756d6265720110244163636f756e744964010020496474794461746101390400180110646174613904012049647479446174610001686e6578745f637265617461626c655f6964656e746974795f6f6e10012c426c6f636b4e756d6265720001346f6c645f6f776e65725f6b65793d0401804f7074696f6e3c284163636f756e7449642c20426c6f636b4e756d626572293e0001246f776e65725f6b65790001244163636f756e74496400013072656d6f7661626c655f6f6e10012c426c6f636b4e756d6265720001187374617475734504012849647479537461747573000039040c38636f6d6d6f6e5f72756e74696d6520656e746974696573204964747944617461000004014466697273745f656c696769626c655f7564090101a870616c6c65745f756e6976657273616c5f6469766964656e643a3a4669727374456c696769626c65556400003d0404184f7074696f6e0404540141040108104e6f6e6500000010536f6d6504004104000001000041040000040800100045040c3c70616c6c65745f6964656e74697479147479706573284964747953746174757300010c1c4372656174656400000040436f6e6669726d656442794f776e65720001002456616c6964617465640002000049040000024d04004d04000004081045040051040c3c70616c6c65745f6964656e746974791870616c6c6574144572726f720404540001545049647479416c7265616479436f6e6669726d6564000004684964656e7469747920616c726561647920636f6e6669726d65644849647479416c726561647943726561746564000104604964656e7469747920616c726561647920637265617465645049647479416c726561647956616c696461746564000204684964656e7469747920616c72656164792076616c69646174656458496474794372656174696f6e4e6f74416c6c6f776564000304c0596f7520617265206e6f7420616c6c6f77656420746f206372656174652061206e6577206964656e74697479206e6f774449647479496e6465784e6f74466f756e64000404604964656e7469747920696e646578206e6f7420666f756e6450496474794e616d65416c72656164794578697374000504704964656e74697479206e616d6520616c7265616479206578697374733c496474794e616d65496e76616c696400060454496e76616c6964206964656e74697479206e616d655c496474794e6f74436f6e6669726d656442794f776e65720007048c4964656e74697479206e6f7420636f6e6669726d656420627920697473206f776e657230496474794e6f74466f756e64000804484964656e74697479206e6f7420666f756e6434496474794e6f744d656d6265720009044c4964656e74697479206e6f74206d656d62657240496474794e6f7456616c696461746564000a04584964656e74697479206e6f742076616c6964617465644c496474794e6f7459657452656e657761626c65000b04684964656e74697479206e6f74207965742072656e657761626c6540496e76616c69645369676e6174757265000c04707061796c6f6164207369676e617475726520697320696e76616c696450496e76616c69645265766f636174696f6e4b6579000d04645265766f636174696f6e206b657920697320696e76616c6964704e6f7452657370656374496474794372656174696f6e506572696f64000e04a44964656e74697479206372656174696f6e20706572696f64206973206e6f74207265737065637465643c4e6f7453616d65496474794e616d65000f04684e6f74207468652073616d65206964656e74697479206e616d65784f776e65724b6579416c7265616479526563656e746c794368616e676564001004884f776e6572206b657920616c726561647920726563656e746c79206368616e6765644c4f776e65724b6579416c726561647955736564001104584f776e6572206b657920616c726561647920757365647050726f68696269746564546f526576657274546f416e4f6c644b65790012048850726f6869626974656420746f2072657665727420746f20616e206f6c64206b6579445269676874416c726561647941646465640013044c526967687420616c72656164792061646465643452696768744e6f74457869737400140450526967687420646f6573206e6f7420657869737404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095504083473705f6d656d62657273686970384d656d6265727368697044617461042c426c6f636b4e756d6265720110000401246578706972655f6f6e10012c426c6f636b4e756d626572000059040c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f72080454000449000118384964747949644e6f74466f756e64000004544964656e74697479206964206e6f7420666f756e64644d656d62657273686970416c726561647941637175697265640001046c4d656d6265727368697020616c7265616479206163717569726564684d656d62657273686970416c7265616479526571756573746564000204704d656d6265727368697020616c726561647920726571756573746564484d656d626572736869704e6f74466f756e64000304504d656d62657273686970206e6f7420666f756e64644f726967696e4e6f74416c6c6f776564546f557365496474790004049c4f726967696e206e6f7420616c6c6f77656420746f207573652074686973206964656e74697479644d656d62657273686970526571756573744e6f74466f756e64000504704d656d626572736869702072657175657374206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095d040c5070616c6c65745f63657274696669636174696f6e1474797065733049647479436572744d657461042c426c6f636b4e756d6265720110000c01306973737565645f636f756e7410010c7533320001406e6578745f6973737561626c655f6f6e10012c426c6f636b4e756d62657200013872656365697665645f636f756e7410010c753332000061040c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144572726f720804540004490001144443616e6e6f744365727469667953656c6600000484416e206964656e746974792063616e6e6f74206365727469667920697473656c6644497373756564546f6f4d616e7943657274000104150154686973206964656e746974792068617320616c72656164792069737375656420746865206d6178696d756d206e756d626572206f662063657274696669636174696f6e73384973737565724e6f74466f756e6400020440497373756572206e6f7420666f756e64544e6f74456e6f756768436572745265636569766564000304884e6f7420656e6f7567682063657274696669636174696f6e73207265636569766564504e6f745265737065637443657274506572696f64000404f454686973206964656e746974792068617320616c72656164792069737375656420612063657274696669636174696f6e20746f6f20726563656e746c7904b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090965040c3c70616c6c65745f64697374616e6365147479706573384576616c756174696f6e506f6f6c08244163636f756e74496401002449647479496e64657801100008012c6576616c756174696f6e73690401bd01426f756e6465645665633c2849647479496e6465782c204d656469616e4163633c50657262696c6c2c204d41585f4556414c5541544f52535f5045525f53455353494f4e3e292c0a436f6e73745533323c4d41585f4556414c554154494f4e535f5045525f53455353494f4e3e2c3e0001286576616c7561746f72738504010101426f756e64656442547265655365743c4163636f756e7449642c20436f6e73745533323c4d41585f4556414c5541544f52535f5045525f53455353494f4e3e3e000069040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400810401185665633c543e00006d04000004081071040071040c3c70616c6c65745f64697374616e6365186d656469616e244d656469616e41636304045401b902000c011c73616d706c657375040184426f756e6465645665633c28542c20753332292c20436f6e73745533323c533e3e0001306d656469616e5f696e64657824012c4f7074696f6e3c7533323e00013c6d656469616e5f737562696e64657810010c753332000075040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540179040453000004007d0401185665633c543e0000790400000408b90210007d0400000279040081040000026d040085040c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004008904012c42547265655365743c543e000089040420425472656553657404045401000004000d020000008d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400b001185665633c543e000091040c3c70616c6c65745f64697374616e63651870616c6c6574144572726f720404540001284c416c7265616479496e4576616c756174696f6e0000003443616e6e6f74526573657276650001005c4d616e794576616c756174696f6e734279417574686f72000200584d616e794576616c756174696f6e73496e426c6f636b000300204e6f417574686f72000400284e6f4964656e74697479000500604e6f6e456c696769626c65466f724576616c756174696f6e00060024517565756546756c6c00070044546f6f4d616e794576616c7561746f72730008004457726f6e67526573756c744c656e67746800090004b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090995040c4870616c6c65745f64756e697465725f776f741870616c6c6574144572726f720804540004490001307c4e6f74456e6f7567684365727473546f436c61696d4d656d62657273686970000004d84e6f7420656e6f7567682063657274696669636174696f6e7320726563656976656420746f20636c61696d206d656d626572736869703444697374616e63654e6f744f4b000104a844697374616e636520686173206e6f74206265656e206576616c756174656420706f7369746976656c7984496474794e6f74416c6c6f776564546f526571756573744d656d62657273686970000204a84964656e74697479206e6f7420616c6c6f77656420746f2072657175657374206d656d626572736869707c496474794e6f74416c6c6f776564546f52656e65774d656d62657273686970000304a04964656e74697479206e6f7420616c6c6f77656420746f2072656e6577206d656d6265727368697078496474794372656174696f6e506572696f644e6f74526573706563746564000404984964656e74697479206372656174696f6e20706572696f64206e6f7420726573706563746564884e6f74456e6f75676852656365697665644365727473546f43726561746549647479000504d44e6f7420656e6f7567682072656365697665642063657274696669636174696f6e7320746f20637265617465206964656e74697479584d6178456d69747465644365727473526561636865640006048c4d6178206e756d626572206f6620656d69747465642063657274732072656163686564744e6f74416c6c6f776564546f4368616e67654964747941646472657373000704984e6f7420616c6c6f77656420746f206368616e6765206964656e746974792061646472657373584e6f74416c6c6f776564546f52656d6f766549647479000804784e6f7420616c6c6f77656420746f2072656d6f7665206964656e746974795049737375657243616e4e6f74456d697443657274000904d04973737565722063616e206e6f7420656d697420636572742062656361757365206974206973206e6f742076616c6964617465643c43657274546f556e646566696e6564000a041d0143616e206e6f74206973737565206365727420746f206964656e7469747920776974686f7574206d656d62657273686970206f722070656e64696e67206d656d6265727368697030496474794e6f74466f756e64000b0470497373756572206f72207265636569766572206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090999040c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f72080454000449000118384964747949644e6f74466f756e64000004544964656e74697479206964206e6f7420666f756e64644d656d62657273686970416c726561647941637175697265640001046c4d656d6265727368697020616c7265616479206163717569726564684d656d62657273686970416c7265616479526571756573746564000204704d656d6265727368697020616c726561647920726571756573746564484d656d626572736869704e6f74466f756e64000304504d656d62657273686970206e6f7420666f756e64644f726967696e4e6f74416c6c6f776564546f557365496474790004049c4f726967696e206e6f7420616c6c6f77656420746f207573652074686973206964656e74697479644d656d62657273686970526571756573744e6f74466f756e64000504704d656d626572736869702072657175657374206e6f7420666f756e6404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909099d040c5070616c6c65745f63657274696669636174696f6e1870616c6c6574144572726f720804540004490001144443616e6e6f744365727469667953656c6600000484416e206964656e746974792063616e6e6f74206365727469667920697473656c6644497373756564546f6f4d616e7943657274000104150154686973206964656e746974792068617320616c72656164792069737375656420746865206d6178696d756d206e756d626572206f662063657274696669636174696f6e73384973737565724e6f74466f756e6400020440497373756572206e6f7420666f756e64544e6f74456e6f756768436572745265636569766564000304884e6f7420656e6f7567682063657274696669636174696f6e73207265636569766564504e6f745265737065637443657274506572696f64000404f454686973206964656e746974792068617320616c72656164792069737375656420612063657274696669636174696f6e20746f6f20726563656e746c7904b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a10400000408000400a5040c4870616c6c65745f61746f6d69635f737761701870616c6c6574144572726f7204045400012030416c72656164794578697374000004505377617020616c7265616479206578697374732e30496e76616c696450726f6f6600010458537761702070726f6f6620697320696e76616c69642e3450726f6f66546f6f4c617267650002044c50726f6f6620697320746f6f206c617267652e38536f757263654d69736d6174636800030458536f7572636520646f6573206e6f74206d617463682e38416c7265616479436c61696d656400040478537761702068617320616c7265616479206265656e20636c61696d65642e204e6f744578697374000504505377617020646f6573206e6f742065786973742e4c436c61696d416374696f6e4d69736d6174636800060458436c61696d20616374696f6e206d69736d617463682e444475726174696f6e4e6f74506173736564000704e44475726174696f6e20686173206e6f74207965742070617373656420666f7220746865207377617020746f2062652063616e63656c6c65642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a904083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e3d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73ad04018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000ad040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004000d0201185665633c543e0000b1040c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b504000002b90400b9040c6470616c6c65745f70726f766964655f72616e646f6d6e6573731474797065731c526571756573740000080128726571756573745f696418012452657175657374496400011073616c74200110483235360000bd040c6470616c6c65745f70726f766964655f72616e646f6d6e6573731870616c6c6574144572726f720404540001042446756c6c5175657565000004945468652071756575652069732066756c6c2c20706c65617379207265747279206c6174657204b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909c10400000408c5041800c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c904045300000400cd0401185665633c543e0000c904083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f787954797065014d012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970654d01012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000cd04000002c90400d10400000408d5041800d5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d904045300000400dd0401185665633c543e0000d904083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801202c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682001104861736800011868656967687410012c426c6f636b4e756d6265720000dd04000002d90400e1040c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e5040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e904083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000ed040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400b001185665633c543e0000f1040c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f90408346672616d655f737570706f72742050616c6c6574496400000400a901011c5b75383b20385d0000fd040c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900011470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e04784572726f7220666f72207468652074726561737572792070616c6c65742e0105102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730101021043616c6c01c501245369676e61747572650191021445787472610105050004003400000005050000042009050d0511051505190521052d05310500090510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000000d0510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000110510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000190510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004001d05010c45726100001d05102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff000021050c5870616c6c65745f6f6e6573686f745f6163636f756e742c636865636b5f6e6f6e636528436865636b4e6f6e63650404540125050004002905016c6672616d655f73797374656d3a3a436865636b4e6f6e63653c543e000025050830676465765f72756e74696d651c52756e74696d6500000000290510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040069010120543a3a496e64657800002d0510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003105086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e740404540000040030013042616c616e63654f663c543e0000941853797374656d011853797374656d401c4163636f756e7401010402000ca800000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010028180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510208000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022061010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000650104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010001010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010001010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500005901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e016d0101541830426c6f636b576569676874737d0181018236b8a4000b00204aa9d10102004001425dff3500010bb0f089a02e010200d000010b0098f73e5d010200f000010000425dff3500010bb078dc0aa30102002001010b00204aa9d1010200400101070088526a7402005000425dff350000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774688d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687495014080b2e60e0000000000621132000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e9901a10210676465763064756e697465722d6764657601000000bd020000010000002c687ad44ad37f03c201000000cbca25e39f14238702000000df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ed99c5acb25eedf503000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780901082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ad01001c4163636f756e74011c4163636f756e74086850656e64696e6752616e646f6d496441737369676e6d656e74730001040518000400004850656e64696e674e65774163636f756e747300010402008c04000001b101017808584d61784e65774163636f756e7473506572426c6f636b101001000000003c4e65774163636f756e74507269636518202c01000000000000000001245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e64610101040510b5010400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b7570000104050480040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01c901017c08344d6178696d756d5765696768742c2c0b00806e8774010200000104290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e010d03021042616265011042616265442845706f6368496e64657801001820000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f726974696573010011030400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100e50120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100e50120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000ed0104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100110304000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e01010405101d0304000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000250304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301008404001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010080200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e66696700003d0304000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e66696700003d030400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100410304002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01d101000c3445706f63684475726174696f6e182058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d651820701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010200000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564014d03032454696d657374616d70012454696d657374616d70080c4e6f7701001820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501000101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01f9010004344d696e696d756d506572696f641820b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000428506172616d65746572730128506172616d65746572730444506172616d657465727353746f72616765010051039101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052042616c616e636573012042616c616e6365731c34546f74616c49737375616e636501001820000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e63650100182000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e7401010402005503a000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402006103040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402007103040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402007d030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01fd01019014484578697374656e7469616c4465706f7369741820640000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101005000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310100000000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01890306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201008d0340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100910304000000019804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e0020384f6e6573686f744163636f756e7401384f6e6573686f744163636f756e74043c4f6e6573686f744163636f756e7473000104020018040000011102019c00019503071451756f7461011451756f746108244964747951756f74610001040510990304000474206d617073206964656e7469747920696e64657820746f2071756f74612c526566756e64517565756501009d030400046020666565732077616974696e6720666f7220726566756e640001a80434526566756e644163636f756e7400806d6f646c70792f74727372790000000000000000000000000000000000000000046c204163636f756e74207573656420746f20726566756e6420666565004240417574686f726974794d656d626572730140417574686f726974794d656d626572731c2c4163636f756e7449644f6600010405100004000474206d617073206d656d62657220696420746f206163636f756e7420696448417574686f726974696573436f756e7465720100101000000000048020636f756e7420746865206e756d626572206f6620617574686f7269746965734c496e636f6d696e67417574686f7269746965730100b004000468206c69737420696e636f6d696e6720617574686f726974696573444f6e6c696e65417574686f7269746965730100b004000460206c697374206f6e6c696e6520617574686f7269746965734c4f7574676f696e67417574686f7269746965730100b004000468206c697374206f7574676f696e6720617574686f7269746965731c4d656d626572730001040510a90304000478206d617073206d656d62657220696420746f206d656d626572206461746124426c61636b4c6973740100b004000001190201ac04384d6178417574686f7269746965731010200000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656401ad030a28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000000b204f6666656e63657301204f6666656e636573081c5265706f7274730001040520b103040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505b5035d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001b400000c28486973746f726963616c00000000000d1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301000d020400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e67656401000101040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100b9030400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100b00400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405001d020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405c10300040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01250201bc0001c9030e1c4772616e647061011c4772616e647061181453746174650100cd0304000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000d103040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000800400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010018200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405181004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e01290201c008384d6178417574686f726974696573101020000000045c204d617820417574686f72697469657320696e20757365584d6178536574496453657373696f6e456e74726965731820e80300000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01d9030f20496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100dd03040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e48526563656976656448656172746265617473000108050580e5030400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505f90310100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01590201d40440556e7369676e65645072696f726974791820ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01fd031048417574686f72697479446973636f76657279000000000011105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01790201ec000101041434557067726164654f726967696e00017d0201f400001520507265696d6167650120507265696d6167650824537461747573466f72000104062005040400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f720001040609040d0404000001810201f8000111041648546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c7301001504040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001040620c501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e6700010406201904040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d6265727301000d020400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01850201fc04444d617850726f706f73616c5765696768742c28070010a5d4e80200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e011d041744556e6976657273616c4469766964656e640144556e6976657273616c4469766964656e64182443757272656e74556401001820000000000000000004482043757272656e7420554420616d6f756e743843757272656e745564496e6465780100090108010004442043757272656e7420554420696e646578304d6f6e65746172794d61737301001820000000000000000004d50120546f74616c207175616e74697479206f66206d6f6e6579206372656174656420627920756e6976657273616c206469766964656e642028646f6573206e6f742074616b6520696e746f206163636f756e742074686520706f737369626c65206465737472756374696f6e206f66206d6f6e657929284e65787452656576616c00001804000454204e6578742055442072656576616c756174696f6e184e657874556400001804000444204e657874205544206372656174696f6e2c5061737452656576616c73010021040400045820506173742055442072656576616c756174696f6e7301890201050114344d61785061737452656576616c1010a000000004ec204d6178696d756d206e756d626572206f66207061737420554420726576616c756174696f6e7320746f206b65657020696e2073746f726167652e545371756172654d6f6e657947726f77746852617465b902108056240004ec20537175617265206f6620746865206d6f6e65792067726f7774682072617465207065722075642072656576616c756174696f6e20706572696f644055644372656174696f6e506572696f64182000badb000000000004a020556e6976657273616c206469766964656e64206372656174696f6e20706572696f6420286d732938556452656576616c506572696f641820005c26050000000004b020556e6976657273616c206469766964656e642072656576616c756174696f6e20706572696f6420286d732928556e69747350657255641820e8030000000000000c150120546865206e756d626572206f6620756e69747320746f206469766964652074686520616d6f756e74732065787072657373656420696e206e756d626572206f66205544735501204578616d706c653a20496620796f75207769736820746f20657870726573732074686520554420616d6f756e747320776974682061206d6178696d756d20707265636973696f6e206f6620746865206f7264657270206f6620746865206d696c6c6955442c2063686f6f73652031303030012d041e0c576f74000000103c46697273744973737561626c654f6e10100000000000204973537562576f740101040000504d696e43657274466f724d656d6265727368697010100300000000644d696e43657274466f724372656174654964747952696768741010030000000001310428204964656e7469747901204964656e7469747918284964656e7469746965730001040510350404000498206d617073206964656e7469747920696e64657820746f206964656e746974792076616c756550436f756e746572466f724964656e746974696573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4964656e74697479496e6465784f6600010402001004000488206d617073206163636f756e7420696420746f206964656e7469747920696e6465783c4964656e7469746965734e616d657300010402110110040004d0206d617073206964656e74697479206e616d6520746f206964656e7469747920696e646578202873696d706c7920612073657429344e65787449647479496e646578010010100000000004ec20636f756e746572206f6620746865206964656e7469747920696e64657820746f206769766520746f20746865206e657874206964656e74697479544964656e74697469657352656d6f7661626c654f6e010104051049040400042d01206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e7469746965732073657420746f2062652072656d6f766564206174207468697320626c6f63018d02010d010c34436f6e6669726d506572696f6410104038000004f020506572696f6420647572696e6720776869636820746865206f776e65722063616e20636f6e6669726d20746865206e6577206964656e746974792e504368616e67654f776e65724b6579506572696f641010c089010004bc204d696e696d756d206475726174696f6e206265747765656e2074776f206f776e6572206b6579206368616e67657348496474794372656174696f6e506572696f64101040380000042901204d696e696d756d206475726174696f6e206265747765656e20746865206372656174696f6e206f662032206964656e746974696573206279207468652073616d652063726561746f7201510429284d656d6265727368697001284d656d6265727368697014284d656d626572736869700001040510550404000490206d617073206964656e7469747920696420746f206d656d62657273686970206461746150436f756e746572466f724d656d62657273686970010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c4d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e746974792069642073657420746f20657870697265206174207468697320626c6f636b4450656e64696e674d656d6265727368697000010405108c040004ac206964656e74697469657320776974682070656e64696e67206d656d6265727368697020726571756573746850656e64696e674d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206d656d62657273686970732073657420746f20657870697265206174207468697320626c6f636b01a502011d0108404d656d62657273686970506572696f641010400a1000041901204d6178696d756d206c696665207370616e206f662061206e6f6e2d72656e657761626c65206d656d626572736869702028696e206e756d626572206f6620626c6f636b73295c50656e64696e674d656d62657273686970506572696f64101000a30200046501204d6178696d756d20706572696f642028696e206e756d626572206f6620626c6f636b73292c20776865726520616e206964656e746974792063616e2072656d61696e2070656e64696e6720737562736372697074696f6e2e0159042a10436572740110436572740c4c53746f7261676549647479436572744d65746101010405105d043000000000000000000000000004802043657274696669636174696f6e73206d6574616461206279206973737565723c436572747342795265636569766572010104051061010400046c2043657274696669636174696f6e732062792072656365697665725c53746f72616765436572747352656d6f7661626c654f6e00010405106101040004702043657274696669636174696f6e732072656d6f7661626c65206f6e01a902012101102843657274506572696f64101040380000041901204d696e696d756d206475726174696f6e206265747765656e2074776f2063657274696669636174696f6e7320697373756564206279207468652073616d65206973737565722c4d6178427949737375657210106400000004c8204d6178696d756d206e756d626572206f66206163746976652063657274696669636174696f6e7320627920697373756572884d696e526563656976656443657274546f426541626c65546f497373756543657274101003000000082d01204d696e696d756d206e756d626572206f662063657274696669636174696f6e732074686174206d75737420626520726563656976656420746f2062652061626c6520746f206973737565402063657274696669636174696f6e732e3856616c6964697479506572696f6410108014200004a0204475726174696f6e206f662076616c6964697479206f6620612063657274696669636174696f6e0161042b2044697374616e6365012044697374616e63651c3c4576616c756174696f6e506f6f6c300100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e506f6f6c310100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e506f6f6c320100650408000004a8204964656e7469746965732071756575656420666f722064697374616e6365206576616c756174696f6e3c4576616c756174696f6e426c6f636b01002080000000000000000000000000000000000000000000000000000000000000000004c820426c6f636b20666f72207768696368207468652064697374616e63652072756c65206d75737420626520636865636b6564584964656e7469747944697374616e63655374617475730001040510c1020400149c2044697374616e6365206576616c756174696f6e20737461747573206279206964656e74697479002901202a20602e306020697320746865206163636f756e742077686f2072657175657374656420616e206576616c756174696f6e20616e64207265736572766564207468652070726963652c4901202020666f722077686f6d207468652070726963652077696c6c20626520756e7265736572766564206f7220736c6173686564207768656e20746865206576616c756174696f6e20636f6d706c657465732ea0202a20602e31602069732074686520737461747573206f6620746865206576616c756174696f6e2e5844697374616e63655374617475734578706972654f6e01010405108d04040004dc204964656e7469746965732062792064697374616e6365207374617475732065787069726174696f6e2073657373696f6e20696e6465782444696455706461746501000101040004a820446964206576616c756174696f6e20676574207570646174656420696e207468697320626c6f636b3f01ad0200083c4576616c756174696f6e50726963651820e803000000000000048820416d6f756e7420726573657276656420647572696e67206576616c756174696f6e544d696e41636365737369626c655265666572656573b902100008af2f0494204d696e696d756d20726174696f206f662061636365737369626c652072656665726565730191042c2c536d697468537562576f74000000103c46697273744973737561626c654f6e10104038000000204973537562576f740101040100504d696e43657274466f724d656d6265727368697010100300000000644d696e43657274466f7243726561746549647479526967687410100000000000019504323c536d6974684d656d62657273686970013c536d6974684d656d6265727368697014284d656d626572736869700001040510550404000490206d617073206964656e7469747920696420746f206d656d62657273686970206461746150436f756e746572466f724d656d62657273686970010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c4d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206964656e746974792069642073657420746f20657870697265206174207468697320626c6f636b4450656e64696e674d656d6265727368697000010405108c040004ac206964656e74697469657320776974682070656e64696e67206d656d6265727368697020726571756573746850656e64696e674d656d62657273686970734578706972654f6e0101040510b00400042501206d61707320626c6f636b206e756d62657220746f20746865206c697374206f66206d656d62657273686970732073657420746f20657870697265206174207468697320626c6f636b01c90201250108404d656d62657273686970506572696f641010400a1000041901204d6178696d756d206c696665207370616e206f662061206e6f6e2d72656e657761626c65206d656d626572736869702028696e206e756d626572206f6620626c6f636b73295c50656e64696e674d656d62657273686970506572696f64101000a30200046501204d6178696d756d20706572696f642028696e206e756d626572206f6620626c6f636b73292c20776865726520616e206964656e746974792063616e2072656d61696e2070656e64696e6720737562736372697074696f6e2e0199043424536d697468436572740124536d697468436572740c4c53746f7261676549647479436572744d65746101010405105d043000000000000000000000000004802043657274696669636174696f6e73206d6574616461206279206973737565723c436572747342795265636569766572010104051061010400046c2043657274696669636174696f6e732062792072656365697665725c53746f72616765436572747352656d6f7661626c654f6e00010405106101040004702043657274696669636174696f6e732072656d6f7661626c65206f6e01cd02012901102843657274506572696f64101040380000041901204d696e696d756d206475726174696f6e206265747765656e2074776f2063657274696669636174696f6e7320697373756564206279207468652073616d65206973737565722c4d6178427949737375657210100f00000004c8204d6178696d756d206e756d626572206f66206163746976652063657274696669636174696f6e7320627920697373756572884d696e526563656976656443657274546f426541626c65546f497373756543657274101003000000082d01204d696e696d756d206e756d626572206f662063657274696669636174696f6e732074686174206d75737420626520726563656976656420746f2062652061626c6520746f206973737565402063657274696669636174696f6e732e3856616c6964697479506572696f6410108014200004a0204475726174696f6e206f662076616c6964697479206f6620612063657274696669636174696f6e019d04352841746f6d696353776170012841746f6d696353776170043050656e64696e6753776170730001080502a104310104000001d102012d01042850726f6f664c696d69741010000400002854204c696d6974206f662070726f6f662073697a652e0059012041746f6d69632073776170206973206f6e6c792061746f6d6963206966206f6e6365207468652070726f6f662069732072657665616c65642c20626f746820706172746965732063616e207375626d69742074686565012070726f6f6673206f6e2d636861696e2e204966204120697320746865206f6e6520746861742067656e657261746573207468652070726f6f662c207468656e2069742072657175697265732074686174206569746865723a1101202d2041277320626c6f636b636861696e20686173207468652073616d652070726f6f66206c656e677468206c696d69742061732042277320626c6f636b636861696e2e1901202d204f722041277320626c6f636b636861696e206861732073686f727465722070726f6f66206c656e677468206c696d69742061732042277320626c6f636b636861696e2e005501204966204220736565732041206973206f6e206120626c6f636b636861696e2077697468206c61726765722070726f6f66206c656e677468206c696d69742c207468656e2069742073686f756c64206b696e646c794d012072656675736520746f20616363657074207468652061746f6d69632073776170207265717565737420696620412067656e657261746573207468652070726f6f662c20616e642061736b7320746861742042742067656e657261746573207468652070726f6f6620696e73746561642e01a5043c204d756c746973696701204d756c746973696704244d756c7469736967730001080502a104a904040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01d5020139010c2c4465706f736974426173651820640000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72182020000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310100a00000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01b1043d4450726f7669646552616e646f6d6e657373014450726f7669646552616e646f6d6e65737318384e657845706f6368486f6f6b496e0100080400004452657175657374496450726f766964657201001820000000000000000000605265717565737473526561647941744e657874426c6f636b0100b5040400005052657175657374735265616479417445706f63680101040518b5040400002c526571756573747349647300010405188c04000054436f756e746572466f725265717565737473496473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617001dd02014101082c4d6178526571756573747310106400000004a8204d6178696d756d206e756d626572206f66206e6f74207965742066696c6c6564207265717565737473305265717565737450726963651820d007000000000000045c20546865207072696365206f662061207265717565737401bd043e1450726f7879011450726f7879081c50726f786965730101040500c104240000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500d1042400000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01e102014901184050726f78794465706f7369744261736518206c0000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721820210000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518206c0000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f721820420000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01e1043f1c5574696c6974790001e902015101044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01e5044020547265617375727901205472656173757279103450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510e9040400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c446561637469766174656401001820000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100ed04040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e0101030155011c3050726f706f73616c426f6e64f1041010270000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18201027000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756df5040400044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101040380000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ef10410000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964f9042070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e01fd04410105042048436865636b4e6f6e5a65726f53656e64657209058c40436865636b5370656356657273696f6e0d051038436865636b547856657273696f6e11051030436865636b47656e6573697315052038436865636b4d6f7274616c69747919052028436865636b4e6f6e636521058c2c436865636b5765696768742d058c604368617267655472616e73616374696f6e5061796d656e7431058c2505", + "id": "1" +} diff --git a/src/interfaces/types.ts b/src/interfaces/types.ts index dfecb1f8d957ef3e9b28f4d2ee72b5aef82d1e84..deaa5c34d971ec5f746b59394e87990cfb47b182 100644 --- a/src/interfaces/types.ts +++ b/src/interfaces/types.ts @@ -1,3 +1,2 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ - diff --git a/src/schema.graphql b/src/schema.graphql new file mode 100644 index 0000000000000000000000000000000000000000..04ecf5d1d46f50473c9e9454ae054457aca2302d --- /dev/null +++ b/src/schema.graphql @@ -0,0 +1,2476 @@ +# This file was generated. Do not edit manually. + +schema { + query: Query +} + +type Account { + "Account address is SS58 format" + id: String! + "current account for the identity" + identity: Identity + "linked to the identity" + linkedIdentity: Identity + transfersIssued(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + transfersReceived(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + "was once account of the identity" + wasIdentity(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! +} + +type AccountEdge { + cursor: String! + node: Account! +} + +type AccountsConnection { + edges: [AccountEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Block { + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + callsCount: Int! + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + eventsCount: Int! + extrinsics(limit: Int, offset: Int, orderBy: [ExtrinsicOrderByInput!], where: ExtrinsicWhereInput): [Extrinsic!]! + extrinsicsCount: Int! + extrinsicsicRoot: Bytes! + hash: Bytes! + height: Int! + "BlockHeight-blockHash - e.g. 0001812319-0001c" + id: String! + implName: String! + implVersion: Int! + parentHash: Bytes! + specName: String! + specVersion: Int! + stateRoot: Bytes! + timestamp: DateTime! + validator: Bytes +} + +type BlockEdge { + cursor: String! + node: Block! +} + +type BlocksConnection { + edges: [BlockEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Call { + address: [Int!]! + args: JSON + argsStr: [String] + block: Block! + error: JSON + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + extrinsic: Extrinsic + id: String! + name: String! + pallet: String! + parent: Call + subcalls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + success: Boolean! +} + +type CallEdge { + cursor: String! + node: Call! +} + +type CallsConnection { + edges: [CallEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Certification" +type Cert { + "whether the certification is currently active or not" + active: Boolean! + "the last createdOn value" + createdOn: Int! + creation(limit: Int, offset: Int, orderBy: [CertCreationOrderByInput!], where: CertCreationWhereInput): [CertCreation!]! + "the current expireOn value" + expireOn: Int! + id: String! + issuer: Identity! + receiver: Identity! + removal(limit: Int, offset: Int, orderBy: [CertRemovalOrderByInput!], where: CertRemovalWhereInput): [CertRemoval!]! + renewal(limit: Int, offset: Int, orderBy: [CertRenewalOrderByInput!], where: CertRenewalWhereInput): [CertRenewal!]! +} + +"Certification creation" +type CertCreation { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertCreationEdge { + cursor: String! + node: CertCreation! +} + +type CertCreationsConnection { + edges: [CertCreationEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type CertEdge { + cursor: String! + node: Cert! +} + +"Certification removal" +type CertRemoval { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertRemovalEdge { + cursor: String! + node: CertRemoval! +} + +type CertRemovalsConnection { + edges: [CertRemovalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Certification renewal" +type CertRenewal { + blockNumber: Int! + cert: Cert! + id: String! +} + +type CertRenewalEdge { + cursor: String! + node: CertRenewal! +} + +type CertRenewalsConnection { + edges: [CertRenewalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type CertsConnection { + edges: [CertEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"owner key change" +type ChangeOwnerKey { + blockNumber: Int! + id: String! + identity: Identity! + next: Account! + previous: Account! +} + +type ChangeOwnerKeyEdge { + cursor: String! + node: ChangeOwnerKey! +} + +type ChangeOwnerKeysConnection { + edges: [ChangeOwnerKeyEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Event { + args: JSON + argsStr: [String] + block: Block! + call: Call + extrinsic: Extrinsic + "Event id - e.g. 0000000001-000000-272d6" + id: String! + index: Int! + name: String! + pallet: String! + phase: String! +} + +type EventEdge { + cursor: String! + node: Event! +} + +type EventsConnection { + edges: [EventEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type Extrinsic { + block: Block! + call: Call! + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + error: JSON + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + fee: BigInt + hash: Bytes! + id: String! + index: Int! + signature: ExtrinsicSignature + success: Boolean + tip: BigInt + version: Int! +} + +type ExtrinsicEdge { + cursor: String! + node: Extrinsic! +} + +type ExtrinsicSignature { + address: JSON + signature: JSON + signedExtensions: JSON +} + +type ExtrinsicsConnection { + edges: [ExtrinsicEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type IdentitiesConnection { + edges: [IdentityEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Identity" +type Identity { + "Current account" + account: Account! + "Certifications issued" + certIssued(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + "Certifications received" + certReceived(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + id: String! + "Identity index" + index: Int! + "linked accounts" + linkedAccount(limit: Int, offset: Int, orderBy: [AccountOrderByInput!], where: AccountWhereInput): [Account!]! + "Membership of the identity" + membership: Membership + "Name" + name: String! + "Owner key changes" + ownerKeyChange(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! + "Smith certifications issued" + smithCertIssued(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + "Smith certifications received" + smithCertReceived(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + "Smith Membership of the identity" + smithMembership: SmithMembership +} + +type IdentityEdge { + cursor: String! + node: Identity! +} + +type ItemsCounter { + id: String! + level: CounterLevel! + total: Int! + type: ItemType! +} + +type ItemsCounterEdge { + cursor: String! + node: ItemsCounter! +} + +type ItemsCountersConnection { + edges: [ItemsCounterEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Membership" +type Membership { + expireOn: Int! + id: String! + identity: Identity! +} + +type MembershipEdge { + cursor: String! + node: Membership! +} + +type MembershipsConnection { + edges: [MembershipEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type PageInfo { + endCursor: String! + hasNextPage: Boolean! + hasPreviousPage: Boolean! + startCursor: String! +} + +type Query { + accountById(id: String!): Account + accountByUniqueInput(where: WhereIdInput!): Account @deprecated(reason: "Use accountById") + accounts(limit: Int, offset: Int, orderBy: [AccountOrderByInput!], where: AccountWhereInput): [Account!]! + accountsConnection(after: String, first: Int, orderBy: [AccountOrderByInput!]!, where: AccountWhereInput): AccountsConnection! + blockById(id: String!): Block + blockByUniqueInput(where: WhereIdInput!): Block @deprecated(reason: "Use blockById") + blocks(limit: Int, offset: Int, orderBy: [BlockOrderByInput!], where: BlockWhereInput): [Block!]! + blocksConnection(after: String, first: Int, orderBy: [BlockOrderByInput!]!, where: BlockWhereInput): BlocksConnection! + callById(id: String!): Call + callByUniqueInput(where: WhereIdInput!): Call @deprecated(reason: "Use callById") + calls(limit: Int, offset: Int, orderBy: [CallOrderByInput!], where: CallWhereInput): [Call!]! + callsConnection(after: String, first: Int, orderBy: [CallOrderByInput!]!, where: CallWhereInput): CallsConnection! + certById(id: String!): Cert + certByUniqueInput(where: WhereIdInput!): Cert @deprecated(reason: "Use certById") + certCreationById(id: String!): CertCreation + certCreationByUniqueInput(where: WhereIdInput!): CertCreation @deprecated(reason: "Use certCreationById") + certCreations(limit: Int, offset: Int, orderBy: [CertCreationOrderByInput!], where: CertCreationWhereInput): [CertCreation!]! + certCreationsConnection(after: String, first: Int, orderBy: [CertCreationOrderByInput!]!, where: CertCreationWhereInput): CertCreationsConnection! + certRemovalById(id: String!): CertRemoval + certRemovalByUniqueInput(where: WhereIdInput!): CertRemoval @deprecated(reason: "Use certRemovalById") + certRemovals(limit: Int, offset: Int, orderBy: [CertRemovalOrderByInput!], where: CertRemovalWhereInput): [CertRemoval!]! + certRemovalsConnection(after: String, first: Int, orderBy: [CertRemovalOrderByInput!]!, where: CertRemovalWhereInput): CertRemovalsConnection! + certRenewalById(id: String!): CertRenewal + certRenewalByUniqueInput(where: WhereIdInput!): CertRenewal @deprecated(reason: "Use certRenewalById") + certRenewals(limit: Int, offset: Int, orderBy: [CertRenewalOrderByInput!], where: CertRenewalWhereInput): [CertRenewal!]! + certRenewalsConnection(after: String, first: Int, orderBy: [CertRenewalOrderByInput!]!, where: CertRenewalWhereInput): CertRenewalsConnection! + certs(limit: Int, offset: Int, orderBy: [CertOrderByInput!], where: CertWhereInput): [Cert!]! + certsConnection(after: String, first: Int, orderBy: [CertOrderByInput!]!, where: CertWhereInput): CertsConnection! + changeOwnerKeyById(id: String!): ChangeOwnerKey + changeOwnerKeyByUniqueInput(where: WhereIdInput!): ChangeOwnerKey @deprecated(reason: "Use changeOwnerKeyById") + changeOwnerKeys(limit: Int, offset: Int, orderBy: [ChangeOwnerKeyOrderByInput!], where: ChangeOwnerKeyWhereInput): [ChangeOwnerKey!]! + changeOwnerKeysConnection(after: String, first: Int, orderBy: [ChangeOwnerKeyOrderByInput!]!, where: ChangeOwnerKeyWhereInput): ChangeOwnerKeysConnection! + eventById(id: String!): Event + eventByUniqueInput(where: WhereIdInput!): Event @deprecated(reason: "Use eventById") + events(limit: Int, offset: Int, orderBy: [EventOrderByInput!], where: EventWhereInput): [Event!]! + eventsConnection(after: String, first: Int, orderBy: [EventOrderByInput!]!, where: EventWhereInput): EventsConnection! + extrinsicById(id: String!): Extrinsic + extrinsicByUniqueInput(where: WhereIdInput!): Extrinsic @deprecated(reason: "Use extrinsicById") + extrinsics(limit: Int, offset: Int, orderBy: [ExtrinsicOrderByInput!], where: ExtrinsicWhereInput): [Extrinsic!]! + extrinsicsConnection(after: String, first: Int, orderBy: [ExtrinsicOrderByInput!]!, where: ExtrinsicWhereInput): ExtrinsicsConnection! + identities(limit: Int, offset: Int, orderBy: [IdentityOrderByInput!], where: IdentityWhereInput): [Identity!]! + identitiesConnection(after: String, first: Int, orderBy: [IdentityOrderByInput!]!, where: IdentityWhereInput): IdentitiesConnection! + identityById(id: String!): Identity + identityByUniqueInput(where: WhereIdInput!): Identity @deprecated(reason: "Use identityById") + itemsCounterById(id: String!): ItemsCounter + itemsCounterByUniqueInput(where: WhereIdInput!): ItemsCounter @deprecated(reason: "Use itemsCounterById") + itemsCounters(limit: Int, offset: Int, orderBy: [ItemsCounterOrderByInput!], where: ItemsCounterWhereInput): [ItemsCounter!]! + itemsCountersConnection(after: String, first: Int, orderBy: [ItemsCounterOrderByInput!]!, where: ItemsCounterWhereInput): ItemsCountersConnection! + membershipById(id: String!): Membership + membershipByUniqueInput(where: WhereIdInput!): Membership @deprecated(reason: "Use membershipById") + memberships(limit: Int, offset: Int, orderBy: [MembershipOrderByInput!], where: MembershipWhereInput): [Membership!]! + membershipsConnection(after: String, first: Int, orderBy: [MembershipOrderByInput!]!, where: MembershipWhereInput): MembershipsConnection! + smithCertById(id: String!): SmithCert + smithCertByUniqueInput(where: WhereIdInput!): SmithCert @deprecated(reason: "Use smithCertById") + smithCertCreationById(id: String!): SmithCertCreation + smithCertCreationByUniqueInput(where: WhereIdInput!): SmithCertCreation @deprecated(reason: "Use smithCertCreationById") + smithCertCreations(limit: Int, offset: Int, orderBy: [SmithCertCreationOrderByInput!], where: SmithCertCreationWhereInput): [SmithCertCreation!]! + smithCertCreationsConnection(after: String, first: Int, orderBy: [SmithCertCreationOrderByInput!]!, where: SmithCertCreationWhereInput): SmithCertCreationsConnection! + smithCertRemovalById(id: String!): SmithCertRemoval + smithCertRemovalByUniqueInput(where: WhereIdInput!): SmithCertRemoval @deprecated(reason: "Use smithCertRemovalById") + smithCertRemovals(limit: Int, offset: Int, orderBy: [SmithCertRemovalOrderByInput!], where: SmithCertRemovalWhereInput): [SmithCertRemoval!]! + smithCertRemovalsConnection(after: String, first: Int, orderBy: [SmithCertRemovalOrderByInput!]!, where: SmithCertRemovalWhereInput): SmithCertRemovalsConnection! + smithCertRenewalById(id: String!): SmithCertRenewal + smithCertRenewalByUniqueInput(where: WhereIdInput!): SmithCertRenewal @deprecated(reason: "Use smithCertRenewalById") + smithCertRenewals(limit: Int, offset: Int, orderBy: [SmithCertRenewalOrderByInput!], where: SmithCertRenewalWhereInput): [SmithCertRenewal!]! + smithCertRenewalsConnection(after: String, first: Int, orderBy: [SmithCertRenewalOrderByInput!]!, where: SmithCertRenewalWhereInput): SmithCertRenewalsConnection! + smithCerts(limit: Int, offset: Int, orderBy: [SmithCertOrderByInput!], where: SmithCertWhereInput): [SmithCert!]! + smithCertsConnection(after: String, first: Int, orderBy: [SmithCertOrderByInput!]!, where: SmithCertWhereInput): SmithCertsConnection! + smithMembershipById(id: String!): SmithMembership + smithMembershipByUniqueInput(where: WhereIdInput!): SmithMembership @deprecated(reason: "Use smithMembershipById") + smithMemberships(limit: Int, offset: Int, orderBy: [SmithMembershipOrderByInput!], where: SmithMembershipWhereInput): [SmithMembership!]! + smithMembershipsConnection(after: String, first: Int, orderBy: [SmithMembershipOrderByInput!]!, where: SmithMembershipWhereInput): SmithMembershipsConnection! + squidStatus: SquidStatus + transferById(id: String!): Transfer + transferByUniqueInput(where: WhereIdInput!): Transfer @deprecated(reason: "Use transferById") + transfers(limit: Int, offset: Int, orderBy: [TransferOrderByInput!], where: TransferWhereInput): [Transfer!]! + transfersConnection(after: String, first: Int, orderBy: [TransferOrderByInput!]!, where: TransferWhereInput): TransfersConnection! +} + +"Smith certification" +type SmithCert { + active: Boolean! + createdOn: Int! + creation(limit: Int, offset: Int, orderBy: [SmithCertCreationOrderByInput!], where: SmithCertCreationWhereInput): [SmithCertCreation!]! + expireOn: Int! + id: String! + issuer: Identity! + receiver: Identity! + removal(limit: Int, offset: Int, orderBy: [SmithCertRemovalOrderByInput!], where: SmithCertRemovalWhereInput): [SmithCertRemoval!]! + renewal(limit: Int, offset: Int, orderBy: [SmithCertRenewalOrderByInput!], where: SmithCertRenewalWhereInput): [SmithCertRenewal!]! +} + +type SmithCertCreation { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertCreationEdge { + cursor: String! + node: SmithCertCreation! +} + +type SmithCertCreationsConnection { + edges: [SmithCertCreationEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertEdge { + cursor: String! + node: SmithCert! +} + +type SmithCertRemoval { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertRemovalEdge { + cursor: String! + node: SmithCertRemoval! +} + +type SmithCertRemovalsConnection { + edges: [SmithCertRemovalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertRenewal { + blockNumber: Int! + cert: SmithCert! + id: String! +} + +type SmithCertRenewalEdge { + cursor: String! + node: SmithCertRenewal! +} + +type SmithCertRenewalsConnection { + edges: [SmithCertRenewalEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SmithCertsConnection { + edges: [SmithCertEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +"Smith membership" +type SmithMembership { + expireOn: Int! + id: String! + identity: Identity! +} + +type SmithMembershipEdge { + cursor: String! + node: SmithMembership! +} + +type SmithMembershipsConnection { + edges: [SmithMembershipEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +type SquidStatus { + "The height of the processed part of the chain" + height: Int +} + +type Transfer { + amount: BigInt! + blockNumber: Int! + comment: String + from: Account! + id: String! + timestamp: DateTime! + to: Account! +} + +type TransferEdge { + cursor: String! + node: Transfer! +} + +type TransfersConnection { + edges: [TransferEdge!]! + pageInfo: PageInfo! + totalCount: Int! +} + +enum AccountOrderByInput { + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST + linkedIdentity_id_ASC + linkedIdentity_id_ASC_NULLS_FIRST + linkedIdentity_id_DESC + linkedIdentity_id_DESC_NULLS_LAST + linkedIdentity_index_ASC + linkedIdentity_index_ASC_NULLS_FIRST + linkedIdentity_index_DESC + linkedIdentity_index_DESC_NULLS_LAST + linkedIdentity_name_ASC + linkedIdentity_name_ASC_NULLS_FIRST + linkedIdentity_name_DESC + linkedIdentity_name_DESC_NULLS_LAST +} + +enum BlockOrderByInput { + callsCount_ASC + callsCount_ASC_NULLS_FIRST + callsCount_DESC + callsCount_DESC_NULLS_LAST + eventsCount_ASC + eventsCount_ASC_NULLS_FIRST + eventsCount_DESC + eventsCount_DESC_NULLS_LAST + extrinsicsCount_ASC + extrinsicsCount_ASC_NULLS_FIRST + extrinsicsCount_DESC + extrinsicsCount_DESC_NULLS_LAST + extrinsicsicRoot_ASC + extrinsicsicRoot_ASC_NULLS_FIRST + extrinsicsicRoot_DESC + extrinsicsicRoot_DESC_NULLS_LAST + hash_ASC + hash_ASC_NULLS_FIRST + hash_DESC + hash_DESC_NULLS_LAST + height_ASC + height_ASC_NULLS_FIRST + height_DESC + height_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + implName_ASC + implName_ASC_NULLS_FIRST + implName_DESC + implName_DESC_NULLS_LAST + implVersion_ASC + implVersion_ASC_NULLS_FIRST + implVersion_DESC + implVersion_DESC_NULLS_LAST + parentHash_ASC + parentHash_ASC_NULLS_FIRST + parentHash_DESC + parentHash_DESC_NULLS_LAST + specName_ASC + specName_ASC_NULLS_FIRST + specName_DESC + specName_DESC_NULLS_LAST + specVersion_ASC + specVersion_ASC_NULLS_FIRST + specVersion_DESC + specVersion_DESC_NULLS_LAST + stateRoot_ASC + stateRoot_ASC_NULLS_FIRST + stateRoot_DESC + stateRoot_DESC_NULLS_LAST + timestamp_ASC + timestamp_ASC_NULLS_FIRST + timestamp_DESC + timestamp_DESC_NULLS_LAST + validator_ASC + validator_ASC_NULLS_FIRST + validator_DESC + validator_DESC_NULLS_LAST +} + +enum CallOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + extrinsic_fee_ASC + extrinsic_fee_ASC_NULLS_FIRST + extrinsic_fee_DESC + extrinsic_fee_DESC_NULLS_LAST + extrinsic_hash_ASC + extrinsic_hash_ASC_NULLS_FIRST + extrinsic_hash_DESC + extrinsic_hash_DESC_NULLS_LAST + extrinsic_id_ASC + extrinsic_id_ASC_NULLS_FIRST + extrinsic_id_DESC + extrinsic_id_DESC_NULLS_LAST + extrinsic_index_ASC + extrinsic_index_ASC_NULLS_FIRST + extrinsic_index_DESC + extrinsic_index_DESC_NULLS_LAST + extrinsic_success_ASC + extrinsic_success_ASC_NULLS_FIRST + extrinsic_success_DESC + extrinsic_success_DESC_NULLS_LAST + extrinsic_tip_ASC + extrinsic_tip_ASC_NULLS_FIRST + extrinsic_tip_DESC + extrinsic_tip_DESC_NULLS_LAST + extrinsic_version_ASC + extrinsic_version_ASC_NULLS_FIRST + extrinsic_version_DESC + extrinsic_version_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + pallet_ASC + pallet_ASC_NULLS_FIRST + pallet_DESC + pallet_DESC_NULLS_LAST + parent_id_ASC + parent_id_ASC_NULLS_FIRST + parent_id_DESC + parent_id_DESC_NULLS_LAST + parent_name_ASC + parent_name_ASC_NULLS_FIRST + parent_name_DESC + parent_name_DESC_NULLS_LAST + parent_pallet_ASC + parent_pallet_ASC_NULLS_FIRST + parent_pallet_DESC + parent_pallet_DESC_NULLS_LAST + parent_success_ASC + parent_success_ASC_NULLS_FIRST + parent_success_DESC + parent_success_DESC_NULLS_LAST + success_ASC + success_ASC_NULLS_FIRST + success_DESC + success_DESC_NULLS_LAST +} + +enum CertCreationOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum CertOrderByInput { + active_ASC + active_ASC_NULLS_FIRST + active_DESC + active_DESC_NULLS_LAST + createdOn_ASC + createdOn_ASC_NULLS_FIRST + createdOn_DESC + createdOn_DESC_NULLS_LAST + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + issuer_id_ASC + issuer_id_ASC_NULLS_FIRST + issuer_id_DESC + issuer_id_DESC_NULLS_LAST + issuer_index_ASC + issuer_index_ASC_NULLS_FIRST + issuer_index_DESC + issuer_index_DESC_NULLS_LAST + issuer_name_ASC + issuer_name_ASC_NULLS_FIRST + issuer_name_DESC + issuer_name_DESC_NULLS_LAST + receiver_id_ASC + receiver_id_ASC_NULLS_FIRST + receiver_id_DESC + receiver_id_DESC_NULLS_LAST + receiver_index_ASC + receiver_index_ASC_NULLS_FIRST + receiver_index_DESC + receiver_index_DESC_NULLS_LAST + receiver_name_ASC + receiver_name_ASC_NULLS_FIRST + receiver_name_DESC + receiver_name_DESC_NULLS_LAST +} + +enum CertRemovalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum CertRenewalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum ChangeOwnerKeyOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST + next_id_ASC + next_id_ASC_NULLS_FIRST + next_id_DESC + next_id_DESC_NULLS_LAST + previous_id_ASC + previous_id_ASC_NULLS_FIRST + previous_id_DESC + previous_id_DESC_NULLS_LAST +} + +enum CounterLevel { + Global + Item + Pallet +} + +enum EventOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + call_id_ASC + call_id_ASC_NULLS_FIRST + call_id_DESC + call_id_DESC_NULLS_LAST + call_name_ASC + call_name_ASC_NULLS_FIRST + call_name_DESC + call_name_DESC_NULLS_LAST + call_pallet_ASC + call_pallet_ASC_NULLS_FIRST + call_pallet_DESC + call_pallet_DESC_NULLS_LAST + call_success_ASC + call_success_ASC_NULLS_FIRST + call_success_DESC + call_success_DESC_NULLS_LAST + extrinsic_fee_ASC + extrinsic_fee_ASC_NULLS_FIRST + extrinsic_fee_DESC + extrinsic_fee_DESC_NULLS_LAST + extrinsic_hash_ASC + extrinsic_hash_ASC_NULLS_FIRST + extrinsic_hash_DESC + extrinsic_hash_DESC_NULLS_LAST + extrinsic_id_ASC + extrinsic_id_ASC_NULLS_FIRST + extrinsic_id_DESC + extrinsic_id_DESC_NULLS_LAST + extrinsic_index_ASC + extrinsic_index_ASC_NULLS_FIRST + extrinsic_index_DESC + extrinsic_index_DESC_NULLS_LAST + extrinsic_success_ASC + extrinsic_success_ASC_NULLS_FIRST + extrinsic_success_DESC + extrinsic_success_DESC_NULLS_LAST + extrinsic_tip_ASC + extrinsic_tip_ASC_NULLS_FIRST + extrinsic_tip_DESC + extrinsic_tip_DESC_NULLS_LAST + extrinsic_version_ASC + extrinsic_version_ASC_NULLS_FIRST + extrinsic_version_DESC + extrinsic_version_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + pallet_ASC + pallet_ASC_NULLS_FIRST + pallet_DESC + pallet_DESC_NULLS_LAST + phase_ASC + phase_ASC_NULLS_FIRST + phase_DESC + phase_DESC_NULLS_LAST +} + +enum ExtrinsicOrderByInput { + block_callsCount_ASC + block_callsCount_ASC_NULLS_FIRST + block_callsCount_DESC + block_callsCount_DESC_NULLS_LAST + block_eventsCount_ASC + block_eventsCount_ASC_NULLS_FIRST + block_eventsCount_DESC + block_eventsCount_DESC_NULLS_LAST + block_extrinsicsCount_ASC + block_extrinsicsCount_ASC_NULLS_FIRST + block_extrinsicsCount_DESC + block_extrinsicsCount_DESC_NULLS_LAST + block_extrinsicsicRoot_ASC + block_extrinsicsicRoot_ASC_NULLS_FIRST + block_extrinsicsicRoot_DESC + block_extrinsicsicRoot_DESC_NULLS_LAST + block_hash_ASC + block_hash_ASC_NULLS_FIRST + block_hash_DESC + block_hash_DESC_NULLS_LAST + block_height_ASC + block_height_ASC_NULLS_FIRST + block_height_DESC + block_height_DESC_NULLS_LAST + block_id_ASC + block_id_ASC_NULLS_FIRST + block_id_DESC + block_id_DESC_NULLS_LAST + block_implName_ASC + block_implName_ASC_NULLS_FIRST + block_implName_DESC + block_implName_DESC_NULLS_LAST + block_implVersion_ASC + block_implVersion_ASC_NULLS_FIRST + block_implVersion_DESC + block_implVersion_DESC_NULLS_LAST + block_parentHash_ASC + block_parentHash_ASC_NULLS_FIRST + block_parentHash_DESC + block_parentHash_DESC_NULLS_LAST + block_specName_ASC + block_specName_ASC_NULLS_FIRST + block_specName_DESC + block_specName_DESC_NULLS_LAST + block_specVersion_ASC + block_specVersion_ASC_NULLS_FIRST + block_specVersion_DESC + block_specVersion_DESC_NULLS_LAST + block_stateRoot_ASC + block_stateRoot_ASC_NULLS_FIRST + block_stateRoot_DESC + block_stateRoot_DESC_NULLS_LAST + block_timestamp_ASC + block_timestamp_ASC_NULLS_FIRST + block_timestamp_DESC + block_timestamp_DESC_NULLS_LAST + block_validator_ASC + block_validator_ASC_NULLS_FIRST + block_validator_DESC + block_validator_DESC_NULLS_LAST + call_id_ASC + call_id_ASC_NULLS_FIRST + call_id_DESC + call_id_DESC_NULLS_LAST + call_name_ASC + call_name_ASC_NULLS_FIRST + call_name_DESC + call_name_DESC_NULLS_LAST + call_pallet_ASC + call_pallet_ASC_NULLS_FIRST + call_pallet_DESC + call_pallet_DESC_NULLS_LAST + call_success_ASC + call_success_ASC_NULLS_FIRST + call_success_DESC + call_success_DESC_NULLS_LAST + fee_ASC + fee_ASC_NULLS_FIRST + fee_DESC + fee_DESC_NULLS_LAST + hash_ASC + hash_ASC_NULLS_FIRST + hash_DESC + hash_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + success_ASC + success_ASC_NULLS_FIRST + success_DESC + success_DESC_NULLS_LAST + tip_ASC + tip_ASC_NULLS_FIRST + tip_DESC + tip_DESC_NULLS_LAST + version_ASC + version_ASC_NULLS_FIRST + version_DESC + version_DESC_NULLS_LAST +} + +enum IdentityOrderByInput { + account_id_ASC + account_id_ASC_NULLS_FIRST + account_id_DESC + account_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + index_ASC + index_ASC_NULLS_FIRST + index_DESC + index_DESC_NULLS_LAST + membership_expireOn_ASC + membership_expireOn_ASC_NULLS_FIRST + membership_expireOn_DESC + membership_expireOn_DESC_NULLS_LAST + membership_id_ASC + membership_id_ASC_NULLS_FIRST + membership_id_DESC + membership_id_DESC_NULLS_LAST + name_ASC + name_ASC_NULLS_FIRST + name_DESC + name_DESC_NULLS_LAST + smithMembership_expireOn_ASC + smithMembership_expireOn_ASC_NULLS_FIRST + smithMembership_expireOn_DESC + smithMembership_expireOn_DESC_NULLS_LAST + smithMembership_id_ASC + smithMembership_id_ASC_NULLS_FIRST + smithMembership_id_DESC + smithMembership_id_DESC_NULLS_LAST +} + +enum ItemType { + Calls + Events + Extrinsics +} + +enum ItemsCounterOrderByInput { + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + level_ASC + level_ASC_NULLS_FIRST + level_DESC + level_DESC_NULLS_LAST + total_ASC + total_ASC_NULLS_FIRST + total_DESC + total_DESC_NULLS_LAST + type_ASC + type_ASC_NULLS_FIRST + type_DESC + type_DESC_NULLS_LAST +} + +enum MembershipOrderByInput { + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST +} + +enum SmithCertCreationOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithCertOrderByInput { + active_ASC + active_ASC_NULLS_FIRST + active_DESC + active_DESC_NULLS_LAST + createdOn_ASC + createdOn_ASC_NULLS_FIRST + createdOn_DESC + createdOn_DESC_NULLS_LAST + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + issuer_id_ASC + issuer_id_ASC_NULLS_FIRST + issuer_id_DESC + issuer_id_DESC_NULLS_LAST + issuer_index_ASC + issuer_index_ASC_NULLS_FIRST + issuer_index_DESC + issuer_index_DESC_NULLS_LAST + issuer_name_ASC + issuer_name_ASC_NULLS_FIRST + issuer_name_DESC + issuer_name_DESC_NULLS_LAST + receiver_id_ASC + receiver_id_ASC_NULLS_FIRST + receiver_id_DESC + receiver_id_DESC_NULLS_LAST + receiver_index_ASC + receiver_index_ASC_NULLS_FIRST + receiver_index_DESC + receiver_index_DESC_NULLS_LAST + receiver_name_ASC + receiver_name_ASC_NULLS_FIRST + receiver_name_DESC + receiver_name_DESC_NULLS_LAST +} + +enum SmithCertRemovalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithCertRenewalOrderByInput { + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + cert_active_ASC + cert_active_ASC_NULLS_FIRST + cert_active_DESC + cert_active_DESC_NULLS_LAST + cert_createdOn_ASC + cert_createdOn_ASC_NULLS_FIRST + cert_createdOn_DESC + cert_createdOn_DESC_NULLS_LAST + cert_expireOn_ASC + cert_expireOn_ASC_NULLS_FIRST + cert_expireOn_DESC + cert_expireOn_DESC_NULLS_LAST + cert_id_ASC + cert_id_ASC_NULLS_FIRST + cert_id_DESC + cert_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST +} + +enum SmithMembershipOrderByInput { + expireOn_ASC + expireOn_ASC_NULLS_FIRST + expireOn_DESC + expireOn_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + identity_id_ASC + identity_id_ASC_NULLS_FIRST + identity_id_DESC + identity_id_DESC_NULLS_LAST + identity_index_ASC + identity_index_ASC_NULLS_FIRST + identity_index_DESC + identity_index_DESC_NULLS_LAST + identity_name_ASC + identity_name_ASC_NULLS_FIRST + identity_name_DESC + identity_name_DESC_NULLS_LAST +} + +enum TransferOrderByInput { + amount_ASC + amount_ASC_NULLS_FIRST + amount_DESC + amount_DESC_NULLS_LAST + blockNumber_ASC + blockNumber_ASC_NULLS_FIRST + blockNumber_DESC + blockNumber_DESC_NULLS_LAST + comment_ASC + comment_ASC_NULLS_FIRST + comment_DESC + comment_DESC_NULLS_LAST + from_id_ASC + from_id_ASC_NULLS_FIRST + from_id_DESC + from_id_DESC_NULLS_LAST + id_ASC + id_ASC_NULLS_FIRST + id_DESC + id_DESC_NULLS_LAST + timestamp_ASC + timestamp_ASC_NULLS_FIRST + timestamp_DESC + timestamp_DESC_NULLS_LAST + to_id_ASC + to_id_ASC_NULLS_FIRST + to_id_DESC + to_id_DESC_NULLS_LAST +} + +"Big number integer" +scalar BigInt + +"Binary data encoded as a hex string always prefixed with 0x" +scalar Bytes + +"A date-time string in simplified extended ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)" +scalar DateTime + +"A scalar that can represent any JSON value" +scalar JSON + +input AccountWhereInput { + AND: [AccountWhereInput!] + OR: [AccountWhereInput!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean + linkedIdentity: IdentityWhereInput + linkedIdentity_isNull: Boolean + transfersIssued_every: TransferWhereInput + transfersIssued_none: TransferWhereInput + transfersIssued_some: TransferWhereInput + transfersReceived_every: TransferWhereInput + transfersReceived_none: TransferWhereInput + transfersReceived_some: TransferWhereInput + wasIdentity_every: ChangeOwnerKeyWhereInput + wasIdentity_none: ChangeOwnerKeyWhereInput + wasIdentity_some: ChangeOwnerKeyWhereInput +} + +input BlockWhereInput { + AND: [BlockWhereInput!] + OR: [BlockWhereInput!] + callsCount_eq: Int + callsCount_gt: Int + callsCount_gte: Int + callsCount_in: [Int!] + callsCount_isNull: Boolean + callsCount_lt: Int + callsCount_lte: Int + callsCount_not_eq: Int + callsCount_not_in: [Int!] + calls_every: CallWhereInput + calls_none: CallWhereInput + calls_some: CallWhereInput + eventsCount_eq: Int + eventsCount_gt: Int + eventsCount_gte: Int + eventsCount_in: [Int!] + eventsCount_isNull: Boolean + eventsCount_lt: Int + eventsCount_lte: Int + eventsCount_not_eq: Int + eventsCount_not_in: [Int!] + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + extrinsicsCount_eq: Int + extrinsicsCount_gt: Int + extrinsicsCount_gte: Int + extrinsicsCount_in: [Int!] + extrinsicsCount_isNull: Boolean + extrinsicsCount_lt: Int + extrinsicsCount_lte: Int + extrinsicsCount_not_eq: Int + extrinsicsCount_not_in: [Int!] + extrinsics_every: ExtrinsicWhereInput + extrinsics_none: ExtrinsicWhereInput + extrinsics_some: ExtrinsicWhereInput + extrinsicsicRoot_eq: Bytes + extrinsicsicRoot_isNull: Boolean + extrinsicsicRoot_not_eq: Bytes + hash_eq: Bytes + hash_isNull: Boolean + hash_not_eq: Bytes + height_eq: Int + height_gt: Int + height_gte: Int + height_in: [Int!] + height_isNull: Boolean + height_lt: Int + height_lte: Int + height_not_eq: Int + height_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + implName_contains: String + implName_containsInsensitive: String + implName_endsWith: String + implName_eq: String + implName_gt: String + implName_gte: String + implName_in: [String!] + implName_isNull: Boolean + implName_lt: String + implName_lte: String + implName_not_contains: String + implName_not_containsInsensitive: String + implName_not_endsWith: String + implName_not_eq: String + implName_not_in: [String!] + implName_not_startsWith: String + implName_startsWith: String + implVersion_eq: Int + implVersion_gt: Int + implVersion_gte: Int + implVersion_in: [Int!] + implVersion_isNull: Boolean + implVersion_lt: Int + implVersion_lte: Int + implVersion_not_eq: Int + implVersion_not_in: [Int!] + parentHash_eq: Bytes + parentHash_isNull: Boolean + parentHash_not_eq: Bytes + specName_contains: String + specName_containsInsensitive: String + specName_endsWith: String + specName_eq: String + specName_gt: String + specName_gte: String + specName_in: [String!] + specName_isNull: Boolean + specName_lt: String + specName_lte: String + specName_not_contains: String + specName_not_containsInsensitive: String + specName_not_endsWith: String + specName_not_eq: String + specName_not_in: [String!] + specName_not_startsWith: String + specName_startsWith: String + specVersion_eq: Int + specVersion_gt: Int + specVersion_gte: Int + specVersion_in: [Int!] + specVersion_isNull: Boolean + specVersion_lt: Int + specVersion_lte: Int + specVersion_not_eq: Int + specVersion_not_in: [Int!] + stateRoot_eq: Bytes + stateRoot_isNull: Boolean + stateRoot_not_eq: Bytes + timestamp_eq: DateTime + timestamp_gt: DateTime + timestamp_gte: DateTime + timestamp_in: [DateTime!] + timestamp_isNull: Boolean + timestamp_lt: DateTime + timestamp_lte: DateTime + timestamp_not_eq: DateTime + timestamp_not_in: [DateTime!] + validator_eq: Bytes + validator_isNull: Boolean + validator_not_eq: Bytes +} + +input CallWhereInput { + AND: [CallWhereInput!] + OR: [CallWhereInput!] + address_containsAll: [Int!] + address_containsAny: [Int!] + address_containsNone: [Int!] + address_isNull: Boolean + argsStr_containsAll: [String] + argsStr_containsAny: [String] + argsStr_containsNone: [String] + argsStr_isNull: Boolean + args_eq: JSON + args_isNull: Boolean + args_jsonContains: JSON + args_jsonHasKey: JSON + args_not_eq: JSON + block: BlockWhereInput + block_isNull: Boolean + error_eq: JSON + error_isNull: Boolean + error_jsonContains: JSON + error_jsonHasKey: JSON + error_not_eq: JSON + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + extrinsic: ExtrinsicWhereInput + extrinsic_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + pallet_contains: String + pallet_containsInsensitive: String + pallet_endsWith: String + pallet_eq: String + pallet_gt: String + pallet_gte: String + pallet_in: [String!] + pallet_isNull: Boolean + pallet_lt: String + pallet_lte: String + pallet_not_contains: String + pallet_not_containsInsensitive: String + pallet_not_endsWith: String + pallet_not_eq: String + pallet_not_in: [String!] + pallet_not_startsWith: String + pallet_startsWith: String + parent: CallWhereInput + parent_isNull: Boolean + subcalls_every: CallWhereInput + subcalls_none: CallWhereInput + subcalls_some: CallWhereInput + success_eq: Boolean + success_isNull: Boolean + success_not_eq: Boolean +} + +input CertCreationWhereInput { + AND: [CertCreationWhereInput!] + OR: [CertCreationWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertRemovalWhereInput { + AND: [CertRemovalWhereInput!] + OR: [CertRemovalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertRenewalWhereInput { + AND: [CertRenewalWhereInput!] + OR: [CertRenewalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: CertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input CertWhereInput { + AND: [CertWhereInput!] + OR: [CertWhereInput!] + active_eq: Boolean + active_isNull: Boolean + active_not_eq: Boolean + createdOn_eq: Int + createdOn_gt: Int + createdOn_gte: Int + createdOn_in: [Int!] + createdOn_isNull: Boolean + createdOn_lt: Int + createdOn_lte: Int + createdOn_not_eq: Int + createdOn_not_in: [Int!] + creation_every: CertCreationWhereInput + creation_none: CertCreationWhereInput + creation_some: CertCreationWhereInput + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + issuer: IdentityWhereInput + issuer_isNull: Boolean + receiver: IdentityWhereInput + receiver_isNull: Boolean + removal_every: CertRemovalWhereInput + removal_none: CertRemovalWhereInput + removal_some: CertRemovalWhereInput + renewal_every: CertRenewalWhereInput + renewal_none: CertRenewalWhereInput + renewal_some: CertRenewalWhereInput +} + +input ChangeOwnerKeyWhereInput { + AND: [ChangeOwnerKeyWhereInput!] + OR: [ChangeOwnerKeyWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean + next: AccountWhereInput + next_isNull: Boolean + previous: AccountWhereInput + previous_isNull: Boolean +} + +input EventWhereInput { + AND: [EventWhereInput!] + OR: [EventWhereInput!] + argsStr_containsAll: [String] + argsStr_containsAny: [String] + argsStr_containsNone: [String] + argsStr_isNull: Boolean + args_eq: JSON + args_isNull: Boolean + args_jsonContains: JSON + args_jsonHasKey: JSON + args_not_eq: JSON + block: BlockWhereInput + block_isNull: Boolean + call: CallWhereInput + call_isNull: Boolean + extrinsic: ExtrinsicWhereInput + extrinsic_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + pallet_contains: String + pallet_containsInsensitive: String + pallet_endsWith: String + pallet_eq: String + pallet_gt: String + pallet_gte: String + pallet_in: [String!] + pallet_isNull: Boolean + pallet_lt: String + pallet_lte: String + pallet_not_contains: String + pallet_not_containsInsensitive: String + pallet_not_endsWith: String + pallet_not_eq: String + pallet_not_in: [String!] + pallet_not_startsWith: String + pallet_startsWith: String + phase_contains: String + phase_containsInsensitive: String + phase_endsWith: String + phase_eq: String + phase_gt: String + phase_gte: String + phase_in: [String!] + phase_isNull: Boolean + phase_lt: String + phase_lte: String + phase_not_contains: String + phase_not_containsInsensitive: String + phase_not_endsWith: String + phase_not_eq: String + phase_not_in: [String!] + phase_not_startsWith: String + phase_startsWith: String +} + +input ExtrinsicSignatureWhereInput { + address_eq: JSON + address_isNull: Boolean + address_jsonContains: JSON + address_jsonHasKey: JSON + address_not_eq: JSON + signature_eq: JSON + signature_isNull: Boolean + signature_jsonContains: JSON + signature_jsonHasKey: JSON + signature_not_eq: JSON + signedExtensions_eq: JSON + signedExtensions_isNull: Boolean + signedExtensions_jsonContains: JSON + signedExtensions_jsonHasKey: JSON + signedExtensions_not_eq: JSON +} + +input ExtrinsicWhereInput { + AND: [ExtrinsicWhereInput!] + OR: [ExtrinsicWhereInput!] + block: BlockWhereInput + block_isNull: Boolean + call: CallWhereInput + call_isNull: Boolean + calls_every: CallWhereInput + calls_none: CallWhereInput + calls_some: CallWhereInput + error_eq: JSON + error_isNull: Boolean + error_jsonContains: JSON + error_jsonHasKey: JSON + error_not_eq: JSON + events_every: EventWhereInput + events_none: EventWhereInput + events_some: EventWhereInput + fee_eq: BigInt + fee_gt: BigInt + fee_gte: BigInt + fee_in: [BigInt!] + fee_isNull: Boolean + fee_lt: BigInt + fee_lte: BigInt + fee_not_eq: BigInt + fee_not_in: [BigInt!] + hash_eq: Bytes + hash_isNull: Boolean + hash_not_eq: Bytes + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + signature: ExtrinsicSignatureWhereInput + signature_isNull: Boolean + success_eq: Boolean + success_isNull: Boolean + success_not_eq: Boolean + tip_eq: BigInt + tip_gt: BigInt + tip_gte: BigInt + tip_in: [BigInt!] + tip_isNull: Boolean + tip_lt: BigInt + tip_lte: BigInt + tip_not_eq: BigInt + tip_not_in: [BigInt!] + version_eq: Int + version_gt: Int + version_gte: Int + version_in: [Int!] + version_isNull: Boolean + version_lt: Int + version_lte: Int + version_not_eq: Int + version_not_in: [Int!] +} + +input IdentityWhereInput { + AND: [IdentityWhereInput!] + OR: [IdentityWhereInput!] + account: AccountWhereInput + account_isNull: Boolean + certIssued_every: CertWhereInput + certIssued_none: CertWhereInput + certIssued_some: CertWhereInput + certReceived_every: CertWhereInput + certReceived_none: CertWhereInput + certReceived_some: CertWhereInput + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + index_eq: Int + index_gt: Int + index_gte: Int + index_in: [Int!] + index_isNull: Boolean + index_lt: Int + index_lte: Int + index_not_eq: Int + index_not_in: [Int!] + linkedAccount_every: AccountWhereInput + linkedAccount_none: AccountWhereInput + linkedAccount_some: AccountWhereInput + membership: MembershipWhereInput + membership_isNull: Boolean + name_contains: String + name_containsInsensitive: String + name_endsWith: String + name_eq: String + name_gt: String + name_gte: String + name_in: [String!] + name_isNull: Boolean + name_lt: String + name_lte: String + name_not_contains: String + name_not_containsInsensitive: String + name_not_endsWith: String + name_not_eq: String + name_not_in: [String!] + name_not_startsWith: String + name_startsWith: String + ownerKeyChange_every: ChangeOwnerKeyWhereInput + ownerKeyChange_none: ChangeOwnerKeyWhereInput + ownerKeyChange_some: ChangeOwnerKeyWhereInput + smithCertIssued_every: SmithCertWhereInput + smithCertIssued_none: SmithCertWhereInput + smithCertIssued_some: SmithCertWhereInput + smithCertReceived_every: SmithCertWhereInput + smithCertReceived_none: SmithCertWhereInput + smithCertReceived_some: SmithCertWhereInput + smithMembership: SmithMembershipWhereInput + smithMembership_isNull: Boolean +} + +input ItemsCounterWhereInput { + AND: [ItemsCounterWhereInput!] + OR: [ItemsCounterWhereInput!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + level_eq: CounterLevel + level_in: [CounterLevel!] + level_isNull: Boolean + level_not_eq: CounterLevel + level_not_in: [CounterLevel!] + total_eq: Int + total_gt: Int + total_gte: Int + total_in: [Int!] + total_isNull: Boolean + total_lt: Int + total_lte: Int + total_not_eq: Int + total_not_in: [Int!] + type_eq: ItemType + type_in: [ItemType!] + type_isNull: Boolean + type_not_eq: ItemType + type_not_in: [ItemType!] +} + +input MembershipWhereInput { + AND: [MembershipWhereInput!] + OR: [MembershipWhereInput!] + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean +} + +input SmithCertCreationWhereInput { + AND: [SmithCertCreationWhereInput!] + OR: [SmithCertCreationWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertRemovalWhereInput { + AND: [SmithCertRemovalWhereInput!] + OR: [SmithCertRemovalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertRenewalWhereInput { + AND: [SmithCertRenewalWhereInput!] + OR: [SmithCertRenewalWhereInput!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + cert: SmithCertWhereInput + cert_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String +} + +input SmithCertWhereInput { + AND: [SmithCertWhereInput!] + OR: [SmithCertWhereInput!] + active_eq: Boolean + active_isNull: Boolean + active_not_eq: Boolean + createdOn_eq: Int + createdOn_gt: Int + createdOn_gte: Int + createdOn_in: [Int!] + createdOn_isNull: Boolean + createdOn_lt: Int + createdOn_lte: Int + createdOn_not_eq: Int + createdOn_not_in: [Int!] + creation_every: SmithCertCreationWhereInput + creation_none: SmithCertCreationWhereInput + creation_some: SmithCertCreationWhereInput + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + issuer: IdentityWhereInput + issuer_isNull: Boolean + receiver: IdentityWhereInput + receiver_isNull: Boolean + removal_every: SmithCertRemovalWhereInput + removal_none: SmithCertRemovalWhereInput + removal_some: SmithCertRemovalWhereInput + renewal_every: SmithCertRenewalWhereInput + renewal_none: SmithCertRenewalWhereInput + renewal_some: SmithCertRenewalWhereInput +} + +input SmithMembershipWhereInput { + AND: [SmithMembershipWhereInput!] + OR: [SmithMembershipWhereInput!] + expireOn_eq: Int + expireOn_gt: Int + expireOn_gte: Int + expireOn_in: [Int!] + expireOn_isNull: Boolean + expireOn_lt: Int + expireOn_lte: Int + expireOn_not_eq: Int + expireOn_not_in: [Int!] + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + identity: IdentityWhereInput + identity_isNull: Boolean +} + +input TransferWhereInput { + AND: [TransferWhereInput!] + OR: [TransferWhereInput!] + amount_eq: BigInt + amount_gt: BigInt + amount_gte: BigInt + amount_in: [BigInt!] + amount_isNull: Boolean + amount_lt: BigInt + amount_lte: BigInt + amount_not_eq: BigInt + amount_not_in: [BigInt!] + blockNumber_eq: Int + blockNumber_gt: Int + blockNumber_gte: Int + blockNumber_in: [Int!] + blockNumber_isNull: Boolean + blockNumber_lt: Int + blockNumber_lte: Int + blockNumber_not_eq: Int + blockNumber_not_in: [Int!] + comment_contains: String + comment_containsInsensitive: String + comment_endsWith: String + comment_eq: String + comment_gt: String + comment_gte: String + comment_in: [String!] + comment_isNull: Boolean + comment_lt: String + comment_lte: String + comment_not_contains: String + comment_not_containsInsensitive: String + comment_not_endsWith: String + comment_not_eq: String + comment_not_in: [String!] + comment_not_startsWith: String + comment_startsWith: String + from: AccountWhereInput + from_isNull: Boolean + id_contains: String + id_containsInsensitive: String + id_endsWith: String + id_eq: String + id_gt: String + id_gte: String + id_in: [String!] + id_isNull: Boolean + id_lt: String + id_lte: String + id_not_contains: String + id_not_containsInsensitive: String + id_not_endsWith: String + id_not_eq: String + id_not_in: [String!] + id_not_startsWith: String + id_startsWith: String + timestamp_eq: DateTime + timestamp_gt: DateTime + timestamp_gte: DateTime + timestamp_in: [DateTime!] + timestamp_isNull: Boolean + timestamp_lt: DateTime + timestamp_lte: DateTime + timestamp_not_eq: DateTime + timestamp_not_in: [DateTime!] + to: AccountWhereInput + to_isNull: Boolean +} + +input WhereIdInput { + id: String! +} diff --git a/src/theme/_cesium.scss b/src/theme/_cesium.scss index 7ee02617b3280b52592da86fc57bd4c3298fb887..2b07bb845178aa718b936acaf7d354bb14869aab 100644 --- a/src/theme/_cesium.scss +++ b/src/theme/_cesium.scss @@ -50,6 +50,30 @@ ion-toolbar { /* -- list -- */ +ion-header, +ion-list { + ion-item { + ion-avatar { + --border-radius: 5px !important; + --border-width: 1px !important; + --border-color: var(--ion-color-step-150) !important; + } + + a { + text-decoration: none; + } + a[href]:hover { + cursor: pointer; + } + + p, + .sc-ion-label-md-s p, + .sc-ion-label-ios-s p { + font-size: 0.775rem; + } + } +} + @media screen and (min-width: $screen-md) { ion-list ion-item.ion-activatable { cursor: pointer !important; @@ -59,3 +83,7 @@ ion-toolbar { } } } + +.text-italic { + font-style: italic; +} diff --git a/tsconfig.json b/tsconfig.json index 495f434962e49a33b4991571d713e4ff65a5cc8c..4549e30f0bc482b65f3caa01473b59f5fed63af7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,8 +28,8 @@ "rxjs": ["node_modules/rxjs"], "rxjs/*": ["node_modules/rxjs/*"], - // Local deps - "@duniter/types": ["src/interfaces/types-lookup.ts"], + // Local types + "@duniter/interfaces": ["src/interfaces/types-lookup.ts"], // here we replace the @polkadot/api augmentation with our own, generated from chain "@polkadot/api/augment": ["src/interfaces/augment-api.ts"],