Compare commits
229 Commits
1.0.0rc1
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
694b3209f2 | |||
4f9fc48eaa | |||
2eb7870e57 | |||
433770ffa3 | |||
e649d7e711 | |||
5f59921c70 | |||
4efb97b728 | |||
20726d1712 | |||
bf732b3238 | |||
e415c4f112 | |||
e0ca7c7a25 | |||
03f88d7300 | |||
acf5d9fe58 | |||
b22bde4f61 | |||
1eb98c187b | |||
3458e89ee0 | |||
3b8a8b8e9e | |||
b2afb094bb | |||
deb01d8774 | |||
2bcf3c99a7 | |||
9533f47a3b | |||
c15f2e0ea9 | |||
a6bff682c2 | |||
c59a0f6b7f | |||
fa93149ac6 | |||
bbccb0260a | |||
80cfabbbb7 | |||
99d5cd36e3 | |||
f5def60091 | |||
f87051432c | |||
3481b1229b | |||
33c4f17324 | |||
4b666a5c04 | |||
e12b0a1ef3 | |||
7a4161e2a2 | |||
6692e90318 | |||
57b00bc8f7 | |||
185d3eec8c | |||
d42f0901ed | |||
c0d589f70a | |||
649055c2e9 | |||
e3e8417130 | |||
1788673523 | |||
809b4457d9 | |||
955e30ba31 | |||
85de8dcd64 | |||
7d7fd5b4c1 | |||
58130b365d | |||
2eeb1a4cee | |||
4b129fe0f5 | |||
844cb0cb73 | |||
14a115d984 | |||
4bdf9d6f00 | |||
fc3869798e | |||
aba4b88509 | |||
020de5681f | |||
6c430c9384 | |||
a72ceafd34 | |||
f65a738621 | |||
3d484f8dd1 | |||
b20906f38a | |||
cd8088345e | |||
8b61229d33 | |||
f83c40ca87 | |||
1eaa5c1c68 | |||
ba00bf5ba4 | |||
0e25bc5909 | |||
eac92e72fb | |||
4f320158ad | |||
5dab342cdb | |||
fd515ffea7 | |||
02b6253fb0 | |||
b12c53de14 | |||
0303446664 | |||
562d89540b | |||
500d06d4ea | |||
3e5ec4159d | |||
f517e534e3 | |||
2abb7737fe | |||
9243d1a43e | |||
a94aead136 | |||
b52f02548b | |||
73b7858a95 | |||
46d51faf7d | |||
d720eb238c | |||
8d206ab64f | |||
f88bdc43fe | |||
e0936bd216 | |||
49f28a497d | |||
22801f53d2 | |||
6eef5a07e7 | |||
edbac20968 | |||
550cc08761 | |||
82626a44b8 | |||
ee11fd5795 | |||
3255375325 | |||
99e3b211b1 | |||
99ef0e92ae | |||
23f22158a7 | |||
0f6bcd4701 | |||
e7c86268ba | |||
6a3683b88c | |||
bffaec612c | |||
78175ff62e | |||
b6fcde0c9d | |||
45649e1ab0 | |||
c154e234ba | |||
cfccedde0b | |||
a1a6131f95 | |||
142c22361b | |||
27d80c2b74 | |||
cdc775820f | |||
b19d22b0fc | |||
8a146184ee | |||
7a29d02d74 | |||
ad71502d36 | |||
a73f9828cc | |||
bb5c50abc7 | |||
2763eb9c2e | |||
af511923c6 | |||
da0c0f0583 | |||
4bff3e78cf | |||
470004b152 | |||
472298bb2b | |||
47a564f1dd | |||
452e5bf697 | |||
5730f99080 | |||
e466b300b5 | |||
46f9698c87 | |||
d5b5db5e0b | |||
cbf137dd73 | |||
07ba60e643 | |||
8c75ba1df6 | |||
f5956740c0 | |||
33c204ab54 | |||
d25e5ffd36 | |||
b9adcabe7d | |||
c959146238 | |||
59095d22c3 | |||
2a675eaf25 | |||
2ca3477258 | |||
4a57845c36 | |||
a2bbaf019b | |||
5b87ceb9f2 | |||
db4bdccdb1 | |||
c40dc037b3 | |||
1a66a0f170 | |||
aec1b98e9a | |||
1674df1a94 | |||
015df30fa6 | |||
7574bb4b89 | |||
bbf0846861 | |||
5549fa8f37 | |||
9f51803b6d | |||
f5460bb271 | |||
da5a5353e6 | |||
266eff3766 | |||
4e6013c99f | |||
32ec703d72 | |||
e4c5780322 | |||
35af4c7af1 | |||
b5268e1863 | |||
6ed8e5bae3 | |||
a86b4befcc | |||
fe6b84cf28 | |||
2505324eb7 | |||
fc74464ea8 | |||
1dffe52c7a | |||
46f8585cc3 | |||
90a22fcc51 | |||
189e7cd645 | |||
8cde331079 | |||
0ec5cdc9a3 | |||
071c6c5179 | |||
4b7802e3a6 | |||
b0fbe31cbe | |||
a4bce7ed49 | |||
546bc11ad2 | |||
0b8df9edb2 | |||
e0de8665fe | |||
eb32851d32 | |||
0c539a23c3 | |||
a290aa79ba | |||
016f566dbf | |||
29eee4b0c4 | |||
b63e55db0f | |||
4ed51277a2 | |||
84385dc389 | |||
92fb084ca6 | |||
37b15f90d2 | |||
f1eb1a8cba | |||
4b28e8aa64 | |||
2551d764d8 | |||
e36d1387b6 | |||
f75cf83e9a | |||
20392be05a | |||
a816041cff | |||
ad67140571 | |||
d0121f60ba | |||
47ae7aa9e1 | |||
70f0facb11 | |||
53d5d3ff62 | |||
71d10e1d79 | |||
272da7e776 | |||
f5b317bcad | |||
3c9c819a55 | |||
054b38a4a7 | |||
765bae0e07 | |||
2eef305f0e | |||
3ef36f49e8 | |||
b9529feaba | |||
c2fe3bb7f0 | |||
c19d097b28 | |||
228b57804e | |||
67b9379fe7 | |||
4c6e73254a | |||
8b50d28aab | |||
185a095829 | |||
52b9466568 | |||
927a97c913 | |||
bbb639634b | |||
0c3a878cfa | |||
7632a515ab | |||
3e1e8886ef | |||
466f6e8632 | |||
d0719e356d | |||
f14b17c3b0 | |||
1a6fc5a814 | |||
59999e09e3 |
4
.cz.yaml
@ -2,6 +2,6 @@ commitizen:
|
||||
bump_message: "build(version): bump version $current_version \u2192 $new_version"
|
||||
changelog_incremental: false
|
||||
name: cz_conventional_commits
|
||||
tag_format: v$major.$minor.$patch$prerelease
|
||||
tag_format: $major.$minor.$patch$prerelease
|
||||
update_changelog_on_bump: true
|
||||
version: 1.0.0rc1
|
||||
version: 1.0.0rc3
|
||||
|
7
.gitignore
vendored
@ -5,9 +5,16 @@ aux/
|
||||
# ignore dev env
|
||||
dev_env
|
||||
__pycache__
|
||||
package*json
|
||||
|
||||
# ignore junit
|
||||
*.junit.xml
|
||||
.markdownlint-cli2.jsonc
|
||||
|
||||
# ignore log files
|
||||
*.log
|
||||
|
||||
#gitlab temp files
|
||||
artifacts.zip
|
||||
artifacts/
|
||||
public/
|
424
.gitlab-ci.yml
@ -1,33 +1,245 @@
|
||||
stages:
|
||||
- validation
|
||||
- build
|
||||
- deploy
|
||||
- test
|
||||
- release
|
||||
- publish
|
||||
---
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
MY_PROJECT_ID: "13001358"
|
||||
|
||||
|
||||
include:
|
||||
|
||||
- local: .gitlab/project_docs.gitlab-ci.yml
|
||||
|
||||
- project: nofusscomputing/projects/gitlab-ci
|
||||
ref: ce1cc017e26ff7f6cee586cc7d98e4d292275672
|
||||
ref: development
|
||||
file:
|
||||
- conventional_commits/.gitlab-ci.yml
|
||||
- mkdocs/.gitlab-ci.yml
|
||||
- validation/.gitlab-ci.yml
|
||||
- gitlab_release/.gitlab-ci.yml
|
||||
- .gitlab-ci_common.yaml
|
||||
- template/automagic.gitlab-ci.yaml
|
||||
|
||||
|
||||
Lint Markdown:
|
||||
extends: .Lint_Markdown
|
||||
|
||||
Get Project Documentation:
|
||||
extends: .fetch_project_docs
|
||||
parallel:
|
||||
matrix:
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: centurion
|
||||
ASSEMBLE_PROJECT_ID: 59504579
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/collection/centurion
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: firewall
|
||||
ASSEMBLE_PROJECT_ID: 51640016
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/collection/firewall
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: django_template
|
||||
ASSEMBLE_PROJECT_ID: 57560288
|
||||
ASSEMBLE_PROJECT_PATH: projects/centurion_erp
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: kubernetes
|
||||
ASSEMBLE_PROJECT_ID: 51640029
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/collection/kubernetes
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: netbox
|
||||
ASSEMBLE_PROJECT_ID: 56568566
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/collection/netbox
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: phpipam_scan_agent
|
||||
ASSEMBLE_PROJECT_ID: 55052132
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/collection/phpipam_scan_agent
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: gitlab-ci
|
||||
ASSEMBLE_PROJECT_ID: 28543717
|
||||
ASSEMBLE_PROJECT_PATH: projects/gitlab-ci
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: operations
|
||||
ASSEMBLE_PROJECT_ID: 32419575
|
||||
ASSEMBLE_PROJECT_PATH: operations
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: git_configuration
|
||||
ASSEMBLE_PROJECT_ID: 45705596
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/roles/git_configuration
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: docker-bind
|
||||
ASSEMBLE_PROJECT_ID: 52098058
|
||||
ASSEMBLE_PROJECT_PATH: projects/docker/bind
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: docker-mail
|
||||
ASSEMBLE_PROJECT_ID: 33611657
|
||||
ASSEMBLE_PROJECT_PATH: projects/docker-mail
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: execution_environment
|
||||
ASSEMBLE_PROJECT_ID: 45741845
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/execution_environment
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: ldap_self_service
|
||||
ASSEMBLE_PROJECT_ID: 48321671
|
||||
ASSEMBLE_PROJECT_PATH: projects/ldap_self_service
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: docker-glpi
|
||||
ASSEMBLE_PROJECT_ID: 12928828
|
||||
ASSEMBLE_PROJECT_PATH: projects/glpi
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: kubernetes_monitoring
|
||||
ASSEMBLE_PROJECT_ID: 50510268
|
||||
ASSEMBLE_PROJECT_PATH: projects/kubernetes_monitoring
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: ansible_playbooks
|
||||
ASSEMBLE_PROJECT_ID: 46364551
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/playbooks
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: common
|
||||
ASSEMBLE_PROJECT_ID: 52226103
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/roles/common
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: homeassistant
|
||||
ASSEMBLE_PROJECT_ID: 51020674
|
||||
ASSEMBLE_PROJECT_PATH: projects/ansible/roles/homeassistant
|
||||
|
||||
- ASSEMBLE_PROJECT_NAME: itil_runbooks
|
||||
ASSEMBLE_PROJECT_ID: 54680811
|
||||
ASSEMBLE_PROJECT_PATH: projects/itil/runbooks
|
||||
|
||||
# - ASSEMBLE_PROJECT_NAME:
|
||||
# ASSEMBLE_PROJECT_ID:
|
||||
# ASSEMBLE_PROJECT_PATH:
|
||||
|
||||
|
||||
Static Pages:
|
||||
Documentation.Lint:
|
||||
rules:
|
||||
- when: never
|
||||
|
||||
|
||||
Documentation.Build:
|
||||
rules:
|
||||
- when: never
|
||||
|
||||
|
||||
Website.Lint:
|
||||
extends: .Lint_Markdown_Docs
|
||||
variables:
|
||||
MDLINT_PATHS: "pages/*.md pages/**/*.md pages/**/**/*.md pages/**/**/**/*.md pages/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci !website-template"
|
||||
|
||||
rules:
|
||||
- if: '$JOB_STOP_LINT_MARKDOWN_DOCS'
|
||||
when: never
|
||||
|
||||
- if: # condition_git_tag
|
||||
$CI_COMMIT_TAG != null &&
|
||||
$CI_COMMIT_BRANCH == null
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: always
|
||||
|
||||
- if: # condition_master_branch_push
|
||||
$CI_COMMIT_BRANCH == "master" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: always
|
||||
|
||||
- if: # condition_dev_branch_push
|
||||
$CI_COMMIT_BRANCH &&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "api"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
||||
# changes:
|
||||
# paths:
|
||||
# - '{docs/**,pages/**}/*.md'
|
||||
# compare_to: 'master'
|
||||
when: always
|
||||
|
||||
- if: # condition_not_master_or_dev_push
|
||||
$CI_COMMIT_BRANCH != "master" &&
|
||||
$CI_COMMIT_BRANCH != "development" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md' # works
|
||||
changes:
|
||||
paths:
|
||||
#- '{docs/*,pages/*}*.md'
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
compare_to: 'development'
|
||||
when: always
|
||||
|
||||
- when: never
|
||||
|
||||
|
||||
Website.Build:
|
||||
extends: .MKDocs_Build
|
||||
needs: [ 'Lint Markdown' ]
|
||||
needs: [ 'Website.Lint' ]
|
||||
resource_group: build
|
||||
rules:
|
||||
|
||||
- if: '$JOB_STOP_MKDOCS_BUILD'
|
||||
when: never
|
||||
|
||||
- if: # condition_git_tag
|
||||
$CI_COMMIT_TAG != null &&
|
||||
$CI_COMMIT_BRANCH == null
|
||||
exists:
|
||||
- 'mkdocs.{yaml,yml}'
|
||||
when: always
|
||||
|
||||
# - if: # condition_master_branch_push
|
||||
# $CI_COMMIT_BRANCH == "master" &&
|
||||
# $CI_PIPELINE_SOURCE == "push"
|
||||
# exists:
|
||||
# - 'mkdocs.{yaml,yml}'
|
||||
# when: always
|
||||
|
||||
- if: # condition_dev_branch_push
|
||||
$CI_COMMIT_BRANCH &&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "api"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
||||
exists:
|
||||
- 'mkdocs.{yaml,yml}'
|
||||
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
||||
# changes:
|
||||
# paths:
|
||||
# - '{docs/**,pages/**}/*.md'
|
||||
# compare_to: 'master'
|
||||
when: always
|
||||
|
||||
- if: # condition_not_master_or_dev_push
|
||||
$CI_COMMIT_BRANCH != "master" &&
|
||||
$CI_COMMIT_BRANCH != "development" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- 'mkdocs.{yaml,yml}'
|
||||
changes:
|
||||
paths:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
compare_to: 'development'
|
||||
when: always
|
||||
|
||||
- when: never
|
||||
|
||||
|
||||
Merge Project Docs:
|
||||
extends: .merge_project_docs
|
||||
needs:
|
||||
- job: Get Project Documentation
|
||||
artifacts: true
|
||||
- job: Website.Build
|
||||
artifacts: true
|
||||
|
||||
|
||||
|
||||
|
||||
pages:
|
||||
@ -35,17 +247,77 @@ pages:
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" public
|
||||
needs: [ 'Static Pages' ]
|
||||
- |
|
||||
if [ -d "$CI_PROJECT_DIR/artifacts/prepare/Merge.Project.Docs/build" ]; then
|
||||
|
||||
mv "$CI_PROJECT_DIR/artifacts/prepare/Merge.Project.Docs/build" public;
|
||||
|
||||
else
|
||||
|
||||
mv "$CI_PROJECT_DIR/artifacts/build/Website.Build/build" public;
|
||||
|
||||
fi
|
||||
needs:
|
||||
- job: Website.Build
|
||||
artifacts: true
|
||||
- job: 'Merge Project Docs'
|
||||
optional: true
|
||||
environment:
|
||||
name: staging
|
||||
name: Gitlab Pages
|
||||
url: $CI_PAGES_URL
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master"'
|
||||
when: always
|
||||
# - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master" && $CI_PIPELINE_SOURCE == "push"'
|
||||
# when: on_success
|
||||
|
||||
# Build docs on tag so they can be downloaded from the tag job and are always available.
|
||||
- if: # condition_git_tag
|
||||
$CI_COMMIT_TAG != null &&
|
||||
$CI_COMMIT_BRANCH == null
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_master_branch_push
|
||||
$CI_COMMIT_BRANCH == "master" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_dev_branch_push
|
||||
$CI_COMMIT_BRANCH == "development" &&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
||||
# changes:
|
||||
# paths:
|
||||
# - '{docs/**,pages/**}/*.md'
|
||||
# compare_to: 'master'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_not_master_or_dev_push
|
||||
$CI_COMMIT_BRANCH != "master" &&
|
||||
$CI_COMMIT_BRANCH != "development" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
changes:
|
||||
paths:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
compare_to: 'development'
|
||||
when: on_success
|
||||
|
||||
- when: never
|
||||
|
||||
|
||||
@ -69,16 +341,64 @@ pages:
|
||||
junit:
|
||||
- "*.junit.xml"
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH'
|
||||
when: always
|
||||
# - if: '$CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
|
||||
# when: on_success
|
||||
|
||||
# Build docs on tag so they can be downloaded from the tag job and are always available.
|
||||
- if: # condition_git_tag
|
||||
$CI_COMMIT_TAG != null &&
|
||||
$CI_COMMIT_BRANCH == null
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_master_branch_push
|
||||
$CI_COMMIT_BRANCH == "master" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_dev_branch_push
|
||||
$CI_COMMIT_BRANCH == "development" &&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
|
||||
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
||||
# changes:
|
||||
# paths:
|
||||
# - '{docs/**,pages/**}/*.md'
|
||||
# compare_to: 'master'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_not_master_or_dev_push
|
||||
$CI_COMMIT_BRANCH != "master" &&
|
||||
$CI_COMMIT_BRANCH != "development" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
changes:
|
||||
paths:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
compare_to: 'development'
|
||||
when: on_success
|
||||
|
||||
- when: never
|
||||
|
||||
|
||||
Unit Tests:
|
||||
extends: .Pytest_template
|
||||
needs: [ 'Static Pages' ]
|
||||
needs: [ 'Website.Build' ]
|
||||
script:
|
||||
- mv "$CI_PROJECT_DIR/artifacts/build/Static Pages/build" build
|
||||
- mv "$CI_PROJECT_DIR/artifacts/build/Website.Build/build" build
|
||||
- pytest --verbose --junitxml=unit_test.junit.xml --tb=line test/unit
|
||||
- cp *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/"
|
||||
- echo "[DEBUG] python_exit[$python_exit]"
|
||||
@ -92,8 +412,54 @@ Unit Tests:
|
||||
# script:
|
||||
# - echo "placeholder job for integration tests" > "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/DETEMEME.txt"
|
||||
|
||||
Gitlab Release:
|
||||
extends:
|
||||
- .gitlab_release
|
||||
|
||||
public_website:
|
||||
stage: publish
|
||||
image: alpine
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
before_script:
|
||||
- ls -la /html
|
||||
script:
|
||||
- rm -rf /html/*
|
||||
- cp -r "$CI_PROJECT_DIR/artifacts/prepare/Merge.Project.Docs/build"/* /html/
|
||||
- ls -laR /html/
|
||||
needs: [ 'Merge Project Docs', 'Unit Tests']
|
||||
resource_group: production
|
||||
environment:
|
||||
name: production
|
||||
url: https://nofusscomputing.com
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: # condition_master_branch_push
|
||||
$CI_COMMIT_BRANCH == "master" &&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: on_success
|
||||
|
||||
- if: # condition_dev_branch_push
|
||||
$CI_COMMIT_BRANCH == "development" &&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
# See nofusscomputing/projects/gitlab-ci#34 for extra $CI_PIPELINE_SOURCE
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
# No changes check # See nofusscomputing/projects/gitlab-ci#34
|
||||
# changes:
|
||||
# paths:
|
||||
# - '{docs/**,pages/**}/*.md'
|
||||
# compare_to: 'master'
|
||||
allow_failure: true
|
||||
when: manual
|
||||
- when: never
|
||||
tags:
|
||||
- production
|
||||
- website
|
||||
|
162
.gitlab/project_docs.gitlab-ci.yml
Normal file
@ -0,0 +1,162 @@
|
||||
---
|
||||
|
||||
# Variables required:
|
||||
# ASSEMBLE_PROJECT_NAME: ''
|
||||
# ASSEMBLE_PROJECT_ID: ''
|
||||
# ASSEMBLE_PROJECT_PATH: ''
|
||||
.fetch_project_docs:
|
||||
stage: chores
|
||||
needs: []
|
||||
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
before_script:
|
||||
- mkdir -p "$CI_PROJECT_DIR/artifacts/project_docs"
|
||||
|
||||
script:
|
||||
- echo "[DEBUG] Fetch Project ${ASSEMBLE_PROJECT_NAME}"
|
||||
|
||||
- 'HTTP_STATUS_FILE=$(curl --location -o /dev/null --silent --head --write-out "%{http_code}" --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/${ASSEMBLE_PROJECT_ID}/jobs/artifacts/development/download?job=Documentation%2EBuild")'
|
||||
|
||||
- echo "[DEBUG] HTTP_STATUS_FILE=$HTTP_STATUS_FILE"
|
||||
|
||||
- |
|
||||
if [ "0$HTTP_STATUS_FILE" != "0200" ]; then
|
||||
|
||||
echo "[ERROR] Unable to fetch Job Artifacts due to HTTP status of $HTTP_STATUS_FILE";
|
||||
|
||||
# exit 1;
|
||||
|
||||
else
|
||||
|
||||
curl --location --output artifacts.zip --header "PRIVATE-TOKEN: ${GIT_COMMIT_TOKEN}" "https://gitlab.com/api/v4/projects/${ASSEMBLE_PROJECT_ID}/jobs/artifacts/development/download?job=Documentation%2EBuild";
|
||||
|
||||
unzip artifacts.zip;
|
||||
|
||||
# rm -Rf "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/$CI_JOB_NAME/build/projects/gitlab-ci";
|
||||
|
||||
cp -rvf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build/build/${ASSEMBLE_PROJECT_PATH}" "$CI_PROJECT_DIR/artifacts/project_docs/$(echo -n "${ASSEMBLE_PROJECT_PATH}" | sed -e "s/\//./g")/";
|
||||
|
||||
rm -Rf "$CI_PROJECT_DIR/artifacts/build/Documentation.Build";
|
||||
fi
|
||||
|
||||
artifacts:
|
||||
expire_in: 24 hrs
|
||||
when: always
|
||||
paths:
|
||||
- "$CI_PROJECT_DIR/artifacts/"
|
||||
rules:
|
||||
|
||||
# Docs must always be built for:
|
||||
# - git tag
|
||||
# - dev branch
|
||||
# - master branch
|
||||
- if: # condition_git_tag
|
||||
(
|
||||
$CI_COMMIT_TAG
|
||||
)
|
||||
||
|
||||
(
|
||||
(
|
||||
$CI_COMMIT_BRANCH == "development"
|
||||
||
|
||||
$CI_COMMIT_BRANCH != "master"
|
||||
)
|
||||
&&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
)
|
||||
||
|
||||
(
|
||||
$CI_COMMIT_BRANCH == "master"
|
||||
&&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
)
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: always
|
||||
|
||||
- when: never
|
||||
|
||||
|
||||
|
||||
.merge_project_docs:
|
||||
stage: prepare
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
before_script:
|
||||
- mkdir -p $CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/Merge.Project.Docs
|
||||
- mv "$CI_PROJECT_DIR/artifacts/build/Website.Build/build" "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/Merge.Project.Docs/"
|
||||
script:
|
||||
|
||||
- ls -l ${CI_PROJECT_DIR}/artifacts/project_docs/
|
||||
|
||||
- | # Merge Project docs to website
|
||||
for i in `ls ${CI_PROJECT_DIR}/artifacts/project_docs/`; do
|
||||
|
||||
echo "Found Path - $i";
|
||||
|
||||
export JOIN_PROJECT_PATH=$(echo -n "${i}" | sed -e "s/\./\//g");
|
||||
|
||||
echo "set as project path [${JOIN_PROJECT_PATH}]";
|
||||
|
||||
rm -Rf $CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/Merge.Project.Docs/build/${JOIN_PROJECT_PATH};
|
||||
|
||||
cp -rvf $CI_PROJECT_DIR/artifacts/project_docs/${i} $CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/Merge.Project.Docs/build/${JOIN_PROJECT_PATH}/;
|
||||
|
||||
done
|
||||
|
||||
- | # Assemble website and project sources to build search index
|
||||
echo "ToDo: build website and docs together to get the search index to add to the website";
|
||||
|
||||
- | # Join sitemaps together
|
||||
echo "ToDo: Join all Sitemaps together into one";
|
||||
|
||||
artifacts:
|
||||
expire_in: 24 hrs
|
||||
when: always
|
||||
paths:
|
||||
- "$CI_PROJECT_DIR/artifacts/"
|
||||
|
||||
rules:
|
||||
|
||||
# Docs must always be built for:
|
||||
# - git tag
|
||||
# - dev branch
|
||||
# - master branch
|
||||
- if: # condition_git_tag
|
||||
(
|
||||
$CI_COMMIT_TAG
|
||||
)
|
||||
||
|
||||
(
|
||||
(
|
||||
$CI_COMMIT_BRANCH == "development"
|
||||
||
|
||||
$CI_COMMIT_BRANCH != "master"
|
||||
)
|
||||
&&
|
||||
(
|
||||
$CI_PIPELINE_SOURCE == "pipeline"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
||
|
||||
$CI_PIPELINE_SOURCE == "schedule"
|
||||
)
|
||||
)
|
||||
||
|
||||
(
|
||||
$CI_COMMIT_BRANCH == "master"
|
||||
&&
|
||||
$CI_PIPELINE_SOURCE == "push"
|
||||
)
|
||||
exists:
|
||||
- '{docs/**,pages/**}/*.md'
|
||||
when: always
|
||||
|
||||
- when: never
|
6
.gitmodules
vendored
@ -1,4 +1,8 @@
|
||||
[submodule "gitlab-ci"]
|
||||
path = gitlab-ci
|
||||
url = https://gitlab.com/nofusscomputing/projects/gitlab-ci.git
|
||||
branch = master
|
||||
branch = development
|
||||
[submodule "website-template"]
|
||||
path = website-template
|
||||
url = https://gitlab.com/nofusscomputing/infrastructure/website-template.git
|
||||
branch = development
|
||||
|
@ -1,9 +0,0 @@
|
||||
{
|
||||
"line-length": false,
|
||||
"MD007": {
|
||||
"indent": 4
|
||||
},
|
||||
"MD033": {
|
||||
"allowed_elements": [ "div", "s", "span", "u" ]
|
||||
}
|
||||
}
|
8
.nfc_automation.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
role_git_conf:
|
||||
gitlab:
|
||||
submodule_branch: "development"
|
||||
default_branch: development
|
||||
mr_labels: ~"type::automation" ~"impact::0" ~"priority::0"
|
||||
auto_merge: true
|
8
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"gitlab.gitlab-workflow",
|
||||
"ms-python.python",
|
||||
"njpwerner.autodocstring",
|
||||
"davidanson.vscode-markdownlint"
|
||||
]
|
||||
}
|
2
.vscode/tasks.json
vendored
@ -9,7 +9,7 @@
|
||||
{
|
||||
"suppressTaskName": true,
|
||||
"args": [
|
||||
"cd ${workspaceFolder}; . dev_env/bin/activate; pip install -r gitlab-ci/mkdocs/requirements.txt; pip install -r requirements.txt; mkdocs build --clean --strict"
|
||||
"cd ${workspaceFolder}; . dev_env/bin/activate; pip install -r gitlab-ci/mkdocs/requirements.txt; pip install -r requirements.txt; mkdocs build --clean"
|
||||
],
|
||||
"problemMatcher": [],
|
||||
"label": "MKDocs Build Static Site",
|
||||
|
87
CHANGELOG.md
@ -1,3 +1,90 @@
|
||||
## 1.0.0rc3 (2023-05-31)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **ci**: [c40dc037](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c40dc037b3b7e0e0be97e9421c7c0097c8c494fe) - website.lint paths updated [ [!13](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/13) ]
|
||||
|
||||
### Continious Integration
|
||||
|
||||
- **chore**: [aec1b98e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/aec1b98e9a6f466d18981f84902964446ba50b88) - add nfc automation config [ [!12](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/12) ]
|
||||
|
||||
## 1.0.0rc2 (2023-05-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **cz**: [32ec703d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/32ec703d720c3230728cd220fe76f0efacbc5c05) - remove 'v' suffix from tag [ [!10](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/10) [#10](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/10) ]
|
||||
- **unit_test**: [b5268e18](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b5268e18638499fa14c61066ab11e44ea346deb8) - ignore gitlab ide links for alive checks [ [!9](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/9) ]
|
||||
- **ci**: [6ed8e5ba](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/6ed8e5bae3159ad9575f8c630bf34cf2f42214b1) - only deploy when assemble site success [ [!9](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/9) ]
|
||||
- **assemble_site**: [46f8585c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/46f8585cc3fa1ca8cbe60762bb8f476fcb31554a) - remove downloaded artifacts [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **ci**: [90a22fcc](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/90a22fcc515383d1031fb6bba95327ba3d24e1c8) - url encode artifact path for assemble [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **build**: [8cde3310](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/8cde331079e9701962879c0d78e60bcd05938543) - use correct gitlab-ci index page [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!26](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/26) ]
|
||||
- **ci**: [b0fbe31c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b0fbe31cbe0d0a4057c3ebc53d1c25bcdbfe96d7) - typo in includes [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [eb32851d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/eb32851d32e7e4136c114616b15a11303ec78d81) - use relative path [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [f1eb1a8c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f1eb1a8cba32d6378dd68d81e21e93e5ab740007) - set ssh user [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [4b28e8aa](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/4b28e8aa64d2be6e62cf8b88bb48953a987e05bb) - typo [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **artifacts**: [2551d764](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/2551d764d87b63248a46be1a68c4a4c193d03fe6) - fix fetching ops artifacts and allow publish [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **ssh**: [f75cf83e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f75cf83e9a819694db54fd1f384fbaddaaadfd4c) - ssh key set to file var [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **ci**: [ad671405](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/ad67140571f41eb2e01b3b7de44602401e8fc5ac) - fix pages job to run [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **website-template**: [d0121f60](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/d0121f60bae36cb1bd685d9ed393dfef3fb1acac) - update module to fixed template commit [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ]
|
||||
- **vscode**: [0c3a878c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0c3a878cfa35bd43cd381e89b54785b95f40d1ee) - don't force mkdocs strict [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **mobile_display**: [3e1e8886](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/3e1e8886efd50d948d4b66434063c08d6b0228d3) - added padding between sections [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
- **article**: [d0719e35](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/d0719e356d4e56db8d2b4c6191484326c9701a03) - add required metadata. [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
|
||||
### Code Refactor
|
||||
|
||||
- **assemble_site**: [5549fa8f](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/5549fa8f37f6c060dd26de446c8e56d460c71093) - use new job name [ [!11](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/11) [!34](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/34) ]
|
||||
- **ci**: [546bc11a](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/546bc11ad23e410ccc2e073d3288d0c1f875cc2c) - use new build job name `Website.Build` [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!25](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/25) [!11](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/11) ]
|
||||
- [2eef305f](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/2eef305f0e9ffe2ededb3e19c7ce5a99238103ed) - ad copy holder to article [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- [c2fe3bb7](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c2fe3bb7f051a67c47f555c6039d421761cdadd0) - clear up MD linting errors [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **blog_post**: [67b9379f](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/67b9379fe7eed288d00d8451678d338f2ad2a835) - renamed to article to reflect direction [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **home_page**: [8b50d28a](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/8b50d28aabdb1361036c137329695c29edf04f62) - added nfc logo [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **gitlab_templates**: [59999e09](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/59999e09e37450faee13387f0cc1154d8a9ee1c5) - changed to use correct path [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
|
||||
### Continious Integration
|
||||
|
||||
- **automagic**: [7574bb4b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/7574bb4b89fac79310fdfe21ef79e17af9dbf1f1) - use gitlab-ci project template [ [!11](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/11) [#30](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/30) [#11](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/11) ]
|
||||
- [a290aa79](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a290aa79ba0a0681182f05a21dda0344af50718d) - fix path
|
||||
- [016f566d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/016f566dbf2fb2474c31fc7edae3c6c8818d218f) - debugging [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [29eee4b0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/29eee4b0c481164c6522e943c1268964a4957a73) - fix scp command [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **publish**: [b63e55db](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b63e55db0ff81ec66b7fecade358e0430947a550) - fix path [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [4ed51277](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/4ed51277a2f9bfdb2c3077e0afc9e72b06274964) - now???? [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [84385dc3](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/84385dc3898d34ecb9e66f8bd5339d751f1b2901) - for fucks sake [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [92fb084c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/92fb084ca6cf2d4d87ea92df9a43f34ae3b80188) - fix file [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **publish**: [37b15f90](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/37b15f90d2b8d67b75034c73a4c6a1ea015553c7) - fix ssh must be installed to deploy [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- [e36d1387](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/e36d1387b64d5c705a5f53cc351cfdfde43b669f) - removed cross-repo build see change notes [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **gitlab-ci**: [a816041c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a816041cffc8f64deec087bfe354faf12cbc0260) - updated to latest dev [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **public_website**: [47ae7aa9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/47ae7aa9e1ace97ee0083229faaa5a509823ed49) - only enable manual publish on dev branch [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **publish**: [53d5d3ff](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/53d5d3ff62e3dd70a450803c93087d6018fa835e) - add placeholder publish job [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ]
|
||||
- **pages**: [71d10e1d](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/71d10e1d79e2802c43de23f9a4b93db6c307b42f) - use the sub-pages repo for pages [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ]
|
||||
- **sub-repo-pages**: [272da7e7](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/272da7e77655eedadcd0d0737ddf20da2672d95d) - add placeholder sub-pages job [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) ]
|
||||
- [f5b317bc](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f5b317bcada125f696101b565fb94f39ce110185) - add prepare stage [ [#3](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/3) [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **markdown_lint**: [228b5780](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/228b57804efcdcbbffca5cf99a8da2d5f02ba44f) - updated for mkdocs md files clarity. [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **gitlab-ci**: [927a97c9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/927a97c9136aef1aa6f0524a473fea7171df409b) - updated to new commit for markdown lint to work [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
|
||||
### Features
|
||||
|
||||
- **ci**: [bbf08468](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/bbf084686176451db843947fb818ae9e374dad50) - assemble job now does check for sub-site dependencies [ [!11](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/11) ]
|
||||
- **ci**: [266eff37](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/266eff376668a2bf5f5fcf7926dcd7b38e476179) - use automagic gitlab-ci template [ [!10](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/10) [!33](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/33) [#11](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/11) ]
|
||||
- **ci**: [a86b4bef](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/a86b4befcc7696a00575fe8303934b5c6cd4abf8) - enable publishing docker-mail docs [ [!9](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/9) [!10](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/10) [!27](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/27) ]
|
||||
- **website**: [fe6b84cf](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/fe6b84cf28f845162714569749a2ef82b95647ea) - enable edit button [ [!9](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/9) ]
|
||||
- **ci**: [fc74464e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/fc74464ea852b9b71ceb9f11ec8cfc243d667d7c) - add resource groups to prevent dup jobs [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **publish**: [1dffe52c](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/1dffe52c7a7ceb2930a7533108e44447f67ad2ae) - on publish website on success [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **build**: [189e7cd6](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/189e7cd64557471d0609dd59c95edbf14771444c) - include project gitlab-ci docs [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!26](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/26) ]
|
||||
- **requirements.txt**: [0ec5cdc9](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0ec5cdc9a33b7083e51e172b3402a9808279aa19) - removed as part of template [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!26](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/26) [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **md_lint_config**: [e0de8665](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/e0de8665fe18003a504dd1ecc3e045ecc5844cd3) - moved to website-template repo [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **publish**: [0c539a23](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/0c539a23c3dcd22bef702915aa70974dbf04eb0b) - clean remote dir first anduse correct source [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) ]
|
||||
- **operations**: [20392be0](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/20392be05a30f4bc9496237c0a3f71689f433f8e) - Pull Operations website pages job artifacts. [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [#41](https://gitlab.com/nofusscomputing/infrastructure/website/-/issues/41) ]
|
||||
- **website_template**: [70f0facb](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/70f0facb118a9e54bcf20648f69c73469483cf56) - Added website template as submodule [ [!8](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/8) [!2](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/2) ]
|
||||
- **mkdocs**: [054b38a4](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/054b38a4a7b62e54b582d50be64bfd25f467516b) - enabled tabbed content [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **wiki**: [765bae0e](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/765bae0e0750f46b7a82fd2ff57cd75571c188b6) - remove wiki as it wont be used. [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **article**: [3ef36f49](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/3ef36f49e82e1fcff6e49b25ac9dacc9f564a1ac) - added microdata to the article. [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **article**: [b9529fea](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/b9529feaba842ed76212b945730ac574ddcf60c8) - articles must have a type [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **markdown_lint**: [c19d097b](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/c19d097b28123692610bf29857cdf1f9c4170985) - allow html p in markdown [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **vscode**: [bbb63963](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/bbb639634b166b4f36a771c13bff430d38b6953b) - extension recommendations added. [ [!7](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/7) ]
|
||||
- **article**: [466f6e86](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/466f6e8632c8392cae26f4ba0871c5fff4f2f0d6) - migrate mdt setup article [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
- **home_page**: [f14b17c3](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/f14b17c3b00dde626083bcb4c5bb84ab599fdff5) - created template for homepage [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
- **home_page**: [1a6fc5a8](https://gitlab.com/nofusscomputing/infrastructure/website/-/commit/1a6fc5a814c7dc1ceb8a13c5db806a23db53073d) - add metadata [ [!6](https://gitlab.com/nofusscomputing/infrastructure/website/-/merge_requests/6) ]
|
||||
|
||||
## v1.0.0rc1 (2022-01-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
125
custom-plugins/mkdocs-plugin-tags/.gitignore
vendored
@ -1,125 +0,0 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
pip-wheel-metadata/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
# docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
@ -1,7 +0,0 @@
|
||||
# License
|
||||
|
||||
Copyright (C) 2021 No Fuss Computing
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
Not yet suitable for public release.
|
@ -1,2 +0,0 @@
|
||||
include versioneer.py
|
||||
include tags/_version.py
|
@ -1,128 +0,0 @@
|
||||
# No Fuss Computing's Tags Plugin for MKDocs
|
||||
|
||||
Modified version from: [github.com/ginsburgnm/mkdocs-plugin-tags](https://github.com/ginsburgnm/mkdocs-plugin-tags)
|
||||
|
||||
## Previous Readme below - tags
|
||||
|
||||
Support for tags in the yaml-metadata in the header of markdown files.
|
||||
|
||||
Extracts this metadata and creates a "Tags" page which lists all tags
|
||||
and all pages for each tag.
|
||||
|
||||
## Quick Demo
|
||||
|
||||
Install this plugin (it will also install mkdocs if required)
|
||||
|
||||
```bash
|
||||
pip install mkdocs-plugin-tags
|
||||
```
|
||||
|
||||
Create a new documentation folder:
|
||||
|
||||
```bash
|
||||
mkdocs new demo
|
||||
```
|
||||
|
||||
Edit the `.md` files to add initial metadata. Currently, the metadata has to be
|
||||
enclosed in `---` lines, and must include a `title:` property
|
||||
(otherwise the page will appear as "untitled" in the tags page). So, for example:
|
||||
|
||||
```bash
|
||||
cd demo
|
||||
cd docs
|
||||
cat > index.md
|
||||
---
|
||||
title: Welcome
|
||||
tags:
|
||||
- testing
|
||||
- unimportant
|
||||
---
|
||||
# Welcome to MkDocs
|
||||
|
||||
For full documentation visit [mkdocs.org](https://mkdocs.org).
|
||||
|
||||
^D
|
||||
```
|
||||
|
||||
Edit `mkdocs.yml` to include this plugin:
|
||||
|
||||
```yaml
|
||||
plugins:
|
||||
- tags:
|
||||
```
|
||||
|
||||
Run the server:
|
||||
|
||||
```bash
|
||||
mkdocs serve --livereload
|
||||
```
|
||||
|
||||
Visit the URL `/tags` (it should appear in the nav panel).
|
||||
This is an auto-generated page which contains the tags as level 2 headers,
|
||||
and under each tag, a listing of the pages which declare that tag in the
|
||||
metadata section.
|
||||
|
||||

|
||||
|
||||
## How it works
|
||||
|
||||
On each build (even with `--livereload`), all the `.md` files composing the
|
||||
site are scanned, their "triple-dash-delimted" yaml header is extracted and
|
||||
parsed, and the list of tags is collected.
|
||||
|
||||
After that, a new temporal file is created (by default in `aux/tags.md`, but
|
||||
this is customizable) which contains the generated tags page, in markdown
|
||||
format. This file is not in the documents folder to avoid retriggering a
|
||||
build, but it is added to the list of files to be converted to HTML by mkdocs.
|
||||
|
||||
## Customization
|
||||
|
||||
The layout of the tags page is a markdown file with jinja2 embedded contents.
|
||||
The package provides such a template by default, with the following content:
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: Tags
|
||||
---
|
||||
# Contents grouped by tag
|
||||
|
||||
{% for tag, pages in tags %}
|
||||
|
||||
## <span class="tag">{{tag}}</span>
|
||||
{% for page in pages %}
|
||||
* [{{page.title}}]({{page.filename}})
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
```
|
||||
|
||||
You can style the `h2.tag` element via CSS, if you want.
|
||||
|
||||
You can also provide your own markdown template, in case that you want a
|
||||
different layout or metadata. The `page` object contains all the metadata
|
||||
in a mkdocs page, and in addition a `.filename` attribute, which contains
|
||||
the file name of the source of the page (relative to the docs folder),
|
||||
which can be used to link to that page.
|
||||
|
||||
The full customizable options for the plugin are:
|
||||
|
||||
* `tags_folder`: Folder in which the auxiliar tags markdown file will be written
|
||||
(`aux` by default, relative to the folder in which `mkdocs` is invoked).
|
||||
It can be set to an absolute path, such as `/tmp/mysite/aux`.
|
||||
The required folders are created.
|
||||
* `tags_template`: path to the file which contains the markdown-jinja template
|
||||
for the tags page. It is `None` by default, which means that the
|
||||
package-provided template is used. It can be an absolute path,
|
||||
or relative to the folder in which `mkdocs` is run.
|
||||
* `css_name`: this allows you to pick what name styles the tag that appears on
|
||||
the top of the page that contains a tag. This way things won't be overloaded
|
||||
|
||||
For example, this can be put at `mkdocs.yaml`:
|
||||
|
||||
```yaml
|
||||
plugins:
|
||||
- search
|
||||
- tags:
|
||||
tags_folder: /tmp/mysite/aux
|
||||
tags_template: docs/theme/tags.md.template
|
||||
```
|
@ -1 +0,0 @@
|
||||
mkdocs==1.2.3
|
@ -1,27 +0,0 @@
|
||||
[metadata]
|
||||
name = mkdocs-plugin-tags
|
||||
author = No Fuss Computing
|
||||
author_email = helpdesk@nofusscomputing.com
|
||||
url = https://gitlab.com/nofusscomputing/infrastructure/website
|
||||
description = "Create tags in mkdocs"
|
||||
long_description_content_type = text/markdown
|
||||
long_description = file: README.md
|
||||
license = MIT
|
||||
keywords = "mkdocs python markdown tags"
|
||||
classifiers =
|
||||
Intended Audience :: Developers
|
||||
License :: OSI Approved :: MIT License
|
||||
Operating System :: OS Independent
|
||||
Intended Audience :: Information Technology
|
||||
Programming Language :: Python :: 3.6
|
||||
Programming Language :: Python :: 3.7
|
||||
Programming Language :: Python :: 3.8
|
||||
Topic :: Security :: Cryptography
|
||||
|
||||
[versioneer]
|
||||
VCS = git
|
||||
style = pep440
|
||||
versionfile_source = tags/_version.py
|
||||
versionfile_build = tags/_version.py
|
||||
tag_prefix =
|
||||
parentdir_prefix = tags-
|
@ -1,19 +0,0 @@
|
||||
"""
|
||||
Setup the plugin
|
||||
"""
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
version='0.0.1',
|
||||
python_requires='>=3.6',
|
||||
install_requires=[
|
||||
'mkdocs==1.2.3',
|
||||
],
|
||||
packages=find_packages(exclude=['*.tests']),
|
||||
package_data={'tags': ['templates/*.md.template']},
|
||||
entry_points={
|
||||
'mkdocs.plugins': [
|
||||
'tags = tags.plugin:TagsPlugin'
|
||||
]
|
||||
}
|
||||
)
|
@ -1,3 +0,0 @@
|
||||
|
||||
from . import _version
|
||||
__version__ = _version.get_versions()['version']
|
@ -1,644 +0,0 @@
|
||||
|
||||
# This file helps to compute a version number in source trees obtained from
|
||||
# git-archive tarball (such as those provided by githubs download-from-tag
|
||||
# feature). Distribution tarballs (built by setup.py sdist) and build
|
||||
# directories (produced by setup.py build) will contain a much shorter file
|
||||
# that just contains the computed version number.
|
||||
|
||||
# This file is released into the public domain. Generated by
|
||||
# versioneer-0.21 (https://github.com/python-versioneer/python-versioneer)
|
||||
|
||||
"""Git implementation of _version.py."""
|
||||
|
||||
import errno
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import Callable, Dict
|
||||
|
||||
|
||||
def get_keywords():
|
||||
"""Get the keywords needed to look up the version information."""
|
||||
# these strings will be replaced by git during git-archive.
|
||||
# setup.py/versioneer.py will grep for the variable names, so they must
|
||||
# each be defined on a line of their own. _version.py will just call
|
||||
# get_keywords().
|
||||
git_refnames = "$Format:%d$"
|
||||
git_full = "$Format:%H$"
|
||||
git_date = "$Format:%ci$"
|
||||
keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
|
||||
return keywords
|
||||
|
||||
|
||||
class VersioneerConfig:
|
||||
"""Container for Versioneer configuration parameters."""
|
||||
|
||||
|
||||
def get_config():
|
||||
"""Create, populate and return the VersioneerConfig() object."""
|
||||
# these strings are filled in when 'setup.py versioneer' creates
|
||||
# _version.py
|
||||
cfg = VersioneerConfig()
|
||||
cfg.VCS = "git"
|
||||
cfg.style = "pep440"
|
||||
cfg.tag_prefix = ""
|
||||
cfg.parentdir_prefix = "tags-"
|
||||
cfg.versionfile_source = "tags/_version.py"
|
||||
cfg.verbose = False
|
||||
return cfg
|
||||
|
||||
|
||||
class NotThisMethod(Exception):
|
||||
"""Exception raised if a method is not valid for the current scenario."""
|
||||
|
||||
|
||||
LONG_VERSION_PY: Dict[str, str] = {}
|
||||
HANDLERS: Dict[str, Dict[str, Callable]] = {}
|
||||
|
||||
|
||||
def register_vcs_handler(vcs, method): # decorator
|
||||
"""Create decorator to mark a method as the handler of a VCS."""
|
||||
def decorate(f):
|
||||
"""Store f in HANDLERS[vcs][method]."""
|
||||
if vcs not in HANDLERS:
|
||||
HANDLERS[vcs] = {}
|
||||
HANDLERS[vcs][method] = f
|
||||
return f
|
||||
return decorate
|
||||
|
||||
|
||||
def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
|
||||
env=None):
|
||||
"""Call the given command(s)."""
|
||||
assert isinstance(commands, list)
|
||||
process = None
|
||||
for command in commands:
|
||||
try:
|
||||
dispcmd = str([command] + args)
|
||||
# remember shell=False, so use git.cmd on windows, not just git
|
||||
process = subprocess.Popen([command] + args, cwd=cwd, env=env,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=(subprocess.PIPE if hide_stderr
|
||||
else None))
|
||||
break
|
||||
except OSError:
|
||||
e = sys.exc_info()[1]
|
||||
if e.errno == errno.ENOENT:
|
||||
continue
|
||||
if verbose:
|
||||
print("unable to run %s" % dispcmd)
|
||||
print(e)
|
||||
return None, None
|
||||
else:
|
||||
if verbose:
|
||||
print("unable to find command, tried %s" % (commands,))
|
||||
return None, None
|
||||
stdout = process.communicate()[0].strip().decode()
|
||||
if process.returncode != 0:
|
||||
if verbose:
|
||||
print("unable to run %s (error)" % dispcmd)
|
||||
print("stdout was %s" % stdout)
|
||||
return None, process.returncode
|
||||
return stdout, process.returncode
|
||||
|
||||
|
||||
def versions_from_parentdir(parentdir_prefix, root, verbose):
|
||||
"""Try to determine the version from the parent directory name.
|
||||
|
||||
Source tarballs conventionally unpack into a directory that includes both
|
||||
the project name and a version string. We will also support searching up
|
||||
two directory levels for an appropriately named parent directory
|
||||
"""
|
||||
rootdirs = []
|
||||
|
||||
for _ in range(3):
|
||||
dirname = os.path.basename(root)
|
||||
if dirname.startswith(parentdir_prefix):
|
||||
return {"version": dirname[len(parentdir_prefix):],
|
||||
"full-revisionid": None,
|
||||
"dirty": False, "error": None, "date": None}
|
||||
rootdirs.append(root)
|
||||
root = os.path.dirname(root) # up a level
|
||||
|
||||
if verbose:
|
||||
print("Tried directories %s but none started with prefix %s" %
|
||||
(str(rootdirs), parentdir_prefix))
|
||||
raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
|
||||
|
||||
|
||||
@register_vcs_handler("git", "get_keywords")
|
||||
def git_get_keywords(versionfile_abs):
|
||||
"""Extract version information from the given file."""
|
||||
# the code embedded in _version.py can just fetch the value of these
|
||||
# keywords. When used from setup.py, we don't want to import _version.py,
|
||||
# so we do it with a regexp instead. This function is not used from
|
||||
# _version.py.
|
||||
keywords = {}
|
||||
try:
|
||||
with open(versionfile_abs, "r") as fobj:
|
||||
for line in fobj:
|
||||
if line.strip().startswith("git_refnames ="):
|
||||
mo = re.search(r'=\s*"(.*)"', line)
|
||||
if mo:
|
||||
keywords["refnames"] = mo.group(1)
|
||||
if line.strip().startswith("git_full ="):
|
||||
mo = re.search(r'=\s*"(.*)"', line)
|
||||
if mo:
|
||||
keywords["full"] = mo.group(1)
|
||||
if line.strip().startswith("git_date ="):
|
||||
mo = re.search(r'=\s*"(.*)"', line)
|
||||
if mo:
|
||||
keywords["date"] = mo.group(1)
|
||||
except OSError:
|
||||
pass
|
||||
return keywords
|
||||
|
||||
|
||||
@register_vcs_handler("git", "keywords")
|
||||
def git_versions_from_keywords(keywords, tag_prefix, verbose):
|
||||
"""Get version information from git keywords."""
|
||||
if "refnames" not in keywords:
|
||||
raise NotThisMethod("Short version file found")
|
||||
date = keywords.get("date")
|
||||
if date is not None:
|
||||
# Use only the last line. Previous lines may contain GPG signature
|
||||
# information.
|
||||
date = date.splitlines()[-1]
|
||||
|
||||
# git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant
|
||||
# datestamp. However we prefer "%ci" (which expands to an "ISO-8601
|
||||
# -like" string, which we must then edit to make compliant), because
|
||||
# it's been around since git-1.5.3, and it's too difficult to
|
||||
# discover which version we're using, or to work around using an
|
||||
# older one.
|
||||
date = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
|
||||
refnames = keywords["refnames"].strip()
|
||||
if refnames.startswith("$Format"):
|
||||
if verbose:
|
||||
print("keywords are unexpanded, not using")
|
||||
raise NotThisMethod("unexpanded keywords, not a git-archive tarball")
|
||||
refs = {r.strip() for r in refnames.strip("()").split(",")}
|
||||
# starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
|
||||
# just "foo-1.0". If we see a "tag: " prefix, prefer those.
|
||||
TAG = "tag: "
|
||||
tags = {r[len(TAG):] for r in refs if r.startswith(TAG)}
|
||||
if not tags:
|
||||
# Either we're using git < 1.8.3, or there really are no tags. We use
|
||||
# a heuristic: assume all version tags have a digit. The old git %d
|
||||
# expansion behaves like git log --decorate=short and strips out the
|
||||
# refs/heads/ and refs/tags/ prefixes that would let us distinguish
|
||||
# between branches and tags. By ignoring refnames without digits, we
|
||||
# filter out many common branch names like "release" and
|
||||
# "stabilization", as well as "HEAD" and "master".
|
||||
tags = {r for r in refs if re.search(r'\d', r)}
|
||||
if verbose:
|
||||
print("discarding '%s', no digits" % ",".join(refs - tags))
|
||||
if verbose:
|
||||
print("likely tags: %s" % ",".join(sorted(tags)))
|
||||
for ref in sorted(tags):
|
||||
# sorting will prefer e.g. "2.0" over "2.0rc1"
|
||||
if ref.startswith(tag_prefix):
|
||||
r = ref[len(tag_prefix):]
|
||||
# Filter out refs that exactly match prefix or that don't start
|
||||
# with a number once the prefix is stripped (mostly a concern
|
||||
# when prefix is '')
|
||||
if not re.match(r'\d', r):
|
||||
continue
|
||||
if verbose:
|
||||
print("picking %s" % r)
|
||||
return {"version": r,
|
||||
"full-revisionid": keywords["full"].strip(),
|
||||
"dirty": False, "error": None,
|
||||
"date": date}
|
||||
# no suitable tags, so version is "0+unknown", but full hex is still there
|
||||
if verbose:
|
||||
print("no suitable tags, using unknown + full revision id")
|
||||
return {"version": "0+unknown",
|
||||
"full-revisionid": keywords["full"].strip(),
|
||||
"dirty": False, "error": "no suitable tags", "date": None}
|
||||
|
||||
|
||||
@register_vcs_handler("git", "pieces_from_vcs")
|
||||
def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command):
|
||||
"""Get version from 'git describe' in the root of the source tree.
|
||||
|
||||
This only gets called if the git-archive 'subst' keywords were *not*
|
||||
expanded, and _version.py hasn't already been rewritten with a short
|
||||
version string, meaning we're inside a checked out source tree.
|
||||
"""
|
||||
GITS = ["git"]
|
||||
TAG_PREFIX_REGEX = "*"
|
||||
if sys.platform == "win32":
|
||||
GITS = ["git.cmd", "git.exe"]
|
||||
TAG_PREFIX_REGEX = r"\*"
|
||||
|
||||
_, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root,
|
||||
hide_stderr=True)
|
||||
if rc != 0:
|
||||
if verbose:
|
||||
print("Directory %s not under git control" % root)
|
||||
raise NotThisMethod("'git rev-parse --git-dir' returned error")
|
||||
|
||||
# if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty]
|
||||
# if there isn't one, this yields HEX[-dirty] (no NUM)
|
||||
describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty",
|
||||
"--always", "--long",
|
||||
"--match",
|
||||
"%s%s" % (tag_prefix, TAG_PREFIX_REGEX)],
|
||||
cwd=root)
|
||||
# --long was added in git-1.5.5
|
||||
if describe_out is None:
|
||||
raise NotThisMethod("'git describe' failed")
|
||||
describe_out = describe_out.strip()
|
||||
full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root)
|
||||
if full_out is None:
|
||||
raise NotThisMethod("'git rev-parse' failed")
|
||||
full_out = full_out.strip()
|
||||
|
||||
pieces = {}
|
||||
pieces["long"] = full_out
|
||||
pieces["short"] = full_out[:7] # maybe improved later
|
||||
pieces["error"] = None
|
||||
|
||||
branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"],
|
||||
cwd=root)
|
||||
# --abbrev-ref was added in git-1.6.3
|
||||
if rc != 0 or branch_name is None:
|
||||
raise NotThisMethod("'git rev-parse --abbrev-ref' returned error")
|
||||
branch_name = branch_name.strip()
|
||||
|
||||
if branch_name == "HEAD":
|
||||
# If we aren't exactly on a branch, pick a branch which represents
|
||||
# the current commit. If all else fails, we are on a branchless
|
||||
# commit.
|
||||
branches, rc = runner(GITS, ["branch", "--contains"], cwd=root)
|
||||
# --contains was added in git-1.5.4
|
||||
if rc != 0 or branches is None:
|
||||
raise NotThisMethod("'git branch --contains' returned error")
|
||||
branches = branches.split("\n")
|
||||
|
||||
# Remove the first line if we're running detached
|
||||
if "(" in branches[0]:
|
||||
branches.pop(0)
|
||||
|
||||
# Strip off the leading "* " from the list of branches.
|
||||
branches = [branch[2:] for branch in branches]
|
||||
if "master" in branches:
|
||||
branch_name = "master"
|
||||
elif not branches:
|
||||
branch_name = None
|
||||
else:
|
||||
# Pick the first branch that is returned. Good or bad.
|
||||
branch_name = branches[0]
|
||||
|
||||
pieces["branch"] = branch_name
|
||||
|
||||
# parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty]
|
||||
# TAG might have hyphens.
|
||||
git_describe = describe_out
|
||||
|
||||
# look for -dirty suffix
|
||||
dirty = git_describe.endswith("-dirty")
|
||||
pieces["dirty"] = dirty
|
||||
if dirty:
|
||||
git_describe = git_describe[:git_describe.rindex("-dirty")]
|
||||
|
||||
# now we have TAG-NUM-gHEX or HEX
|
||||
|
||||
if "-" in git_describe:
|
||||
# TAG-NUM-gHEX
|
||||
mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
|
||||
if not mo:
|
||||
# unparsable. Maybe git-describe is misbehaving?
|
||||
pieces["error"] = ("unable to parse git-describe output: '%s'"
|
||||
% describe_out)
|
||||
return pieces
|
||||
|
||||
# tag
|
||||
full_tag = mo.group(1)
|
||||
if not full_tag.startswith(tag_prefix):
|
||||
if verbose:
|
||||
fmt = "tag '%s' doesn't start with prefix '%s'"
|
||||
print(fmt % (full_tag, tag_prefix))
|
||||
pieces["error"] = ("tag '%s' doesn't start with prefix '%s'"
|
||||
% (full_tag, tag_prefix))
|
||||
return pieces
|
||||
pieces["closest-tag"] = full_tag[len(tag_prefix):]
|
||||
|
||||
# distance: number of commits since tag
|
||||
pieces["distance"] = int(mo.group(2))
|
||||
|
||||
# commit: short hex revision ID
|
||||
pieces["short"] = mo.group(3)
|
||||
|
||||
else:
|
||||
# HEX: no tags
|
||||
pieces["closest-tag"] = None
|
||||
count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root)
|
||||
pieces["distance"] = int(count_out) # total number of commits
|
||||
|
||||
# commit date: see ISO-8601 comment in git_versions_from_keywords()
|
||||
date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip()
|
||||
# Use only the last line. Previous lines may contain GPG signature
|
||||
# information.
|
||||
date = date.splitlines()[-1]
|
||||
pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
|
||||
|
||||
return pieces
|
||||
|
||||
|
||||
def plus_or_dot(pieces):
|
||||
"""Return a + if we don't already have one, else return a ."""
|
||||
if "+" in pieces.get("closest-tag", ""):
|
||||
return "."
|
||||
return "+"
|
||||
|
||||
|
||||
def render_pep440(pieces):
|
||||
"""Build up version string, with post-release "local version identifier".
|
||||
|
||||
Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you
|
||||
get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty
|
||||
|
||||
Exceptions:
|
||||
1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty]
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"] or pieces["dirty"]:
|
||||
rendered += plus_or_dot(pieces)
|
||||
rendered += "%d.g%s" % (pieces["distance"], pieces["short"])
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0+untagged.%d.g%s" % (pieces["distance"],
|
||||
pieces["short"])
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
return rendered
|
||||
|
||||
|
||||
def render_pep440_branch(pieces):
|
||||
"""TAG[[.dev0]+DISTANCE.gHEX[.dirty]] .
|
||||
|
||||
The ".dev0" means not master branch. Note that .dev0 sorts backwards
|
||||
(a feature branch will appear "older" than the master branch).
|
||||
|
||||
Exceptions:
|
||||
1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty]
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"] or pieces["dirty"]:
|
||||
if pieces["branch"] != "master":
|
||||
rendered += ".dev0"
|
||||
rendered += plus_or_dot(pieces)
|
||||
rendered += "%d.g%s" % (pieces["distance"], pieces["short"])
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0"
|
||||
if pieces["branch"] != "master":
|
||||
rendered += ".dev0"
|
||||
rendered += "+untagged.%d.g%s" % (pieces["distance"],
|
||||
pieces["short"])
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
return rendered
|
||||
|
||||
|
||||
def pep440_split_post(ver):
|
||||
"""Split pep440 version string at the post-release segment.
|
||||
|
||||
Returns the release segments before the post-release and the
|
||||
post-release version number (or -1 if no post-release segment is present).
|
||||
"""
|
||||
vc = str.split(ver, ".post")
|
||||
return vc[0], int(vc[1] or 0) if len(vc) == 2 else None
|
||||
|
||||
|
||||
def render_pep440_pre(pieces):
|
||||
"""TAG[.postN.devDISTANCE] -- No -dirty.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. 0.post0.devDISTANCE
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
if pieces["distance"]:
|
||||
# update the post release segment
|
||||
tag_version, post_version = pep440_split_post(pieces["closest-tag"])
|
||||
rendered = tag_version
|
||||
if post_version is not None:
|
||||
rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"])
|
||||
else:
|
||||
rendered += ".post0.dev%d" % (pieces["distance"])
|
||||
else:
|
||||
# no commits, use the tag as the version
|
||||
rendered = pieces["closest-tag"]
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0.post0.dev%d" % pieces["distance"]
|
||||
return rendered
|
||||
|
||||
|
||||
def render_pep440_post(pieces):
|
||||
"""TAG[.postDISTANCE[.dev0]+gHEX] .
|
||||
|
||||
The ".dev0" means dirty. Note that .dev0 sorts backwards
|
||||
(a dirty tree will appear "older" than the corresponding clean one),
|
||||
but you shouldn't be releasing software with -dirty anyways.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. 0.postDISTANCE[.dev0]
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"] or pieces["dirty"]:
|
||||
rendered += ".post%d" % pieces["distance"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dev0"
|
||||
rendered += plus_or_dot(pieces)
|
||||
rendered += "g%s" % pieces["short"]
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0.post%d" % pieces["distance"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dev0"
|
||||
rendered += "+g%s" % pieces["short"]
|
||||
return rendered
|
||||
|
||||
|
||||
def render_pep440_post_branch(pieces):
|
||||
"""TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] .
|
||||
|
||||
The ".dev0" means not master branch.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty]
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"] or pieces["dirty"]:
|
||||
rendered += ".post%d" % pieces["distance"]
|
||||
if pieces["branch"] != "master":
|
||||
rendered += ".dev0"
|
||||
rendered += plus_or_dot(pieces)
|
||||
rendered += "g%s" % pieces["short"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0.post%d" % pieces["distance"]
|
||||
if pieces["branch"] != "master":
|
||||
rendered += ".dev0"
|
||||
rendered += "+g%s" % pieces["short"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dirty"
|
||||
return rendered
|
||||
|
||||
|
||||
def render_pep440_old(pieces):
|
||||
"""TAG[.postDISTANCE[.dev0]] .
|
||||
|
||||
The ".dev0" means dirty.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. 0.postDISTANCE[.dev0]
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"] or pieces["dirty"]:
|
||||
rendered += ".post%d" % pieces["distance"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dev0"
|
||||
else:
|
||||
# exception #1
|
||||
rendered = "0.post%d" % pieces["distance"]
|
||||
if pieces["dirty"]:
|
||||
rendered += ".dev0"
|
||||
return rendered
|
||||
|
||||
|
||||
def render_git_describe(pieces):
|
||||
"""TAG[-DISTANCE-gHEX][-dirty].
|
||||
|
||||
Like 'git describe --tags --dirty --always'.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. HEX[-dirty] (note: no 'g' prefix)
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
if pieces["distance"]:
|
||||
rendered += "-%d-g%s" % (pieces["distance"], pieces["short"])
|
||||
else:
|
||||
# exception #1
|
||||
rendered = pieces["short"]
|
||||
if pieces["dirty"]:
|
||||
rendered += "-dirty"
|
||||
return rendered
|
||||
|
||||
|
||||
def render_git_describe_long(pieces):
|
||||
"""TAG-DISTANCE-gHEX[-dirty].
|
||||
|
||||
Like 'git describe --tags --dirty --always -long'.
|
||||
The distance/hash is unconditional.
|
||||
|
||||
Exceptions:
|
||||
1: no tags. HEX[-dirty] (note: no 'g' prefix)
|
||||
"""
|
||||
if pieces["closest-tag"]:
|
||||
rendered = pieces["closest-tag"]
|
||||
rendered += "-%d-g%s" % (pieces["distance"], pieces["short"])
|
||||
else:
|
||||
# exception #1
|
||||
rendered = pieces["short"]
|
||||
if pieces["dirty"]:
|
||||
rendered += "-dirty"
|
||||
return rendered
|
||||
|
||||
|
||||
def render(pieces, style):
|
||||
"""Render the given version pieces into the requested style."""
|
||||
if pieces["error"]:
|
||||
return {"version": "unknown",
|
||||
"full-revisionid": pieces.get("long"),
|
||||
"dirty": None,
|
||||
"error": pieces["error"],
|
||||
"date": None}
|
||||
|
||||
if not style or style == "default":
|
||||
style = "pep440" # the default
|
||||
|
||||
if style == "pep440":
|
||||
rendered = render_pep440(pieces)
|
||||
elif style == "pep440-branch":
|
||||
rendered = render_pep440_branch(pieces)
|
||||
elif style == "pep440-pre":
|
||||
rendered = render_pep440_pre(pieces)
|
||||
elif style == "pep440-post":
|
||||
rendered = render_pep440_post(pieces)
|
||||
elif style == "pep440-post-branch":
|
||||
rendered = render_pep440_post_branch(pieces)
|
||||
elif style == "pep440-old":
|
||||
rendered = render_pep440_old(pieces)
|
||||
elif style == "git-describe":
|
||||
rendered = render_git_describe(pieces)
|
||||
elif style == "git-describe-long":
|
||||
rendered = render_git_describe_long(pieces)
|
||||
else:
|
||||
raise ValueError("unknown style '%s'" % style)
|
||||
|
||||
return {"version": rendered, "full-revisionid": pieces["long"],
|
||||
"dirty": pieces["dirty"], "error": None,
|
||||
"date": pieces.get("date")}
|
||||
|
||||
|
||||
def get_versions():
|
||||
"""Get version information or return default if unable to do so."""
|
||||
# I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have
|
||||
# __file__, we can work backwards from there to the root. Some
|
||||
# py2exe/bbfreeze/non-CPython implementations don't do __file__, in which
|
||||
# case we can only use expanded keywords.
|
||||
|
||||
cfg = get_config()
|
||||
verbose = cfg.verbose
|
||||
|
||||
try:
|
||||
return git_versions_from_keywords(get_keywords(), cfg.tag_prefix,
|
||||
verbose)
|
||||
except NotThisMethod:
|
||||
pass
|
||||
|
||||
try:
|
||||
root = os.path.realpath(__file__)
|
||||
# versionfile_source is the relative path from the top of the source
|
||||
# tree (where the .git directory might live) to this file. Invert
|
||||
# this to find the root from __file__.
|
||||
for _ in cfg.versionfile_source.split('/'):
|
||||
root = os.path.dirname(root)
|
||||
except NameError:
|
||||
return {"version": "0+unknown", "full-revisionid": None,
|
||||
"dirty": None,
|
||||
"error": "unable to find root of source tree",
|
||||
"date": None}
|
||||
|
||||
try:
|
||||
pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose)
|
||||
return render(pieces, cfg.style)
|
||||
except NotThisMethod:
|
||||
pass
|
||||
|
||||
try:
|
||||
if cfg.parentdir_prefix:
|
||||
return versions_from_parentdir(cfg.parentdir_prefix, root, verbose)
|
||||
except NotThisMethod:
|
||||
pass
|
||||
|
||||
return {"version": "0+unknown", "full-revisionid": None,
|
||||
"dirty": None,
|
||||
"error": "unable to compute version", "date": None}
|
@ -1,151 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
This plugin generates tags file as well as inserts markdown
|
||||
at the beginning of a file that has tags
|
||||
|
||||
@Adopted from
|
||||
JL Diaz (c) 2019
|
||||
MIT License
|
||||
"""
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
from re import search, DOTALL, MULTILINE
|
||||
from yaml import load, FullLoader, YAMLError
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
from mkdocs.structure.files import File
|
||||
from mkdocs.plugins import BasePlugin
|
||||
from mkdocs.config.config_options import Type
|
||||
from mkdocs.__main__ import log
|
||||
|
||||
class TagsPlugin(BasePlugin):
|
||||
"""
|
||||
Creates "tags.md" file containing a list of the pages grouped by tags
|
||||
|
||||
It uses the info in the YAML metadata of each page, for the pages which
|
||||
provide a "tags" keyword (whose value is a list of strings)
|
||||
"""
|
||||
config_scheme = (
|
||||
('filename', Type(str, default='tags.md')),
|
||||
('folder', Type(str, default='aux')),
|
||||
('template', Type(str)),
|
||||
('css_name', Type(str, default='.button')),
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
self.metadata = []
|
||||
self.tag_dict = None
|
||||
self.filename = "tags.md"
|
||||
self.folder = "aux"
|
||||
self.template = None
|
||||
self.css_name = ".button"
|
||||
self.templ = None
|
||||
|
||||
#pylint: disable=unused-argument
|
||||
def on_page_markdown(self, markdown, page, config, files):
|
||||
"""
|
||||
takes markdown, page, config, and files
|
||||
currently modifies the markdown to add a button to click to get related tag info
|
||||
tag is customizeable by adding css that keys off the `self.css_name`
|
||||
"""
|
||||
|
||||
page_url = page.url.split("/")
|
||||
tags_link = ''
|
||||
|
||||
for i in range(len(page_url) - 1):
|
||||
tags_link = tags_link + '../'
|
||||
|
||||
tags_link = tags_link + str(self.filename).strip('.md')
|
||||
|
||||
if tags_link[-1] != '/':
|
||||
tags_link = tags_link + '/'
|
||||
|
||||
if 'tags' in page.meta:
|
||||
swap_mark = [f"[{x}]({tags_link}#{x.lower()}){{{self.css_name}}}"
|
||||
for x in page.meta['tags']]
|
||||
swap_mark.append('\n')
|
||||
return f'{" ".join(swap_mark)}{markdown}'
|
||||
return markdown
|
||||
|
||||
def on_config(self, config):
|
||||
"""Load config options"""
|
||||
self.filename = Path(self.config.get("filename") or self.filename)
|
||||
self.folder = Path(self.config.get("folder") or self.folder)
|
||||
self.css_name = self.config.get("css_name")
|
||||
# Make sure that the tags folder is absolute, and exists
|
||||
if not self.folder.is_absolute():
|
||||
self.folder = Path(config["docs_dir"]) / ".." / self.folder
|
||||
if not self.folder.exists():
|
||||
self.folder.mkdir(parents=True)
|
||||
|
||||
if self.config.get("template"):
|
||||
self.template = Path(self.config.get("template"))
|
||||
if self.template is None:
|
||||
self.template = Path(__file__).parent.joinpath(
|
||||
"templates"
|
||||
).joinpath("tags.md.template")
|
||||
environment = Environment(
|
||||
loader=FileSystemLoader(searchpath=str(self.template.parent))
|
||||
)
|
||||
self.templ = environment.get_template(str(self.template.name))
|
||||
|
||||
def on_files(self, files, config):
|
||||
"""Load files to check for tags"""
|
||||
self.metadata = [
|
||||
get_metadata(x.src_path, config['docs_dir'])
|
||||
for x in files if x.src_path.endswith(".md")
|
||||
]
|
||||
# Create new file with tags
|
||||
self.generate_tags_file()
|
||||
# New file to add to the build
|
||||
newfile = File(
|
||||
path=str(self.filename),
|
||||
src_dir=str(self.folder),
|
||||
dest_dir=config["site_dir"],
|
||||
use_directory_urls=False
|
||||
)
|
||||
files.append(newfile)
|
||||
|
||||
def generate_tags_page(self, data):
|
||||
"""Generate the tags to be populated on the
|
||||
mkdocs tag page"""
|
||||
|
||||
css_name = self.css_name
|
||||
|
||||
if css_name[0:1] == '.':
|
||||
css_name = css_name[1:len(css_name)]
|
||||
return self.templ.render(
|
||||
tags=sorted(data.items(), key=lambda t: t[0].lower()),
|
||||
css_name = css_name,
|
||||
)
|
||||
|
||||
def generate_tags_file(self):
|
||||
"""Generate a file to be stored on the mkdocs page"""
|
||||
sorted_meta = sorted(self.metadata, key=lambda e: e.get("year", 5000) if e else 0)
|
||||
self.tag_dict = defaultdict(list)
|
||||
for meta in sorted_meta:
|
||||
if not meta:
|
||||
continue
|
||||
if "title" not in meta:
|
||||
meta["title"] = meta['filename'].split("/")[-1].strip('.md')
|
||||
tags = meta.get("tags", [])
|
||||
for tag in tags:
|
||||
self.tag_dict[tag].append(meta)
|
||||
|
||||
with open(str(self.folder / self.filename), "w", encoding='utf-8') as fname:
|
||||
fname.write(self.generate_tags_page(self.tag_dict))
|
||||
|
||||
# Helper functions
|
||||
def get_metadata(name, path):
|
||||
"""Get the metadata off of a file"""
|
||||
filename = Path(path) / Path(name)
|
||||
with filename.open() as fname:
|
||||
match_string = search(r"\A\s*---\n.*?\n---", fname.read(), flags=DOTALL | MULTILINE)
|
||||
if match_string:
|
||||
try:
|
||||
metadata = match_string.group(0).strip('---')
|
||||
meta = load(metadata, Loader=FullLoader)
|
||||
meta.update(filename=name)
|
||||
return meta
|
||||
except YAMLError as err:
|
||||
log.error("Couldn't parse %s yaml due to %s", fname, err)
|
||||
return None
|
@ -1,6 +0,0 @@
|
||||
# Contents grouped by tag
|
||||
{% for tag, pages in tags %}
|
||||
## <span class="{{css_name}}">{{tag}}</span>
|
||||
{% for page in pages %}
|
||||
* [{{page.title}}]({{page.filename}})
|
||||
{% endfor %}{% endfor %}
|
224
mkdocs.yml
@ -1,125 +1,9 @@
|
||||
site_name: No Fuss Computing
|
||||
site_description: A wiki with random bits of information you may find useful.
|
||||
site_url: https://nofusscomputing.com
|
||||
|
||||
site_author: No Fuss Computing
|
||||
copyright: Copyright © No Fuss Computing 2021
|
||||
|
||||
#site_favicon: favicon.ico
|
||||
# site_dir: 'docs/static/mkdocs_build'
|
||||
|
||||
docs_dir: 'pages'
|
||||
site_dir: build
|
||||
INHERIT: website-template/mkdocs.yml
|
||||
|
||||
repo_name: Website
|
||||
#repo_url: https://gitlab.com/nofusscomputing/infrastructure/website
|
||||
repo_url: https://gitlab.com/nofusscomputing/infrastructure/website
|
||||
#edit_uri: '-/blob/pages'
|
||||
#edit_uri: '-/blob/master/pages/'
|
||||
edit_uri: ''
|
||||
edit_uri: '/-/ide/project/nofusscomputing/projects/website/edit/development/-/pages/'
|
||||
|
||||
theme:
|
||||
name: material
|
||||
logo: assets/logo.png
|
||||
custom_dir: theme-overrides
|
||||
icon:
|
||||
repo: fontawesome/brands/gitlab # (1)!
|
||||
locale: en
|
||||
font: false
|
||||
features:
|
||||
- navigation.tracking
|
||||
- navigation.tabs
|
||||
- navigation.tabs.sticky
|
||||
- navigation.expand
|
||||
- navigation.indexes
|
||||
- toc.integrate
|
||||
- navigation.top
|
||||
- header.autohide
|
||||
- navigation.sections
|
||||
|
||||
palette:
|
||||
- scheme: default
|
||||
primary: indigo
|
||||
accent: indigo
|
||||
toggle:
|
||||
icon: material/lightbulb-outline
|
||||
name: Switch to dark mode
|
||||
- scheme: slate
|
||||
primary: indigo
|
||||
accent: indigo
|
||||
toggle:
|
||||
icon: material/lightbulb
|
||||
name: Switch to light mode
|
||||
|
||||
|
||||
plugins:
|
||||
- tags:
|
||||
filename: tags.md
|
||||
folder: pages
|
||||
css_name: ".tags"
|
||||
- search:
|
||||
lang: en
|
||||
|
||||
- git-revision-date-localized:
|
||||
type: iso_date
|
||||
enable_creation_date: true
|
||||
exclude:
|
||||
- index.md
|
||||
- tags.md
|
||||
# - minify:
|
||||
# minify_html: true
|
||||
|
||||
extra:
|
||||
homepage: https://nofusscomputing.com
|
||||
version: 1.0
|
||||
social:
|
||||
- link: https://hub.docker.com/u/nofusscomputing
|
||||
name: DockerHub
|
||||
icon: fontawesome/brands/docker
|
||||
|
||||
- link: https://facebook.com/NoFussComputing
|
||||
name: Facebook
|
||||
icon: fontawesome/brands/facebook
|
||||
|
||||
- link: https://gitlab.com/nofusscomputing
|
||||
name: Gitlab
|
||||
icon: fontawesome/brands/gitlab
|
||||
|
||||
- link: https://github.com/NoFussComputing
|
||||
name: Github
|
||||
icon: fontawesome/brands/github
|
||||
|
||||
# - link: https://readthedocs.org/profiles/nofusscomputing/
|
||||
# nane: ReadTheDocs
|
||||
# icon: fontawesome/brands/readthedocs
|
||||
# link: https://
|
||||
blog:
|
||||
dir: articles
|
||||
author: jon_nfc
|
||||
author_image: https://gitlab.com/uploads/-/system/user/avatar/4125177/avatar.png
|
||||
words_read_per_minute: 300
|
||||
list_length: 25
|
||||
extended_preview: true
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
|
||||
markdown_extensions:
|
||||
- def_list
|
||||
- pymdownx.tasklist:
|
||||
custom_checkbox: true
|
||||
- meta
|
||||
- attr_list
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
- pymdownx.superfences
|
||||
# - pymdownx.emoji:
|
||||
# emoji_index: !!python/name:materialx.emoji.twemoji
|
||||
# emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||
# options:
|
||||
# custom_icons:
|
||||
# - .icons
|
||||
nav:
|
||||
- Home: index.md
|
||||
|
||||
@ -127,19 +11,111 @@ nav:
|
||||
|
||||
- articles/index.md
|
||||
|
||||
- 2023:
|
||||
|
||||
- articles/2023/new_website.md
|
||||
|
||||
- 2015:
|
||||
|
||||
- articles/2015/choose_internet_service.md
|
||||
|
||||
- 2014:
|
||||
|
||||
- articles/2014/mdt_setup.md
|
||||
|
||||
- Content Tags: tags.md
|
||||
|
||||
- Projects:
|
||||
|
||||
- projects/index.md
|
||||
|
||||
- Ansible Roles: projects/ansible-roles/README.md
|
||||
- Ansible:
|
||||
|
||||
- Gitlab CI Templates: projects/gitlab-ci/README.md
|
||||
- projects/ansible/index.md
|
||||
|
||||
- Ansible Execution Environment:
|
||||
|
||||
- projects/ansible/execution_environment/index.md
|
||||
|
||||
- Collections:
|
||||
|
||||
- projects/ansible/collection/index.md
|
||||
|
||||
- Centurion:
|
||||
|
||||
- projects/ansible/collection/centurion/index.md
|
||||
|
||||
- Firewall:
|
||||
|
||||
- projects/ansible/collection/firewall/index.md
|
||||
|
||||
- Kubernetes:
|
||||
|
||||
- projects/ansible/collection/kubernetes/index.md
|
||||
|
||||
- netbox:
|
||||
|
||||
- projects/ansible/collection/netbox/index.md
|
||||
|
||||
- phpIPAM Scan Agent:
|
||||
|
||||
- projects/ansible/collection/phpipam_scan_agent/index.md
|
||||
|
||||
- Playbooks:
|
||||
|
||||
- projects/ansible/playbooks/index.md
|
||||
|
||||
- Roles:
|
||||
|
||||
- projects/ansible/roles/index.md
|
||||
|
||||
- Common:
|
||||
|
||||
- projects/ansible/roles/common/index.md
|
||||
|
||||
- Git Configuration:
|
||||
|
||||
- projects/ansible/roles/git_configuration/index.md
|
||||
|
||||
- Home Assistant:
|
||||
|
||||
- projects/ansible/roles/homeassistant/index.md
|
||||
|
||||
- Testing:
|
||||
|
||||
- projects/ansible/roles/ansible_test/index.md
|
||||
|
||||
- Docker:
|
||||
|
||||
- projects/docker/index.md
|
||||
|
||||
- BIND DNS Server:
|
||||
|
||||
- projects/docker/bind/index.md
|
||||
|
||||
- Docker GLPI:
|
||||
|
||||
- projects/glpi/index.md
|
||||
|
||||
- Docker Mail:
|
||||
|
||||
- projects/docker-mail/index.md
|
||||
|
||||
- Centurion ERP:
|
||||
|
||||
- projects/centurion_erp/index.md
|
||||
|
||||
- Gitlab CI: projects/gitlab-ci/index.md
|
||||
|
||||
- ITIL:
|
||||
|
||||
- Runbooks:
|
||||
|
||||
- projects/itil/runbooks/index.md
|
||||
|
||||
- Kubernetes Monitoring: projects/kubernetes_monitoring/index.md
|
||||
|
||||
- LDAP Self Service: projects/ldap_self_service/index.md
|
||||
|
||||
- Python Gitlab Management: projects/python-gitlab-management/README.md
|
||||
|
||||
@ -147,13 +123,5 @@ nav:
|
||||
|
||||
- operations/index.md
|
||||
|
||||
- Development:
|
||||
|
||||
- operations/syntax.md
|
||||
|
||||
- Wiki:
|
||||
|
||||
- wiki/index.md
|
||||
|
||||
- Contact Us: contact.md
|
||||
|
||||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
108
pages/articles/2014/mdt_setup.md
Normal file
@ -0,0 +1,108 @@
|
||||
---
|
||||
title: How I use Microsoft Deployment Toolkit
|
||||
description: This article is a record of how I setup my Microsoft Deployment Toolkit. There are many ways to set it up. However this is how I do it.
|
||||
date: 2014-09-01
|
||||
template: article.html
|
||||
type: blog
|
||||
author: jon
|
||||
copyrightHolder: jon
|
||||
about: https://en.wikipedia.org/wiki/Microsoft_Deployment_Toolkit
|
||||
tags:
|
||||
- Administration
|
||||
- Microsoft
|
||||
- Microsoft Deployment Toolkit
|
||||
- Windows
|
||||
---
|
||||
|
||||
!!! info
|
||||
This information has been created as a record of how I do something, if you decide to follow anything within this set of pages and stuff up, you're on your own!!
|
||||
|
||||
I use Microsoft Deployment Tool Kit (MDT) to reduce the time it takes to install/update and to deploy a working Windows OS. The setup of MDT and time taken to test and get it right far outweighs deploying an OS by hand. Below you will find how I have setup my MDT structure and why. Most of my setup has been chopped and changed due to trial and error and to ease the burden.
|
||||
|
||||
My goals for MDT are:
|
||||
|
||||
- Deploy any Windows OS quickly
|
||||
- Easily update Applications / Drivers / Operating System
|
||||
- make deployment media that could be used by a less savvy computer user.
|
||||
|
||||
I currently use MDT to Deploy windows on my own network (Active Directory Domain), Stand alone machines and family and friends computers. I also use MDT to install applications and force a computer to update using my WSUS Server.
|
||||
|
||||
|
||||
## Folder Layout
|
||||
|
||||

|
||||
|
||||
|
||||
## Applications
|
||||
|
||||
I not only use MDT to deploy applications during OS deployment but I also have a 'Post OS Install' task sequence to install applications as well.
|
||||
|
||||
Application folders Layout is pretty straight forward.
|
||||
|
||||
- Client Software Suite - Standard Suite
|
||||
|
||||
All Freeware applications that I install is under this structure
|
||||
|
||||
- Client Software Suite - Domain
|
||||
|
||||
Local Domain only Applications
|
||||
|
||||
- Server Software Suite - Domain
|
||||
|
||||
Software for use on domain Servers
|
||||
|
||||
Each suite folder is setup as follows.
|
||||
|
||||
| Folder | Description |
|
||||
|:----|:----|
|
||||
| Suite | Applications listed here are only Application Bundles. The dependent applications for these Application bundles are selected from the AppTree folder. They are visible from the deployment wizard. |
|
||||
| Suite\AppTree | Applications here are 'Applications with Source files' these applications are contain the acutual installers for the application in question. They are not visible from the deployment wizard. |
|
||||
| Suite\Archive | Applications here are old versions, they are visible from the deployment wizard. |
|
||||
|
||||

|
||||
**Figure 1. AppTree Folder Structure** This is where new applications are imported to they are imported as an application with source files.
|
||||
|
||||
|
||||

|
||||
**Figure 2. Suite Application bundles** These applications are application bundles with the application under the app tree folder added as a dependency.
|
||||
|
||||
|
||||
### Add New Application
|
||||
|
||||
To add a new application the following process is followed.
|
||||
|
||||
- Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard.
|
||||
|
||||
- Create an application Bundle under the Suite root folder and set its dependency to the application you wish to install, from the AppTree folder.
|
||||
|
||||
- if the application you wish to install has dependent applications, select the dependent application bundle from the suite root folder making sure it is set to install before the application that requires it does.
|
||||
|
||||
|
||||
### Update an Application
|
||||
|
||||
- Import an application with source files into the AppTree Folder ensuring you hide it from the deployment wizard.
|
||||
|
||||
- goto the application Bundle under the Suite root folder and set its dependency to the application you just added to the AppTree folder and remove the old version of that application.
|
||||
|
||||
- return to the AppTree folder and move the old app to the Archive directory making sure you 'uncheck' the 'hide from deployment wizard'.
|
||||
|
||||
|
||||
### other useful info
|
||||
|
||||
- utilize the uninstall key, within each application it will prevent the app from trying to install again.
|
||||
|
||||
|
||||
### Reasoning
|
||||
|
||||
This structure was adopted for the following reasons:
|
||||
|
||||
- Create Deployment media based on suites (Departments / Groups / ETC.)
|
||||
|
||||
- If you have mandatory applications in your config file providing you have used the Suit 'Application Bundle' you don't have to leave the GUI/Edit the config file to update the application.
|
||||
|
||||
- clarity
|
||||
|
||||
!!! attention
|
||||
This post is considered an archived post.
|
||||
|
||||
This article was originally posted on 01 Sep 2014. It has been migrated from its original source http://nofusscomputing.com/wiki/public/help/mdt/home and http://nofusscomputing.com/wiki/public/help/mdt/applications to here.
|
@ -1,8 +1,11 @@
|
||||
---
|
||||
template: blog_post.html
|
||||
title: Choosing an Internet Service
|
||||
description: The Internet has now become a mainstream item within the average Australian home. The Internet has become so ingrained within our daily lives that for those of us that were around when the Internet was born have actually forgotten what life was like without it. I remember when I was growing up that if we wanted to learn about something you would go to the local library or to a family/friends house to look through their Encyclopaedia Britannica which more often than not was at least five years out of date. Believe it or not that was only 15 to 20 years ago. Now if I haven't lost you already and hopefully by the end of this article I have been able to provide you with more insight on being able to choose an Internet service from an ISP with a little more of an understanding of the technology behind that Internet connection.
|
||||
date: 2015-02-25
|
||||
template: article.html
|
||||
type: blog
|
||||
author: jon
|
||||
copyrightHolder: jon
|
||||
tags:
|
||||
- ADSL
|
||||
- Archive
|
||||
@ -24,15 +27,18 @@ Below I will cover a little of the technical details and hopefully bringing into
|
||||
|
||||
<p hidden>#more</p>
|
||||
|
||||
|
||||
## Bandwidth
|
||||
|
||||
Bandwidth is the actual speed of your Internet connection and its unit of measure is bits per second. So basically if you think water pipe, only so much water will flow through a water pipe but if you increase it’s pressure you will receive more water. For the actual Internet connection different technology is used to essentially achieve the same
|
||||
thing.
|
||||
|
||||
|
||||
## Quota
|
||||
|
||||
This is how much you can download and/or upload from the Internet. Its unit of measure is bytes. Think of a water tank, larger the tank the more quota you have available. This will be set by your ISP and 9 times out of 10 will be limited. Every Time you connect to the Internet you are using this available quota.
|
||||
|
||||
|
||||
## Theory
|
||||
|
||||
Now to fully understand the quota and bandwidth I will have to cover a little bit of computer theory. Computers compute information by doing mathematical equations. The only numbers a computer recognizes are Base 2. Base 2 numbering means it uses the first 2 numbers, being zero and one. In common computer terms this is called binary which is always in the computer world as a minimum 8 bits wide i.e. 01010101. Each digit of the number is a bit, four bits to a nibble and 2 nibbles to a byte. Unlike the English language; Binary is read from right to left and each one or zero, within a binary number is actually counting from 1 through to 255, which takes 8 bits of information. Binary is a notational reference system, so starting from right to left each digit represents another number, the first number being one, each number after that is double the number before it so the next number would be two, then four, eight, 16, 32, 64 finishing with the leftmost digit as 128. Confusing? Not really, when the bit is zero you don't add each notated number, you only add if the bit is one. So 0001 would be one, 0010 would be two, 0011 is three and so on.
|
||||
@ -41,26 +47,32 @@ Communication between different components or computers (network or The Internet
|
||||
|
||||
So why use different units of measure for the same data? simply put, computers are electronic devices which communicate with an electronic signal with 1 being on and zero being off; basically the signal is either on or off. So the transmission of data is serial or singular and storage is in parallel or stored in octets which is a group of bits. Hence bits and bytes. generally you will find lowercase letters are used to represent bits and uppercase letters are used for bytes.
|
||||
|
||||
|
||||
### Connection types
|
||||
|
||||
The common Internet connection types in Australia are ADSL or via the Mobile network. Very rarely used but still available if you look hard enough dial-up. and the newest and greatest is the National Broadband Network or NBN. With the exception of the NBN all of the above connection types will have a max speed. This max speed is a theoretical maximum speed and there are many factors which generally slow down your connection. All connection methods have a technological peak, which basically means there is no known way to improve that technology any further.
|
||||
|
||||
|
||||
### Dial-Up
|
||||
|
||||
Dial-UpInternet was the first mainstream way to connect to the Internet. For this to happen you needed an active phone line, a computer with a MODEM (short for modulator/demodulator) and you would plug a phone cable into your computer, which would dial a number to connect to the Internet. At its technological peak the max theoretical download speed was 56kb and approx 33kb up. Dial-up modems are generally part of the computer. The downside to Dial-up is that it relies on good quality phone cables, basically if you have a bad phone line you will have unstable and slower Internet. Dial-up also suffers from signal attenuation which means the further away from the telephone exchange the lower the speed your Internet is going to be. The biggest downside to having Dial-up Internet is that you can either be connected to the Internet or on the phone, not both.
|
||||
|
||||
|
||||
### ADSL
|
||||
|
||||
Asynchronous Digital Subscriber Line or ADSL is the most common Internet in Australia. This is also commonly referred to as broadband Internet, the biggest difference between ADSL and Dial-up is that it is always on. When ADSL first arrived it had a speed of 1.5mb, which was a massive increase over Dial-up. As ADSL evolved its speed increased, when this occurred its name slightly changed to suit the technological level, ADSL1, ADSL2 and finishing with ADSL2+ which has a maximum theoretical download speed of 24Mb and 2Mb Up. An ADSL connection like dial-up Internet requires a modem and suffers with the same line issues. Where ADSL is an improvement over Dial-up is that you can still make telephone calls when you are have an active Internet connection for this you will need a line filter. To utilise an ADSL connection you require an ADSL modem.
|
||||
|
||||
|
||||
### Mobile Network
|
||||
|
||||
Again this method of connecting to the Internet has been around for a while and with the invention of the smartphone has become quite a common way to “surf the Web”. 4th generation or 4G being the current technology has a max theoretical speed of 50Mb. The connection speed is shared amongst all users utilizing that mobile tower to connect to the Internet, and if you don’t have good mobile reception you will not have a stable Internet connection.
|
||||
|
||||
|
||||
### NBN
|
||||
|
||||
The National broadband network or NBN as it is known is the new way to connect to the Internet. The NBN unlike Dial-up or ADSL does not use a phone line to connect to the Internet. The NBN uses fiber optic cable, which uses light not electricity to communicate. Fiber optic cable can be thinner than a human hair. Fiber Optic cable, or fiber networks have one purpose; transmit data, not voice or electronic signals like a copper cable Since fiber is designed for networking you require a router to connect to it. A router looks very similar to an ADSL modem. Unlike the other Internet connection methods above, communication in either direction is the same. Within Australia this is not the case, and for whatever reason you will find most NBN capable ISPs will still have packages with different upload and download speeds. Fiber networks are very mature and their speed is actual, not theoretical maximums and are capable of transmitting data at 10gbps. Using that speed for connecting to the Internet is overkill and you will find that most ISPs offer no connection speed above 100mbps at the moment.
|
||||
|
||||
|
||||
## Choosing a suitable Internet service
|
||||
|
||||
Now hopefully by now I have given you a little better understanding of the connection types and terminology in relation to choosing an Internet service; believe me it is still a cumbersome task. Yes there are a lot of things to consider. From a technical standpoint the following should be taken into account:
|
||||
@ -71,14 +83,17 @@ Now hopefully by now I have given you a little better understanding of the conne
|
||||
|
||||
- bang for buck
|
||||
|
||||
|
||||
### Availability in Your Area
|
||||
|
||||
For a majority of Australians, ADSL is the best Internet service you will have available. The most annoying thing when trying to connect an ADSL service is the wait time. This wait time is due to the requirement for a technician to have to go to your local telephone exchange to actually connect you, that is if there are spare ports available in the exchange. If though, you can get the NBN, go for it. Seriously you are being foolish if you don't. Why? the NBN is an actual data network and the speed you pay for is what you get, overall the NBN is more reliable.
|
||||
|
||||
|
||||
### What You Will be Using the Internet For?
|
||||
|
||||
Most website designers will aim for a page load time of within one-two seconds; Even now how website technology is becoming more media focused, I would not recommend any speed lower that ADSL2+(24mbps) or 12mbps for the NBN. Why the different speeds? Remember that ADSL is a theoretical maximum, on average. Most ADSL users will have an actual connection speed of between 8mbps-22mbps and the NBN is actual speed. Anything faster than this for just “surfing the web” is overkill, and a waste of money. Where would you require a faster connection speed? if you start to use services like netflix and/or Foxtel IPTV to stream videos. Having more than ~5 users, may also be a consideration for a speed increase. How much quota do you need? if you have had the Internet before, go look at your previous bills, most of the time you will see what you used for the billing period, use this figure as a basis to guesstimate how much quota you are going to need. If you have never had an Internet package before then as a guide I would recommend nothing less than 10GB quota per month for the average light Internet user. I can't emphasize this enough, please do your research before you take this as gospel. Most people do know someone who <s>“knows boats”</s> would be able to assist in assessing how much quota you may require.
|
||||
|
||||
|
||||
### Bang for Buck
|
||||
|
||||
Read the fine print………. READ THE FINE PRINT……… oh, did I mention fine print? Every Internet package has fine print. This fine print will cover things like:
|
||||
@ -101,6 +116,7 @@ Read the fine print………. READ THE FINE PRINT……… oh, did I mention fin
|
||||
|
||||
- your responsibilities
|
||||
|
||||
|
||||
### Further Considerations
|
||||
|
||||
- "**Unlimited Packages"** Some ISPs do offer "unlimited packages". Please read the fine print so you can get the definition of unlimited as sometimes unlimited does not exactly mean unlimited. Some ISPs have been know to use peak and off-peak times, during peak you will have a quota and off peak is “unlimited”. A big consideration for unlimited or large packages with lower download speeds is calculating what you could actually download in that billing period. This is a simple task and would use the following formula.
|
||||
@ -126,6 +142,7 @@ Read the fine print………. READ THE FINE PRINT……… oh, did I mention fin
|
||||
|
||||
There are however some ISPs who are old school. they will give you a callback after being on hold for a few minutes and if your assistance call needs to be escalated will either call you back or give a detailed handover to the next person you need to speak to. bottom line if you are not technically minded than ask around to find a good ISP who can assist you and be wary of outsourced tech support.
|
||||
|
||||
|
||||
## Conclusion
|
||||
|
||||
Lets face it, The Internet has made our lives easier. You can now sit in your lounge room and read this long, very mind numbing article on how to choose a better Internet Service, do your Banking, Pay Bills, Buy Goods, <s>look at porn</s> and best of all place video calls to family and friends. What will the future hold? Who knows but given how far technology has evolved in the last 50 years, I think the next 50 will yield even more from this simple little invention courtesy of DARPA.
|
||||
|
29
pages/articles/2023/new_website.md
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Site Refurbishment
|
||||
description: it's an update.
|
||||
date: 2023-08-01
|
||||
template: article.html
|
||||
type: blog
|
||||
author: jon
|
||||
copyrightHolder: jon
|
||||
about: https://nofusscomputing.com
|
||||
tags:
|
||||
- Automation
|
||||
- Website
|
||||
- Update
|
||||
---
|
||||
|
||||
It's been a while and for all intents and purposes; Prior to today you would not have been mistaken for thinking that our site was dead in the water. I could give reasons, but the reality is it's an excuse and we all know that *"they're like arseholes, everyones got one!!"* As it currently stands, I find myself with a little extra time on my hands so this site revamp is the start and first visibility of what I've been doing.
|
||||
|
||||
I've spent a good part of a few of a few decades working with computers. Whilst this has been an interesting journey, in the last few years I've discovered Configuration-as-Code. The concept itself wasn't exactly new to me, I just put off learning anything about it past the name. As creatures of habits, us humans, once we have found our way we tend to stick to that routine or better stated, with what we know.
|
||||
Moving from the early days (norton ghost and clonezilla) with manually built images for every different type of machine. which became very monotonous to manually update the images with patches. The opportunity had presented itself resently where for the first time in over two decades, I'm required to rebuild my infrastructre from scratch. As daunting as this sounds, given the leaps and bounds that have occured in the last decade, even more in the last five years. Technologies have evolved to the point where now it takes a fraction of the time to do what used to take upwards of a week. Upgrades now are not rebuild the image from scratch, clone and redeploy. Now, I punch the keyboard and characters show on the screen, then I run a program, Ansible. It reads the jibberish (json/yaml) and presto, Bobs your uncle, a deploy has occured. Fresh deployment or updates, doesn't matter, run the same code again and Ansible ensures it's setup how it's supposed to be. Need to update a piece of software, too easy, change the version number in your config files.
|
||||
|
||||
Other things of note worthy mention:
|
||||
|
||||
- For Family and friends, free of course I host Password vault, <https://vault.nofusscomputing.com>. This enables you to install an app on your phone and within your web browser which lets you sync your passwords, identities and secrets-and using zero-trust full encryption. Best feature of all,you only have to remember your vault password, as everything else is stored in the vault.
|
||||
|
||||
- Helpdesk now deployed publicly, <https://helpdesk.nofusscomputing.com>. Along with automating everything else a Service Catalog is being extended to automate other tasks.
|
||||
|
||||
- Website updating now occurs automagically. We do this via Gitlab using CD/CI pipelines. Now I just edit a file, push the changes and the changes deploy my site on the interwebs.
|
||||
|
||||
- Our [projects](../../projects/index.md) from [GitHub](https://github.com/NoFussComputing) and [GitLab](https://gitlab.com/nofusscomputing) deploy their docs to our site, again automagically.
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
|
||||
template: blog_list.html
|
||||
template: article_list.html
|
||||
title: No Fuss Computing Articles
|
||||
|
||||
---
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
BIN
pages/assets/nfc_revamp.png
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
pages/assets/nfc_revamp_dark.png
Normal file
After Width: | Height: | Size: 136 KiB |
@ -12,6 +12,7 @@ We can be found in the following places on the internet:
|
||||
|
||||
- [:books: Read the Docs](https://readthedocs.org/profiles/nofusscomputing/)
|
||||
|
||||
|
||||
## Found an issue with a page on this website?
|
||||
|
||||
On every page of this website that you are able to edit, you will find this icon :material-pencil:. Located in the top right hand corner of the content. After clicking on this icon, you will be taken to the git repository that contains the page in question for you to edit. An understanding of Git and Gitlab is required for the use of this method.
|
||||
|
@ -1,8 +1,14 @@
|
||||
---
|
||||
template: home.html
|
||||
title: No Fuss Computing
|
||||
description: Here at No Fuss Computing we predominately do research and development into, making your computing experience a more enjoyable one. See our projects page to find out what we are working on.
|
||||
|
||||
hide:
|
||||
- navigation
|
||||
- toc
|
||||
---
|
||||
# No Fuss Computing
|
||||
|
||||
Home Page
|
||||
<div style="background: url(assets/nfc_revamp.png) no-repeat center top; background-size: 282px 90px; width: 100%; height: 120px; display: flex;">
|
||||
<span style="align-self: flex-end; width: 100%; text-align: center; color: #009900; font-weight: bold; font-size: 14pt;">Using Technology to make life easier</span>
|
||||
</div>
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
title: Supported Markdown Syntax
|
||||
tags:
|
||||
- Development
|
||||
- Markdown
|
||||
- Website
|
||||
- mkdocs
|
||||
---
|
||||
|
||||
# Supported Markdown Syntax
|
||||
|
||||
!!! Notice
|
||||
This page is still being constructed
|
||||
|
||||
_This website uses markdown documents to create the pages, please see the [reference guide](https://squidfunk.github.io/mkdocs-material/reference/) for further items that can be used._
|
0
pages/projects/ansible/collection/firewall/index.md
Normal file
9
pages/projects/ansible/collection/index.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
title: Ansible Collections
|
||||
description: No Fuss Computings Ansible Collections
|
||||
date: 2024-02-21
|
||||
template: project.html
|
||||
about: https://gitlab.com/nofusscomputing/projects/ansible
|
||||
---
|
||||
|
||||
This section of the website contains Ansible Collection projects and the details of how to use said projects.
|
0
pages/projects/ansible/collection/netbox/index.md
Normal file
510
pages/projects/ansible/index.md
Normal file
@ -0,0 +1,510 @@
|
||||
---
|
||||
title: Ansible Projects
|
||||
description: No Fuss Computings Ansible Projects
|
||||
date: 2023-06-01
|
||||
template: project.html
|
||||
about: https://gitlab.com/nofusscomputing/projects/ansible
|
||||
---
|
||||
|
||||
This section of the website contains Ansible projects and the details of how to use said projects. Across All of our Ansible projects we standardize as much as possible.
|
||||
|
||||
Any playbooks and roles we create are designed with the below ansible setup in mind. Whilst there are many ways ~~to skin a cat~~ setup ansible, If you deviate from below you will be required to test to ensure that if using our playbooks/roles, that they work as intended. If you find that there is a better way of setting up Ansible, raise an issue with your proposal and we'll discuss.
|
||||
|
||||
- [No Fuss Computing playbooks](playbooks/index.md)
|
||||
|
||||
- [No Fuss Computing roles](roles/index.md)
|
||||
|
||||
|
||||
## Inventory Setup
|
||||
|
||||
The Inventory should be setup under an SCM, git in this case; So that a version history is maintained. This also fosters a full audit trail as part of the complete host lifecycle. Idealy the Inventory along with directories `files` and `templates.` should be contained in it's own git repository. Using this method provides that the git history only pertain to the inventory alone, and therefore any install/configuration of a host.
|
||||
|
||||
!!! tip
|
||||
If you must include `playbooks` and `roles` wihin your inventory repository it's a good idea that these still be their own repositories with them added to the inventory repository as a git sub-module.
|
||||
|
||||
Ansible inventory directory structure.
|
||||
|
||||
``` bash
|
||||
.
|
||||
├── ansible.cfg
|
||||
├── files
|
||||
│ ├── all
|
||||
│ │ ├──
|
||||
│ │ ├──
|
||||
│ ├── node1
|
||||
│ │ ├──
|
||||
│ │ ├──
|
||||
│ ├── k3s-prod
|
||||
│ │ ├── Ingress-manifest-AWX.yaml
|
||||
│ │ └── deployment-manifest-test_web_server.yaml
|
||||
│ ├── k3s-testing
|
||||
│ └── deployment-manifest-test_web_server.yaml
|
||||
|
|
||||
├── .inventory_root
|
||||
│
|
||||
├── inventory
|
||||
│ ├── development
|
||||
│ │ ├── group_vars
|
||||
│ │ │ ├── all.yaml
|
||||
│ │ │ ├── debian.yaml
|
||||
│ │ ├── hosts.yaml
|
||||
│ │ └── host_vars
|
||||
│ │ ├── laptop2.yaml
|
||||
│ │ ├── node1.yaml
|
||||
│ │ ├── node2.yaml
|
||||
│ │ ├── node3.yaml
|
||||
│ │ ├── node4.yaml
|
||||
│ │ └── node5.yaml
|
||||
│ └── production
|
||||
│ ├── group_vars
|
||||
│ │ ├── all
|
||||
│ │ │ ├── main.yaml
|
||||
│ │ │ ├── vault.yaml
|
||||
│ │ │ └── versions_software.yaml
|
||||
│ │ ├── awx.yaml
|
||||
│ ├── hosts.yaml
|
||||
│ └── host_vars
|
||||
│ ├── node1.yaml
|
||||
│ ├── k3s-prod
|
||||
│ │ ├── backup.yaml
|
||||
│ │ ├── kubernetes.yaml
|
||||
│ │ ├── main.yaml
|
||||
│ │ └── vault.yaml
|
||||
│ ├── k3s-testing
|
||||
│ ├── main.yaml
|
||||
│ └── vault.yaml
|
||||
├── playbooks
|
||||
│ ├── all.yaml
|
||||
├── README.md
|
||||
└── templates
|
||||
├── hosts
|
||||
│ └── k3s-prod
|
||||
│ └── HelmChart-manifest-NginX-ingress.yaml
|
||||
│
|
||||
└── groups
|
||||
```
|
||||
|
||||
| name | Type | Description |
|
||||
|:---|:---:|:---|
|
||||
| ansible.cfg | _file_ | Ansible configuration file applicable to this inventory |
|
||||
| files | _directory_ | Contain files that a host may require. Playbook task iterates over by hostname and group name. Sub-directories for hostname / group-name |
|
||||
| .inventory_root | _file_ | This file is used by `nfc_common` role to determin the root directory of the inventory. |
|
||||
| inventory | _directory_ | Ansible inventory. If multiple inventories exist can use sub folders. |
|
||||
| playbooks | _directory_ | Should be a git submodule. _This keeps inventory and playbooks SCM related to each only._ |
|
||||
| README.md | _file_ | Inventory readme with applicable info. |
|
||||
| templates | _directory_ | This directory is the same as the `files` directory except contains jinja templates. |
|
||||
|
||||
|
||||
### Inventory
|
||||
|
||||
Naming of host inventory files is to use the hostname portion of the FQDN only. i.e. for a host with a FQDN of `myhostname.domain.tld` it's `inventory_hostname` would be `myhostname`. This requirement is a must as many parts of our roles and playbooks depend upon this value matching the DNS system.
|
||||
|
||||
|
||||
#### hosts file
|
||||
|
||||
The hosts file `host.yaml` contains all hosts and by which group they are part of.
|
||||
|
||||
|
||||
### Variable Files
|
||||
|
||||
Preference for variable files is that there is one file per subject. i.e. for the variables for a keycloak deployment, all be in one variable file, and under a directory matching the host/group name.
|
||||
|
||||
|
||||
### Playbooks
|
||||
|
||||
For playbook usage in AWX / Ansible Automation platform, the following changes are required to be made to **all** playbooks:
|
||||
|
||||
- variable `nfc_pb_host` is used for a template survey variable for a host selector for limiting hosts when running a play.
|
||||
|
||||
Example implementaion
|
||||
``` yaml
|
||||
- name: Desktops and Sub-groups
|
||||
hosts: |-
|
||||
{%- if
|
||||
nfc_pb_host is defined
|
||||
and
|
||||
nfc_pb_host in groups.desktops
|
||||
-%}
|
||||
{{ nfc_pb_host }}
|
||||
{%- else -%}
|
||||
{{ groups.desktops }}
|
||||
{%- endif %}
|
||||
```
|
||||
|
||||
!!! warning "Important"
|
||||
The building of the variable is dynamic and must check if the host is part of the group the playbook is for. this ensures that the playbook will only ever run for a host that is part of that group.
|
||||
|
||||
- variable `nfc_pb_kubernetes_cluster_name` is used for a template survey variable for the dynamic building of the cluster group name.
|
||||
|
||||
Example implementaion
|
||||
``` yaml
|
||||
- name: Kubernetes Group and sub-groups
|
||||
hosts: |-
|
||||
{%- if
|
||||
nfc_pb_host is defined
|
||||
and
|
||||
nfc_pb_host in groups.kubernetes
|
||||
-%}
|
||||
{{ nfc_pb_host }}
|
||||
{%- elseif nfc_pb_kubernetes_cluster_name is defined -%}
|
||||
kubernetes_cluster_{{ nfc_pb_kubernetes_cluster_name }}
|
||||
{%- else -%}
|
||||
{{ groups.kubernetes }}
|
||||
{%- endif %}
|
||||
```
|
||||
|
||||
### Templates
|
||||
|
||||
Templates directory contains only two sub-deirectories `groups` and `hosts` under each of these folders are folders by group/host name that contain template files. Preferernece is leaning toards not using the `.j2` extension as the IDE may loose functionality by using.
|
||||
|
||||
Naming of template files is in format `{item-type}-{what-uses}-{friendly name that uses underscores not hyphon}.{file_extension}`
|
||||
|
||||
| Item Type | what uses | Notes
|
||||
|:---|:---:|:---|
|
||||
| config | bind | Configuration file for bind dns server |
|
||||
| dnszone | bind | a bind server DNS zone |
|
||||
| `{kubernetes kind}` | manifest | A kubernetes manifest |
|
||||
|
||||
|
||||
#### Feature gates
|
||||
|
||||
Templates when added to the group folder should be setup with a feature gate. This eanbles simple yaml to be defined to allow the template to deploy.
|
||||
|
||||
example of yaml declaration that host/group would read.
|
||||
``` yaml
|
||||
feature_gates:
|
||||
is_prime: false
|
||||
monitoring: true
|
||||
operator_awx: true
|
||||
operator_grafana: true
|
||||
operator_prometheus: true
|
||||
postgres_cluster: true
|
||||
rook_ceph: true
|
||||
```
|
||||
|
||||
Seting a feature gate on a template is as simple as enclosing the entire contents of the file with a jinja if statement. i.e. `{% if path.feature_gates.monitoring | default(false) | bool %}the content here{% endif %}`
|
||||
|
||||
|
||||
## Playbooks
|
||||
|
||||
Playbooks are used for grouping of hosts and/or groups for a task or set of tasks that are required to be run. All playbooks must return artifacts that exist to serve the purpose of having information on the play that can be used in further automations.
|
||||
|
||||
|
||||
### Artifacts
|
||||
|
||||
The artificates returned are set using the `ansible.builtin.set_stats` module. Prior to setting these facts with the `stats` module they must be set as facts first using the `ansible.builtin.set_fact` module. the latter enables passing of the artifacts via cli and `stats` from within AWX / Ansible Automation Platform.
|
||||
|
||||
!!! tip
|
||||
When setting the artifacts, ensure `per_host=false` is set so that artifacts work within AWX / Ansible Automation Platform.
|
||||
|
||||
Common artifacts structure. **ALL** playbooks must set these variables.
|
||||
|
||||
``` yaml
|
||||
# 'nfc_automation', dict. Global Variable, This is set from within the first playbook
|
||||
# ran and updated as required with the end time updated by the last playbook.
|
||||
nfc_automation:
|
||||
error: 0 # Boolean, 0=no Error, 1=Error occured
|
||||
time:
|
||||
start: "{{ '%Y-%m-%dT%H:%M:%S %z' | strftime }}" # String of date time, set at time of setting 'nfc_automation'
|
||||
end: 0 # String of date time, set when play finished, and updated by subsequent plays
|
||||
# Determin end time of play or duration of play when used with start time, even on error.
|
||||
|
||||
# 'nfc_task', list. every playbook creates its own task dict to add to this list.
|
||||
nfc_task:
|
||||
- name: "glpi"
|
||||
start: "{{ '%Y-%m-%dT%H:%M:%S %z' | strftime }}"
|
||||
tags: "{{ ansible_run_tags }}"
|
||||
|
||||
```
|
||||
|
||||
The above must be set from within every playbook regardless of what else is in the playbooks.
|
||||
|
||||
example playbook to set artifacts and variables
|
||||
|
||||
``` yaml
|
||||
---
|
||||
|
||||
#
|
||||
# Playbook Template
|
||||
#
|
||||
# This playbook template is the base template for All of our playbooks.
|
||||
#
|
||||
# No Fuss Computing <https://nofusscomputing.gitlab.io/projects/ansible/ansible_playbooks/projects/ansible/>
|
||||
#
|
||||
# Requirements:
|
||||
# - ansible >= 2.8
|
||||
#
|
||||
|
||||
- name: Playbook Template
|
||||
hosts: localhost
|
||||
become: false
|
||||
|
||||
|
||||
pre_tasks:
|
||||
|
||||
|
||||
# Play and task set time
|
||||
- name: Set Start Time
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task_starttime: "{{ ('%Y-%m-%dT%H:%M:%S %z' | strftime) | string }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Setup dictionary 'nfc_automation'
|
||||
- name: Set Automation Facts
|
||||
ansible.builtin.set_fact:
|
||||
nfc_automation: {
|
||||
"time": {
|
||||
"start": "{{ nfc_task_starttime | string }}",
|
||||
"end": 0
|
||||
}
|
||||
}
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
when: nfc_automation is not defined
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Setup dictionary 'nfc_task'
|
||||
- name: Set Automation Facts
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task: {
|
||||
"name": "{{ ansible_play_name | lower | string }}",
|
||||
"error": 0,
|
||||
"roles": "{{ ansible_play_role_names | string }}",
|
||||
"skip_tags": "{{ ansible_skip_tags | list }}",
|
||||
"start": "{{ nfc_task_starttime | string }}",
|
||||
"tags": "{{ ansible_run_tags | list }}"
|
||||
}
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
- name: Block - pre_tasks
|
||||
block:
|
||||
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Your tasks here
|
||||
#
|
||||
########################################################################
|
||||
|
||||
|
||||
rescue:
|
||||
|
||||
# there was an error, set error object
|
||||
- name: Set error fact
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task: "{{ nfc_task | combine({
|
||||
'error': 1
|
||||
}) }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
always:
|
||||
|
||||
|
||||
# Check if error occured and fail task
|
||||
- name: Error Check
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- nfc_task.error | int == 0
|
||||
msg: Error occured, Fail the play run
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Don't use the 'roles' section.
|
||||
roles: []
|
||||
# if the included role(s) do not contain a rescue block, the playbook may stop
|
||||
# executing in this section (roles) with the post_tasks not running. This will
|
||||
# cause the artifacts to be incomplete. It's recommended to include your roles
|
||||
# in section(s) 'pre_tasks', 'tasks' or 'post_tasks' and from within a block with
|
||||
# rescue so that the playbook can complete and ensure that all artifacts are set.
|
||||
|
||||
|
||||
tasks:
|
||||
|
||||
|
||||
- name: Block - tasks
|
||||
block:
|
||||
|
||||
# Check for error and fail play on error
|
||||
- name: Error Check
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- nfc_task.error | int == 0
|
||||
msg: Error eccured, follow error path to fail play
|
||||
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Your tasks here
|
||||
#
|
||||
########################################################################
|
||||
|
||||
rescue:
|
||||
|
||||
|
||||
# there was an error, set error object
|
||||
- name: Set error fact
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task: "{{ nfc_task | combine({
|
||||
'error': 1
|
||||
}) }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
always:
|
||||
|
||||
|
||||
# Check if error occured and fail task
|
||||
- name: Error Check
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- nfc_task.error | int == 0
|
||||
msg: Error occured, Fail the play run
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
post_tasks:
|
||||
|
||||
- name: Tasks post_task
|
||||
block:
|
||||
|
||||
|
||||
# Check for error and fail play on error
|
||||
- name: Error Check
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- nfc_task.error | int == 0
|
||||
msg: Error occured, follow error path to fail play
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Your tasks here
|
||||
#
|
||||
########################################################################
|
||||
|
||||
|
||||
rescue:
|
||||
|
||||
|
||||
# there was an error, set error object
|
||||
- name: Set error fact
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task: "{{ nfc_task | combine({
|
||||
'error': 1
|
||||
}) }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
always:
|
||||
|
||||
|
||||
# Task and automation end time.
|
||||
- name: Fetch End time
|
||||
ansible.builtin.set_fact:
|
||||
nfc_task_endtime: "{{ '%Y-%m-%dT%H:%M:%S %z' | strftime }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Set task end time
|
||||
- name: Set task Facts
|
||||
ansible.builtin.set_fact:
|
||||
nfc_tasks: "{{ nfc_tasks | default([]) + [ nfc_task | combine({
|
||||
'end': nfc_task_endtime | string
|
||||
}) ] }}"
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Set Automation end time.
|
||||
# every playbook must set this variable so that the end time
|
||||
# is equal to the fail time or the end of a group of playbooks.
|
||||
- name: Set automation end time
|
||||
ansible.builtin.set_fact:
|
||||
nfc_automation: "{{ nfc_automation | combine({
|
||||
'time': nfc_automation.time | combine({
|
||||
'end': nfc_task_endtime | string
|
||||
})
|
||||
}) }}"
|
||||
nfc_task_endtime: null
|
||||
no_log: "{{ nfc_pb_no_log_setup_facts | default(true) | bool }}"
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Set the artifacts as a fact for subsequent playbook useage
|
||||
# Note: variable 'per_host' must be 'false' so that the artifacts
|
||||
# work within AWX / Ansible Automation Platform.
|
||||
- name: Create Automation Artifact
|
||||
ansible.builtin.set_stats:
|
||||
data:
|
||||
nfc_automation: "{{ nfc_automation }}"
|
||||
nfc_tasks: "{{ nfc_tasks }}"
|
||||
per_host: false
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
# Final error check to fail the entire play run on error
|
||||
- name: Error Check
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- nfc_task.error | int == 0
|
||||
msg: Error occured, Fail the play run
|
||||
tags:
|
||||
- always
|
||||
|
||||
|
||||
vars: {}
|
||||
|
||||
|
||||
```
|
||||
|
||||
The above template playbook is designed for post automation should it be required to run. `nfc_automation` is for the entire play/workflow with `nfc_tasks` being a list of `nfc_task` dictionary from each playbook. `nfc_task` is there for you to add your own artifacts to and without any additional effort from you, will be added to the global artifacts.
|
||||
|
||||
|
||||
### Playbook Variables
|
||||
|
||||
Within any playbook that we create any variable that is set within the playbook is to be prefixed with `nfc_pb_`. Currently we have the following variables that are reserved and set as part of how we structure our playbooks.
|
||||
|
||||
- `nfc_automation` Details on the play/run. see artifacts above for details.
|
||||
|
||||
- `nfc_pb_no_log_setup_facts` Boolean value used as a feature gate on whether to log `set_fact` tasks that are for setting up the play. i.e. artifacts. setting this value to `false` will caused the tasks to be logged.
|
||||
|
||||
- `nfc_tasks` List of all `nfc_task` dictionaries of the play. see artifacts above for details.
|
||||
|
||||
|
||||
## AWX / Tower / Automation Platform
|
||||
|
||||
|
||||
### Prime host
|
||||
|
||||
If you use a system like AWX / Tower / Automation Platform the inventory should be designed in a way that you have a prime host. The prime host is a single host that once it exists, it's capable of rebuilding all of the infrastructure within the inventory. Using the prime host method, you only require the variable secrets (vault encrypted) of the prime host and only those pertinent to rebuilding the prime host. This should only be the backup decryption key (vault encrypted).
|
||||
|
||||
!!! warning Warning
|
||||
Prime Host requires that the backup decryption key be updated within the inventory whenever it changes. There is also a requirement that the vault encryption key be available and not stored on infrastructure that without or that infrastructure not existing you cant access the vault key. i.e. password manager.
|
||||
|
||||
|
||||
## ToDo
|
||||
|
||||
- Explain usage of file `.inventory_root` which must exist as nfc_common _(todo: see kubernetes playbook/master)_ _may no longer be required a project structure is known along with using variable `playbook_dir`_
|
0
pages/projects/ansible/playbooks/index.md
Normal file
0
pages/projects/ansible/roles/ansible_test/index.md
Normal file
0
pages/projects/ansible/roles/common/index.md
Normal file
0
pages/projects/ansible/roles/homeassistant/index.md
Normal file
77
pages/projects/ansible/roles/index.md
Normal file
@ -0,0 +1,77 @@
|
||||
---
|
||||
title: Ansible Roles
|
||||
description: No Fuss Computings Ansible Roles Projects
|
||||
date: 2023-11-10
|
||||
template: project.html
|
||||
about: https://gitlab.com/nofusscomputing/projects/ansible
|
||||
---
|
||||
|
||||
This section of the website contains Ansible roles and the details of how to use said projects. Across All of our Ansible roles we standardize as much as possible. This document will contain the details of said standardization.
|
||||
|
||||
|
||||
Our roles:
|
||||
|
||||
- Common
|
||||
|
||||
- Docker Management
|
||||
|
||||
- Git Configuration
|
||||
|
||||
- [Home Assistant](homeassistant/index.md)
|
||||
|
||||
- SSH
|
||||
|
||||
|
||||
## Role Requirements
|
||||
|
||||
This section covers what by default, be part of all ansible roles we create.
|
||||
|
||||
|
||||
=== "ansible.builtin.set_stats"
|
||||
|
||||
As part of the role, setting of ansible stats with `ansible.builtin.set_stats` must be provided. This enables a single variable that can be used after the play has completed. Usage of a role that includes the usage of `ansible.builtin.set_stats` within AWX enables population of the artifacts and passing of the stats between workflows/job templates.
|
||||
|
||||
|
||||
```yaml
|
||||
- name: Stat Values
|
||||
ansible.builtin.set_fact:
|
||||
stat_values: |
|
||||
{
|
||||
"host_{{ inventory_hostname | replace('.', '_') | replace('-', '_') }}": {
|
||||
"roles": {
|
||||
role_name: {
|
||||
"enabled": true,
|
||||
"installed": false,
|
||||
"empty_list": [],
|
||||
"empty_dict": {}
|
||||
}
|
||||
},
|
||||
playbooks: {
|
||||
"{{ inventory_hostname }}": "here"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- name: Create Final Stats not Per Host
|
||||
ansible.builtin.set_stats:
|
||||
data: "{{ stat_values | from_yaml }}"
|
||||
per_host: false
|
||||
aggregate: true
|
||||
|
||||
- name: Clear Stat Values
|
||||
ansible.builtin.set_fact:
|
||||
stat_values: null
|
||||
```
|
||||
|
||||
- `Stat Values` is only required if the variable names require expansion. _Can be omitted if no variable expansion required for variable name._
|
||||
|
||||
- `Create Final Stats not Per Host` sets the artifacts/stats.
|
||||
|
||||
- `Clear Stat Values` remove the stat fact. only required if using `Stat Values`.
|
||||
|
||||
!!! tip AWX Gotcha
|
||||
AWX requires that `per_host` be set to `false` when setting stats for artifacts to work. Hence the structure of the artifacts above use hostname prefixed with `host_`. This method enables programatic checking if by host due to the presence of `host_` in the dictionary name.
|
||||
|
||||
=== "Variable naming"
|
||||
|
||||
- All Role Variables to be prefixed with the role name.
|
0
pages/projects/centurion_erp/index.md
Normal file
@ -1,4 +1,4 @@
|
||||
# Ansible Roles
|
||||
# Docker E-Mail Server
|
||||
|
||||
| :red_circle: This page is a placeholder for the ansible-roles repo's docs. |
|
||||
|:---|
|
0
pages/projects/docker/bind/index.md
Normal file
0
pages/projects/docker/index.md
Normal file
5
pages/projects/glpi/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Docker GLPI
|
||||
|
||||
| :red_circle: This page is a placeholder for the python-gitlab-management repo's docs. |
|
||||
|:---|
|
||||
| _If you can see this page there has been an error, please report the issue on gitlab_ |
|
@ -5,4 +5,5 @@ tags:
|
||||
---
|
||||
# No Fuss Computing Projects
|
||||
|
||||
|
||||
## Our Projects
|
||||
|
5
pages/projects/itil/runbooks/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
# ITIL Runbooks
|
||||
|
||||
| :red_circle: This page is a placeholder for the python-gitlab-management repo's docs. |
|
||||
|:---|
|
||||
| _If you can see this page there has been an error, please report the issue on gitlab_ |
|
5
pages/projects/kubernetes_monitoring/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Docker GLPI
|
||||
|
||||
| :red_circle: This page is a placeholder for the python-gitlab-management repo's docs. |
|
||||
|:---|
|
||||
| _If you can see this page there has been an error, please report the issue on gitlab_ |
|
0
pages/projects/ldap_self_service/index.md
Normal file
@ -7,7 +7,7 @@ Redirect 301 /wiki/public/article/150225_choose_internet_service /articles/2015/
|
||||
Redirect 301 /wiki/syntax /operations/syntax
|
||||
|
||||
|
||||
|
||||
Redirect 301 /wiki/public/help/mdt/* /wiki/info/*
|
||||
Redirect 301 /wiki/public/help/mdt/home /articles/2014/mdt_setup
|
||||
Redirect 301 /wiki/public/help/mdt/applications /articles/2014/mdt_setup
|
||||
|
||||
Redirect 301 /wiki/public/help/mantis/* /wiki/info/*
|
||||
|
@ -70,3 +70,52 @@ a.tags:hover {
|
||||
.mdx-author p > span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.container{
|
||||
width: 100%;
|
||||
}
|
||||
.container .row {
|
||||
width: 95%;
|
||||
margin: 0 auto;
|
||||
height: fit-content;
|
||||
}
|
||||
|
||||
.container .row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.container .column {
|
||||
float: left;
|
||||
width: 50%;
|
||||
padding-top: 30px;
|
||||
|
||||
}
|
||||
|
||||
.container .column .mdx-author {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.container .column h2 {
|
||||
margin: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.container .column ul {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.container .column h3 {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.container .column img {
|
||||
height: 22px;
|
||||
}
|
||||
@media screen and ( max-width: 700px ) {
|
||||
.container .column {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
# Welcome to the Wiki
|
||||
|
||||
## Wiki Sections
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx
|
||||
CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL
|
||||
EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h
|
||||
dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr
|
||||
ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1
|
||||
OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK
|
||||
BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx
|
||||
MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv
|
||||
bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr
|
||||
JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB
|
||||
Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ
|
||||
QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD
|
||||
daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK
|
||||
gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP
|
||||
ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG
|
||||
RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH
|
||||
PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK
|
||||
4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg
|
||||
k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN
|
||||
AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI
|
||||
6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP
|
||||
lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD
|
||||
VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X
|
||||
V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3
|
||||
b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl
|
||||
ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m
|
||||
dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF
|
||||
BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v
|
||||
Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60
|
||||
BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX
|
||||
zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/
|
||||
UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa
|
||||
COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0
|
||||
ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC
|
||||
2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj
|
||||
DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj
|
||||
HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd
|
||||
QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f
|
||||
gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4=
|
||||
-----END CERTIFICATE-----
|
@ -1,22 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIDjzCCAXcCAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD
|
||||
VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEOMAwGA1UECxMFRWFy
|
||||
dGgxFTATBgNVBAMMDEVhcnRoX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50ZXJu
|
||||
YWxAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0
|
||||
aWZpY2F0ZRcNMTcwOTAzMDE0MjAwWhcNMTcxMDAzMDE0MjAwWjCBhzBBAggigeQN
|
||||
UjXbIRcNMTYwNzIzMDMwMDQ3WjAmMBgGA1UdGAQRGA8yMDE2MDcyMzAzMDAwMFow
|
||||
CgYDVR0VBAMKAQQwQgIJAM2h1w1EQ5qtFw0xNjA3MjMwNTU2MjRaMCYwGAYDVR0Y
|
||||
BBEYDzIwMTYwNzIzMDU1NjAwWjAKBgNVHRUEAwoBBaAOMAwwCgYDVR0UBAMCAQUw
|
||||
DQYJKoZIhvcNAQELBQADggIBABLLdl2PjX5MlxZ6fhkmKsU47xlpWdG4UUKc2Mcb
|
||||
ioi8HJKH4RgLOhVBEmtV91RsndCNf3TMpAzDH5zySCNhIZk5ZT1m3yk2TEMse34a
|
||||
qTWzfEpCNGPbhDTz2Eu553LZKg8Vem0OEKHjKp0i0vOXG7TN/9SHBs5pOUDYX3Z/
|
||||
iK6Xt6wQ6Ajl4x8mfArivwmVVK0ZIQJpHSSHhv29HzzJpgu8ZuI16ooomGrnEnlF
|
||||
Sv3tNo0UleARmzKd+dlTsSfPq/gmcX1J3bgTB2QqQTyhQRewn5TC74pJ5CC3wGeW
|
||||
wzsI/xovSKWwgrWSKTfaKwAhnamJQ8Ya96zEgPnc+k4UJ0IMNdY47/3OlQIvtCmG
|
||||
D16D6j4T9M6TbdBKSLdNTPZXXU1jXTc5qIUccBAZqJSxOHqp15JTx5x6mVqhx6AT
|
||||
dmL+ydm8UjjG/1kc//qjuXkDc7WoklTPd6vGawBsezoS8T4+okrFIG9domcFVKrL
|
||||
D+JyMe2ZkJpRferxdVOSh773M/mNBI430aL3TKY6oPhvwx7gmpCPX3trUv+gi/Om
|
||||
9f7mHZFk/qUs3pomAffaZzeX9g3+sktMY2l3cTYqsAOZGrUDbFjks+LGbCmHhnVm
|
||||
KTl7QRbEnte2Bpz4GeN0XAf9HntA2A0yfoOWgsH6FEkh8H839fBAErvzpqD0qCDV
|
||||
xY2/
|
||||
-----END X509 CRL-----
|
@ -1,26 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIEWTCCAkECAQEwDQYJKoZIhvcNAQELBQAwgaoxCzAJBgNVBAYTAkFVMQswCQYD
|
||||
VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTkZD
|
||||
MRQwEgYDVQQDDAtORkNfUm9vdF9DQTErMCkGCSqGSIb3DQEJARYcaGVscGRlc2tA
|
||||
bm9mdXNzY29tcHV0aW5nLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0
|
||||
aWZpY2F0ZRcNMTgwODA1MDEyNzAwWhcNMTgxMDA0MDEyNzAwWjCCAVAwQQIIDa1c
|
||||
UsioJyoXDTE1MTAzMTA0MzkxN1owJjAYBgNVHRgEERgPMjAxNTEwMzEwNDM5MDBa
|
||||
MAoGA1UdFQQDCgEEMEECCBIR9spKIlyLFw0xNjAxMDkwMDM1NTNaMCYwGAYDVR0Y
|
||||
BBEYDzIwMTYwMTA5MDAzNTAwWjAKBgNVHRUEAwoBBTBBAghovaIOdTUkJhcNMTUx
|
||||
MDMxMDQ0NTM0WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0NDUwMFowCgYDVR0VBAMK
|
||||
AQQwQQIIdCmC/xpJTM0XDTE1MTAzMTA0NDMxOFowJjAYBgNVHRgEERgPMjAxNTEw
|
||||
MzEwNDQzMDBaMAoGA1UdFQQDCgEEMEICCQD9Keh+217BPhcNMTUxMDMxMDQzMTE1
|
||||
WjAmMBgGA1UdGAQRGA8yMDE1MTAzMTA0MzEwMFowCgYDVR0VBAMKAQWgDjAMMAoG
|
||||
A1UdFAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAjjuEFC9NS8IatH6V+bXVj+NuA
|
||||
Y6BkDT/u4uOvKecLZjM8OuSAlj+yVPEp5d0QKFGEN/1fmkLyqRK/0vhoLNufwnzL
|
||||
eM14l/aZpTudl8dVf2EeJa2i/whUP9AOf8QH4UQxtWzbmPzcrZbfJdrRe2L8g8xl
|
||||
yyMi/htHszutqIP1ZuwhYFGFHJZNiUHwm/LV8Ht0ZnI05YrqsMY9VFVXOT46qbMH
|
||||
CaL/jx0xd4+nrXcbTSD1aKlagkY/7nHh5JIyK5f0nWiZ6uIc1ZLrXjgvT3mG9oWC
|
||||
fImXfeK/dD0Q8s67Tmcb8EyhuYPabb/h/Vw6IpUAGg5KxjW+fLfpeqS5sivDzp65
|
||||
lkgsYv4PCe7C2lW/sapBVx47ISXIaNLNR0gTA8dE5mTbHIIwaa4rDL3jvtmPkNa5
|
||||
qv/0HXH0oRYKjEQLFgCI77ZNU6bCXPmpCxiD+2s3+fEHxRHYjVn7Tyk0Qdeqrllu
|
||||
8qKA18tP5icF0PXv7sVouXdHCBK4nLfgzHfaLr2zhVfO154evKzLDS1GmDcytCl+
|
||||
MFhA1RM94xfwOxPwiHJ/e4MpdJ3BE7lxRiyVoBQiV0xwP0clhoCadBMvvDvGnkGc
|
||||
AZ7UQDK5YhXh06Pv+ByX3xxE9Vp7Bo/teFxIwYPVH2BmPAowVoMzCLkj36yv1keC
|
||||
laDVPqeP/31+efeFsA==
|
||||
-----END X509 CRL-----
|
@ -1,22 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIDtzCCAZ8CAQEwDQYJKoZIhvcNAQELBQAwgdkxCzAJBgNVBAYTAkFVMRYwFAYD
|
||||
VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD
|
||||
VQQKEw1OZXR3b3JrZWQgV2ViMRswGQYDVQQLExJOV1cgUGVnYXN1cyBWUE4gQ0Ex
|
||||
FzAVBgNVBAMTDlBlZ2FzdXMgVlBOIENBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5h
|
||||
bEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRp
|
||||
ZmljYXRlFw0xNTEwMjUwMDAwMDBaFw0xNTExMjMyMzU5NTlaMIGAMDoCAQoXDTE1
|
||||
MTAyNTAyMDAxMVowJjAYBgNVHRgEERgPMjAxNTEwMjUwMjAwMDBaMAoGA1UdFQQD
|
||||
CgEJMEICCQC1TE15xf9+yxcNMTUxMDI1MDIwMDE4WjAmMBgGA1UdGAQRGA8yMDE1
|
||||
MTAyNTAyMDAwMFowCgYDVR0VBAMKAQmgDjAMMAoGA1UdFAQDAgEBMA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQA7ZZfRgAi2b38IqxXLsINcyczWQ8/y8SKVv4xlu0SRkfWBVYF5
|
||||
pqD5lIjwZNKIqIpUzq4AYqV3u7GnkPfQ7WDIMveZZwp6DL2Jc0cjz1gNsU0ezyxt
|
||||
V0JQLppUbH/x3xBR/+NszvZaCVYFOyrlUFSYO06CqXWRgpnJuhk0vJQygU6C9xcO
|
||||
OzM7JlgI0NT/O3IDPC4gh/TPFdKnKVfcNpFimwJ91w1eMvTkpys2BvrKk0/bAuQz
|
||||
PVtCx45kqCyP8WiMb0PZmQKAOdIREHb4sGS2dPocBARYxwFYDwgQ8g3BqnHCLM87
|
||||
Og1+b3QACi2PZ4e3yV8pqJhXnix97N036WkVV11J9VLdOUIPzkXsDFMmkYh4z9Vg
|
||||
GOA5lzRTXYJVk7E7t4BDT7cu6y8ugW2BsLMlh0XrGTDwNhzJ8GBYWAkG2t+H+N/m
|
||||
hLsBqt0tn/8XQvkize7qauado1CaouWMHWwA84ZX811vXW29m3VmYxQl5Q3oJWul
|
||||
Rp1M9xISRVzpRx6GuzVPzN9LEfI4ZvSvHLUva9i6A08hj5aUYDvgtXmyaC+PaxBs
|
||||
SfX06CeylzOf4hm3hubcGu+5Ynke7ZtpECSGxr5I/72oC6zukkiv9i6FXC1oGxuo
|
||||
pBBjuoeG2MmO8HdDKE0T5XqkqmQv7Um4clDYRInMCACSthtW8U0ry7Wamw==
|
||||
-----END X509 CRL-----
|
@ -1,29 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIE5zCCAs8CAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD
|
||||
VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX
|
||||
MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u
|
||||
bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl
|
||||
YiBDZXJ0aWZpY2F0ZRcNMTgwMjA1MDQ1OTAwWhcNMjAwODA1MDQ1OTAwWjCCAdgw
|
||||
PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0
|
||||
NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG
|
||||
A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG
|
||||
Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV
|
||||
HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP
|
||||
MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTcxMjIy
|
||||
MDE0OTQ2WjAmMBgGA1UdGAQRGA8yMDE3MTIyMjAxNDkwMFowCgYDVR0VBAMKAQQw
|
||||
QgIJAMXtJgEvbEgKFw0xODAxMDUwNTA3MzlaMCYwGAYDVR0YBBEYDzIwMTgwMTA1
|
||||
MDUwNzAwWjAKBgNVHRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlow
|
||||
JjAYBgNVHRgEERgPMjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNV
|
||||
HRQEAwIBCzANBgkqhkiG9w0BAQsFAAOCAgEAJbVR23uwFuOi4fCQHn/0gLm24PjI
|
||||
xkXeim/Vep9vc3LCH1+r73O3Pf5kWKBmklul9MpywDAyPiV5wU6k2x8EMSKLEe+n
|
||||
IRE+32JKPSGx2nluSn2IUonQKF+ZtG0hW367+D3HShdinzNuUbqfGGlAjZwmgKem
|
||||
zydh7VSkvBxQersvXknPvoIjbTOfw0l10icE4WwbY5PtHdz+SYUH86UrVHPH5MG3
|
||||
tJEMnmZfbyGAs6vYm/NDD4cF4tIF4ziId7nmPBUf7dnFlw75xRUjyem397AnUOez
|
||||
zS+K/j9u3V/um8jfaKkdXFfT8DOaiFv9YBsdwOTsgDFgKTalgWHbibOH2wk/ZrM6
|
||||
k+hfpgoE5/CtZyKKD/s5SuYcBYEfYY1M2g/QzU7RpScjPz+yvIBoOhitk+urHBBq
|
||||
Cx3iM9HW1vNq8trJomeFkqGFSiN+Uv4hq51BThljLxaMoga2tE4hdeO3kIr2Ntv/
|
||||
acoTKbljxX2YxCvkZXombmX2wecORO3uS+TNKolgzU7FE8vRI6E7yC+jjdDpksYL
|
||||
wVL7pa0kL2YtagpmOLFCeSlQ/iWlQMUSqBLbpyEWX/JvgVghUWcwn0n65UEr+zyQ
|
||||
LzhaXpc2MNVRoskN1ONSCCJW34x2IBzG6+Pk/dKKKAna4340zG5txyKKl5jLkh5/
|
||||
YJP4oXLy576q/30=
|
||||
-----END X509 CRL-----
|
@ -1,29 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIFDDCCAvQCAQEwDQYJKoZIhvcNAQEFBQAwgdYxCzAJBgNVBAYTAkFVMRYwFAYD
|
||||
VQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYD
|
||||
VQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYDVQQLEwpOV1cgVlBOIENBMRMwEQYDVQQD
|
||||
EwpOV1cgVlBOIENBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBu
|
||||
ZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmlj
|
||||
YXRlFw0xNTA2MDUxMDU3MDBaFw0xNTA3MDUxMDU3MDBaMIIB1zBAAghGwdK73FPg
|
||||
2hcNMTMxMjIzMDgzMjI5WjAlMAkGA1UdFQQCCgAwGAYDVR0YBBEYDzIwMTQwMjAx
|
||||
MjM1NTUwWjBAAghL9H8/00JjmxcNMTMxMjI0MDA0NjQ5WjAlMAkGA1UdFQQCCgAw
|
||||
GAYDVR0YBBEYDzIwMTQwMjAxMjM1NTM1WjBCAgkAgqnPP+Wf1YkXDTE1MDIwNzAx
|
||||
MDgyNlowJjAKBgNVHRUEAwoBBDAYBgNVHRgEERgPMjAxNTAyMDcwMTA4MDBaMEIC
|
||||
CQCF4C80Bu+WxhcNMTUwMjA3MDEwODAyWjAmMAoGA1UdFQQDCgEEMBgGA1UdGAQR
|
||||
GA8yMDE1MDIwNzAxMDcwMFowQgIJAIdWbI4ErRreFw0xNTAyMDcwMTA3MDdaMCYw
|
||||
CgYDVR0VBAMKAQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWjBBAgkAtUQpLTey
|
||||
hp8XDTEzMTIyNDAwNDUwNlowJTAJBgNVHRUEAgoAMBgGA1UdGAQRGA8yMDE0MDIw
|
||||
MTIzNTU1MFowQgIJAMpeaX2ilH7BFw0xNTAyMDcwMTA2NTNaMCYwCgYDVR0VBAMK
|
||||
AQQwGAYDVR0YBBEYDzIwMTUwMjA3MDEwNjAwWqAOMAwwCgYDVR0UBAMCAQ8wDQYJ
|
||||
KoZIhvcNAQEFBQADggIBABUTNIxIswUIcEKCDyF4rQFtB9YLKv4jX5JuR3WAdh+k
|
||||
R3cTDeDut34tvN9WMj9ukqXYcBMceqlVSjGEw2S5yCF9GFfZuwkBKoGw+yqX9obz
|
||||
11GM4+mOGeJzPsWLEMhFjcl53OWIVhkcyko6uVPrQ88JlTJWrligBE8CYsIcDpdu
|
||||
9RyPuo2lzvQ0/cS6FkENnVlp0ILFIV9YExdb/ot486XRmk4EjTwqawea58BwY4+k
|
||||
0g9okPIilDzE7nScvBIW3S1WRY2WCRrLccfJ3x0oCPDbVYxseKJ/SPCmar8KvM5A
|
||||
y7hAhOpQ4nZGATYXcvRyA0pPagKafIWpXpoQiu7kMn38Dlmaeqp3qL7sfLUjj/QJ
|
||||
UVovISWkIQx9RTwx8CixCABJnLXYeiiXycsPc4rvcoxNqU9FdDwlK+kfU8tQkCm6
|
||||
QJI4o5vH4s1cVFcjBnhJWRmK3gARKltKkgkGVxFHedZJ3CziwGHPFA0gySZEzPNt
|
||||
jC1g6auCROVTFQKoQ+nxreIF76ia0siWlYCyS022f4mOaBaR9lzSuNUH5YnF3h8u
|
||||
ZO+lwLpGQ6NPocg3kEOHrlQklw4KMx3ZJha7G2nz5DWTMt4jTFGKU0iLabYkU+HR
|
||||
IgKOdOCqWWCdFuXxOlneCIkagWZXWpPXBHMSBw8IPIyp9ts2o8dzGclErBWh96bz
|
||||
-----END X509 CRL-----
|
@ -1,32 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIFmzCCA4MCAQEwDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNVBAYTAkFVMQswCQYD
|
||||
VQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldX
|
||||
MRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24u
|
||||
bG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdl
|
||||
YiBDZXJ0aWZpY2F0ZRcNMTgwODA1MDEyODAwWhcNMTgxMDA0MDEyODAwWjCCAoww
|
||||
PwIGIBUQJxYnFw0xNTEwMjcwNzQ0NTZaMCYwGAYDVR0YBBEYDzIwMTUxMDI3MDc0
|
||||
NDAwWjAKBgNVHRUEAwoBBDBBAghaYikTObwI4BcNMTUxMDI3MDcxNTAwWjAmMBgG
|
||||
A1UdGAQRGA8yMDE1MTAyNzA3MTQwMFowCgYDVR0VBAMKAQQwQgIJAMXtJgEvbEgG
|
||||
Fw0xNzEyMjEyMzQ2NDFaMCYwGAYDVR0YBBEYDzIwMTcxMjIxMjM0NjAwWjAKBgNV
|
||||
HRUEAwoBBDBCAgkAxe0mAS9sSAcXDTE3MTIyMjAwMDUxMVowJjAYBgNVHRgEERgP
|
||||
MjAxNzEyMjIwMDA1MDBaMAoGA1UdFQQDCgEEMEICCQDF7SYBL2xICBcNMTgwNDA0
|
||||
MDExMTExWjAmMBgGA1UdGAQRGA8yMDE4MDQwNDAxMTEwMFowCgYDVR0VBAMKAQQw
|
||||
NgIJAMXtJgEvbEgJFw0xODA0MDMwNzU4MDdaMBowGAYDVR0YBBEYDzIwMTgwNDAz
|
||||
MDc1ODAwWjBCAgkAxe0mAS9sSAoXDTE4MDEwNTA1MDczOVowJjAYBgNVHRgEERgP
|
||||
MjAxODAxMDUwNTA3MDBaMAoGA1UdFQQDCgEEMDYCCQDF7SYBL2xIDRcNMTgwNDA0
|
||||
MDA1ODM4WjAaMBgGA1UdGAQRGA8yMDE4MDQwNDAwNTgwMFowQgIJAMXtJgEvbEgO
|
||||
Fw0xODA0MDQwMTExMDBaMCYwGAYDVR0YBBEYDzIwMTgwNDA0MDExMDAwWjAKBgNV
|
||||
HRUEAwoBBDBCAgkA1bayDE6HOc0XDTE1MTAyNzA3MTAwNlowJjAYBgNVHRgEERgP
|
||||
MjAxNTEwMjcwNzEwMDBaMAoGA1UdFQQDCgEEoA4wDDAKBgNVHRQEAwIBDzANBgkq
|
||||
hkiG9w0BAQsFAAOCAgEAqAPkorhG9ASJ85EebuhVSCQ2FVtceMvbzF7TW9cNcifk
|
||||
pgsfHZOSHWXprmDmDv1KVbjeTIyYUufycyfF4u9g6DMGdH6N8ScV+PItUcyTAy21
|
||||
ZqHxdJxdYtaxcJlkHnrAhOLs4KhwTUAkdivZZUZKnFQHntmZA+hIkvDiVZQ3IP05
|
||||
frf+1UzOZX3MftQLGQtUZ5fM2JHzPwO07eUNjiD3nwcX/N8YcyrxHaZG7aTYUEEq
|
||||
7QIw10ghRrUCZw8TnL5grQYJdmsA8aI152tI+eevjgdECSbt+6uQpnPa/Z0pyRug
|
||||
ahtY0EJUrw/2VPvm4T8aHVTe/E/EkWccyiJFBs9Qe6VOs/uWx572O8q9eOzYOZoY
|
||||
m2YmrDlvqBD5km45JrDfjS1mRRPAHeRyt5JIB9Jf2zFBJUU5SHB+KZP02NvoxEOK
|
||||
/sRPKKZP/54dRhAgCUhAjw9knLjChWlL4RpLn6Vf08saL08Tfh5hbWMsnCGjesyf
|
||||
Cf3aqisHc/5dxCqfKKtn/RjGrXSHsh/y+TtvYP9ssVQdCFc3qvVpxwhex1fms4Mp
|
||||
THCm2JQlZMaMALPgoeaVyTX3K47/oBQaMh7DcN4Eq9j89OpUNHwhXU1bD5CWM2UY
|
||||
BUu5+2wIAj/3Ifuo4JTcOnhCBwuF2sSATiRV7Y3QjgKRmqhuzMBUNRKw3Cc2Z48=
|
||||
-----END X509 CRL-----
|
@ -1,19 +0,0 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIIC/TCB5gIBATANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCQVUxCzAJBgNV
|
||||
BAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMRAwDgYDVQQLEwdQZWdh
|
||||
c3VzMRcwFQYDVQQDDA5QZWdhc3VzX1ZQTl9DQTEoMCYGCSqGSIb3DQEJARYZaW50
|
||||
ZXJuYWxAbmV0d29ya2Vkd2ViLmNvbTEXMBUGA1UEDQwOUGVnYXN1c19WUE5fQ0EX
|
||||
DTE1MTAzMTA1MTEwMFoXDTE1MTEzMDA1MTEwMFqgDjAMMAoGA1UdFAQDAgECMA0G
|
||||
CSqGSIb3DQEBCwUAA4ICAQCxo2KoBQ+1IP+ZuiqG78QhjVRLepmxiHzGUw6gkzIz
|
||||
kkCyNSc/V0ZfdaRtWYZ23A7WjNSvdQuwhKp5Nq8SlCVcH0ymb0nvifT4w7TOQxFf
|
||||
0FpK76hYD1Ozx71/prI9q1QyRjD9yqMmxYObAQphrGJVZ8ljpKUYLOvxg6NMO8Ns
|
||||
ZYLlryLYf0+MdID2WejW9KFgBSg/bi49UHxJw4hGnXx98IAVSbnqYmxejiEjwbLQ
|
||||
5C8cgozEn9RUMSdWzL9d2IUOt9ppKfy7VgOH/2io0IMb28RxD/b3RdCCNNelSKFE
|
||||
DJrSuOwhvP32u71CYN/6GEcg3yHif5d88yKnmPkC/iwr79oLe0dQh0SRsO037sUE
|
||||
G53sA+9N69EtwqwXjPFjruns3ngtJye76gJksceI9JJB9Q5qfShCSqVviX5iCcMU
|
||||
tNv5mYtS6yOIjUgPpvBOSuUPwsiegGE6Zgvz2EMgutaxnDdgbkvO/8gEy154kft0
|
||||
1l8W+/ueUEAZPTifoSMWr8Up6PFKAdCO46XSvWEuQ1NcZeWvq1EioBT1U2M65hB3
|
||||
bKtRFWUkCxQJWxye/eLw+SGGGwVpXy3P7sueUWiXFSmtAbfXuWej9LlMju5FUKXY
|
||||
34K6RlI/GkPhwfWN5SAfYnX3qOF3IUiTAxchCQZ2Z6JR1dIEShHX4Ur4FdW45lXM
|
||||
aw==
|
||||
-----END X509 CRL-----
|
@ -1,44 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy
|
||||
dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+
|
||||
/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg
|
||||
zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe
|
||||
bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd
|
||||
EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk
|
||||
cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG
|
||||
hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N
|
||||
HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG
|
||||
5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY
|
||||
XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j
|
||||
sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m
|
||||
7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww
|
||||
SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0
|
||||
aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
|
||||
CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr
|
||||
PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw
|
||||
kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb
|
||||
rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp
|
||||
q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT
|
||||
x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1
|
||||
ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+
|
||||
qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X
|
||||
dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc
|
||||
xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM
|
||||
f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo
|
||||
Yg==
|
||||
-----END CERTIFICATE-----
|
@ -1,35 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV
|
||||
BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl
|
||||
Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v
|
||||
dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0
|
||||
aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl
|
||||
ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5
|
||||
WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV
|
||||
BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV
|
||||
BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3
|
||||
DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE
|
||||
DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD
|
||||
ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB
|
||||
1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX
|
||||
96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu
|
||||
Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86
|
||||
KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl
|
||||
Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK
|
||||
aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y
|
||||
k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW
|
||||
smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF
|
||||
Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ
|
||||
l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB
|
||||
AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f
|
||||
BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X
|
||||
V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v
|
||||
bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6
|
||||
prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN
|
||||
AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F
|
||||
J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO
|
||||
LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu
|
||||
KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL
|
||||
zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb
|
||||
huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk=
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S
|
||||
b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv
|
||||
GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk
|
||||
CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R
|
||||
ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd
|
||||
Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7
|
||||
gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu
|
||||
mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8
|
||||
i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn
|
||||
Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA
|
||||
NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo
|
||||
A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z
|
||||
KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ
|
||||
BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp
|
||||
bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ
|
||||
KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo
|
||||
NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op
|
||||
bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN
|
||||
/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE
|
||||
QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8
|
||||
HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va
|
||||
E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf
|
||||
Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n
|
||||
2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds
|
||||
CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4
|
||||
UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu
|
||||
-----END CERTIFICATE-----
|
@ -1,29 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx
|
||||
FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx
|
||||
FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw
|
||||
EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j
|
||||
a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD
|
||||
ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw
|
||||
CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90
|
||||
IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX
|
||||
IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq
|
||||
b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3
|
||||
b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay
|
||||
Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+
|
||||
0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70
|
||||
71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7
|
||||
YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC
|
||||
aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1
|
||||
c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB
|
||||
BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev
|
||||
TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/
|
||||
DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x
|
||||
x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB
|
||||
/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj
|
||||
fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H
|
||||
rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO
|
||||
Pg==
|
||||
-----END CERTIFICATE-----
|
@ -1,35 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGADCCBOigAwIBAgIJAOdfyaftuP41MA0GCSqGSIb3DQEBBQUAMIHYMQswCQYD
|
||||
VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw
|
||||
ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldXIFJv
|
||||
b3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJqb25h
|
||||
dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr
|
||||
ZWQgV2ViIENlcnRpZmljYXRlMB4XDTEzMTIyMzAwMDAwMFoXDTE4MTIyMjIzNTk1
|
||||
OVowgdYxCzAJBgNVBAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYD
|
||||
VQQHEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRMwEQYD
|
||||
VQQLEwpOV1cgVlBOIENBMRMwEQYDVQQDEwpOV1cgVlBOIENBMTEwLwYJKoZIhvcN
|
||||
AQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQN
|
||||
ExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkqhkiG9w0BAQEFAAOC
|
||||
Ag8AMIICCgKCAgEAwZz2VgcS6fxoPnwUV3RjCUQbtSsZA9tFN9OuB60lQ82g70py
|
||||
lBiX1oM46tCMADtogri4N1QVNvqpn2ibpfmSof4+0u5OLU0TD8t50MaVit2r74g0
|
||||
lHFxPungIFaXcaONQzdXkyvUOkuOQyLZWsOZT7rvt23ojZWeHyqZYeLjHRLeM8Pd
|
||||
Hht+S/07PMiEirt5ah61qEr5tm1Q15BS9RMMhqyd0tDacX4mn/cKPwiTx8gwVh2I
|
||||
hw+sEco6pZezmPO6pZjYboz1SviWGNVlHa08+hn+MvbSBqiUVy4Ebvg0YBiobudH
|
||||
6mW86n6k0Fbhl/Nx80J6w6kY12GKoOmLWH3F4xW7+t12knGc/pBwA6A0bjS0VxUN
|
||||
OXxHhvA7BF04QtG80l4HfZqMKVZzotj2pL7WG64DGARMjRO4U5+o7Slry0R+iI47
|
||||
wsvkGvkq5MMdB7AEeSFH4+ykowyYAmL1lqjW+3W7NKAWIvRmGn6Z4pbKvvo0nS7J
|
||||
dMcrpu57MBwJ88ExnLhLfgq0K+8hBBf8OKuYferXMRZmrcQGZIG46rxYkS4fTxiP
|
||||
kk0o6VOqg3YcgH5euLk83v0xPy4pb1YE3s1bfe23bq5NEpEOJynqMCk0T8dUGybG
|
||||
SbuxfXAEZuVxr33WcmlSokDz9H/fk30I6Rnb3mV5C8ab8LUtuXt55333musCAwEA
|
||||
AaOBzDCByTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA/BgNVHR8E
|
||||
ODA2MDSgMqAwhi5odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldX
|
||||
VlBOQ0EuY3JsMEYGCCsGAQUFBwEBBDowODA2BggrBgEFBQcwAoYqaHR0cDovL25v
|
||||
ZnVzc2NvbXB1dGluZy5jb20vQ0EvTldXVlBOQ0EuY3J0MB0GA1UdDgQWBBS6auHS
|
||||
OpuvAE/jfGPgdfc3+cLFGDANBgkqhkiG9w0BAQUFAAOCAQEAt+TemCvfM7MwTQ9G
|
||||
EroZKi5Pr40UEvs0J+jZ8N/NtpOStZUDeH3gUjWZhr+iMKJVu/GtAX/IWP6IBbBo
|
||||
wH8xJCuWoZV6H2MdKc8YEoaEiwZ9N3THrYqOrqDO7nw3ORNZ4O+sEd3u/IRa63Ha
|
||||
uXmBMEdn+Llinpn6IKJMBCP1nYDfQ4A57O5G+KgBw0Hpx1BZQaluKFW1phTx2feZ
|
||||
lbaXY2TzWtCtdUciMiFbaeTvBLzKpThdOXwrzmw06Y4ZfR2Lp8JIlb6NO6mQzooV
|
||||
liiufiQGSjvl+y+jPe6ml/f6uFYVBenP1MhLneCZQC+xvReXpG1L0MCMwqz4Ixhe
|
||||
y2LnYw==
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx
|
||||
CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL
|
||||
EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h
|
||||
dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr
|
||||
ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1
|
||||
OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK
|
||||
BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx
|
||||
MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv
|
||||
bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr
|
||||
JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB
|
||||
Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ
|
||||
QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD
|
||||
daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK
|
||||
gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP
|
||||
ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG
|
||||
RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH
|
||||
PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK
|
||||
4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg
|
||||
k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN
|
||||
AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI
|
||||
6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP
|
||||
lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD
|
||||
VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X
|
||||
V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3
|
||||
b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl
|
||||
ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m
|
||||
dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF
|
||||
BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v
|
||||
Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60
|
||||
BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX
|
||||
zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/
|
||||
UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa
|
||||
COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0
|
||||
ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC
|
||||
2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj
|
||||
DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj
|
||||
HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd
|
||||
QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f
|
||||
gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4=
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV
|
||||
BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM
|
||||
MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ
|
||||
ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ
|
||||
TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw
|
||||
MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT
|
||||
Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl
|
||||
Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB
|
||||
BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR
|
||||
NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu
|
||||
WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV
|
||||
cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8
|
||||
uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8
|
||||
Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ
|
||||
QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0
|
||||
Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC
|
||||
D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh
|
||||
Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+
|
||||
hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1
|
||||
AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI
|
||||
dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+
|
||||
7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO
|
||||
QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290
|
||||
X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn
|
||||
FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1
|
||||
c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB
|
||||
BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv
|
||||
bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8
|
||||
xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8
|
||||
iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54
|
||||
YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh
|
||||
55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE
|
||||
BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj
|
||||
comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk
|
||||
5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp
|
||||
VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3
|
||||
yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl
|
||||
42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w==
|
||||
-----END CERTIFICATE-----
|
@ -1,44 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG
|
||||
EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK
|
||||
BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW
|
||||
ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l
|
||||
dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2
|
||||
MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO
|
||||
QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290
|
||||
X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN
|
||||
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S
|
||||
gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT
|
||||
BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO
|
||||
n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR
|
||||
VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC
|
||||
Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj
|
||||
5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5
|
||||
wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw
|
||||
vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45
|
||||
JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM
|
||||
zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf
|
||||
wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
|
||||
BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE
|
||||
5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx
|
||||
CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE
|
||||
AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k
|
||||
QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm
|
||||
aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx
|
||||
aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy
|
||||
bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w
|
||||
dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw
|
||||
DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS
|
||||
W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb
|
||||
FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G
|
||||
JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H
|
||||
qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu
|
||||
zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW
|
||||
3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx
|
||||
1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm
|
||||
QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ
|
||||
qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK
|
||||
p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs
|
||||
Nwdl
|
||||
-----END CERTIFICATE-----
|
@ -1,29 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE3TCCA8WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCB2DELMAkGA1UEBhMCQVUx
|
||||
FjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAcTDU5vdCBTcGVjaWZpZWQx
|
||||
FjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNVBAsTC05XVyBSb290IENBMRQw
|
||||
EgYDVQQDEwtOV1cgUm9vdCBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9j
|
||||
a3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBD
|
||||
ZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwNTA1MDBaFw0yMzEyMjMwNTA1MDBaMIHYMQsw
|
||||
CQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90
|
||||
IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjEUMBIGA1UECxMLTldX
|
||||
IFJvb3QgQ0ExFDASBgNVBAMTC05XVyBSb290IENBMTEwLwYJKoZIhvcNAQkBFiJq
|
||||
b25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3
|
||||
b3JrZWQgV2ViIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE6IZ8ylVsQ45HEI8svadYbKay
|
||||
Vj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Emt0yMbMbxCj7NW7jM3UeTNP4+
|
||||
0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6TzbtxLKfvyOIPczDbDBBtfAicw70
|
||||
71ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpucQy4D+iGMDDfNfltcjd+NA5Y7
|
||||
YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0A736zo+kiP/SbryqYVUgJZoC
|
||||
aJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4GvMIGsMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wDgYDVR0PAQH/BAQDAgEGMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9ub2Z1
|
||||
c3Njb21wdXRpbmcuY29tL0NBL0NSTC9OV1dSb290Q0EuY3JsMEcGCCsGAQUFBwEB
|
||||
BDswOTA3BggrBgEFBQcwAoYraHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0Ev
|
||||
TldXUm9vdENBLmNydDANBgkqhkiG9w0BAQUFAAOCAQEAL1+9V99RaFuqyzb20E9/
|
||||
DKoByMK2Q+1Mepw7CdbEQbnOtj4CiWnNA4Nw2rMOcV1dsd0WoExlW/bBHXWqS33x
|
||||
x/XCODiJtmVMDqPU01DSQy74y7cQxOh2qetvsDfbdVHQryeMSZbEvvlranXkmZOB
|
||||
/VgrXbrFBC8rJ5LxY+GdC93qUpyhZ/ON9iWMzq5b1nkqLSy4b8OR+gHINBWAu4Rj
|
||||
fByKj3QerFf+272ADRndJXZRf376TY5DSFdolyvPVO9/S+ussnlpZP10dtlLsJ5H
|
||||
rEfq+VCmSwC2YTkJNUTQvq2iOlgAQUl5UDkd2LvthO3NsZaRgVObLudfRQzV5UHO
|
||||
Pg==
|
||||
-----END CERTIFICATE-----
|
@ -1,127 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHDTCCBPWgAwIBAgIJAMTrJAQHdlFyMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0B
|
||||
CQEWHGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdv
|
||||
cmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTYwMTA5MDAzNjAwWhcNMTgwMTA5MDAz
|
||||
NjAwWjCBxjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEM
|
||||
MAoGA1UEChMDTkZDMRAwDgYDVQQLEwdXZWJzaXRlMRwwGgYDVQQDExNub2Z1c3Nj
|
||||
b21wdXRpbmcuY29tMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21w
|
||||
dXRpbmcuY29tMTIwMAYDVQQNEylObyBGdXNzIENvbXB1dGluZyBXZWJzaXRlIFNT
|
||||
TCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAw
|
||||
LqkN8ck9UoYApC1yNYXmq3kydkb8JwmbzbEZ7H6ZBffVzx6D7lBiyLwzS5nClYpM
|
||||
F89q/D9q0x2k0oVckpNA8CqDjH69CojBtCAbTDM/tHBjrKir3pyg66rgCn5PIAJF
|
||||
TEWTilLyDxXewiD6rNoxYChVvQYWjV3eV2IcnmwU6Yv9s5HvNzu2iMbJTxfFyeE0
|
||||
vgkRLBkqTBpYiTnc4m9OgPYJB7f4drQ0cibZ7ySDBlDvQM792PLtBokTAikQ+Uu6
|
||||
UkOpBVaeP/mnbF3WogL3ntjcXpX4JieMG2YAaKb3RynqZeX+oUvgz9K5hOjDgpGp
|
||||
hswm8w677iAah1kaSYkCAwEAAaOCAhYwggISMAkGA1UdEwQCMAAwHQYDVR0OBBYE
|
||||
FPOkMiFouKGtFmcsI4HvmWydR/hEMIHlBgNVHSMEgd0wgdqAFMcOta68Bn/QtEwc
|
||||
LCCyoJvOSmSNoYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCCQDF7SYBL2xH+zALBgNVHQ8EBAMCA+gwEwYDVR0lBAwwCgYIKwYBBQUHAwEw
|
||||
OgYDVR0RBDMwMYIaZGVwbG95Lm5vZnVzc2NvbXB1dGluZy5jb22CE25vZnVzc2Nv
|
||||
bXB1dGluZy5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL25vZnVzc2NvbXB1
|
||||
dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJBggrBgEFBQcBAQQ9MDsw
|
||||
OQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05GQ19S
|
||||
b290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcNAQELBQADggIB
|
||||
AEC5mlLoGmAvFEf6dQ0yR+W/YPrW2qmZfIEtcfGq0u4Ik0W2pgBbHiXI4hhXLx3F
|
||||
fMxwzFI69ab2qWhl37VrwViLtPDLp7f3nJbN+cURJfbYTXbt5ktqxAq5JpUO8caL
|
||||
hJpJLuslcKCzb9Vpw6FbojLhWu44v0gcYiPemROrwbcTtaDo1qRHpxHN6am/GnY6
|
||||
+hZBtQV0STRHw+BESVAyjmuurMBGCTKIZ5SZ2oGkqWrGoNgRsIN1e1nE5rsJDHG0
|
||||
7mPMRfSa7Ll3B5tYXZ7M3H2MWDWtOg2AKrB6U1WoA7cEuHg8lV8PFpIvfjkqu6DJ
|
||||
wx4X1NUBi8D5x/VCGpopvyZBSFkqeQTEZ+vQ3NfC1pOw6f8iwhdJGBqQeCY8AWFU
|
||||
XKljEjSm8zleCsSLa24tOL+1WvcAZqjtoeN/E2VYMmHi2UdyIFFiZz3P2M5hL/dp
|
||||
PgokHF0d/LuoEmdFv9ki5fj61VrldUsX8eg0CKgd+BiwobjlJFmPRKJX2d9ZE+rU
|
||||
rJT8uHehioXmW1NK43QiBCgd3H54IpDl9HByNpF343sjvGX0Y0a+6D6pa1BJhVPw
|
||||
9vLCeSKSUuI6XDtLGhGpkc5c4m6pChITzjCPQld/LvbxnQ6mhTtylBy8edixDRld
|
||||
0bPU2pK43UcWEWQwOQG53Te5XVBmQ312WRuwp7U8Sfi0
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S
|
||||
b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv
|
||||
GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk
|
||||
CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R
|
||||
ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd
|
||||
Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7
|
||||
gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu
|
||||
mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8
|
||||
i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn
|
||||
Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA
|
||||
NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo
|
||||
A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z
|
||||
KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ
|
||||
BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp
|
||||
bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ
|
||||
KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo
|
||||
NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op
|
||||
bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN
|
||||
/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE
|
||||
QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8
|
||||
HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va
|
||||
E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf
|
||||
Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n
|
||||
2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds
|
||||
CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4
|
||||
UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrzCCBZegAwIBAgIGIBUQJxYmMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYDVQQG
|
||||
EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK
|
||||
BgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEW
|
||||
ImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5l
|
||||
dHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjUxMDI2
|
||||
MjM1OTU5WjCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO
|
||||
QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290
|
||||
X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjAN
|
||||
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA02H9hDzxurJHbnr0DAyep771WN5S
|
||||
gVBwaCsmNxLvqVloARGduXj08kzpf3FwUFCgIPdLVac1cvbpm0D48p1+9k4vwYiT
|
||||
BlCtc0FOzZ/hU/V1qG7G4diWaXCWl1PzgkpmUOWhSsM6DHQPvTtn7JtStMWOppCO
|
||||
n9l/JtBAuJh8r/q/srus6HxbJ5Za6cOjy5iVlaa2bMBBT0hCKZhZ6lnj877J9adR
|
||||
VEa9gwN1oAus1qPkw7jUnXdjmxcN2X77JMJu6Mn7FMMcp+Ogn4qkS4trxXNaMlgC
|
||||
Ob5NJcqBY5s7GmetvixbZsHak+3BCg4p3e1dhbZtEokca3alXODIZSNnXIYoVLTj
|
||||
5yD06k948W1LhpMpVMwh7sEfA8DV+G7Z5+qZ8/S9JjQSZEe6T0YiqjWvkSIL3jE5
|
||||
wC4uQ8ZGq4xCv6agPbsmuGGUX2/D9n2mvqBn6FQNgZsTT3XcXWaN21inWUGZovKw
|
||||
vCkjSUc9Rl0V16MJue898f0RXE1GBszkn/LN9EH/9BGe5+mMLY6AHrNOeJ+xgg45
|
||||
JgdiAIrgMuuKfviPhiJQabj3C5PB2qTnYHxuQPPHhxbAiklZgh5ALbEytH9G92sM
|
||||
zG3UWuCTl6zQ0cxYDN3YLY9FLZ+a+5R2rb5BlF7vbVO+h4UswjTk+dSvE6TP92Kf
|
||||
wE1a2w0CgEKLcV0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
|
||||
BBYEFEjpZpZt1UvE5N99h0+Wp3vMDD7tMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE
|
||||
5N99h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkEx
|
||||
CzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UE
|
||||
AwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29k
|
||||
QG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlm
|
||||
aWNhdGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQYwQgYDVR0fBDswOTA3oDWgM4Yx
|
||||
aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05XV19Sb290X0NBLmNy
|
||||
bDBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21w
|
||||
dXRpbmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCAAcw
|
||||
DQYJKoZIhvcNAQELBQADggIBAEp6g8NTXc89vngaI6Hu3FcLcsYwfcC3UvqUPCXS
|
||||
W7qqc8GqR0p+n6FZWrMyAGVSjT/CXPZH6GZoTgkJK9g46YcWc1LhUIwnzj7dl3Gb
|
||||
FAU1VRnc2PNYI2VxUbDLjAzxDPO5q93L1F/N4JYgamCCRDYqcUcg9uUrDxS9fz0G
|
||||
JZaKDtmxelAb/TOo9jfRYzXmdCdzaZUi838UwfLYDoovBn+CTpWeKg+qs36ViK4H
|
||||
qMRaHbPBAappJoxzWOQq9CBv9HGZ7GYpMrtE9Cwg0RyJyH6CHDTum6A3O9oa7Buu
|
||||
zh36WAl1tXbJ/waW5RkS7/SIosWzi+SbASEeOY3X5jnvjFkSVZlQbNDfOzQkDAMW
|
||||
3JXfBBWG0fCXFSBJxPpVUV4dSkhZFyFZUDmKTnbqyM10DFEh+MFpEIOShXDoqbdx
|
||||
1hvaBlBzgbi46xQPRptdsw+Eo6LiYSBUJIuSB7WBzNxpcIqZDiNZgXC4useuBdOm
|
||||
QEGT3KPPpRfhneEz5f7v4e8YGHbbkvv/F7OcHXNX3tQ8T7u7d8cCsiGDoFtpEISQ
|
||||
qs68fxeGNUdnA13INl5G5iGkXlVLh+hiTdlObFO2lqHXzv8RL3+ZtSkzbsVEC1CK
|
||||
p4AlmeUn6vRoUvLtrm5REF7GVKB1NjyKJV8JP+DGyoiR9JUVmsqvFj5eCejANGEs
|
||||
Nwdl
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S
|
||||
b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv
|
||||
GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk
|
||||
CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R
|
||||
ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd
|
||||
Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7
|
||||
gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu
|
||||
mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8
|
||||
i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn
|
||||
Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA
|
||||
NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo
|
||||
A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z
|
||||
KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ
|
||||
BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp
|
||||
bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ
|
||||
KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo
|
||||
NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op
|
||||
bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN
|
||||
/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE
|
||||
QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8
|
||||
HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va
|
||||
E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf
|
||||
Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n
|
||||
2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds
|
||||
CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4
|
||||
UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu
|
||||
-----END CERTIFICATE-----
|
@ -1,35 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGFjCCBP6gAwIBAgIIB+I42RMLhBgwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV
|
||||
BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl
|
||||
Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v
|
||||
dCBDQTEUMBIGA1UEAxMLTldXIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0
|
||||
aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl
|
||||
ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDAwMDAwWhcNMTgxMjIyMjM1OTU5
|
||||
WjCB2DELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV
|
||||
BAcTDU5vdCBTcGVjaWZpZWQxFjAUBgNVBAoTDU5ldHdvcmtlZCBXZWIxFDASBgNV
|
||||
BAsTC05XVyBSb290IENBMRQwEgYDVQQDEwtORkMgUm9vdCBDQTExMC8GCSqGSIb3
|
||||
DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UE
|
||||
DRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcNAQEBBQAD
|
||||
ggIPADCCAgoCggIBALrz75sW0VR2qqi6UAtk2z/0GpLxlPsgGawLePfNZXvdYHcB
|
||||
1JzPpAyCZ+PF4VIHz17tmdQFyN+msd2W6Op8SI5CW3MDHwA5HoAGcm6vx+xp95UX
|
||||
96+fbqthL3UPNuOOW3EWXEb3DsF2wtrNXdhq4nyOMGrioe0fQvo8ij7Qg/eiFJSu
|
||||
Sg3zPssa5AjsJ3P4px9kQusm2tkN9oH/1AZmE3CJXkVzqzEPbmnUzt/LD2I4Hd86
|
||||
KweNsSiBeZwrxWN7nQUla+rWE7Al+orLLnQbj14uz5Oeh+y2VnVmXxec23mebUcl
|
||||
Pxy9GhxnKMF2wp6//nJs/soJKt/KEdWaMU4oW1m/rkJejjVQSvBvO89hL+4hi1iK
|
||||
aoxXRnNnX6V5naXPAjlOXzDqZSnmDPk31gWL7uy7eeNY/+dCYKNk/ikstGAhfn0y
|
||||
k70tUAguBf3zAewRL8JM05+HrYGdhCv/qFb+VrZEf0BgnSvq4XpVszNYJY+JePbW
|
||||
smOw0/569aptCHaGtpuuvDO5F5GmtvN10NWYXRJx98txAT4SnfDHuxp/kbqlgXQF
|
||||
Q+I38vVYRWfDOoakxZYESvGNlXZ12aY9RiMKp4191Los9yH16TXoERvg8Q1a1QEQ
|
||||
l+fwM1iTg3RJ1WowCm6QvsU5NqVjrx0GzXCTxkd9OCjyiVwl64X9sDjYZhe3AgMB
|
||||
AAGjgeEwgd4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwQAYDVR0f
|
||||
BDkwNzA1oDOgMYYvaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05X
|
||||
V1Jvb3RDQS5jcmwwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzAChitodHRwOi8v
|
||||
bm9mdXNzY29tcHV0aW5nLmNvbS9DQS9OV1dSb290Q0EuY3J0MB0GA1UdDgQWBBR6
|
||||
prE+wkxZU+lAqwU04QYbfTVQxjARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcN
|
||||
AQEFBQADggEBABV0Uw7kioLo/bUf9Bkcjq08v6zAvnjfp22u+P3USDWvjdlyBM1F
|
||||
J39TOf2tAvZJ+33HzDanNL1oDw57IVw7QqIasLJRINa3gojUml6SaOT/DF0HpcJO
|
||||
LN1e1x3oaQHHw5cljCFue4PRdja2z7EgsPY2qZdIdnN5CuaUI29qke8MD4cX0Ezu
|
||||
KtCzkL8TWsc+QKZYodNjSwviOBIEOar1ayGAGfarqszDKHk3jG8W390BJBVtpUgL
|
||||
zOyyv4SmKu+Zu090nAB91ThYYA3vnPV3Ar+tAKl0taSWNQh55jrwSA9BhrFGaRxb
|
||||
huJWadC1O7ILrs72kIExzELUSDcqOhc1Nuk=
|
||||
-----END CERTIFICATE-----
|
@ -1,47 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIIWjCCBkKgAwIBAgIGIBUQJxYoMA0GCSqGSIb3DQEBCwUAMIGqMQswCQYDVQQG
|
||||
EwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAK
|
||||
BgNVBAsTA05GQzEUMBIGA1UEAwwLTkZDX1Jvb3RfQ0ExKzApBgkqhkiG9w0BCQEW
|
||||
HGhlbHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xIjAgBgNVBA0TGU5ldHdvcmtl
|
||||
ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDU0NjAwWhcNMTYxMDI2MDU0NjAw
|
||||
WjCB3zELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoG
|
||||
A1UEChMDTkZDMRwwGgYDVQQLExNTb2Z0d2FyZS1EZXBhcnRtZW50MSQwIgYDVQQD
|
||||
ExtEZXZlbG9wZXItam9uYXRob24ubG9ja3dvb2QxKzApBgkqhkiG9w0BCQEWHGhl
|
||||
bHBkZXNrQG5vZnVzc2NvbXB1dGluZy5jb20xNzA1BgNVBA0TLkNlcnRpZmljYXRl
|
||||
IHVzZWQgYnkgZGV2ZWxvcGVyIGZvciBORkMgU29mdHdhcmUwggIiMA0GCSqGSIb3
|
||||
DQEBAQUAA4ICDwAwggIKAoICAQCwEhy6BgG/XCGu1REUIhSHh95flBwiyBxf9yaF
|
||||
KTkkGSY70AfMOvPtzfrf6qdHRySJWhMToVWh/X2gbjuPZUbPQJHEhpk1C154yDVD
|
||||
g6t4Q0pyULBSHxdKxanNm0O6CfrXoDR9EmR6c+Ymy6+aD/KYQork/UKfZRzHPBwV
|
||||
klNiEHE2C7lGScjlW0k9DNChdeO2O7Y5XYMY47NFKDsdMxIankmpiTzGiBGrulQq
|
||||
RwuhJy8r5u26UzBJRQBxfm4Q9jT273ZVKK9cu3+zbb3s0ye4XvOM8zkgz24kXbiF
|
||||
r7RvC4B5GxHoaBDXDUigKqv8g8XkLS+Rs2Ja+6KDZh6XPtvEZYQ48TsTqKmUH1++
|
||||
Tmyri3yg2WLYxOpzs8Qllp/O/1nH47U+2JkOxAI4HwleIg71mb+uF/jVBz/CweQF
|
||||
LPPDo0k5NfYtMvWR+Veq+P9q2UGs6jgGmAghndQZfe01VxHkiaqwOraeTHn/JfXh
|
||||
FlZIfalTap/lDK7aCJA0U0mJP554Vms2KgQK1YksojCxuXShR5A6VLK8CtSWXOh0
|
||||
Iwje5oPPNm2DYgRjbSPl4Q509EOCOMlC6ykUt04cuB1pgYrlXNnv3+oNzcpfOhhT
|
||||
JOsX1rTxYYhZ+EmmQvOUEPWHPPClRqHOPN7PsaxI4EEFCIKfdEVWOEE1KJ8RmBmk
|
||||
6VAoHwIDAQABo4ICTTCCAkkwCQYDVR0TBAIwADAdBgNVHQ4EFgQU9ihwzGTLPCqA
|
||||
4CbMavWmtVLwHlowgeIGA1UdIwSB2jCB14AUxw61rrwGf9C0TBwsILKgm85KZI2h
|
||||
gbakgbMwgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkEx
|
||||
DDAKBgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9D
|
||||
QTExMC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2Vi
|
||||
LmNvbTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZYIGIBUQJxYn
|
||||
MBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6
|
||||
Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNfUm9vdF9DQS5jcmwwSQYI
|
||||
KwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5n
|
||||
LmNvbS9DQS9ORkNfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgQQMD4GCWCG
|
||||
SAGG+EIBAwQxFi9VUkk6aHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM
|
||||
L05GQ0NBLmNybDA+BglghkgBhvhCAQQEMRYvVVJJOmh0dHA6Ly9ub2Z1c3Njb21w
|
||||
dXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmwwDQYJKoZIhvcNAQELBQADggIBAETg
|
||||
cMO9sC4hm6RIAdcKWlSAPD7+u5I+cxY0k7TRljSxGMu8WbzQU39wkEqK5PCgT0qm
|
||||
Up0qFdc3osO19UfXJj67jI6450dB1LDHGa9ymuaXkTVEOUGeYPJ/a5UpJKN+PJPy
|
||||
liPG3BP+6EvILMm0qd5EIvrmeAJtNtWEi6Y2Kkb8QAliSlovtsjHmbW0Mz1AzeQm
|
||||
l9V/xOXbdQnp7A15T41XUoR5V6AJ9yraCMafFL/GaE2IXkIoUEpVb55hobsdAkwt
|
||||
yjEZBxyv6A81t3v0HEpkEmyn6anmjCi3sLCKWzK0dTLL+8OyxUYXgmFxRHMyXu90
|
||||
ZrtGDInxl/MlSE3/3T8xINiaxhiZSrf5XZqPteRUCKCDPiEdYv19SbsypReguuLA
|
||||
w5B2l0I/2KH2BMYOMy6170MPDiEbbFugDifwokmuGLHQqiz99AVFVwCMu/ThO1Hj
|
||||
rm27HS8bYOMzyTiil+pEyhPpoP23P0aHCyESTsXcgfMBZkeTyWxvdj8dCCaJTGiF
|
||||
GJ6mELEoOnNhLqVhouGzMOZMS0w5vBG/gSQGb76inVqxMFByWKvVzyBm62JJ9P7D
|
||||
AI8aN2WjZ9c0Z0czEz/SKPISxQjGrdoeQvvmn3Qyg4TS7aWt4RVJh67m042pWPdO
|
||||
0+2unR8IoW1J6AeQn7Nuz0PyEx+eCZqBp3tsH8zX
|
||||
-----END CERTIFICATE-----
|
@ -1,44 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrTCCBZWgAwIBAgIJAIF057Inea3QMA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQ4wDAYDVQQLEwVFYXJ0aDEVMBMGA1UEAwwMRWFy
|
||||
dGhfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3ZWIu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3H82oeWzt5ZBoyelJhBjp8WrjE5yrR9+
|
||||
/xn118D/WXGeLMPixXmjNe9Ik0tg824DBoc3/ZHOtt8Knk32LZZhF5BF1B5H8Xgg
|
||||
zx46e23tufVzUWPt+tZjV35//T/PikYUZUdCTYbYZFOuR0VwOiJBtCu0TEwQDaLe
|
||||
bT9YJmAiSACKRUAT5WJwmP8mxuwW0qL5gns3Sfldq1Fvqjwa/WZQfI1uvV0GeHdd
|
||||
EWiH5sTe6wtIHjXUwV/YvCsDcqk3e/Jl77QgiYwduovx/jKRCNtpBVH9yA5wsdRk
|
||||
cPhAEdF8SK/8Ti/8SOChYePmIlIpbqZSO5lxyGJB+JP6Lq5gFSLX2xkTx7Z+GrlG
|
||||
hiq7++PyI5S9wOsxzb+yggiX9O09n8L39cQ8t6F48AXEZpdE8jdp+jbrLUhFJ33N
|
||||
HFShms92VGmEL/Hp+o4jzLkKjj8JiZtQVEfTQWiCpU2Iy8SE2soFzx2XrGS4QNkG
|
||||
5Qes39dfJtPzzugXgO9LjeRECfH1o5j5gr8MfV7S0Pa9KiamTRM+qCjyLM6FgboY
|
||||
XtqvGNhjZPspZCL2BePNvXMOuWQY80W2NYwpcmtQWd9NXRTOMCkBSYbaTX2gny0j
|
||||
sAG8OlKz/oNjEFhuS9DYhaB2d9i/7Ye8zFGNxhX/zSXrwSFYB7ew9unACk+UMW4m
|
||||
7oX3ZkaBx50CAwEAAaOCAcwwggHIMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FHofT+JsVUY8oAVJR3ijj0MxpFq8MIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQwYDVR0fBDwwOjA4oDagNIYyaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML0VhcnRoX1ZQTl9DQS5jcmww
|
||||
SQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0
|
||||
aW5nLmNvbS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
|
||||
CSqGSIb3DQEBCwUAA4ICAQA/Esj2AP0oM51YYuPhE1Mmknkx6Xxnn49lZim9BJEr
|
||||
PMe5+M1wxlXnMklHl0AEyf59W1V6PCvlONonsOOZg/Dncm5w4AYdjeUSUxGMr6lw
|
||||
kVViKkPApv1NBzw3kmJDL0CazTR3K+nl4mB9BTbOSnvGX7QUcZZ92mDxqBAiTaRb
|
||||
rk8OzDW4+Lla51hSsBYuQrmRtx1jT/OZxLL6HDfM53HTLMvbFMndC2pnZL78owtp
|
||||
q/V9zyyWC2fjDFGeMAv/7/0BuwfP3Ovir5OIv7C8YMrfcshgZhdt5E4mKX02TENT
|
||||
x0tfNV/T/TeQGjdX85L4uYnViAA+rAlVRjE8Y0rZInnhDahI5ptpUUjSUvF0D3k1
|
||||
ZTXvCqvev4As7k0ci4mCO15LQLcQWOrirzARSR4l1OFWmlxd3zy8CBgjN8RgV0r+
|
||||
qPp1DWO/5hqKgVoBUKKAWX7cVu1FZYlxjiKqYsZHkwq5vy7ibHCSipufCWCVdU1X
|
||||
dkhXhbEaS4FIA1epQNhH+GPyMxVU5uTTieSx0uvEbKvJ9UmLIGQLxBsWSgfmUKjc
|
||||
xST6RlvTmKywV3ansfmYw84IxSZylpm8gT8+r5iod7lHXre1f+hESmE4lQvQ51eM
|
||||
f3RjNf5W+uGtaPTGzZRN+b//kGs1pmn6Mtyr94DQCHp3LJCAVoHpFqy8PqjdlLNo
|
||||
Yg==
|
||||
-----END CERTIFICATE-----
|
@ -1,34 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF5DCCA8ygAwIBAgIIB+I42RMLhBkwDQYJKoZIhvcNAQEFBQAwgdgxCzAJBgNV
|
||||
BAYTAkFVMRYwFAYDVQQIEw1Ob3QgU3BlY2lmaWVkMRYwFAYDVQQHEw1Ob3QgU3Bl
|
||||
Y2lmaWVkMRYwFAYDVQQKEw1OZXR3b3JrZWQgV2ViMRQwEgYDVQQLEwtOV1cgUm9v
|
||||
dCBDQTEUMBIGA1UEAxMLTkZDIFJvb3QgQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0
|
||||
aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtl
|
||||
ZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTMxMjIzMDUyNzAwWhcNMTQxMjIzMDUyNzAw
|
||||
WjCB4zELMAkGA1UEBhMCQVUxFjAUBgNVBAgTDU5vdCBTcGVjaWZpZWQxFjAUBgNV
|
||||
BAcTDU5vdCBTcGVjaWZpZWQxGjAYBgNVBAoTEU5vIEZ1c3MgQ29tcHV0aW5nMQ8w
|
||||
DQYDVQQLEwZORkMgQ0ExHDAaBgNVBAMTE25vZnVzc2NvbXB1dGluZy5jb20xMTAv
|
||||
BgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20x
|
||||
JjAkBgNVBA0THU5vIEZ1c3MgQ29tcHV0aW5nIENlcnRpZmljYXRlMIIBIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyQqO2ehMgJt7/smhusiPQn183w//y9ZE
|
||||
6IZ8ylVsQ45HEI8svadYbKayVj4XzOl6h91asi3mGKllRq1fj7/Tekid641ew1Em
|
||||
t0yMbMbxCj7NW7jM3UeTNP4+0OtNjXKGI6A2/ciS4lQoSC7TQc37L5tr3qN6Tzbt
|
||||
xLKfvyOIPczDbDBBtfAicw7071ICWjeMGJ/MASAO0RR+c77TcNFqNPkzMztyJpuc
|
||||
Qy4D+iGMDDfNfltcjd+NA5Y7YSUyx4hl05IIjY2FlmBwC1nLTYtEV4hWN+lDM8W0
|
||||
A736zo+kiP/SbryqYVUgJZoCaJV38NRB3ksNDHELwbJAE5WDdP8KlwIDAQABo4Gk
|
||||
MIGhMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXgMDwGA1UdHwQ1MDMwMaAv
|
||||
oC2GK2h0dHA6Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL0NSTC9ORkNDQS5jcmww
|
||||
QwYIKwYBBQUHAQEENzA1MDMGCCsGAQUFBzAChidodHRwOi8vbm9mdXNzY29tcHV0
|
||||
aW5nLmNvbS9DQS9ORkNDQS5jcnQwDQYJKoZIhvcNAQEFBQADggIBAF4LBlQsLtH5
|
||||
uLoe2L5Kbs7QFkBa6Wc6i654yVSVty/pUMp8RDOrrortBruSEQ+bZhX8AfPoMtKD
|
||||
ZKIut9RojJTBuHpDzDZNgNcQdaw/Fx9FAe692OI6maX3bB3On4O5FMiCLegE3i85
|
||||
8sIVF86MicQlyKHDajIpUedBHVuWhIpNDhmBMS6JMIaYP7ix6L/fLPBsum6QkJCX
|
||||
C8QKE0msm9ki3vF/LrM3PwaUvNJ4tQgjBBWsbmLPf8vcLLHaarjksB7ZQdIgXiHj
|
||||
oD41uc28ORi1/xL+AyTYU1q1qVGyfodwttWZ2bFKqdSRf+5YkFfqOjrby67CvCOo
|
||||
YJRjJIIT+1Hug3af7gRNljuoATwPCbeb0uCMvUgR24b8k8UVC2cYXgdN4Qriiq9W
|
||||
9c7gODRmPOt1MqJsR/tsawWpLC9BuIhp915LGc1tZ1fX+toBfyqfQKDKNjazDVPi
|
||||
jFc6U2c/+FOQhyCqVrqATyLeR7RvJTmmNiHCCg5aJdzqo0SstWte3fJ7AWgY/OhO
|
||||
TMZG689C6ZWEQjJBrfm3OfuJFYEePg+gJOnswIM/VSd4QVUBlWt8Q/VlnTkzOF38
|
||||
LeISdO5yJeyXZft2/t4zTR+o6dETzvZYeCSiH74GEnusZ5KVZSe+0lBDIbStvu/A
|
||||
wpcM0mL7IYln8Iyb1Una2R+xS/PIgJO9
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHrDCCBZSgAwIBAgIJAMXtJgEvbEf7MA0GCSqGSIb3DQEBCwUAMIGwMQswCQYD
|
||||
VQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cx
|
||||
DDAKBgNVBAsTA05XVzEUMBIGA1UEAwwLTldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0B
|
||||
CQEWImpvbmF0aG9uLmxvY2t3b29kQG5ldHdvcmtlZHdlYi5jb20xIjAgBgNVBA0T
|
||||
GU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNhdGUwHhcNMTUxMDI3MDAwMDAwWhcNMjAx
|
||||
MDI2MjM1OTU5WjCBqjELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQH
|
||||
EwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNORkMxFDASBgNVBAMMC05GQ19S
|
||||
b290X0NBMSswKQYJKoZIhvcNAQkBFhxoZWxwZGVza0Bub2Z1c3Njb21wdXRpbmcu
|
||||
Y29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtK+L7NLT6f3c0bbmSPAWTtAkPO3W3Myv
|
||||
GlhCPUaNp4Up+/p50CiuBVrZ9hGAJQK1y+7yrmDgM+mTvlnY/m41BLtq8YYcT3Dk
|
||||
CgloEGhaUD/vdTSD6ZYAF1u8yNvueAJ+NybCpEDaDSBxbi4aJnKrcvx6j6T+YG3R
|
||||
ajHpDzQjNH89S9IzsTIrQsOM8e8stVEkjZld78TvtGc/Vl/p/QMAL8XpMJ1KBOWd
|
||||
Wmk9v/x9JiBDrdJIMFl/Zdeb9VMjbabNqjLV8uCz6Iv2E3Rii+xYghcRPF+Y1zD7
|
||||
gcOy6aaLmITFbusf1cuzZUlY/XzYs/3KNiQwENS68Mpd0v4NaPL21sip0Zys/Jbu
|
||||
mwQ8X3RQLWvlDh6l+Z3TKM6QZK1oPB2a51IsNwGBFgOMr4JbEDwlbA1QcyIzdoE8
|
||||
i/CGIKUPoaYOmmAxMuOKS1pjO+BeiQ7i+jDMX4Yip3wIGViXm6oK5uzPUUC9YeOn
|
||||
Jti9iFb/InNToaEFaNKNj8ihE9PvWWmty85J0rxFpHUMth+bANCWSxUDvzmfhAgA
|
||||
NQepApTdArzguh2t2F4CANNSeJU6gze40XMd4H3dggVVohs5GC3Aj/RbFiJADtmo
|
||||
A8a1T8sobrDKj0veapEw/eRzqlUW8z9dBLFk1+MNGOWz6p3TjoWxdjE8loShD90Z
|
||||
KeqasY/t2g0CAwEAAaOCAcswggHHMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
||||
FMcOta68Bn/QtEwcLCCyoJvOSmSNMIHiBgNVHSMEgdowgdeAFEjpZpZt1UvE5N99
|
||||
h0+Wp3vMDD7toYG2pIGzMIGwMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJ
|
||||
BgNVBAcTAk5BMQwwCgYDVQQKEwNOV1cxDDAKBgNVBAsTA05XVzEUMBIGA1UEAwwL
|
||||
TldXX1Jvb3RfQ0ExMTAvBgkqhkiG9w0BCQEWImpvbmF0aG9uLmxvY2t3b29kQG5l
|
||||
dHdvcmtlZHdlYi5jb20xIjAgBgNVBA0TGU5ldHdvcmtlZCBXZWIgQ2VydGlmaWNh
|
||||
dGWCBiAVECcWJjAOBgNVHQ8BAf8EBAMCAQ4wQgYDVR0fBDswOTA3oDWgM4YxaHR0
|
||||
cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JML05GQ19Sb290X0NBLmNybDBJ
|
||||
BggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9ub2Z1c3Njb21wdXRp
|
||||
bmcuY29tL0NBL05XV19Sb290X0NBLmNydDARBglghkgBhvhCAQEEBAMCBkAwDQYJ
|
||||
KoZIhvcNAQELBQADggIBAJQM7UeDaXM0/jl1PLJ/UUFGmBhCy3pDLc2JIeRifLTo
|
||||
NzJ0RmBzF6OQGriXXKiKmZKTAwFvuYjks1Hm/hjFSTbhmNFsU3sx8qXe0h4xj9Op
|
||||
bvDDJaiXl+HIEl2BQkJ6Rnr7b56M6Y+W6cAtuCwQkZGAO1ip0pF7WbPv1OFaL1pN
|
||||
/OCe8wiXDIkyH87GFESsQG7VypAp8u5vlKkxFeISCo7FYRhfhEV0hv62gaWb0zjE
|
||||
QcW6Pgnj4KHfDKThoWwWUC+5kJuGd81dWmbgJ1+AUc5kNHl7f3w8yr6YkM24yji8
|
||||
HSpQ0yZzN3kK8JN0E+DJk0OVMD5aiBQjb+UkMIVwBWnoCixNAv0ni51eyrCJ49va
|
||||
E57RTYfPCLJurHpm+kP66V9vSKNiyBOwbmf5KSWeyG3p6YZ+ywSvypsdw21eXpOf
|
||||
Uu1GYA+UDoZE7g8KcCwM9H2T12Da8mHRlXJubeY0YrInlc5hQwgllzzYqbzrh15n
|
||||
2YU6OvfInyXwjPc6m5Ktn+lObOqFrTYBDIf5spaC5MJuMNcMIzloFtHjgStAQxds
|
||||
CKUIyVWJx/bVAdc42VcQVNU/G9df5Q8+XLJknetfa5ZU3drob2fdi4O6SwowOvv4
|
||||
UjGxZKIJBvI9J/D0Sda8vh96NJ5Q1VTW+V9pseG+r6sEb2YXt601jNxifjOY0Fiu
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHpTCCBY2gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCQVUx
|
||||
CzAJBgNVBAgTAk5BMQswCQYDVQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQL
|
||||
EwNOV1cxFDASBgNVBAMMC05XV19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25h
|
||||
dGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3Jr
|
||||
ZWQgV2ViIENlcnRpZmljYXRlMB4XDTE3MTIyMTAwMDAwMFoXDTI3MTIyMDIzNTk1
|
||||
OVowgbAxCzAJBgNVBAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAK
|
||||
BgNVBAoTA05XVzEMMAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTEx
|
||||
MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv
|
||||
bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBANNh/YQ88bqyR2569AwMnqe+9VjeUoFQcGgr
|
||||
JjcS76lZaAERnbl49PJM6X9xcFBQoCD3S1WnNXL26ZtA+PKdfvZOL8GIkwZQrXNB
|
||||
Ts2f4VP1dahuxuHYlmlwlpdT84JKZlDloUrDOgx0D707Z+ybUrTFjqaQjp/ZfybQ
|
||||
QLiYfK/6v7K7rOh8WyeWWunDo8uYlZWmtmzAQU9IQimYWepZ4/O+yfWnUVRGvYMD
|
||||
daALrNaj5MO41J13Y5sXDdl++yTCbujJ+xTDHKfjoJ+KpEuLa8VzWjJYAjm+TSXK
|
||||
gWObOxpnrb4sW2bB2pPtwQoOKd3tXYW2bRKJHGt2pVzgyGUjZ1yGKFS04+cg9OpP
|
||||
ePFtS4aTKVTMIe7BHwPA1fhu2efqmfP0vSY0EmRHuk9GIqo1r5EiC94xOcAuLkPG
|
||||
RquMQr+moD27JrhhlF9vw/Z9pr6gZ+hUDYGbE0913F1mjdtYp1lBmaLysLwpI0lH
|
||||
PUZdFdejCbnvPfH9EVxNRgbM5J/yzfRB//QRnufpjC2OgB6zTnifsYIOOSYHYgCK
|
||||
4DLrin74j4YiUGm49wuTwdqk52B8bkDzx4cWwIpJWYIeQC2xMrR/RvdrDMxt1Frg
|
||||
k5es0NHMWAzd2C2PRS2fmvuUdq2+QZRe721TvoeFLMI05PnUrxOkz/din8BNWtsN
|
||||
AoBCi3FdAgMBAAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRI
|
||||
6WaWbdVLxOTffYdPlqd7zAw+7TCB3QYDVR0jBIHVMIHSgBRI6WaWbdVLxOTffYdP
|
||||
lqd7zAw+7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYD
|
||||
VQQHEwJOQTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05X
|
||||
V19Sb290X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3
|
||||
b3JrZWR3ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRl
|
||||
ggEBMA4GA1UdDwEB/wQEAwIBBjBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vbm9m
|
||||
dXNzY29tcHV0aW5nLmNvbS9DQS9DUkwvTldXX1Jvb3RfQ0EuY3JsMEkGCCsGAQUF
|
||||
BwEBBD0wOzA5BggrBgEFBQcwAoYtaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20v
|
||||
Q0EvTldXX1Jvb3RfQ0EuY3J0MBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEARpj46yWBnbJIfqh7V9c1AWZmbzqogJynp5AqyC2e8Rp59dpPKJ60
|
||||
BC2WVUMsCHqyhl6oZwmn2Ejud+iodGo4IwdgDneFvQQAiF7TVTBnBRHnup3rLtTX
|
||||
zvqIBPyqBmrvZSjSfG0mStb3YWS41yj9bhsqy1qRTdXS+Ghc4I1DcOWu62NbhbP/
|
||||
UHPUEwCyPxEWLtxk0u8N8Hqmlr3qHHM53cKaOUUIn6VMtq2S0o39xWt7QuHWe3Aa
|
||||
COQYaAVQ60f9cZUmw7h31d3oen7nrlaaDAp7i1e4HuTb8+PzetoGjJ8xCt4cbnp0
|
||||
ThQFdVuaLszSiHpmsKPvdazIVjhvT7CTM5EydsDHZFA6cMmWjYYm5f9MXbiCSebC
|
||||
2q+2W2vO92yd/8JE3JCRc8A2Mi4RSw9SziN/MCvueorIFJXfawz3rARgk5KXKPNj
|
||||
DBHcxxaQOTCJHLblGsv+9S/ANnucOihQRPWPGKGr80Yy5wQ8TKnuElvzrOjyR2Cj
|
||||
HGqSX2ar1GnFtmDsfamnJ0kb+2Sbamt3slAxUM/Qc+SIWepVtSNb8IppWPCxmPOd
|
||||
QyUMRayfkkc2qdo3xyUV1zE/alMPK6k0epyZ0+lyTo+sVpyzVq/D1wS63pUXiK/f
|
||||
gB5/XW5AC1ngeN3DBlOc/R5mscyv4o4cHOauxMKjldGgGhqI0QnRSi4=
|
||||
-----END CERTIFICATE-----
|
@ -1,40 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHBDCCBOygAwIBAgIJALVEKS03soafMA0GCSqGSIb3DQEBBQUAMIHWMQswCQYD
|
||||
VQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UEBxMNTm90IFNw
|
||||
ZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UECxMKTldXIFZQ
|
||||
TiBDQTETMBEGA1UEAxMKTldXIFZQTiBDQTExMC8GCSqGSIb3DQEJARYiam9uYXRo
|
||||
b24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZTmV0d29ya2Vk
|
||||
IFdlYiBDZXJ0aWZpY2F0ZTAeFw0xMzEyMjMwMDAwMDBaFw0xODEyMjIyMzU5NTla
|
||||
MIHiMQswCQYDVQQGEwJBVTEWMBQGA1UECBMNTm90IFNwZWNpZmllZDEWMBQGA1UE
|
||||
BxMNTm90IFNwZWNpZmllZDEWMBQGA1UEChMNTmV0d29ya2VkIFdlYjETMBEGA1UE
|
||||
CxMKTldXIFZQTiBDQTEfMB0GA1UEAxMWdnBuLm5ldHdvcmtlZHdlYi5sb2NhbDEx
|
||||
MC8GCSqGSIb3DQEJARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNv
|
||||
bTEiMCAGA1UEDRMZTmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBAKE3y+wq5woYZr0rDBXxzJz4dGFPAeQdC7Hg
|
||||
PwUEIvTk6FooNLdnDyf52KQPCsa4HmuM3PbR3oz0Hwn0PL7bNaSzmccAcSQejuij
|
||||
WQHSGvOiYDLKrjNmwGAyVflQDcN7q5hm27A4Ltio+DBqLZkE6MCg958ThysHaHiR
|
||||
dIMiYDeDba9lUv5H4Zaud+8eEAwDa5VJUxr4D+Wbzikc4vsCZFBwdByInWdpGMMC
|
||||
Hyz3dQJmlW988rq3inB7LkMBCn/TOlG/RZb9b2pyoow8A+YiL0tWSa57WqELgSlC
|
||||
YPx66bjZa03Nm8VzDPePgh8zFPlKBp9iXHDYQ+NH4GgPror/Cx0ASMcDl+6Bu4Kg
|
||||
F4pHvOopAplKPPNC8AFBxTjyBzPpK6x5hLRiPGOuu8259QmG7QTya9fBlzF3/uky
|
||||
b+g7CjZ0tSycZdf2wA599p4/ossQab01cnLapqSyx7N2EZNAtWpsNdq0SGaiIvjh
|
||||
xLMmSLlaht5GV7qSRQ2ho+/Rn6JWSnrmVbA39olIqhwwQM+TZVnekKXAQwARDWLF
|
||||
XNBWwueJnU/OivVOkJbHtiCHtq2bJIcQd0ZOix9SWsiXvCNZBxzZS2t4R4m5re5W
|
||||
FkwYxCz+C3NFdCzEF2inaXjRWckMq72HZYHuZUOE7tYRKYZ4pl0d7ejl0zgm2cee
|
||||
Hb2RyuixAgMBAAGjgcYwgcMwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBaAwPwYD
|
||||
VR0fBDgwNjA0oDKgMIYuaHR0cDovL25vZnVzc2NvbXB1dGluZy5jb20vQ0EvQ1JM
|
||||
L05XV1ZQTkNBLmNybDBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAKGKmh0dHA6
|
||||
Ly9ub2Z1c3Njb21wdXRpbmcuY29tL0NBL05XV1ZQTkNBLmNydDAdBgNVHQ4EFgQU
|
||||
lFo7HaYd3NgW2Z8m3bU2UE/ufk4wDQYJKoZIhvcNAQEFBQADggIBAIEWGvihO55D
|
||||
qusXDmFPNPqd1HQ3pj+MSuxiuWG8DKW5f0Px6Wvhc1jKevPIu7ng1B2COfGcmjDD
|
||||
Os1YKr+r/T7FS+gzT4yDe7kwsehAF/+TrtbIF9cBv3zKqhnlVLHTYgn0td1fZFxT
|
||||
/Q+yfie+fSzOl9Xt149F7HWvikLlqaKDyjTpCnz0q5Mnr2MZvjxgSGEybxS/RvI5
|
||||
j4NY8z1d/JSI5eMeegi4ZKkGTiO6BqLCRvtL4LAFq4WbmrgxMmteBshACtxAy4fq
|
||||
Uofzjx6ZmHic2npRIaTCVHG+WP0bmoDHQEYiwuZLIqFLLMsJ5fa8ovWcyH7EWpfJ
|
||||
8vX053lctyH8ui1ONL+vfjX6WPjBcAfZsuso8TurckzftPDJXPbz1ScpFaaIbfiA
|
||||
F2c2DQwfhF8HU/bnaSKvsb5dqnQqiZxiaWmevs7ZPoj9TCKSIbgund7eLLwRlZno
|
||||
ZY9/Bf292Bn/8vn+utZcx83S9h0VJHZnJgvYqpKdvo/7YEN2yd05SMeXtxHugUfh
|
||||
kzNRXp5yTGfj8NNEJp0ksSPy+Z+5OPgzQzw+VSdXuFI8Tjrjjmbf3hAAi8cCI42O
|
||||
MbsoDUZr9tauqg2jTjNnX728FrkIPWfOTp1yWRnSd2/PA+aPIJNSSd5Q3tzWZZ7r
|
||||
B062YXDRqRM8GzHVoEmSwxQJWNZw9UTJ
|
||||
-----END CERTIFICATE-----
|
@ -1,43 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHpzCCBY+gAwIBAgIINsj7HlzAfYswDQYJKoZIhvcNAQELBQAwgbAxCzAJBgNV
|
||||
BAYTAkFVMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkExDDAKBgNVBAoTA05XVzEM
|
||||
MAoGA1UECxMDTldXMRQwEgYDVQQDDAtOV1dfUm9vdF9DQTExMC8GCSqGSIb3DQEJ
|
||||
ARYiam9uYXRob24ubG9ja3dvb2RAbmV0d29ya2Vkd2ViLmNvbTEiMCAGA1UEDRMZ
|
||||
TmV0d29ya2VkIFdlYiBDZXJ0aWZpY2F0ZTAeFw0xNTEwMjcwMDAwMDBaFw0yMDEw
|
||||
MjYyMzU5NTlaMIGjMQswCQYDVQQGEwJBVTELMAkGA1UECBMCTkExCzAJBgNVBAcT
|
||||
Ak5BMQwwCgYDVQQKEwNOV1cxEDAOBgNVBAsTB1BlZ2FzdXMxFzAVBgNVBAMMDlBl
|
||||
Z2FzdXNfVlBOX0NBMSgwJgYJKoZIhvcNAQkBFhlpbnRlcm5hbEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMRcwFQYDVQQNDA5QZWdhc3VzX1ZQTl9DQTCCAiIwDQYJKoZIhvcNAQEB
|
||||
BQADggIPADCCAgoCggIBAMjkj6nShoH9YfKCa8MbQFV0dqkoHuuv11W7IcvL4isR
|
||||
NrLshe8zlB3v9cGsaWot9zu+tbcX71SW+2vdlCTuNerdlOQIiMntjkbHPG8iwjZu
|
||||
WHpu/DqZv9BJjfIuCWWb3eTw6DuvQTo3Lwauh7z/Vp8IKPmoloAVnj8rZizVqWxV
|
||||
cJwPD3vKJAKtbtZkfC7dgWFPRWTtX26DVV/EmhICinE/KmkfckLxKdkpuyejiHz8
|
||||
uduweS9Wfj21mgsWKeSYkzONGr04YmYxCLWGqyqwQ+ZsNRJWdRFBHKwKwH3k01I8
|
||||
Ce6/tpNZYQLYykUHTCpjHW4UuvkXFo2SK9ilJ5bUze5qedYrFMXsGJoWgw+xCYtZ
|
||||
QkFQmFNXFk1oplVwK/8Jnn3mfEpsbtQBW4RAyOTETRlWpe+n+/BgZNPdncODXWN0
|
||||
Gvtg4guxftdNesXd+6e4R7tC2GX8sqxOzNji64KxAoiMPK0qwhyFKegD7iuMC/LC
|
||||
D2KhFNxjRHkJIe1MfvPAZPygiQYPbNatVLzRSaS8Uj132IUfqqCPyrKNg/rJb6Yh
|
||||
Ovlf/jEMUaEzH9xUmlOEiKf2yyXrw6vTWhtkYCNCyronLblFc+NiwSzCxcINMlX+
|
||||
hj8zg49wQC/80QjwdHbz2KP9sLzFtuURFjRdpfYFaiI7iWapo+eHYq6OKq4nH1Z1
|
||||
AgMBAAGjggHOMIIByjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRBbMbXhzlI
|
||||
dbRsB2xNIPbP2kCbETCB4gYDVR0jBIHaMIHXgBRI6WaWbdVLxOTffYdPlqd7zAw+
|
||||
7aGBtqSBszCBsDELMAkGA1UEBhMCQVUxCzAJBgNVBAgTAk5BMQswCQYDVQQHEwJO
|
||||
QTEMMAoGA1UEChMDTldXMQwwCgYDVQQLEwNOV1cxFDASBgNVBAMMC05XV19Sb290
|
||||
X0NBMTEwLwYJKoZIhvcNAQkBFiJqb25hdGhvbi5sb2Nrd29vZEBuZXR3b3JrZWR3
|
||||
ZWIuY29tMSIwIAYDVQQNExlOZXR3b3JrZWQgV2ViIENlcnRpZmljYXRlggYgFRAn
|
||||
FiYwDgYDVR0PAQH/BAQDAgEGMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9ub2Z1
|
||||
c3Njb21wdXRpbmcuY29tL0NBL0NSTC9QZWdhc3VzX1ZQTl9DQS5jcmwwSQYIKwYB
|
||||
BQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vbm9mdXNzY29tcHV0aW5nLmNv
|
||||
bS9DQS9OV1dfUm9vdF9DQS5jcnQwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQCGuevjkXLiEC03sX0Iu1oV8IgrRv76agQseJs/s+xBJ2NznjT8
|
||||
xsZX7QmpAJ1tdOtiwQwggF04KHj6rlt0PbA2MHjz1uB148pep8DpF/z+iCW8exA8
|
||||
iIBjRK9A339Q8gM8jJRBoz6I3Ipwkx+06+DWs73fwW2Y1PgHg445GB1ToN3cKS54
|
||||
YomZUA1yagdBiDXriPReFQPBTk18dyA8ZIoVse1J4HgGr5i+5for6IK1C7w2UoTh
|
||||
55sEP44VskYpAZCaCd531OVgruw+SixhOJbHS/j/smN1WinLEptBKi7LY+nLJtiE
|
||||
BEDiexeXwlfZWBTSs34yDIn8JBtOLYd1Ur/kB/j4Wbs7xT9RJ1VhTDFZcOB3rREj
|
||||
comhcuWsbQegdt9M0DWZdriZzgzGQBm5dqFnp6FAG4tOjAGr24TP6tsq9sbS1Eyk
|
||||
5snwE70mTQ9bCDFU4Re+bVfAIFDfY9HF822ZgMdy1BQw/S5a2YoRMZtYaZFGYidp
|
||||
VNk/ICnl6ELlg6ZlPAiAn2PaBICTtzlt/TpznAFEvxlvc7tsc0HsDKVT0n+T8wv3
|
||||
yp0rbgrQrJlI+Z9nl+g3ZHDc9mQXbcIWBkUFUoIsTUwdGExXypWDIlQ86pqyLFnl
|
||||
42BzmL9mpf862aHybxCBOEre2uBUhFGWTTjNm7kjItM5SGQGUq7EAd1p6w==
|
||||
-----END CERTIFICATE-----
|
@ -1,52 +0,0 @@
|
||||
<!doctype html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>Home [No Fuss Computing]</title>
|
||||
|
||||
<meta name="robots" content="index,follow"/>
|
||||
<meta name="description" content="Here at No Fuss Computing we predominately do research and development into, making your computing experience a more enjoyable one. See our projects page to find out what we are working on."/>
|
||||
|
||||
<meta property="og:locale" content="en_US"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:title" content="Home [No Fuss Computing]"/>
|
||||
<meta property="og:description" content="Here at No Fuss Computing we predominately do research and development into, making your computing experience a more enjoyable one. See our projects page to find out what we are working on."/>
|
||||
<meta property="og:url" content="http://nofusscomputing.com/"/>
|
||||
<meta property="og:site_name" content="No Fuss Computing"/>
|
||||
<meta property="og:image" content="images/nfc_header.png"/>
|
||||
|
||||
|
||||
<link rel="canonical" href="http://nofusscomputing.com/"/>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
.StatusMessage {
|
||||
font-size: 36px;
|
||||
color: #FF0000;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div align="center">
|
||||
<p><img src="images/nfc_header.png" width="300" height="100"></p>
|
||||
<br>
|
||||
<p>View us at other locations</p>
|
||||
<p>
|
||||
<a href="https://hub.docker.com/u/nofusscomputing" target="_new"><img height="32" width="32" src="https://simpleicons.org/icons/docker.svg" width="40" height="40" style="background: #2496ED;"> - Docker Hub</a><br>
|
||||
<a href="https://github.com/NoFussComputing" target="_new"><img height="32" width="32" src="https://simpleicons.org/icons/github.svg" width="40" height="40" style="background: #FFFFFF;"> - GitHub</a><br>
|
||||
<a href="https://gitlab.com/nofusscomputing" target="_new"><img height="32" width="32" src="https://simpleicons.org/icons/gitlab.svg" width="40" height="40" style="background: #FCA121;"> - Gitlab</a><br>
|
||||
<a href="https://www.facebook.com/NoFussComputing" target="_new"><img height="32" width="32" src="https://simpleicons.org/icons/facebook.svg" width="40" height="40" style="background: #1877F2;"> - FaceBook</a><br>
|
||||
<a href="https://readthedocs.org/profiles/nofusscomputing/" target="_new"><img height="32" width="32" src="https://simpleicons.org/icons/readthedocs.svg" width="40" height="40" style="background: #8CA1AF;"> - Read the Docs</a><br>
|
||||
</p>
|
||||
<br>
|
||||
<br>
|
||||
<p>© 2007-2021</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,7 +0,0 @@
|
||||
mkdocs-minify-plugin==0.5.0
|
||||
mkdocs-material-extensions==1.0.3
|
||||
wheel
|
||||
mkdocs-material==8.1.7
|
||||
./custom-plugins/mkdocs-plugin-tags
|
||||
mkdocs-git-revision-date-localized-plugin==0.11.1
|
||||
pymdown-extensions==9.1
|
@ -89,18 +89,22 @@ class Data:
|
||||
|
||||
url = link.get_attribute('href')
|
||||
|
||||
link = self.parse_url(url)
|
||||
if 'gitlab.com/-/ide/project' not in url: # ignore gitlab ide links
|
||||
|
||||
hyperlink_source_file = {'name': source_file, 'location': link_location}
|
||||
if 'nofusscomputing.com' not in url: # ignore gitlab ide links
|
||||
|
||||
if link['url_id'] in data['hyperlinks']:
|
||||
link = self.parse_url(url)
|
||||
|
||||
data['hyperlinks'][link['url_id']]['source_files'].append(hyperlink_source_file)
|
||||
hyperlink_source_file = {'name': source_file, 'location': link_location}
|
||||
|
||||
else:
|
||||
if link['url_id'] in data['hyperlinks']:
|
||||
|
||||
link['source_files'] = [ hyperlink_source_file ]
|
||||
data['hyperlinks'][link['url_id']] = link
|
||||
data['hyperlinks'][link['url_id']]['source_files'].append(hyperlink_source_file)
|
||||
|
||||
else:
|
||||
|
||||
link['source_files'] = [ hyperlink_source_file ]
|
||||
data['hyperlinks'][link['url_id']] = link
|
||||
|
||||
|
||||
events = [self.process_browser_log_entry(entry) for entry in self.driver.get_log('performance')]
|
||||
|
@ -13,7 +13,11 @@ class Test:
|
||||
|
||||
|
||||
def setup_method(self):
|
||||
pass
|
||||
self.ignore_url_alive_check = {
|
||||
'gitlab.com': [
|
||||
'nofusscomputing/infrastructure/website/-/new/development'
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -36,12 +40,29 @@ class Test:
|
||||
packages.urllib3.disable_warnings(category=InsecureRequestWarning)
|
||||
|
||||
request = get(data['url'], verify=False)
|
||||
skip_test = False
|
||||
|
||||
print(str(data) + str(request.status_code))
|
||||
|
||||
assert request.status_code == 200, (
|
||||
f"Hyperlink [{data['url_id']}] to location [{data['url']}] failed,"
|
||||
f"with status [{request.status_code}].")
|
||||
|
||||
if data['domain'] in self.ignore_url_alive_check:
|
||||
if data['request_path'] in self.ignore_url_alive_check[data['domain']]:
|
||||
skip_test = True
|
||||
|
||||
|
||||
if not skip_test:
|
||||
|
||||
assert (
|
||||
request.status_code == 200
|
||||
or
|
||||
request.status_code == 401
|
||||
or
|
||||
request.status_code == 403
|
||||
), (
|
||||
f"Hyperlink [{data['url_id']}] to location [{data['url']}] failed,"
|
||||
f"with status [{request.status_code}].")
|
||||
else:
|
||||
assert True
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"/></svg>
|
Before Width: | Height: | Size: 663 B |
@ -1,31 +0,0 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
{{ page.content }}
|
||||
{% set blog_posts = [] %}
|
||||
{% for page in nav.pages %}
|
||||
{% if page.url.startswith(config.extra.blog.dir) and page.meta.date is defined %}
|
||||
<!-- or "" suppresses "None" output-->
|
||||
{{ blog_posts.append( page ) or "" }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for page in (blog_posts|sort(attribute="meta.date", reverse=True))[:config.extra.blog.list_length] %}
|
||||
<h2><a href="{{ page.url|url }}">{{ page.title }}</a></h2>
|
||||
<hr>
|
||||
{% include "partials/blog_metadata.html" %}
|
||||
<p>
|
||||
{{ page.meta.description }}
|
||||
</p>
|
||||
<!-- Use a hidden p tag to provide a preview -->
|
||||
{% if config.extra.blog.extended_preview %}
|
||||
<a href="{{ page.url|url }}#more">
|
||||
<span class="twemoji">
|
||||
{% include ".icons/octicons/arrow-right-24.svg" %}
|
||||
</span>
|
||||
Continue reading
|
||||
<hr>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
@ -1,8 +0,0 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
{% include "partials/blog_metadata.html" %}
|
||||
<hr>
|
||||
{{ page.content }}
|
||||
{% endblock %}
|