├── 07.volumes ├── tmp │ └── .gitkeep ├── write_artifact.sh ├── Dockerfile ├── codeship-steps.yml └── codeship-services.yml ├── 02.redis ├── .ruby-version ├── codeship-steps.yml ├── Gemfile ├── codeship-services.yml ├── Gemfile.lock ├── Dockerfile └── check.rb ├── 11.encrypted-aes ├── run.txt ├── codeship.aes ├── Dockerfile ├── check_for_foo.sh ├── codeship-steps.yml ├── environment ├── codeship-services.yml ├── environment.encrypted.ci └── environment.encrypted ├── 03.redis-postgres ├── .ruby-version ├── codeship-steps.yml ├── Gemfile ├── codeship-services.yml ├── Gemfile.lock ├── Dockerfile └── check.rb ├── 08.deployment-container ├── .gitignore ├── Dockerfile ├── Dockerfile.build ├── Dockerfile.builder ├── write_artifact.sh ├── Dockerfile.app1 ├── Dockerfile.app2 ├── build_with_docker.sh ├── codeship-steps.yml └── codeship-services.yml ├── 20.build-args ├── build_args ├── build_args.encrypted ├── codeship-steps.yml ├── codeship-services.yml ├── Dockerfile ├── test-build-arg.sh └── README.md ├── 01.dockerfile ├── Dockerfile ├── codeship-steps.yml └── codeship-services.yml ├── .gitignore ├── 04.parallelised ├── codeship-services.yml └── codeship-steps.yml ├── 09.branch-only ├── codeship-services.yml └── codeship-steps.yml ├── 10.lots-of-parallel ├── codeship-services.yml └── codeship-steps.yml ├── 22.working_dir ├── Dockerfile ├── script.sh ├── codeship-steps.yml └── codeship-services.yml ├── 23.depends_on ├── codeship-steps.yml ├── Dockerfile ├── codeship-services.yml └── wait.sh ├── 24.healthchecks ├── Dockerfile ├── codeship-services.yml ├── codeship-steps.yml ├── Dockerfile.elasticsearch └── elasticsearch-healthcheck ├── 14.add_docker ├── codeship-steps.yml └── codeship-services.yml ├── 15.parallel-output-to-volume ├── Dockerfile ├── compute.sh ├── print.sh ├── codeship-services.yml ├── codeship-steps.yml └── files │ ├── 1 │ ├── 10 │ ├── 11 │ ├── 12 │ ├── 13 │ ├── 14 │ ├── 15 │ ├── 16 │ ├── 17 │ ├── 18 │ └── 19 ├── 18.load-balancer ├── codeship-steps.yml ├── Dockerfile.app ├── Dockerfile.lb ├── Dockerfile.ci ├── nginx.conf ├── app.go ├── README.md ├── codeship-services.yml └── ab-with-backoff.sh ├── 16.docker_push ├── before.sh ├── Dockerfile ├── after.sh ├── codeship-services.yml ├── codeship-steps.yml └── README.md ├── 19.dockercfg-service ├── before.sh ├── Dockerfile ├── Dockerfile.generator ├── after.sh ├── codeship-steps.yml ├── dump_default_dockercfg.sh └── codeship-services.yml ├── 05.matrix ├── codeship-steps.yml └── codeship-services.yml ├── 06.matrix-complex ├── codeship-services.yml └── codeship-steps.yml ├── dockercfg.env.encrypted ├── dockercfg.encrypted ├── 17.caching └── README.md ├── Makefile ├── README.md ├── LICENSE.txt ├── CODE_OF_CONDUCT.md ├── codeship-services.yml └── codeship-steps.yml /07.volumes/tmp/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /02.redis/.ruby-version: -------------------------------------------------------------------------------- 1 | 2.6.2 2 | -------------------------------------------------------------------------------- /11.encrypted-aes/run.txt: -------------------------------------------------------------------------------- 1 | jet steps 2 | -------------------------------------------------------------------------------- /03.redis-postgres/.ruby-version: -------------------------------------------------------------------------------- 1 | 2.6.2 2 | -------------------------------------------------------------------------------- /08.deployment-container/.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | -------------------------------------------------------------------------------- /08.deployment-container/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | -------------------------------------------------------------------------------- /20.build-args/build_args: -------------------------------------------------------------------------------- 1 | FROMFILE=supersecret 2 | -------------------------------------------------------------------------------- /01.dockerfile/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ruby:2.2.0 2 | COPY . /app 3 | -------------------------------------------------------------------------------- /07.volumes/write_artifact.sh: -------------------------------------------------------------------------------- 1 | echo "`date`" > /artifacts/foo 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | deployment-container/tmp 2 | tmp 3 | codeship.aes 4 | -------------------------------------------------------------------------------- /04.parallelised/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | image: busybox 3 | -------------------------------------------------------------------------------- /09.branch-only/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | image: busybox 3 | -------------------------------------------------------------------------------- /11.encrypted-aes/codeship.aes: -------------------------------------------------------------------------------- 1 | E6kwQsGsIGMWrDQYmfnUcnHb+Yq2slOHH4/IBkVzaHo= -------------------------------------------------------------------------------- /07.volumes/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu 2 | 3 | COPY . /app 4 | WORKDIR /app 5 | -------------------------------------------------------------------------------- /10.lots-of-parallel/codeship-services.yml: -------------------------------------------------------------------------------- 1 | busybox: 2 | image: busybox 3 | -------------------------------------------------------------------------------- /11.encrypted-aes/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | 3 | COPY check_for_foo.sh . 4 | -------------------------------------------------------------------------------- /11.encrypted-aes/check_for_foo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | printenv | grep FOO 4 | -------------------------------------------------------------------------------- /22.working_dir/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | 3 | COPY ./script.sh /home 4 | -------------------------------------------------------------------------------- /22.working_dir/script.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -e 4 | 5 | echo "foo" 6 | -------------------------------------------------------------------------------- /23.depends_on/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: app 2 | command: ./wait.sh 3 | -------------------------------------------------------------------------------- /22.working_dir/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: app 2 | command: ./script.sh 3 | -------------------------------------------------------------------------------- /24.healthchecks/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.7 2 | 3 | RUN apk add --update curl 4 | -------------------------------------------------------------------------------- /02.redis/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: demo 2 | command: bundle exec ruby check.rb 3 | -------------------------------------------------------------------------------- /20.build-args/build_args.encrypted: -------------------------------------------------------------------------------- 1 | jwTFNIVjrBWZIrghr4r4nuZ38XonE5rI8/Ox+MWBGSjGVn/yLg== -------------------------------------------------------------------------------- /22.working_dir/codeship-services.yml: -------------------------------------------------------------------------------- 1 | app: 2 | build: . 3 | working_dir: /home 4 | -------------------------------------------------------------------------------- /08.deployment-container/Dockerfile.build: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | 3 | ADD write_artifact.sh . 4 | -------------------------------------------------------------------------------- /11.encrypted-aes/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: checker 2 | command: ./check_for_foo.sh 3 | -------------------------------------------------------------------------------- /20.build-args/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: app 2 | command: /app/test-build-arg.sh 3 | 4 | -------------------------------------------------------------------------------- /14.add_docker/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: adddocker 2 | command: docker run busybox echo hello 3 | -------------------------------------------------------------------------------- /11.encrypted-aes/environment: -------------------------------------------------------------------------------- 1 | # jet encrypt environment environment.encrypted 2 | FOO=bar 3 | BAZ=bat 4 | -------------------------------------------------------------------------------- /14.add_docker/codeship-services.yml: -------------------------------------------------------------------------------- 1 | adddocker: 2 | image: docker:stable-dind 3 | add_docker: true 4 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:trusty 2 | 3 | RUN mkdir -p /app 4 | COPY . /app/ 5 | -------------------------------------------------------------------------------- /18.load-balancer/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - name: ci 2 | service: test 3 | command: ./ab-with-backoff.sh 4 | -------------------------------------------------------------------------------- /02.redis/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | ruby '2.6.2' 4 | 5 | gem 'redis' 6 | gem 'retriable' 7 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/compute.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sha512sum "${1}" > "${2}/$(basename "${1}").out" 4 | -------------------------------------------------------------------------------- /16.docker_push/before.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | docker run -d --cidfile ./registry.cid -p 5000:5000 registry:2 3 | 4 | -------------------------------------------------------------------------------- /23.depends_on/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.7 2 | 3 | RUN apk add --update curl 4 | 5 | COPY ./wait.sh /wait.sh 6 | -------------------------------------------------------------------------------- /03.redis-postgres/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - name: ruby 2 | service: demo 3 | command: bundle exec ruby check.rb 4 | -------------------------------------------------------------------------------- /11.encrypted-aes/codeship-services.yml: -------------------------------------------------------------------------------- 1 | checker: 2 | build: ./ 3 | encrypted_env_file: environment.encrypted 4 | -------------------------------------------------------------------------------- /18.load-balancer/Dockerfile.app: -------------------------------------------------------------------------------- 1 | FROM golang:1.5.1 2 | 3 | WORKDIR /app 4 | ADD . ./ 5 | RUN go build -o app . 6 | -------------------------------------------------------------------------------- /19.dockercfg-service/before.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | docker run -d --cidfile ./registry.cid -p 5000:5000 registry 3 | 4 | -------------------------------------------------------------------------------- /08.deployment-container/Dockerfile.builder: -------------------------------------------------------------------------------- 1 | FROM docker:1.9-dind 2 | 3 | RUN mkdir -p /app 4 | WORKDIR /app 5 | ADD . . 6 | -------------------------------------------------------------------------------- /09.branch-only/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: demo 2 | tag: master 3 | command: echo "SHOULD ONLY RUN ON MASTER" 4 | -------------------------------------------------------------------------------- /08.deployment-container/write_artifact.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mkdir -p /data 3 | echo "Writing artifact" 4 | date > /data/date 5 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/print.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for file in $(ls "${1}"); do 4 | cat "${1}/${file}" 5 | done 6 | -------------------------------------------------------------------------------- /18.load-balancer/Dockerfile.lb: -------------------------------------------------------------------------------- 1 | FROM nginx:1.9.4 2 | 3 | RUN rm /etc/nginx/conf.d/* 4 | ADD nginx.conf /etc/nginx/conf.d/ 5 | -------------------------------------------------------------------------------- /05.matrix/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: matrix 2 | services: 3 | - demo1 4 | - demo2 5 | steps: 6 | - command: env 7 | -------------------------------------------------------------------------------- /08.deployment-container/Dockerfile.app1: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | 3 | RUN mkdir -p /app 4 | WORKDIR /app 5 | ADD ./tmp/date /app/date 6 | -------------------------------------------------------------------------------- /08.deployment-container/Dockerfile.app2: -------------------------------------------------------------------------------- 1 | FROM busybox 2 | 3 | RUN mkdir -p /app 4 | WORKDIR /app 5 | ADD ./tmp/date /app/date 6 | -------------------------------------------------------------------------------- /03.redis-postgres/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | ruby '2.6.2' 4 | 5 | gem 'redis' 6 | gem 'pg' 7 | gem 'retriable' 8 | -------------------------------------------------------------------------------- /07.volumes/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: write 2 | command: bash write_artifact.sh 3 | - service: read 4 | command: cat /artifacts/foo 5 | -------------------------------------------------------------------------------- /16.docker_push/Dockerfile: -------------------------------------------------------------------------------- 1 | # base on latest ubuntu base image 2 | FROM ubuntu 3 | 4 | #do the thing 5 | RUN touch /codeship-docker-push-example 6 | -------------------------------------------------------------------------------- /11.encrypted-aes/environment.encrypted.ci: -------------------------------------------------------------------------------- 1 | +ZyVpxteKoaFj51u3oJHJ9yAICGDwHFaOKWAMx20sodsNS1VbDE2t44d7+9xrCIICNwXJ/kDAcrJZCJ+SaDxo5twg8t04WvsV5HYpqq+JE0= -------------------------------------------------------------------------------- /19.dockercfg-service/Dockerfile: -------------------------------------------------------------------------------- 1 | # base on latest ubuntu base image 2 | FROM ubuntu 3 | 4 | #do the thing 5 | RUN touch /codeship-docker-push-example 6 | -------------------------------------------------------------------------------- /19.dockercfg-service/Dockerfile.generator: -------------------------------------------------------------------------------- 1 | FROM ubuntu 2 | 3 | ADD dump_default_dockercfg.sh ./ 4 | 5 | ENTRYPOINT ["./dump_default_dockercfg.sh"] 6 | -------------------------------------------------------------------------------- /08.deployment-container/build_with_docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | cp /data/date ./tmp/date 5 | docker build -t 08testimage1 -f Dockerfile.app1 ./ 6 | -------------------------------------------------------------------------------- /23.depends_on/codeship-services.yml: -------------------------------------------------------------------------------- 1 | server: 2 | image: python 3 | command: python3 -m http.server 4 | app: 5 | build: . 6 | depends_on: 7 | - server 8 | -------------------------------------------------------------------------------- /11.encrypted-aes/environment.encrypted: -------------------------------------------------------------------------------- 1 | 6UU+0y1kdnR2CqcxLQ9WYwBtv0EjbbGfKLw994VzfZC7XA27dFIZygdU8ylr236OtuQ+PA/PUE11HPObTgWewgAl3zcIxvJKKEJcUAbnn3n0Ns0zw291nA8/EergAWKoog8P -------------------------------------------------------------------------------- /15.parallel-output-to-volume/codeship-services.yml: -------------------------------------------------------------------------------- 1 | data: 2 | image: busybox 3 | volumes: 4 | - /data 5 | app: 6 | build: . 7 | volumes_from: 8 | - data 9 | -------------------------------------------------------------------------------- /18.load-balancer/Dockerfile.ci: -------------------------------------------------------------------------------- 1 | FROM debian:9 2 | 3 | RUN apt-get update && apt-get install -y apache2-utils curl 4 | 5 | ADD ./ab-with-backoff.sh ./ab-with-backoff.sh 6 | -------------------------------------------------------------------------------- /02.redis/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | build: 3 | image: myapp 4 | dockerfile_path: Dockerfile 5 | links: 6 | - redis 7 | redis: 8 | image: redis:3.2.8 9 | -------------------------------------------------------------------------------- /05.matrix/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo1: 2 | image: busybox 3 | environment: 4 | OUTPUT: test1 5 | demo2: 6 | image: busybox 7 | environment: 8 | OUTPUT: test2 9 | -------------------------------------------------------------------------------- /16.docker_push/after.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -e registry.cid ]; then 4 | CID=`cat registry.cid` 5 | docker stop $CID 6 | docker rm $CID 7 | rm registry.cid 8 | fi 9 | -------------------------------------------------------------------------------- /06.matrix-complex/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo1: 2 | image: busybox 3 | environment: 4 | OUTPUT: test1 5 | demo2: 6 | image: busybox 7 | environment: 8 | OUTPUT: test2 9 | -------------------------------------------------------------------------------- /19.dockercfg-service/after.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -e registry.cid ]; then 4 | CID=`cat registry.cid` 5 | docker stop $CID 6 | docker rm $CID 7 | rm registry.cid 8 | fi 9 | -------------------------------------------------------------------------------- /24.healthchecks/codeship-services.yml: -------------------------------------------------------------------------------- 1 | elasticsearch: 2 | build: 3 | dockerfile: Dockerfile.elasticsearch 4 | 5 | app: 6 | build: . 7 | depends_on: 8 | - elasticsearch 9 | -------------------------------------------------------------------------------- /24.healthchecks/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: app 2 | name: elasticsearch 3 | command: curl -sL elasticsearch:9200 # no need for custom script to check if elasticsearch service is up 4 | 5 | -------------------------------------------------------------------------------- /16.docker_push/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | build: 3 | image: localhost:5000/myapp 4 | dockerfile_path: Dockerfile 5 | registry: 6 | image: registry 7 | ports: 8 | - "5000:5000" 9 | -------------------------------------------------------------------------------- /01.dockerfile/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: demodockerfile 2 | command: ruby --version 3 | - service: demohub 4 | command: ruby --version 5 | - service: demodockerfiledockercompose 6 | command: ls /app 7 | -------------------------------------------------------------------------------- /01.dockerfile/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demodockerfile: 2 | build: 3 | image: demodockerfile 4 | dockerfile_path: Dockerfile 5 | demodockerfiledockercompose: 6 | build: . 7 | demohub: 8 | image: ruby:2.2.0 9 | -------------------------------------------------------------------------------- /dockercfg.env.encrypted: -------------------------------------------------------------------------------- 1 | qxlj7T4dP8WAZEcDCIKSuAHecwKmE+wwU6VVKWXZHnUAowSdieLb6yT/FzOTZ7eFJxbEQPWSUGZi93g0zyToRK11P/0KPqni3P/Epzmq0ooYO++Tfpu1sEAmlCMH/dZjlI9bsaYd4EcIRTlJumVzp+bm3ldx9hEo1tTTF/pgNf05cH7lbQhgL8Eyvoe87sOADuHG -------------------------------------------------------------------------------- /18.load-balancer/nginx.conf: -------------------------------------------------------------------------------- 1 | upstream app { 2 | server app1:3000; 3 | server app2:3000; 4 | } 5 | 6 | server { 7 | listen 0.0.0.0:80; 8 | 9 | location / { 10 | proxy_pass http://app; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /24.healthchecks/Dockerfile.elasticsearch: -------------------------------------------------------------------------------- 1 | FROM elasticsearch:6.4.1 2 | 3 | COPY elasticsearch-healthcheck /usr/local/bin/ 4 | 5 | HEALTHCHECK --interval=30s --timeout=10s --start-period=30s CMD ["elasticsearch-healthcheck"] 6 | -------------------------------------------------------------------------------- /dockercfg.encrypted: -------------------------------------------------------------------------------- 1 | jbnYf3pOWDnYLtPEj96DjINvK2V/dkDf9WtNb9f3Ruol+Fg0qHLCnsJnsLEXhPCW13YSKkmPSkm4GWQmGvLsXEvh1pFPLSN0nvzS0GcYRDknyvVn/D4QStVdThOQ41UGKVIKMcIwZCaPrhbymuCtEiYkdKukaX8lAu1Q1eC1oxo/34QVZDmcXiXK+QnBk0BAD7FHODCSkdyfMlPFTqOXVML9uml9o3OJUTDUYzI= -------------------------------------------------------------------------------- /03.redis-postgres/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | build: 3 | image: myapp 4 | dockerfile_path: Dockerfile 5 | links: 6 | - redis 7 | - postgres 8 | redis: 9 | image: redis:3.2.8 10 | postgres: 11 | image: postgres:9.3.6 12 | -------------------------------------------------------------------------------- /19.dockercfg-service/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: demo 2 | command: ls ./ 3 | - service: demo 4 | type: push 5 | name: docker_push 6 | image_name: localhost:5000/myapp 7 | registry: localhost:5000 8 | dockercfg_service: dockercfg_generator 9 | -------------------------------------------------------------------------------- /16.docker_push/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: demo 2 | command: ls ./ 3 | - service: demo 4 | type: push 5 | name: docker_push 6 | image_name: localhost:5000/myapp 7 | registry: localhost:5000 8 | #encrypted_dockercfg_path: ./.dockercfg.encrypted 9 | -------------------------------------------------------------------------------- /20.build-args/codeship-services.yml: -------------------------------------------------------------------------------- 1 | app: 2 | build: 3 | dockerfile: Dockerfile 4 | args: 5 | UNENCRYPTED: "foo" 6 | CI: "{{.Ci}}" 7 | encrypted_args: LXpZ6o5BvOBe9v9jBoHxmzvifYXPrEWY7fiHj9jDrd00VWeR1ZrWIXM4dILSA3dAIw== 8 | encrypted_args_file: build_args.encrypted 9 | -------------------------------------------------------------------------------- /02.redis/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | redis (3.3.3) 5 | retriable (3.0.1) 6 | 7 | PLATFORMS 8 | ruby 9 | 10 | DEPENDENCIES 11 | redis 12 | retriable 13 | 14 | RUBY VERSION 15 | ruby 2.4.0p0 16 | 17 | BUNDLED WITH 18 | 1.14.4 19 | -------------------------------------------------------------------------------- /07.volumes/codeship-services.yml: -------------------------------------------------------------------------------- 1 | write: 2 | build: 3 | image: demowrite 4 | dockerfile_path: Dockerfile 5 | volumes_from: 6 | - data 7 | read: 8 | image: busybox 9 | volumes_from: 10 | - data 11 | data: 12 | image: busybox 13 | volumes: 14 | - ./tmp:/artifacts 15 | -------------------------------------------------------------------------------- /19.dockercfg-service/dump_default_dockercfg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # writing aws docker creds to desired path 4 | echo "Writing Docker creds to $1" 5 | cat << EOF > "$1" 6 | { 7 | "auths": { 8 | "$REGISTRY": { 9 | "auth": "$AUTH", 10 | "email": "" 11 | } 12 | } 13 | } 14 | EOF 15 | 16 | -------------------------------------------------------------------------------- /20.build-args/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | ARG CI=default 4 | ARG UNENCRYPTED=default 5 | ARG ENCRYPTED=default 6 | ARG FROMFILE=default 7 | 8 | ENV CI=$CI 9 | ENV UNENCRYPTED=$UNENCRYPTED 10 | ENV ENCRYPTED=$ENCRYPTED 11 | ENV FROMFILE=$FROMFILE 12 | 13 | RUN mkdir /app 14 | COPY . /app 15 | -------------------------------------------------------------------------------- /23.depends_on/wait.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | function check() { 4 | curl server:8000 5 | } 6 | 7 | TIMEOUT=10 8 | COUNT=0 9 | until check || [ $COUNT -eq $TIMEOUT ] 10 | do 11 | sleep 1 12 | COUNT=$((COUNT+1)) 13 | done 14 | 15 | if [ $COUNT -eq $TIMEOUT ]; then 16 | echo "Timeout" && exit 1 17 | fi 18 | -------------------------------------------------------------------------------- /06.matrix-complex/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: matrix 2 | services: 3 | - demo1 4 | - demo2 5 | steps: 6 | - type: parallel 7 | steps: 8 | - command: sleep 4 9 | - command: sleep 2 10 | - type: serial 11 | steps: 12 | - command: sleep 3 13 | - command: env 14 | -------------------------------------------------------------------------------- /03.redis-postgres/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | pg (0.19.0) 5 | redis (3.3.3) 6 | retriable (3.0.1) 7 | 8 | PLATFORMS 9 | ruby 10 | 11 | DEPENDENCIES 12 | pg 13 | redis 14 | retriable 15 | 16 | RUBY VERSION 17 | ruby 2.4.0p0 18 | 19 | BUNDLED WITH 20 | 1.14.4 21 | -------------------------------------------------------------------------------- /19.dockercfg-service/codeship-services.yml: -------------------------------------------------------------------------------- 1 | demo: 2 | build: 3 | image: localhost:5000/myapp 4 | dockerfile_path: Dockerfile 5 | registry: 6 | image: registry 7 | ports: 8 | - "5000:5000" 9 | dockercfg_generator: 10 | build: 11 | image: dockercfg_generator 12 | dockerfile_path: Dockerfile.generator 13 | 14 | -------------------------------------------------------------------------------- /17.caching/README.md: -------------------------------------------------------------------------------- 1 | ## 17.caching 2 | 3 | [deprecated] 4 | 5 | This caching example has been deprecated because local builds running with the Jet CLI rely only on the local Docker registry. 6 | To learn more about how caching works, and how to use caching in your hosted builds, check out the [caching tutorial](https://documentation.codeship.com/pro/getting-started/caching/). 7 | -------------------------------------------------------------------------------- /18.load-balancer/app.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | "net/http" 6 | ) 7 | 8 | func main() { 9 | http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 10 | log.Printf("Request: %q", r.URL.Path) 11 | w.Write([]byte("Hello\n")) 12 | }) 13 | 14 | log.Println("starting on", ":3000") 15 | log.Fatal(http.ListenAndServe(":3000", nil)) 16 | } 17 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all test 2 | 3 | all: test 4 | 5 | test: 6 | @ for dir in $(shell find . -depth -type d | grep -v .git | grep "^./\w*\.[0-9a-zA-Z_-]*$$"); do \ 7 | echo $$dir; \ 8 | set -e; \ 9 | if [ -f $$dir/before.sh ]; then \ 10 | $$dir/before.sh; \ 11 | fi; \ 12 | jet steps --push=true --dir=$$dir; \ 13 | if [ -f $$dir/after.sh ]; then \ 14 | $$dir/after.sh; \ 15 | fi; \ 16 | done 17 | -------------------------------------------------------------------------------- /04.parallelised/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: parallel 2 | steps: 3 | - service: demo 4 | command: sleep 2 5 | - type: serial 6 | steps: 7 | - service: demo 8 | command: echo Before 9 | - type: parallel 10 | steps: 11 | - service: demo 12 | command: echo In Between 13 | - service: demo 14 | command: sleep 3 15 | - service: demo 16 | command: echo After 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Codeship Tool Examples 2 | 3 | These examples illustrate various features using Codeship's Docker Platform, Jet. Within a directory, either follow the README instructions, or simply type `jet steps` to run the steps with Jet. 4 | 5 | 6 | 7 | * [Installation Instructions](https://codeship.com/documentation/docker/installation/) 8 | * [More information about Codeship's Docker Platform](https://codeship.com/docker) 9 | 10 | -------------------------------------------------------------------------------- /08.deployment-container/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - service: compiledemo 2 | name: create_artifact 3 | command: "./write_artifact.sh" 4 | - service: deploy 5 | name: use_artifact 6 | command: cat /data/date 7 | - service: builder 8 | name: build_image 9 | command: "./build_with_docker.sh" 10 | - service: app1 11 | name: build_with_artifact_via_container 12 | command: cat /app/date 13 | - service: app2 14 | name: build_with_artifact_local 15 | command: cat /app/date 16 | -------------------------------------------------------------------------------- /24.healthchecks/elasticsearch-healthcheck: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eo pipefail 3 | 4 | host="$(hostname --ip-address || echo '127.0.0.1')" 5 | 6 | if health="$(curl -fsSL "http://$host:9200/_cat/health?h=status")"; then 7 | health="$(echo "$health" | sed -r 's/^[[:space:]]+|[[:space:]]+$//g')" # trim whitespace (otherwise we'll have "green ") 8 | if [ "$health" = 'green' ]; then 9 | exit 0 10 | fi 11 | echo >&2 "unexpected health status: $health" 12 | fi 13 | 14 | exit 1 15 | -------------------------------------------------------------------------------- /18.load-balancer/README.md: -------------------------------------------------------------------------------- 1 | ## 18 Load Balancer 2 | 3 | This example shows how to run a load balancer in front of multiple containers. 4 | 5 | ### Running the integration test 6 | 7 | jet steps 8 | 9 | Runs an integration test that pings the application over http. 10 | 11 | ### Running the server 12 | 13 | jet run lb 14 | 15 | Runs the application, exposing the top level load balancer. If you `curl` the app a few times you'll see different web servers handling the request. 16 | -------------------------------------------------------------------------------- /02.redis/Dockerfile: -------------------------------------------------------------------------------- 1 | # base on latest ruby base image 2 | FROM ruby:2.6.2 3 | 4 | # update and install dependencies 5 | RUN apt-get update -qq 6 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential libpq-dev nodejs apt-utils 7 | 8 | # setup app folders 9 | RUN mkdir /app 10 | WORKDIR /app 11 | 12 | # copy over Gemfile and install bundle 13 | COPY Gemfile /app/Gemfile 14 | COPY Gemfile.lock /app/Gemfile.lock 15 | RUN bundle install --jobs 20 --retry 5 16 | 17 | COPY . /app 18 | -------------------------------------------------------------------------------- /03.redis-postgres/Dockerfile: -------------------------------------------------------------------------------- 1 | # base on latest ruby base image 2 | FROM ruby:2.6.2 3 | 4 | # update and install dependencies 5 | RUN apt-get update -qq 6 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential libpq-dev nodejs apt-utils 7 | 8 | # setup app folders 9 | RUN mkdir /app 10 | WORKDIR /app 11 | 12 | # copy over Gemfile and install bundle 13 | COPY Gemfile /app/Gemfile 14 | COPY Gemfile.lock /app/Gemfile.lock 15 | RUN bundle install --jobs 20 --retry 5 16 | 17 | COPY . /app 18 | -------------------------------------------------------------------------------- /08.deployment-container/codeship-services.yml: -------------------------------------------------------------------------------- 1 | compiledemo: 2 | build: ./ 3 | dockerfile: Dockerfile.build 4 | volumes: 5 | - ./tmp:/data 6 | deploy: 7 | build: ./ 8 | dockerfile: Dockerfile 9 | volumes_from: 10 | - compiledemo 11 | builder: 12 | build: ./ 13 | dockerfile: Dockerfile.builder 14 | add_docker: true 15 | volumes_from: 16 | - compiledemo 17 | app1: 18 | image: 08testimage1 19 | dockerfile: Dockerfile.app1 20 | app2: 21 | build: ./ 22 | dockerfile: Dockerfile.app2 23 | -------------------------------------------------------------------------------- /02.redis/check.rb: -------------------------------------------------------------------------------- 1 | require 'redis' 2 | require 'retriable' 3 | 4 | def exit_if_not expected, current 5 | puts "Expected: #{expected}" 6 | puts "Current: #{current}" 7 | exit(1) if expected != current 8 | end 9 | 10 | Retriable.configure do |c| 11 | c.tries = 10 12 | end 13 | 14 | puts 'Redis' 15 | 16 | Retriable.retriable on: [ Errno::ECONNREFUSED, Redis::CannotConnectError ] do 17 | puts 'retry' 18 | @redis = Redis.new(host: 'redis') 19 | @redis.set 'foo', 'bar' 20 | end 21 | exit_if_not @redis.get('foo'), 'bar' 22 | -------------------------------------------------------------------------------- /18.load-balancer/codeship-services.yml: -------------------------------------------------------------------------------- 1 | app1: 2 | build: 3 | image: go-hello 4 | dockerfile_path: Dockerfile.app 5 | command: ./app 6 | 7 | app2: 8 | build: 9 | image: go-hello 10 | dockerfile_path: Dockerfile.app 11 | command: ./app 12 | 13 | lb: 14 | build: 15 | image: nginx-lb 16 | dockerfile_path: Dockerfile.lb 17 | links: 18 | - app1 19 | - app2 20 | ports: 21 | - "8080:80" 22 | 23 | test: 24 | build: 25 | image: lb-ci 26 | dockerfile_path: Dockerfile.ci 27 | links: 28 | - lb 29 | -------------------------------------------------------------------------------- /16.docker_push/README.md: -------------------------------------------------------------------------------- 1 | ### Usage 2 | 3 | #### Set up the registry 4 | `$ ./before.sh` 5 | 6 | 7 | #### Run the steps via jet. 8 | Include the `push` flag in order to allow the push to happen 9 | If you are using Docker Machine, you must make sure the registry is available on port 5000, either by adding a port forwarding rule between the Docker Machine VM and your local host, or by using the Docker Machine VM IP address directly. You can change the location of the registry in the `codeship-services.yml` and `codeship-steps.yml` files. 10 | 11 | `$ jet steps --push=true` 12 | 13 | 14 | #### Cleanup 15 | `$ ./after.sh` 16 | 17 | -------------------------------------------------------------------------------- /03.redis-postgres/check.rb: -------------------------------------------------------------------------------- 1 | require 'redis' 2 | require 'pg' 3 | require 'retriable' 4 | 5 | Retriable.configure do |c| 6 | c.tries = 10 7 | end 8 | 9 | Retriable.retriable on: [Errno::ECONNREFUSED, Redis::CannotConnectError] do 10 | puts 'Redis' 11 | redis = Redis.new(host: 'redis') 12 | puts "REDIS VERSION: #{redis.info['redis_version']}" 13 | end 14 | 15 | postgres_username = 'postgres' 16 | postgres_password = '' 17 | Retriable.retriable on: [PG::ConnectionBad] do 18 | puts 'retrying postgres connection' 19 | @test = PG.connect('postgres', 5432, '', '', 'postgres', postgres_username, postgres_password) 20 | end 21 | 22 | puts @test.exec('SELECT version();').first['version'] 23 | -------------------------------------------------------------------------------- /18.load-balancer/ab-with-backoff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | function with_backoff { 6 | local max_attempts=${ATTEMPTS-10} 7 | local timeout=${TIMEOUT-1} 8 | local attempt=0 9 | local exitCode=0 10 | 11 | while [[ $attempt -lt $max_attempts ]] 12 | do 13 | set +e 14 | "$@" 15 | exitCode=$? 16 | set -e 17 | 18 | if [[ $exitCode == 0 ]] 19 | then 20 | break 21 | fi 22 | 23 | echo "Failure! Retrying in $timeout.." 1>&2 24 | sleep $timeout 25 | attempt=$(( attempt + 1 )) 26 | timeout=$(( timeout * 2 )) 27 | done 28 | 29 | if [[ $exitCode != 0 ]] 30 | then 31 | echo "You've failed me for the last time! ($@)" 1>&2 32 | fi 33 | 34 | return $exitCode 35 | } 36 | 37 | with_backoff ab -n 100 -c 15 http://lb/ 38 | -------------------------------------------------------------------------------- /20.build-args/test-build-arg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ $UNENCRYPTED == "default" ]] ; then 4 | echo "Unencrypted build args are not working. UNENCRYPTED should not be default." 5 | exit 1 6 | else 7 | echo "UNENCRYPTED has been set to $UNENCRYPTED" 8 | fi 9 | 10 | if [[ $CI == "default" ]] ; then 11 | echo "Environment build args are not working. CI should not be default." 12 | exit 1 13 | else 14 | echo "CI has been set to $CI" 15 | fi 16 | 17 | if [[ $ENCRYPTED == "default" ]] ; then 18 | echo "Encrypted build args are not working. ENCRYPTED should not be default." 19 | exit 1 20 | else 21 | echo "ENCRYPTED has been set to $ENCRYPTED" 22 | fi 23 | 24 | if [[ $FROMFILE == "default" ]] ; then 25 | echo "Encrypted build args file is not working. FROMFILE should not be default." 26 | exit 1 27 | else 28 | echo "FROMFILE has been set to $FROMFILE" 29 | fi 30 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Codeship Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /20.build-args/README.md: -------------------------------------------------------------------------------- 1 | # Build Arguments 2 | 3 | For any service, you can declare [build arguments](https://docs.docker.com/compose/compose-file/#/args), which are values available to the image only at build time. For example, if you must pass the image a set of credentials in order to access an asset or repository when the image is built, you would pass that value to the image as a build argument. 4 | 5 | This example demonstrates three different ways to build arguments to the image at build time. Each of the build arguments -- `UNENCRYPTED`, `ENCRYPTED`, and `FROMFILE` are declared in the `Dockerfile` and then set in the `codeship-services.yml` file. For each of them, a default value of `default` is defined. When the build argument is consumed in this example. it is assigned to an environment variable to verify that it is correctly being passed into the image at build time. It is not necessary to assign a build argument to an environment variable. 6 | 7 | Learn more about [build arguments](https://docs.docker.com/compose/compose-file/#/args) from Docker, or refer to the Codeship articles about [build arguments](https://documentation.codeship.com/docker/getting-started/build-arguments) and [encryption](https://documentation.codeship.com/docker/getting-started/encryption). 8 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: parallel 2 | service: app 3 | steps: 4 | - command: bash /app/compute.sh /app/files/1 /data 5 | - command: bash /app/compute.sh /app/files/2 /data 6 | - command: bash /app/compute.sh /app/files/3 /data 7 | - command: bash /app/compute.sh /app/files/4 /data 8 | - command: bash /app/compute.sh /app/files/5 /data 9 | - command: bash /app/compute.sh /app/files/6 /data 10 | - command: bash /app/compute.sh /app/files/7 /data 11 | - command: bash /app/compute.sh /app/files/8 /data 12 | - command: bash /app/compute.sh /app/files/9 /data 13 | - command: bash /app/compute.sh /app/files/10 /data 14 | - command: bash /app/compute.sh /app/files/11 /data 15 | - command: bash /app/compute.sh /app/files/12 /data 16 | - command: bash /app/compute.sh /app/files/13 /data 17 | - command: bash /app/compute.sh /app/files/14 /data 18 | - command: bash /app/compute.sh /app/files/15 /data 19 | - command: bash /app/compute.sh /app/files/16 /data 20 | - command: bash /app/compute.sh /app/files/17 /data 21 | - command: bash /app/compute.sh /app/files/18 /data 22 | - command: bash /app/compute.sh /app/files/19 /data 23 | - command: bash /app/compute.sh /app/files/20 /data 24 | - service: app 25 | command: bash /app/print.sh /data 26 | -------------------------------------------------------------------------------- /10.lots-of-parallel/codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: parallel 2 | steps: 3 | - service: busybox 4 | command: echo 1 5 | - service: busybox 6 | command: echo 2 7 | - service: busybox 8 | command: echo 3 9 | - service: busybox 10 | command: echo 4 11 | - service: busybox 12 | command: echo 5 13 | - service: busybox 14 | command: echo 6 15 | - service: busybox 16 | command: echo 7 17 | - service: busybox 18 | command: echo 8 19 | - service: busybox 20 | command: echo 9 21 | - service: busybox 22 | command: echo 10 23 | - service: busybox 24 | command: echo 11 25 | - service: busybox 26 | command: echo 12 27 | - service: busybox 28 | command: echo 13 29 | - service: busybox 30 | command: echo 14 31 | - service: busybox 32 | command: echo 15 33 | - service: busybox 34 | command: echo 16 35 | - service: busybox 36 | command: echo 17 37 | - service: busybox 38 | command: echo 18 39 | - service: busybox 40 | command: echo 19 41 | - service: busybox 42 | command: echo 20 43 | - service: busybox 44 | command: echo 21 45 | - service: busybox 46 | command: echo 22 47 | - service: busybox 48 | command: echo 23 49 | - service: busybox 50 | command: echo 24 51 | - service: busybox 52 | command: echo 25 53 | 54 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting one of the project maintainers listed below. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Project Maintainers 69 | 70 | * Laura Frank (Codeship Inc.) <> 71 | * Marko Locher (Codeship Inc.) <> 72 | * Brendan Fosberry (Codeship Inc.) <> 73 | 74 | ## Attribution 75 | 76 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 77 | available at [http://contributor-covenant.org/version/1/4][version] 78 | 79 | [homepage]: http://contributor-covenant.org 80 | [version]: http://contributor-covenant.org/version/1/4/ 81 | -------------------------------------------------------------------------------- /codeship-services.yml: -------------------------------------------------------------------------------- 1 | 01demodockerfile: 2 | build: 3 | image: 01demodockerfile 4 | dockerfile_path: 01.dockerfile/Dockerfile 5 | 01demodockerfiledockercompose: 6 | build: ./01.dockerfile/ 7 | 01demohub: 8 | image: ruby:2.2.0 9 | 02demo: 10 | build: 11 | image: 02myapp 12 | dockerfile_path: Dockerfile 13 | path: 02.redis/ 14 | links: 15 | - redis 16 | 03demo: 17 | build: 18 | image: 03myapp 19 | dockerfile_path: Dockerfile 20 | path: 03.redis-postgres/ 21 | links: 22 | - redis 23 | - postgres 24 | 04demo: 25 | image: busybox 26 | 05demo1: 27 | image: busybox 28 | environment: 29 | OUTPUT: test1 30 | 05demo2: 31 | image: busybox 32 | environment: 33 | OUTPUT: test2 34 | 07write: 35 | build: 36 | image: 07demowrite 37 | dockerfile_path: Dockerfile 38 | path: 07.volumes/ 39 | volumes_from: 40 | - 07data 41 | 07read: 42 | image: busybox 43 | volumes_from: 44 | - 07data 45 | 07data: 46 | image: busybox 47 | volumes: 48 | - ./07.volumes/tmp/:/artifacts 49 | 08compiledemo: 50 | build: ./08.deployment-container 51 | dockerfile: Dockerfile.build 52 | volumes: 53 | - ./08.deployment-container/tmp/:/data 54 | 08deploy: 55 | build: ./08.deployment-container 56 | dockerfile: Dockerfile 57 | volumes_from: 58 | - 08compiledemo 59 | 08builder: 60 | build: ./08.deployment-container 61 | dockerfile: Dockerfile.builder 62 | add_docker: true 63 | volumes_from: 64 | - 08compiledemo 65 | 08app1: 66 | image: 08testimage1 67 | 08app2: 68 | build: ./08.deployment-container 69 | dockerfile: Dockerfile.app2 70 | 11busybox: 71 | build: ./11.encrypted-aes 72 | encrypted_env_file: 11.encrypted-aes/environment.encrypted.ci 73 | 15data: 74 | image: busybox 75 | volumes: 76 | - /data 77 | 15app: 78 | build: ./15.parallel-output-to-volume 79 | volumes_from: 80 | - 15data 81 | 16demo: 82 | build: 83 | image: quay.io/codeship/codeship-tool-examples 84 | dockerfile_path: Dockerfile 85 | path: 16.docker_push 86 | 18app: 87 | build: 88 | dockerfile_path: Dockerfile.app 89 | path: 18.load-balancer 90 | command: ./app 91 | 18lb: 92 | build: 93 | dockerfile_path: Dockerfile.lb 94 | path: 18.load-balancer 95 | links: 96 | - 18app:app1 97 | - 18app:app2 98 | ports: 99 | - "8080:80" 100 | 18test: 101 | build: 102 | dockerfile_path: Dockerfile.ci 103 | path: 18.load-balancer 104 | links: 105 | - 18lb:lb 106 | 19demo: 107 | build: 108 | image: quay.io/codeship/codeship-tool-examples 109 | dockerfile_path: Dockerfile 110 | path: 19.dockercfg-service 111 | 19dockercfg_generator: 112 | build: 113 | dockerfile_path: Dockerfile.generator 114 | path: 19.dockercfg-service 115 | encrypted_env_file: dockercfg.env.encrypted 116 | 20buildargs: 117 | build: 118 | path: 20.build-args 119 | dockerfile: Dockerfile 120 | args: 121 | UNENCRYPTED: "my-unencrypted-build-arg" 122 | encrypted_args_file: 20.build-args/build_args.encrypted 123 | encrypted_args: LXpZ6o5BvOBe9v9jBoHxmzvifYXPrEWY7fiHj9jDrd00VWeR1ZrWIXM4dILSA3dAIw== 124 | 21entrypoint: 125 | image: busybox 126 | entrypoint: "ps" 127 | 22workingdir: 128 | build: 129 | path: 22.working_dir 130 | dockerfile: Dockerfile 131 | working_dir: /home 132 | 23dependson: 133 | build: 134 | path: 23.depends_on 135 | dockerfile: Dockerfile 136 | depends_on: 137 | - server 138 | 24healthchecks: 139 | build: 140 | path: 24.healthchecks 141 | dockerfile: Dockerfile 142 | depends_on: 143 | - 24elasticsearch 144 | 24elasticsearch: 145 | build: 146 | path: 24.healthchecks 147 | dockerfile: Dockerfile.elasticsearch 148 | redis: 149 | image: redis:3.2.8 150 | postgres: 151 | image: postgres:9.3.6 152 | busybox: 153 | image: busybox 154 | adddocker: 155 | image: docker:1.9-dind 156 | add_docker: true 157 | server: 158 | image: python 159 | command: python3 -m http.server 160 | -------------------------------------------------------------------------------- /codeship-steps.yml: -------------------------------------------------------------------------------- 1 | - type: serial 2 | name: 01 3 | steps: 4 | - service: 01demodockerfile 5 | command: ruby --version 6 | - service: 01demohub 7 | command: ruby --version 8 | - service: 01demodockerfiledockercompose 9 | command: ls /app 10 | - type: serial 11 | name: 02 12 | steps: 13 | - service: 02demo 14 | command: bundle exec ruby check.rb 15 | - type: serial 16 | name: 03 17 | steps: 18 | - name: 03ruby 19 | service: 03demo 20 | command: bundle exec ruby check.rb 21 | - type: parallel 22 | name: 04 23 | steps: 24 | - service: 04demo 25 | command: sleep 2 26 | - type: serial 27 | steps: 28 | - service: 04demo 29 | command: echo Before 30 | - type: parallel 31 | steps: 32 | - service: 04demo 33 | command: echo In Between 34 | - service: 04demo 35 | command: sleep 3 36 | - service: 04demo 37 | command: echo After 38 | - type: matrix 39 | name: 05 40 | services: 41 | - 05demo1 42 | - 05demo2 43 | steps: 44 | - command: env 45 | - type: matrix 46 | name: 06 47 | services: 48 | - 05demo1 49 | - 05demo2 50 | steps: 51 | - type: parallel 52 | steps: 53 | - command: sleep 4 54 | - command: sleep 2 55 | - type: serial 56 | steps: 57 | - command: sleep 3 58 | - command: env 59 | - type: serial 60 | name: 07 61 | steps: 62 | - service: 07write 63 | command: bash write_artifact.sh 64 | - service: 07read 65 | command: cat /artifacts/foo 66 | - type: serial 67 | name: 08 68 | steps: 69 | - service: 08compiledemo 70 | name: create_artifact 71 | command: "./write_artifact.sh" 72 | - service: 08deploy 73 | name: use_artifact 74 | command: cat /data/date 75 | - service: 08builder 76 | name: build_image 77 | command: "./build_with_docker.sh" 78 | - service: 08app1 79 | name: build_with_artifact_via_container 80 | command: cat /app/date 81 | - service: 08app2 82 | name: build_with_artifact_local 83 | command: cat /app/date 84 | - service: busybox 85 | name: 09 86 | tag: master 87 | command: echo "SHOULD ONLY RUN ON MASTER" 88 | - type: parallel 89 | name: 10 90 | steps: 91 | - service: busybox 92 | command: echo 1 93 | - service: busybox 94 | command: echo 2 95 | - service: busybox 96 | command: echo 3 97 | - service: busybox 98 | command: echo 4 99 | - service: busybox 100 | command: echo 5 101 | - service: busybox 102 | command: echo 6 103 | - service: busybox 104 | command: echo 7 105 | - service: busybox 106 | command: echo 8 107 | - service: busybox 108 | command: echo 9 109 | - service: busybox 110 | command: echo 10 111 | - service: busybox 112 | command: echo 11 113 | - service: busybox 114 | command: echo 12 115 | - service: busybox 116 | command: echo 13 117 | - service: busybox 118 | command: echo 14 119 | - service: busybox 120 | command: echo 15 121 | - service: busybox 122 | command: echo 16 123 | - service: busybox 124 | command: echo 17 125 | - service: busybox 126 | command: echo 18 127 | - service: busybox 128 | command: echo 19 129 | - service: busybox 130 | command: echo 20 131 | - service: busybox 132 | command: echo 21 133 | - service: busybox 134 | command: echo 22 135 | - service: busybox 136 | command: echo 23 137 | - service: busybox 138 | command: echo 24 139 | - service: busybox 140 | command: echo 25 141 | - service: 11busybox 142 | name: 11 143 | command: ./check_for_foo.sh 144 | - service: adddocker 145 | name: 14 146 | command: docker run busybox echo hello 147 | - type: serial 148 | name: 15 149 | steps: 150 | - type: parallel 151 | service: 15app 152 | steps: 153 | - command: bash /app/compute.sh /app/files/1 /data 154 | - command: bash /app/compute.sh /app/files/2 /data 155 | - command: bash /app/compute.sh /app/files/3 /data 156 | - command: bash /app/compute.sh /app/files/4 /data 157 | - command: bash /app/compute.sh /app/files/5 /data 158 | - command: bash /app/compute.sh /app/files/6 /data 159 | - command: bash /app/compute.sh /app/files/7 /data 160 | - command: bash /app/compute.sh /app/files/8 /data 161 | - command: bash /app/compute.sh /app/files/9 /data 162 | - command: bash /app/compute.sh /app/files/10 /data 163 | - command: bash /app/compute.sh /app/files/11 /data 164 | - command: bash /app/compute.sh /app/files/12 /data 165 | - command: bash /app/compute.sh /app/files/13 /data 166 | - command: bash /app/compute.sh /app/files/14 /data 167 | - command: bash /app/compute.sh /app/files/15 /data 168 | - command: bash /app/compute.sh /app/files/16 /data 169 | - command: bash /app/compute.sh /app/files/17 /data 170 | - command: bash /app/compute.sh /app/files/18 /data 171 | - command: bash /app/compute.sh /app/files/19 /data 172 | - command: bash /app/compute.sh /app/files/20 /data 173 | - service: 15app 174 | command: bash /app/print.sh /data 175 | - type: push 176 | name: 16 177 | service: 16demo 178 | image_name: quay.io/codeship/codeship-tool-examples 179 | registry: quay.io 180 | image_tag: push_demo 181 | encrypted_dockercfg_path: dockercfg.encrypted 182 | - name: 18 183 | service: 18test 184 | command: ./ab-with-backoff.sh 185 | - name: 19 186 | service: 19demo 187 | type: push 188 | image_name: quay.io/codeship/codeship-tool-examples 189 | image_tag: dockercfg_service_test 190 | registry: quay.io 191 | dockercfg_service: 19dockercfg_generator 192 | - name: 20 193 | service: 20buildargs 194 | command: /app/test-build-arg.sh 195 | - name: 21 196 | service: 21entrypoint 197 | command: "-o pid" 198 | - name: 22 199 | service: 22workingdir 200 | command: ./script.sh 201 | - name: 23 202 | service: 23dependson 203 | command: ./wait.sh 204 | - name: 24 205 | service: 24healthchecks 206 | command: curl -sL 24elasticsearch:9200 207 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/1: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/10: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/11: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/12: -------------------------------------------------------------------------------- 1 | g8rc6Juf1ocBAfDXZsD4qKmh9hzXAn3Z8laKkFu1Cemfcck2TJUCtRxcOjz5LYW8sQ3Jc1d2BBJeIFOpCHWXfTq5PTMSDHpqZjZ810DGGH0tGoJePc5K9s5gadHZBWQtqceJsXAl4ECXhMBSscVYLDHCcnITdBD1Bbnp2I7qeNO7WXTSx7BFTU0uHyovyz8HghBiwkQQ5H3ReCuGdVXHV31hkEJ2Z3Gv1yeeiXvkyUXW9VMHw9xyY3mfk6TWeXhOQ0HWqXkBMNF24kdE49cg32ChOesC70dwsg1ixU1WQXaY3Ywl1h4Yg1oBjothxf2VA0CZz6cGRebMe2TXg2FMZwDvAM99Wx6Mw1S9q0HLQF0ZoKIogAp4qsxvt8KJ45Cl3yoJukQGNATNiobf8i1AnWj4O80WZNo4qrMs6XFmRv4s6E2Vnvq4GgO8HznYyFF5Uv3tYp40fC7Yyg2EauP7CIjFeNySNzKM2n8kh3bDiA9CbN3iCtGQlHg8uTelwi027PpWyNPyHVXNuM3WnU0wdmGBOakO7Ix7zwokyOtS9YDLdiM0vz6mZfhV7vpWkYCcidXm12RSHWFDbkgUs1IpD9ndzsqwvS77tznp1rmSm5zq6rGcMZNArQlDjSla75pIukp9m8QFRWyhvLEZWay6062YEZXZ2YtVC51X0kSm9fOftcmiJOTjPfwBHqgsRJrGr3p1wCp7vgh0FZzVzJ5EMQtd4fu4Ub2rObTA9qcd7GoC74r2Wqs6g8WA3uE8agU5n7tByJQNrol7tI6m6aI8iTRG4tOAeliCDHFvFL9Yvi49GbIinNf84H60A2hX6CQz4A1fEdPQbX5CpPwHWLk2nJ7HZ7wIklTJXX5SN2qMYztRen7EFR51r4elldqerrQxNSH8XqU7yg0F5msBv47TFBgwXdzSDNZl94xaGfcADwWuH3X8QWGo6kfIGw2WpYTYxVXweAZN3xtojzkaglcxWwv5QezKaYub5JUucKsKxWYBNMVOeEOiSBztOQwr9LTMUXGzMELqFSmYgTU9sRlRQMh1pLorgZdlRYrbjtj20gAPKo3axgHtC3kRuBLGiDOWkpf4kMBq2lmpbpbEH17YA7l2l6Yfolk6iefGn5QlVtqeolIT5ZRC65yQPzMLPcSnoK7RXBUICPIfA2MYEcGosu7kscJQnvtbCRGHasovtitCsTGBDqX6QrPTjQErDyamV8tJxIMDZ3GNJVVoSuVWTq2JsTYKS84c14LKMDpeNT8vivesYSrtxr2tmw3sESbDk5CyoGzsVRepKqUFge4olhhiorViLm2qo57Zvs7N3Us7PUTD04E5FEMEEwg81nxi4RTMl8IRZ5y2Bvox2CekCPTVCCQDDWtbiYC8Ilhw9ysktZwQwAgunerCT9xE9s8oKTLEIdtlqU9TwAKNE5FIZymt8GBuGjubLiFoGk4K0ghcr30BR0h58nBBUY5TTLBUjQSWy6H2LUfNh4ywovcrTfVvkN5xbTnFZFHJss3rmOrdiN3EgJmfLMQhYKMfSh6ff28R4Zk5eiikrkdnuJhHAVNCUFcS77dTZZaBOVvN6P8jlqHrT7zi3GvI0jjJaGnuJ1KVDiOQKWvxDAarDLzjyaIK2l7remc5MxvOwsq7UHkiVLvkeRGq17wuJCvHoXPM34kB0pE3S4uvNad6evz8CpZmOeuIIleltPvC6ag3et8xTWregrDtDinXbfgDjqe96CKGrhCpje3FFjDvfbJTa7uw79HlIFmkb8AN1jxarC4r7jnaykb7TIPfF8iYIbWh7OtiUik1vHwVbhgnX5vAadGdrpuKJoXLxH332J3oKvApee85harKTJ3kLQAmy15QlHBcAftiVmScVIyP77xHajabGXAyQj1CVtzflw0I0szXRBZquBewjXZ2pK9aDSio2oPqBy8MhcYhGdZ4Jq5tgYveL7dBqechEtXZCSVn7YGOf07ICvnKRPERvSQSXsiVurIDVgKaDY6deoH8W66E5wBJ0s8lDhcWrpwzOP5bkBpE1MyfgYbr62mGR3FV1OSNs8VlkxkFNePNDNdwhVkhGApR9OMRAy8C6l5gDVe9iwMFO3WOWXkrZYh4J4wp0nmeY5ry2uFXULDLKr8xJhufzUtc7MwDdBwj89OlUfpYodW55eYj8i56bCilMSHyPEvh5XnjAEkw2UtrrKz9iyAuYT9nzfNZP5qdu6pd8YIiagWwh6vRZjz8le2YtVdplEgLlWR4B6o04BGNoCg35C4kDzVoQwkCaAS43HnC4tg38EZYC1D8fr7s42MXpwjJXN06esa31kQdN0RYpSFiqFdmuXgVOCexOcp6XfaIO6APkAZI09T1pZeCRkiLOWYgtrLWVHd5cy45M8TbtOpIG7RKRVJesYj6MdsBSFCrxTLgsAwpiFI6WukPQSRr3YFsGy0ykf2fPwN4H64pydbVWdaisEUCzdSC1jBuBUDBCgW9ag75WC04eFmTYI2FdGf0wvY4M5v0FOGKpcJzYvmjaxR7QFEldsi3Jv8XBMPKJ9yHShHWpfekNlCno4itbkrFiOtLIblizyDY8EcTveppquqmWkQ3JQOGyZa7eQwSkOPnqaFQSLGqWdjloRQvCFpVhNKJvCJAXZZrez9v77diipuUoIDJXhlg0sxOwNYLqgyLiTIG4V8gPS7j3tF4k464SHPgJLRcrXsQWUMqj61f0onGUPVLYsufzUJqiw0Y9qaqsK3fU3wgpWIupNjb1pRPJf6UQqABCqs9xYb99IgiixHLJLCsU27Le495L9TSylAYJQEDhGFZPcIHCLm1KQDebpclUuWAdX6dciwoyycKLDJ01vT1AP90q79J6KVXllptoSqLw1igK41gIw9vk7G4FXnMzw2BtoIHvqdn2uEgsIA4wTUsgMF26rz0d4QDK9Jc8VmR3Mnjb7aTDCOr1BxcvXI4DAcxEcFQCjIsJ8759dbKcIsUp5DhsA65pjhWov8KGGrWMwyF76Gv11vsGHYbVNdVM53GEyA30qK9uAtJNcxdF64AV6wYC0BdWjte9VQBVfmkZSicSen6poOBmZK3vIobZ5wP5fk5rVSnvD6ph0oMygaOGqYjHGqoqO2pIHap47Wt8K2sFkViDasq8ikut8WYV2oA1zd1zkWFxiDynzy8kew27wr1TRBJcGJ1uGRAg41jr5awCCM0JhUN8gm6a7IYsCeeHKEPQElLgAiL2rjU0Ps3KKphP50gk0CeLVfHexkWOjB5Pp4KbGOLisK3i1bPFoNRrXDoegwSuF6r4F9AJxv0mf2zWkmOrq5IAlAKERFvkAyN5XgR8AaUNHl5Oumust9WcgD01EENxLlLF8wqlUKO7o5hCkXNsWseWC2anmjxETdYI2RtxXlXhuvRoYeyEdohVG17OEqCbo6JQHjceJ1xam4gAFooVqUfz6Sp75msxUi1W5r2ScU7f728mIHpNkBCSgmzTqONUGEL3L1fXh1aGkfA9SvSnrQfAKJHwqheQdxpuYcjIVT22wPeNKK7idaqhaQyU1cctgGTh0KfUTiLzhWTdkP2vC3HQHuD9I6nxo2n2OZXL3wDGRVioZ9nFWnIJZcyrDfugJpMEGvEmcPTmU6KsGN7mGRv8F79L8gjb5lDLksvo3OCLmP9N9Pri7gT2v8wQ3BXafxE8nDA6P1oeAJI7RD61TvaCcrVac3zmHkOTM8QhFW3EaHiQpKPKvfNmkfoeP0PD2QslHdflX3YeRXvqpjvdwz7yEguQLMerk5nLkrYSHOk7ltAdXzNCYonrO1TjZhLTvzmCgEUklKDHkyhnLkCqg7t02L9jXjGXCwVktrGtePvtIdjTeS5Hh3zEymanGgh0mGtq7LiKCOvtJpTuPPmerAkrXzI9hsL32bZdux3XJpeYanRevTpU84fipKhQfPFe9RVYxgBYtMsJubwIjXICGQN0uK4uBjubDrUG1NE8DDcNQGgEM5REOXFDF0ssE22jd8CJTKh14QHlcUHAkDGXYz3aAuAoYN0UcMRKfWi2meDOXDAlvSUAOxnLRhicjGDudA7xTSWNVOVJxMUdm7LB6B7hR8OZruiz6QBMAQeC8xzf9XHsTsW1lr8PogYbCcuqkS1pYb2Ecqf5F5UtofmYgwIhqJpGA57wMV8cW2ZSNv3mVCmCCGw0Wi2XukvdM5YltLuOdI848zPcSBgcADTqa7gs5maQfsWZMkVfFwHPdZHfe532qJ6yr4Par67HBPlnBXoVrWFgLyYBqUIAerh7DZDREHSuErYunHiJWUdeotOcudeZkoXFWdWL9OgJ3LCkVsd10uYjDpVZYFTiCDOryTJQ2yRaxrz68qC4r3TtEXPm7rzyEdbE5k9L26thSR1tVBTLielMc4ZLSRPNY1eQpqWesnIu3svHRc6MfnyTWZ6jOXwVQrh5HJDHmxjQE0dDM3f5vhf2tgjqoOLnhXQjAOhIT5VqomlqxEBcHJqrcg3HqqDN1OamhfwmFp7G32gWVOqRrCwnJieM8YouiZL3oHIgquyHUjcixKUNw4xYts2ox21zGjrOIo6GSnCI3BgjqopjYfkntqUHdH3tbhZZTBLwx6IU4dUPdtCLAXIBkSWSqen8TlhIRqHVOjwQ0pIlsTrP7rvij9boqLGK51nM3TzjfK90EGctvB7tkeK7xwJJq0I3OpCMVxOYnUifXZa0mHEwdNTkWusmLqp3nrSo2v7Cs7gbcKBJxWV0LF5cwcoBeZhmkRHUvM2VCjKqSviH8ds1YP9THdm5rl7LxCoQkSYNsTGFBvRbOAJkj9Ttdy8S1FBK8fFdeqmiRkpzHm7HdryVD22Wdtn7ilcjjDFto9sEYqSvMyECYmsSOAYoU4sML8w7SHtIzd6WrThIGHLQsBb72UIT6zakNGvs3CudzXEHwViVzcSduWrXZfy02T7RpN9zBYxbgKYNH6rPlZEmJpyq6JZU2p5TSOLT7wZatylaZXJHAVyGidUREUoqGlPB0cdhgIDOoF6oDCUOXmFoKdr0w8Qy4ptn0o4Ra57tYRzLMjmCgzoaMl4Y61Rs2kFVA8lzNOh230FZ2aM1wNRqAa1JlyJWmekd9XOm6M4qJYSWfA1MSHPZz3S4ZuYYdLM4q59mg2Y1IzlhJmmh0swpKgXyYV3rOLMDJXqpYkXDhzXgwyouX4lTmbQS5utGSAdDfCfOaVEsuupCq3c0p2End24JhENwMNPb6eqPxq7BtDGjdviyuwgZj9MzvlYtau6MTNOtzPM9TjpPpfAxdk39VWEFElosab8cn5Lx4q8NLNU8KFrHfCpMi9br1oooKyuw2nfOqoiaHdqucH2wdQjlxqxzXnjvQcTQkgdwI6iDGvovP1vMXwIdRTP1oYe3QG7nf9C8GzcgevYMkcJUlwNuCZLgVJb27iaruyTPim6RQxE5E1VSDu3RmESvO6X8zy8iM6zEoau5vceIZHYLZygcAhIH84S4eYCE3w0eUOkO4r7IvAwFjhQelZ36IFdW0Dv9RIdRHNYBWBMZrorhhzyR3LhANw8MOOFqK6EEZkFEEpjyxJwQXxYnCF3NNfAOXsmXmt06KLa4wnr1llxnEic4dh47LmCnl9xiw8Dv7ioybpHLZ3bZEz3cnk2MFTlQDqCLLvZ0WPQiCniG4zVjprsLz8r8x55HGojTU8QnCk9lWPBzzGnIIMW9fTevayTiH5vDJpTKCSo7OgaG1SJnstIf1ei7crEqs2tSkOJENTPDNdvvkEbw9LOU1PJaKZaYuSWozIXEOphSKDZxaqGMxsTBA3Ex8U5wncw4dbOMcM3qM9Y1Oc90HTl9v1u6QMhsjHIVeQEjKKpDjaaifXNlOaLzBsAMd8ZJvTUIfqOoG2p3VUsJAQXGTCsBf9oWMlucoGnLt4DuUMYZszphyLE0rJ6H20fQqNwtXNg86ykRILKsntMitb1Ofcfixly3MEJvL4Ye7UXVDPV17EJLpqrbolHDK7mnS4CQzfDPwHjA7UjWYJexOO4sgm6Ze0VQs5IxfRIeoQRq1zQXYAwwNL5jgA07OptudPFEML01DEtYC57IpxZflc1BvONmJelHIuxFxAVGspG4YbYX1q2iN2tKX1NbLbgkRLhPdMIUZvQ92JbY82cCE3kw4b3LZmMQ6FFFFtrTP2mw7JgdFSlN5hpaqLcg7CTIdrbRnqaAaq3yBB46dRzGhJIAmQbBiF420TPaX6m0vmkW11QORvTx1Mo8IspoFjML00ZDjKJYuPabTaf4hLzlHLkgOSrGZzFZpgcAIhjTuM5mYzGh2Eter36zK73PTev8w2GSFF8nbnRDffTlPLb35vCssmbRqHXoIyYBtBC01LxTsgW0PR3sL7ASiKlVnTf7Ck16QtkjS3ctQm0HycsRabHfQCOan2ztLaTAymVEks0XOwztnhtnu6fOpEUJTMQfhPTr8pHuEUHaSLAiFQ5PQHsBRZzcAmEDzkeRMXhshJCazGI9yHjvZ6j1QsccvwH35ZnU6AYcSpza0cjW7xr4gWVcWVkc3WZbb6U6Mf0mMfyJUTc1N3gBa8ys2F1HHzIZZasRKSaHid303qx0AZkA5PwKFvbhADdfNrBKltU6wWR3c0nKkoxtRpdVhttqi4Nmr3LdXsM051tBmTupabFjsrahbEGjS39N2ohFpckfOLtVXlQiEB9GY9xYipnA9qAGC002mq5aDXloPFCvwiQDPByi4FE4HLBaJotXMZjvSQ6sw29FEGDkVzqAQxpA5ZwWms2U5EXe8Ein3os41cU9pY0Y6iBs5MMCvlwpjipvILab4PzBnMFam60oADbu78cRsSCSuVsvvYbluDn1scYxSxwLgaumUYtydVLzt95huS4zrllOmngOoMA9GIz6KjTP1rQJbvh01rOkHRAEnB60CVWkPJ6iMNWQbBbeyDkMtcZ0OSMybJpKqUJVzlJAsWQqfzUUU23nX05AuTVEWJrvucFM71NgHtteoa7yUMKdrDO0WeEFUIIhbgc2jDophllQ4nVQIt8SwL6b9hTJwwrNzPDsohSD9OXzD574GH5FwwYWCs085GuGlA6A9Y36DGHW4Yn2QPjZ00mu44lVrfz73Ad7gxUKXkktytrrq44L2BPcESxEmzhIKYpigg4gOvJqZpJanAz134kBm4Qs92yV93ezyzyYKujSIW9jV4eLtMNfvXLC61GklBUWeQxC1HfSVT3FtAdYxM3lalIiGcGkwbmtmP01pA6cXj2hv9skDqqqvrKnUHCNbrDAPmnUVkwXlFTrMBLqlUUJkagxNvjHWgP5rfzNoZaqqAN1qGhTW6bImNruIhSe5tEylEFkEzZ2LBRhH0ocDbOrB4dntCPwjU5aptT2MxyqyOH1Llt7UCi1X3F6l4ynohG6rqOtXCSsnfjPEWl8gl4TMp1rOxwQelrrNfke2k0prjH6rg8VTIZAOUSjHsSync0H03yMe4j7vO8hKhBvnKQvsAF9xgRb0kB4oP3jPUV6W1GMrTZEHnTzHSlqEZkKwljgchnpAGRRG8xVzsUp51Wnabk541N8r2iRaqyHR39VuaOtSs3ocsNFPW77PM2Jq2JMKf3ctyo34MrK7IbeiQnU2QL67PUmvFzJ19W7h0Y4Rbsur0KCpBEvnv4KxnulavtXuHmY0hDJn0Hf6QtUTlCtB4wSrZC6kIpuXEIIicBgDThCuM62zGAIftxn9ZrOUdsmYPwndP5q9Oe9ubZJer9zsOMiMxiGkQowdO7FK20hBsAxbrivhENIhhsmNQPmVw0jCTMJYZNFA9XNJHBiPYQy5cAOVFx6SGCDps4gmozRN9blFfcYOQYuHQD1yFhxPIHjeSh6ev4eYd5rubkfmDjmrTFi2rlq9MLTcVJ2ZU4UXcmAbXQwEUVKejqbK2J0XZeDTGNfcOgG54M6PebF0roEjPJmq4pS63PWdhQpQ2zc6A4KsU0B8mXcdFYC5APaGa1pvIghkVvOvzESe3PK9D2cT1vB26rcdGNyEg63HuNSqix3vLv2OyJuvhkm0Q0AYtnC7TadCOtciEEVZ4onbYV5n41ezxtTbM0nlARYl2oV2jjM4UJv5NghgKsBoBZMtd1q7w9AK18j2XZ9q4nhkpdNxdoa0aqre7xFXLYJHQkQIIrmbjfMUjZIXLnMGfwOHVAn0C8BaQeaCsHjDTfl3pZPbdGgUDsF9gQhN3KDm40Kjmy5IpP7reftlPyR2I4WJE8WM6xxelL4VfuHVXmgMIi5vtUq6SlTqyV3EiycjF5CUPFHmoyTYNqxuShtApBPZqzzUkjzabyHEaBoXQzaXaLZMaWe4WtShUy8YJpxc0Afn6tAos70XfKsnn4OxQHx0CUvhZIxuswUVyEgoMOL4uxMUpBv4wwKISGEiWOPl6WGY89dRS20Y2YYCWSJGk6BzBZt5stizX4bDWOHT6ONZCvCX6h1g1xtQ6g7okrEUdIynuDJA9yfOYRdn85sBkcjgN94WDn8Boj6ZTgvBgAe0xOb8ZgYlBmOOBwxsYn2VX5KLaBlrlWi7KbamsPllKcZCvxogFxQXFXnoHsKWdYygBXCwKkxqUw9wTIQYqxiFUTiQ2flEALWUtLsVmCvUOBnmt0dfLqHu1YcVJuPVKNKSwNc2Cdz7RZxeoEOcrcpV82AU4g5YNIJKnvHEVLb89AYHbwQjXz47iY6RJUHCLsYlo1YkKtmiBcc7syswzy8D8L8mZpGwo3CrQ4Ew8GPw3rkPIUKw4Fz4bCEsF721rP4lckdJjePt3F3LaHWFJGat5DqBNBtRElycxzDthV0y8jIPgIn3GWvCcLGszwrpsFptv8vRWsMmlaBt6ovf8RVZzncgH9WCa1rzynqRuDGJ0VCpINUZx6LMytIp9EYDGRYgcjXp76xM2tw2d6RU1q2HoTENYeLssSFv4MRexoEwp6411aNC1Fpe6Qm9U9q806iyrrIEB59RZRrDSTbAIuKmabXm4LwryDAW6xExsgr93JB7c8PH3Bp7b1ExFlx6qsEojdqJGPuhYkMxzk52oglE8UPXCDnp5JsSWcMMBTWaycjsC42vEGrZnPY8uJh1J3zXgVk7ZavWx6Rx0oM3l3YjGyU9S3KsJ0XXsz6xgGdlQx6iiDHV7FGbiSYaehx95JyZ3KWQm7aDe6bJn3x9ZBBC9PqDIvVGW4X88sOtJs2ZBUc181JLryCvRnlQBf0L3ox0dmaw6iI3Jk7SdyQ1q6nF9KKBZPDJr5yPMm4qCdvB4JMJUkfOsoTChBfDNxIMkM5Nha1Z4hO2Qp5fEwwdlR5x0tCd7bnGVg4mNpnm1oxe0j965V0VvEfrEk6EbZQG1QwHghV4MOhHeeQzEclqWV6zDex7AZmWj2mCVqH4tTIpuMKxT91LxtK8YzqDX3i9XzD7ll8ldzZjRuyhuBst24OOAGke299Ik3DpAWlOR4RkJTlAmbgCaaFW4pOYZcINg4KAlZ1ihQ1t4jx13HS02kdJQ4uzKw0EWQU5M069avaarH9Ro9dFZqrFQT2g6a7YF0Mtj5LkcK3vNz5wonysZVc5a5R0uVNSi1ue5Jb5DhJg3ojg9vnOY8EnkayMATtKiUWSiqUVu43PA51MlGM59sojIHtX8v6CVpPlZqQQN60x4vgnmZkukRc25ZnvIhMOqKCo9P0fLwRjtpQwlph77aq956OednApvN51ujjYLiVDPhRMkxT5FxSNwSLp6H6APJuUwllvAuFIEeoBllgfoyPivXsiOZ27JFqxIRww3z8VHDTmnfyRgQRIt9BhYrjsjZ8d2w8iMyZ9MeWx24MSSzzHAjzqGzkp2hxhhT5IPFj9KzMVmGtXuoZPGhDINmysOXHScfMiToASEWCq7OSvCIAbCwjB2Z12xIo5eBmANopxlPNifcVUuIChy0Va8PPsSzU9OaERtM37UlJC31KPS25WFpxfbxl8eeCocIkt4rNxnlkX7xCirR5vawMeX5SDoX7FJCVab8A3b1PhrUSVSHBIumrZ8vA4Jsdiqa5kbk4UMMnHqH5AF3382ghsUDLk4Zh4fYqijMREZgPWHbo1FSuJLajPZHyLaAMCYwEGZHv8gk2JToEYHKrOhZ8pv1gtExmM7x2xWR6647sIeoqGtFxtjhOxqQ4MDgtZq5dflI5OrT2bXxYgfBmFHlfoVt5Ju3Wkz4LuIzCXZri1IG3uqfppCP4h1GdVamiqA5czZRefNAnIJbCcSUgy8CIjRBxsgQ34tkkYmbq51nscWqgZFTVKqnUiPwddMNrJqbm3nBUqzOZM3kfAdSBN9bsZ05oEBrtF0gcWZo87r3yK0fMJRTbGDDm1eYOg96mm1gPFT8MwzA0TbM8W8GsRaKUt4C1Np7AKQVDcSfcxtS4LLBjzgfnd5MbMdYENAmNIu5vmBwV6syGVDQPDWSslxHvJCSopW74l1yAME527iQz8ulmu68RKLB7xlYh8f6IfmtMdCPnpazr2nDjO9bffIkMdTsd08FAe18SYKB1hp1RRA0vl3LFKRAlIySvNXRclTon5qDiIXkqvsHYXppVQMgYUNdTIEW8p3uL7QpkwKoKtWKbjnFK4bQbjPWmpkDK0zvK68viopoBphdhV7BWsocpXlK1gAu5OdgY5kiqXBtiEWNsIocsKPLZMp050R1yaZv4qxH9rEy1DNWkcwW1HUA9UD8genFFIn9iBOhSi6n2R1GcR9HimcwCnHm4oRY0214C8v0mlkWJRGXoe7H2idfuJUIBgCLwXGht5qAWDl6GpQYJhXdBgFYbs0vZ4HGkmRrLlrYRfGAxj8txBEZdjbbdlXuok4c0JLMX4RNBvrzJkfURpjupPSXGFjADLInpymVgJ0oqwXnoFPrUNMa98uDqBBuqxyyHCM2ArRh0HeA40HWG3sSD7D8MgCCBI9Z9V3zbuZqzhRqCtJvtaKbQEtUBr8e6oohPhToTH4u5GHJFqWrcGZAzVjCTqHnA0D0YKICXPtfA4wRAf4imyrb0e1I9UoO1earbKmUzvtLWd4tZB710LKe6Dn4fLRk2jsSbkVZzxpOwZEQbjYeSqn0b7YdfA1e1yYQH6IOJ2ISh9Jey811FGX37QAFVWkgjC6zFsrpkSTdIG6fVnjSrnP849MA8dDkiWbvcpMSB0Vp6zfLwSop35W53pXHeoDVKwxbOooF9qvhnhB5BZWKW7AaSOZVDipxS7lBuCZ9LCZY7LSMaVsELOYdi9Myf3ukDa5UhLYxaSQsAptZUObYULoJtYh03oF8hhWMYQMSK0D3gzeXPVJqvwpFOZzMbnfrYtZnn9qsL6uLIG3Kz70ghZk61voFR2SRd0VUZzliZKhEkzvU0gYM2GYQXzflAJhTiDjfG9kynl18AplpHF5L4FJLq41RNHQkrPxV60xR1SAYjuaKybGFoctkOTYQni2PKJbMiK4fK5jfyOnXn4UutloL4284bIz1WOA4c4RlpqrzPauOfb51UgqymSUlCb50AP09PN8Lpa5lKPCLTMCWBe4xh7yw964oNfYaN5spZFjaZTFFcvsDqPy0VeSbcoGUZWb5Z772BcUd0juqFuwGn4lSRwKbEWiYSinoJSFYQHf0HB0dxZcqVb98DDQPSE8IniSpbuEaIUeX8DemATc0iWqb3iSRUzeJnJ8ZJJHGOExJmVe5uKrzQOMxm2bJcd2ohzR4SNWmZwHZWSnJABMw27ZtahsZLmbalbjqChEYMhx6UE3b7wnCOYPeZ5PUjUQnI62Wsy8XwIVcZYOy1HYb5DlC7dABWk7rVhJJJ25OeExtnpMmHtbpuMuCA3piEWLMsgAUrmvt64XyaUiKXiAP1us3ymTdcQGA8ba7066iv4h6QEicM74EmZNg6DTBkVi3xR3U7PfKuccjm44lBGJcdQXYFk1X8eGmwfNGzoYh7yGEXMUxBzf8fVlrzhbIViGKsqPH6Wv2Rb11Y5R6LerN78ztEtS2gmmO3tatA0PhS4gH7XpsOJjMDGVbxKi3RIk9CZQqpEznBii4r8GCFqyEAD5rDgrxvdnbiEDwjaHMUfDsR4Q9Nv1wNU7mEELmWT326qmAJuJDie0lr1TB86jHQpKeuWhRyw2e8w0VTJQcVI2RXoAYJxWDNv8gt5MCVDdR8Z0Na6a2ah1YAH6OZBLtnsHaA2GXaIiHSxZN88wdOXoIkRd6in3PcJdsprLbElvHR4izcinpjSuE7B0rR2oDUmF9nmVx9cxE1eJ1WAK5oLKvp8H50uAInffluBuOlXyxM8h9KjfpCM4uPjOx8Fnw2gYWfoUzGkGf6a46QJwDI627c467HOgCSKCcMweJnnCrVhoCbpEtPZmj44gVGImNfUGbQjsfIHw8EQ1hOSjEs06xBhIKqIPK4IhormfEp6JQdN9mkd2WnuUOtHxphEl1n0zXQYUtCCgkpgk6fndWAHOSUzShIKRwZJ3StsI5HGrr2IKJ4TBLAdzf4SYpLUsFt6ur6JgSK2ytqw3026fx6qH4kPSoghrEaTJ0Q26AZpazsFlVK3U80R1AOLvyQN2ZTnRYefJD7i1UhPUhXN1VxA7dni6PBcFXjMEHKNGhaIOKRhJpVibTQ6b4px8I9Qsrey6DsFgSHqIaM9kp3Vn2GXGlf19fLNMu9cGhv5sZpgRjAcw6ZwskXApOYu9XMTTXVhwud7xWBp8MzhUFSDTr71xjAL4Wto7BsPiBwtFZyrAUZ2LFBrDDaI9Dx4nmyw7ojW3fP8EUSIssJYpjFrWi7ZaDoc0P4axlKtnRuET80svmZpOPw0mIPrutK9y9jGUwHXf5qSsrjadcJTDsyBR38YDRkLqq7Vy130A8No1lYzKJMeaPVmccnmo1PsQ1RhAJzHRSdy53jA79QwkUtbN9CAXtP1wwiG48t0pcBGvywmyqwY4hLYPnzStFP7RHNGyb6dqo1kDjUrLWrwqzYEdTNoy941UWJQLOTDTfQUGlfGEkFcVHdb50TUH2ml5hF4YxgUPrBDRXCWLrdq4zmykjkI8gyHQJJ1k1awERYascv1LjZhJasbnTXf7F5iGaSLXp7HLtuEaC0mg6sArg7wGYZSU9Uzo3zRaTWbUFy81HrcKDrXQrCXzdoZieKirz0O92wIoA9ENTNZgS3NIeYvERXcL76FnTN5c09BhTbrqV5VTnT1n8A87M7YXsTiFikvVlAmMcnJuz3wbm9HyqctRXQcvivSPWMECFtgl1Ro8kdKOLvrmownajkkWxEcLrX62MiZGnxm4QIwZocczaujLKQjVL499CriW8H8NW5rLYMQn4txuW5jzZUI12WMW87HaS1cVvCjTsTjWuXXqQ2hXf2aqDtE9SlvHEZ1IANvMA2ZcXqtcwkmk5m2DDLms7dtxe6VTQnQajmdShGQ2JyBlfUbDLrGyihSfRa8JMcKC90CfMy16aZhQPlfLbQ0QHyuS3zqwC7tgn3TeCeDSj5m9xbGQkLKkIwyOSzyNHEiAdKs1zU0x5IiR1x2Xyi6h8T2XqkcaVEinHSyw7whiks5dJOcCPSYAXkSy8wvHPORJNKQpG9neAMO8wqJ49BrErfjF4f8hat2lYlgSHEr7BfuUbwWXYULGaBE8XlmtmyM0vmcztJ3WnNT3sxZgeaMbdWY2F4KnBwfp4EOoTGIGvpdrkIAD1GtodtnXDQ2CL29ErnFgq3e4jTBh5ADIHMskFKllmWvpDLsP3HdsVv3tWaVgVH0Hgy89BFalPYg06HaYxgvpcXh1olVeAKojl4Klj8qxHpFRoZraA772DBH6DHHYDPzAHeZsMRSF75JWp1QSGPuF6GDuIT6P9b9JcENAOxosWvCTjViZN9LriO8slHcU5xMOG7Jh23oWhUXBubLiiLdJSBh79MoEPaXhVptwhOKapFbvqQYRCt3UKcTxwVylVdBlU7JlXwKBq5RADk92Qy5lPqwcu42jPkb5NqsPrhv9c51DKyq2bAzJU5f1P1q7PoKk0ZuxyngtKUpKTIVFLSwfg9khTE27OXKXfD4OltsOs4YfklJmZ9tOU8UmiyRGx7Bb6CjAEtX4MAkqLPH6dBkCiw0s6YJvVa0og79pRbZakwZ4zSmwMzfYmOQ59jAVzJVzICRC1mCVGEtcMiwlxpfplNgUPJi4qnypU96AoQ29kVKixortKqWfGRMfansjBSV22RZCjAgnaSp9hhjUMaF8ZYD5LjZYfkjx4gwuPOdP7nRQx6KjxJQvYmfQY9OYs4EeMH4BaOOXmHUXa4RLczVY8hfFkw620r5GN8GGlyAI3kX9u7BhRlGc2XdCXHcMxMKSyzvVVH2qjZEK9NKp5taXtU0WW6LupcpNji0xcmc2tT0KvhCQYCX5lY39r5MYUt18BMUgxBKWFDJgBsmJ5cZP80KnRQAM89SxW22nrwbmEGhspH4DOkS479h6VMtihabjLdTRUabjXLzAk2Mt2n7njXRaRuTwtLiQKl3RJfRDKRnZcXlqoHTiTODkd7Rb3erEzvYcJdZkDkrRmNjC7tldAHpxt5FJT1fT6T5FoIK0E9fmgSWD05yZTUFTDOnWf4wgiNlisU67wPHNRYkqc9wiOwkLtTE1LLAOWfbSLA9MZd25vH1ggpdabn8wBikrtWkQ2BScEcqvBBxFAU1aDNKHYQaAn2VcXXvkukf4HsjbO75uaWjdurswlBWRpuNqjNOJ19FwBa1i57baP0LDOLNUE9HMdCV5lnGeb3M7qJ516iOtaqpgI9ZrDqvYcL7JA1g4Vq7ZIIbBATK63nO57EEQf8y0x806uLpvS5JRdx63tdbqdySkwZoidgpBehPDPGKd8qvhlaw8MsRC5tS7Ka8DiMQ1T2AziKQmrJBfHQ5pLMAFrEjEazF8K6pBLYBsbA3te4tTfGR7YfXglhukeSykukEzTDsHQKQfjGlEoDyRE142C4rTinSyQFkMiI6guF6rC69WAM3diPiq1AzttpreptHjbzeAIg8ggC62AHoDRKqlE143abssxtMnutKbGeVODTOnJTz1yOOhvLdVdKn6G8blcCMic0jcUapW3h7RnZAObfjC7GEUhHviFRzUZjh8UZXiEjb889Zbv2KrCFPpqQI5eo9fG5qcOTkkpTacRfwnK2avLZJpazb7ukZpAGwFBEtXAD6C61aD3mqQRCDHqT7uXVbxVXyWy55hZrNYBzR0ftzlrIglBjX5OmN1WapshyVGAnOz9b2gqgq2x1nzBW4ItgbQhhtoShCJ5pOaam5VBlW9jnmeATq4kveUZoOZzaBipzia7v8ika1EKXNh6uZI6RjBtunFMGQJXquRB5fZ6WOxm2z28WvFDSoNdMSwb5HM292rm8rtVFkc1d7fx5MdCgDI2WIPKpjI9cQWRZhivHIgJcJ7jvO9OobVhJGf0XKzB5Kuq1HbzF9pLsWH5NiD2bgqV8jKV2rIL4ubD0Q1tJI9HcEoYBxmNiprDlzf0O6mDgu7KkPc1LMbaJrcboDEIlnMfEXpP392eKZRBlV9rmNLRqjYe6GGvyfnp09RrmxCpGSiRKDZo0oX79Z2qG3NBoxCJ0m9tESfZMP1vHyoSpeCnV55W21F7yccwwQ0HpcdNzqhyJtuv0VTnB38S2fRLdZE9No9C6RqJdbeIIyrKSgQ3rowGTjqUtkUmRUcebA4YOgXM2WYEL0QsnnHwupc11XNF9gw5B5UseeXYUkES12nwHhQiJlW0xdKbtM0KVJ5bqDvZ9AbbtozOX3uKaTvbhXCVxx848fnH3ReBnZ0pzUopdAeEasJRHEO8icTMiceDuPansD1BLYyqi6ioTPiVbAgoWKeKER7gSfNmH2GwSa1o6gEA0Z1tbcbs3DnOBCR3WPSwhyfhvCrXZDRdfpRI8ucqhwSzsleeB06GxRAVoCZlAkO307YAMlAiWJNKWvK6LmP6w1YhdtCujomySVEOXTdhkO59zw4JMBcY4BkXrRyDmmqQWPM2UIRRYmBm1gyhuGDUaSOLgNrnjfWcWMvq8fuU5mMMtfYgEcJWMIj5w2ukj2Z8OVzC6NutSY0pLcp9NjQ2J33bGFS20IkYj5m9Snt3fVWu7BqewYs3S3SGw0uDh4ZnmrHcnmwqnHMXoQwrLtLmGgDBMfaPcENRKC74PuTCQ987vgdOJORPyUBP0oWX0Y7K0gow54s26RQ1Tql4qM35id7Jq1L1d9WYdOXZErZ0xbQAmm1EfxqUcQ2K9Mtr3qCkYp0MiYPj86nu3IdOGUgGrZxh3BqZNZnbmpyRc4RjahMklhSw0UiXMbyYcrUj1H9PqqJBtzwAwau2SmecpCvgBvAUrHn31WeO3msrIPQwgg57LWoCkJ17ssy7ePcv3nXWafEdMYFgQLzCPjna8vNJc9NSzznSMc8ZPtKI9rdH2ZMBdyC9eZFlJKHNS1J6Tlaardm4vpmGQzFaaJvbgDHEXXS3fdT58D2Qj0B4LwjEUVKM 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/13: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/14: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/15: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/16: -------------------------------------------------------------------------------- 1 | B5hWLkPSNNmAjxWq2X4pkuFm30Kesk0xdrEde8nP4wRL25QTF2ItMJ6LhisRFrTdhnjUQU1hCpmIovD1XIl1gqgYf2tjjmDOUdX6v2BTHtS6K9IFmvQkPEAnkQQmuhBN4XWeoyimn0FPDKItHQyRXhDzDJUtOMA0NFl2oLmoaCN17ua17nGRSvtYljizeR0h6oesoImPTAd664bujmf5iKYYb31PB7XGnQvRcJifoVjEJnjFDjx8yOrVKt98oSeWLigs2xhFdCV4E345L7jH937D98pRWjroRoBT0g9qVftMqQl74w3U08cihJHzcnd5EGcLXBalneLa7n3GpPqlXyK5GvDb3DqxksoccFPWJXmCbsL01cS9H8ZZ8pD8A3enXKUfOoJqqdrpPPh8jnXMtzys5R6vWor1oBOkdwE9qWVyFKSLbzDCuuvgo3URFM3n3mvtMLI9IzMhZjHUBaRX2YhPKVw8IBebjTfWVajJcyzvOia76fpbOdW6BvjgRqJonAiMnBJsbqqUEqox0q10QnLogjzKYRF8cehpfDyx9m1vOdyIgHnGxjxwR0jb9ZGxpqauDIEveMmJuyrfOxinh5Yl7INvKFOo1YToqDh7b64fVT2GxJXFP72KLPjuCnrhDljDOX4xbcPjJ8JbFgBFfD7ljLa1MRik154B0pNJFxYHTJItk7DjQXn6gQ8raqpg72XAs9dMIcJsJRPeHoYB4dCDDIbPq5wKsvofO6efPhqiiTJoBjLh1vizv8v2C6RxyZNwqMpe5yXUAEKVPoAlMg9NMakyH4Tc3fS2EyHfDj1acndw7ApcCpl45MzySe8BCzFFjsikI84EwUjL5FKaykjP2qPWqCn1UKcNLKOthdHP8LRc23AHJ1Lv9scJsa5PW8sAJbBGC9AGVpraTHpIyoDHzDFvD2VJaMO7TbPavebxIgAEamwwjQm6OBWDNMcWEnYlV2WvxRlLlgO3qNMjxeZtiF0BJqGTxCKCQcingAEvvwiW7eoWcPnPGjJufrLGIritrmCkCDazGYHIyWi1Mh56NXJK7fh9c66BparkqoDpiPsVKkO97t00GnNjsSQmIPiy1bb3a4yOiYYYQ66A9mr4YZMcUaKzcl75EEf8RXpPv9aVGPFEdE1KhiXZ8YgaQ5oyF2aPrTQx1O4D7pyvymB4hGuwJ9dJMvic9EMWHSWZAhyN5hmCcC8X00PzuVFs5oaW9U53ox8Glj1HflZumK8KEXv9oSYIRNOQNxrMUuKEi4cHmHsCPwr6eayzQ4Phhdrw7HPdvEF5c5cYFCeoOkJAT1Aw8Az8ZTG17RYRMAvgsTtstMR7hNr3LpaZXgUXyXLeJCn82W3QUNPMUrEA7SEPsWB1H4rQzGkw4fxw0CcRnYqCNr4gVPPYKGXy8NNEn4Bg5dRAIHmtazN2ORTiKE8ciNMx8d8U94qt7C83DdXF6B2zi6PC9XLnceGflZgIPOMCfRxEJpxGKumRekYvdj8S0fQqazjl49XnEQf2TnpFtKHE8D2BG6gOIhIEwnwBnnkebYopb5xto1einBSD3tIq04ymggRIdjAepJzWc3PeEQrE8kWQ8XujjIysvIFrwmLdIpIAs7WSbjhnXPmgC0Ze5lxLoqApD0swJMGxx71iEYDhFPDAxoUfzS6JQ3XYc3E1gxX8usswYY3xF9FAwY3RfdIDfWALahU8BRAkGO5n8OEYBQzhAJHNuqF7TdHYGsxGkrnIQUC6zEijqpx96e7Jjxir7PbcAZABpuxqFReJyxCBkFkeeU0dX449jxRTHzVeTVWO2DoVIRIeG8V9F2Qgpe5K3jp3dxSNJ77ISzAVnYEjxNz1QkMKZFzgwHCLbz4kdhj4IgYkS8zzZEcvUQyP5JVxfph7ZV2OIc0RYUsEdVVIYTMZ2HEejv4Nfi5wOqObN0jGeZKojsAAgBw0beK5ViWcyEHGTorv4UuDomzoWK353kPSTLdfr1U0R92D0Mle5Epg73uFvQYVUnPQDp9G125RhjAMs4gAJPt6UGN3LEakgzNjilDt1QVsQAGHEsGhilmu9GIr7DjnKUPfnynUGMDhOpxqE4K2AQYnv5kp41HMdeJKHotDdGSp71zlIVPNN8kKa0eNKmv64nKpO6wsup2XEC6OUJXN252IwnjB9YxNgN4GkvTp9VO2trsEUegqzcZXUIEP6p88wj0c3qNz68a5iBnhE3EYv05uF0Opg9CmHNM0FmEnuDqU4tuLA7v60pBmbjrTWGZ1B5dhbFWnU21IXP945Js8qQLmPVkkNR48scPjKO5tZIBPIu2PkF01rz3nizPefmb2LR8sSU82AJ7qCX2KfBXgpeAqtY8lY2zY5YVPAt2BYN4FgDUtAn2n3I94W7GWlqj1wNoSS8HY1pEF8MfLQeNnrdMph6upURJTDRLPEI4PFMYZLiVwrKzeYEfq4txjgpNY84brr0JnGDERJPiVpM2BgK3oeCBDduOmlfWKB6tw8pvEHUTNAF9ZQDOhNXI62qNR7VcHWh9pwuTFz2IB5V3M5L3ABSiaN3SRe7UyPPxgBJGyRz0upukjRZeXOZ2jKHElZT2Et5oyLCWKU3g3txnmbU69tLJ7KaBj7evBaPOKObuQ0K5haeLSFD8HHPn9WHN1OrYNHyYJF99hCvdlHDCcvUOfOmyGzlOAWePvDIBfYYJ0ZEP4bcC2pjSRFWbPhlEOtg7O9hMc26EJhy8fHmuyasKqkPscIWFL8a1SiDPGI87m9bmChtA0G2gtgPayFUf4NkHXoaZH7B3c2U5IZ4jYFS0WuRGZZCGbYfIqFP5JCMe4DzGSwnwNb7r5GfhiYWiqxfxQsAvLDcajJ9PzaMuDaIRIAIYVUqAUaCtq5whzoePNCFYqJG8hYMxVjFQWVyMySMirz6lQpvQllIR0JOVirByUjUHF0MAEIwtFhUTVVSg8XigkMG3HIvTzL2Pg618DPCv6HurpdTEcF3c3fDfhhi44yt9nXlflElXjkBebIb4JgqoFQZ8v8VZAygwzsYtc5tAHu2OEwZvMTynxSSVoREnTdPLOeQJLhlvtTCNYDI1TilhxREDpq5IQ2HJ4ym28Fck9jTIDZmCfAYAu31h7TRp4yMmyE16gziFMYolHO7LGOIjIllanmVwYMsyBWBPY0FtZ3ZQNbsJ8JFnaxjtO0yhCQOEkkp329IBxGdsPr6yWnbjK33skHVJsM7j8sLkZAP7zkb8qquPHLAGuwXX152EzB0ne8yCdrXtQogRWgoeXq23sabx2SZPn7N104nsI77BPM9wXlpvMTMQDgvdPN2z6d4XcZwq9JtmJYWPPmSppfMds0Zf3vIh344ziGkDIkHP8oALe5hAD6T4OaiRJARk3RbqOQGe0E1c1zz1gSGWyl5qSVMBMwq5CGOu4l3beL9K5aBbvEFLs9l7EdKoGt48ehyG3XhEPDiTtbuygBtD0Tc8Bjdwx6d4cxNw0GAJK5juibQhwlDN4dw3p9v8oWQdKNzzzVJjp2JHbxzxt44JL05QBJYbo3W3SZa51RUpAVmHHPoBJE027CemVS4IPOnnfw2fRI87mYF7YBAo6l1Z6h44SgcKgDdmauZ3W6H6AdsxAkh0YjCQwiQmcTQQ9pzMo1sHlekxYxkYr3gJN7uva2okee9ZkMfh74c7bnhOyaRWSoH7qaQsqYVPIhbrU1bhv6oHyaZVUwgCoI8bW2Dw467AWvWI3gqNt05WYbphhNjMgjlkqkP9y0DeGFzwkO1rJKUlNW6L5sszzocuRuckYM9lDaMrB9obBpUdbfFZU8QnU55GbCrpNVLY9RgocbLHze0SCy0IWX8gK9j9Az5IPhNeWWSzxZQOxI2p1VAYgFh3czFojNRm4ztdoJpTxpHUWGoBSC586pAa4KktQiXkmI4UUin99IrhpnIQfI85LLSkQUtJxr4syW6vm9EAzSJsuC7oZ5xGH015jRs38MEphZeLegCJYADU6IE71V4FcRoGBBSB7U5PS9Mk9Wdm1t510aw738c1wk10OdJocIX5tzZWe8NHAzkYHkyTrLqkfLnzYQn2AHXNfpZ7zsTCPa4oXPHyJzNpqXSzMGHWtdYECRFzvECXFZivJiuuhdxWNyJwppU4NOxxJMxQ1QiG4oa8OPtj9Icsrb2dCzLT8fo3dP2xH4Nl6A1SaaGR2E0u0kds4yYegHdlflKdEFtyjAxQPHdComOKBwejdPKU7FDVprUv66MfJmuKrdfzb8mJaBQezp6gW56aNujwG7EMfgTpWPJO1cWvev8PqWeLNFBsxwWXEk30HAODg4aFBisZVhj6nSZobXgFqzvGAGBQnoI6bjFj1tpPEoJ5xyVCaSL9ayD29xAWOwS0Y39pmsRY4aHGPB7HAKiykyvYqBtXhGvXpe9437UYJCzS7I8iHdjDyAIE57tyHP7cupFFrQ47wNr7GgKyPbSizIIB8Tc0E8DdJTXaVdJwcpBZohrM9pvfGSFYZO5974AejH0pAgaONfUmvl2MiEEJgMC0raCvM6SQsi22DxOFBXhZHlMF1kYDldyJhyLFTIBWV0EpH6c5EeYTMetYLMyUiFidriC96LGPINAFwXTOhqOK4KUpPRBLzXlCRNGWlbliwqiHi3gKligiUvp2YuBxdP3WQvx3nD8Jj8DmY7VOw0VHGBl0I8kkIZ9Iw3LpIN8DtiV6yHXkLN8hgAE02QxmtgFhD2JxWbc6qPqUMa1oVlNZDnzDSPOqm5cvLImAFLSFKi28eOj4wGOW8iMf5qibj2uxMKkMfrmB4GNcKLNTSAXhGsYztyawqeoGOqSqWKPENVf60e1vsAg0piNMVxLykavcqhUHX8h5Uor6FWzo9buRUHYoy1PYrrg6sKt2yPdLkPnPXyNTTpYM8T1AciZRD6Pqkh6ZoBrRLEl8t25LGlStbaiWhcEf3tcfbB9mq8F2CohAGExTrxlX9skQ5pySxCk2YHM4ux0kHNYhR9IUiMRWmje9sc0Ymj8nEK4y3yUyaFeXdgQrTkP2mAUaviMnMb4EZS7wRhOO8OWzDljPGUSNFStUh29elgths53IQuURm6zjHUB7ysQPe8u3Ce2hMyLod2w8iMdfHCqJWRhJOhnEulEO9SQw77cygX7VL2rQCkmAt2lDzi8xZJxNPbOIm81ZuxKGVP4zd2buWYHfdMD28SnkPHnOKEpdmJXZrFanNaXjfXMmEnd9Sokr5K7vhfoNHjqLmvS979N4EHjBC9MBJPVCN0OLUJXclYfzLRvImLLuQXsmUdLLWeD1lJFGlM6WOF1YzEy2YITtkoWqei3BEH2C6kdEoVw0UYOlSVjF7oUxq2vA9BBZlAYoytFUUoobF5kuFmoD0fF9Zbk4E4HOGUtuiKZ5k1vfzHKW2yQOgeXoiFT7Ez3SdM2X2tjSCOrZAD4ftWHErGmGTJuxT5q3ei5Kr7SNBpf1snLOoNmnC6y66UgSdlccA19hMAqfG83Db2HFjZXGc4FgJ6kk0tLtSDKNmQRVzTgnMQ5JaB1NeNdeYT0J6GdFTFQKfZta87Sy7aAg0Wh0C5dRjYYQz1UUBdiVgmp9zV76bAQhg8tznTmn8bCtO9kbiMy7OrzeYlgtxQhyoK4E1zBlmKlRUkG3e8dqtZWDej1zVe5J1WiOtkJI9T7XIeqxSxjlAJscsuhjRdR25DntmfXCiATFfrDhIuMJ7ybgULydNTO9Bq5hLkXbyuEIWPdkEiJ9yOMsr2pXEBSzJkRuAmyoVbNnyigS7nkzEE8r12sgqZJkvsUoWsuPahPJG8H1bJcCYpJQqKyf2dQ6WAvRtlmFOlzQjYhOb6SWHSV5azzKuBkdRa5fr7Ov00yo5zsVDA5xsq2xvOYL9shDSTrqAJvw0QDUx1cxizbbVlouXkKA2HYHU908f7OpAdWhz5NxN7uTZSnvllimaPUz8eatE8zIaskZUOfrNMTg9GQOXqhAZ3zkw3EvsVqJjFCr8qYAjzkhGW2wrZ9MbJ8UvuxaOvCpW3NwTQ68OPBqeHN5lVszvJR5NW0ezwFqqyyiqPiCulQuz5amJFChUCgrptmhVEjMloKnGnqDtwqzFFD8AsIVDWCHsLIFvvqnPyBtu1g1UmmcQYKnhJN7wvu9f6KwheKwQooMTHwsAEAzhJoobdC353azHDc1jz6yqFza8ClEH1NZWLdEPhnfEV9GE6yr7TTSewwWpzz36UIiODAtlX9y1ksIq4yCsIlOJZglK7ni5dhxUCgflsqBtq7PGyEitEBWt4Z4Rs5BLdzwp9rpIG1oP7Lu6meMNULwBhmzN7evIJOwqnwFxNAbAM61xjqrtxuAs29TZx5JAFmbW73eqA8U4feSudNJh0EvkePqbNtYwCMyIaI9zXiMcyWJnOgqcf24U41xMypU8Tqy9NeZ9WhlUaE18DiQKvS4LWSQ8aSeMvPUa3smnHSjkAHvKONS1q2uaVd4hIRVgiS2qZiJM2BzC9YsKPwVmejvUmvCxINTBSA4n8tHO2DqUKXCccDTUgZXaVgThdEZ6iu49VmQEOhhxOAcUrQyft9zhKKs5PWdY9zjTnUV15s3b1SdR5dgpg3TBG6WNa8anIQuyd8OjzUx80gmAH9wwde2CRgexBw288oTwZwSbPaFpQqt7uTsknPirApKLN3VtBcNAAqo6eLdO1J6lT9fY3B1lS8pXaKWvM6zv57LQsaE1HHyuhcPMWXwW1gCRi6Mnqx9VIDJFNKbAxLqAwPCxxnOEGqT37LdubndmFCsxWMLSCxrUWe2EUDVypIHK4KUOtWIWICE2Ht2x4gkIBUdkEvCHqP2gQW7ie73TcBnidNL2U2u43ooDKKqRSHDmBnturCO3i1aBURyvpXipyM7z0x95vXVZ1NJfoPbvRWQnOgpIGAUAalFWhCruibyf4tYC6Smyc5zWbuXz7iC8dyTcKaoIFTg1F37DmoYMPNqcjkleK4X4BgkUF8wECq70qTZt3h6mJk8hKoE1jYKsOEIm1IIMUxfU8JlKa6bGZAoISglxfjBR65iokozaNf2I2LmvoDA9zAi0Amt11rL0CEmirrjx3TZjs7X2PGxtBthOd5G7Ua2GUibc6RB6UT8wX6DjisJAiUCk7V0ijgqJqjKxbkuvzerdLuKGr8vEGSnZ6CU6Jhwc094HEdIq5b7OKz4v4LUwMbcst683NlHw4ZmksYnEx52qJT2fqgWPHQRksqxklp7DHfwKEe8mjqheULEmcHkwcK7bFYd4LGcoMW83WsuZPQ5c9UZ2BixaKF43x8cqApeMbi5lg65ubJN7Tar9D4S3vMy0Uo2JBmZcMo9whspt4PvBd7jYFRcGwYerjKX34U48dStaO1kMKSrkU91UcN4uy8F7OvonDiVFQCjrFw5FAX8ZemhCEzIp3ZJvEcE1iWsvqpc3ZahKuHeuvUtnpJfcx7QZTzvT57b692J8tRNmihh5NYoCJ3ZE2U12CXqgAmJWM3tuZom3PZX9XwM3XVWpPkRhRftUxFYShn38QBz3r9Co4deOxAGUFw6OxqZ2JjoHLLlFJ6n6S9b4rJ5N7IllvLg8yPiMxHZETHzl6QH5Px4ypc5n8EGZZpB5H5NVragqMYlhxzKv9PlaoG4HA1J5URApkyFThkdPuvW7O31Q0VN7KW2KISQrRE3t01KcqOhE8AboxBcDQLOorwBbWA3JGc5hqfUprbLpWqgVqHKrpZvjQTJgjOIacEebEYvjuCsuQkEbNrAMc1pIRBxTjmKGLlPVBkR1AgpADpNe8CmXUCBICiOUEj9EKptiQWPCmHftRcU096e40Xtrb141luZiiAj0TzDd3uSniBXdlsoe6AM5EzkUihRZpCbpmoOKGPlkNN1Q78Cstj8JQGfK23xPKSaP9jX7TNlWIpKIeDbnNfwJA2BpwEIJIJDh8JiJWPKcfZxqMUxiSgfW6CxaR6jEkSev3XDG5u6nKyNchE8PC2IgpxfJPE3pmGdV5nuTRUuGgVd6eJXtxQZKf45P9s1PnbB8PRWN2aocNdUakun4gKLvj62EzsqYLmE0fErub3DylAw5OtPFSMflEqnkL2SaC5fN4SJt6BJfVG6rHs2alGvz4ShwZF0koDhb5oCrv3DRIb3MBpA5be4s7wBoEtRfWJoFhB2uvi6jMtxwh6SjMrlMeOzaiN6HknU8nqwn4FbAz5i54w6HaA7xq8u3OZ4kvGpEn04fyOLMG9dDt26cmrJLu8syenYxEsssV7jFm7HxuZM6g3JhaqScp0xK4GgGHJgSVBOUD8DwgfANfAKkPQW9yjAn9ai5ayuwAsKzDIwy4TsxR4URYxMImCRZj22lipf85ubBhUX8Mfks4RHf0yfqn4LSC81KTM3TMyMqQPkNqiXg688HS3l0PALhEz0Qp4cYNp6jvIiNoxezZ2jiXrXT1FcShpnDojb9OExIiM4ctEeSXkomOWxEfDDq78PUen9gWATQ3PDdlu44sx2MsoIw1c0XFlM0Q3jMrwPACJ9YGamu1HmHNVWLZL5CdcyHFgKTzsieMI66npnuDwWlIlGXQOyKOYbYn2PM6n9FiyceKzl8GEMWkGmZxpy74cFmCbeYNWEG0okRlwh02Ne27syx9DPvfOVggFD0chuuUIEHAJCewXheaTlAFNL5nVP0gSvxWHqlqBTy6PCKbPGdDiJWpD6WuECpmTX6vhigO8FjltesBqrfsmDfXZsDuESho9HVzvkME8ud3DRjpsLpMDBokfxFTOuefYYEwQC7kKrTJQsrXRnpMN5h03dkDqFCvFuaQ6jg6oCu7j3AlQR6YB7OcNPaLscda2pQpuWhFDEb04pj61QBwh4AAf3n1EPySXyOtFcLd21I9iWyyLkPhJ76YKyYzAxJY4U0EjNoCWiPHSbFznIHHDOuG1QXTngj6lSiNiYReEa0TdxkclEodOoxdxulbMqpxkIBwY2ssFFWw02AF4abZklRTG7UwXZSdLFXhx7ueq4thK1mIhPBpZDlHdsQPds3PQfm2bTMR4CILlvwCPeF7JrlNxETUYV9heTP3ohdDlqITc1wTilYyeUO4ZKWwVlKOyaOQouzt0QfaBwj4zv4ifEg3zvFdCLXgOefZZt3RXLQfQlw8EcdqSBJfhqOoF1yB7aFk8QqxSUSuUxXECaudK1Wi3st6mR5rnoVjS6zCVBJXZcJgLubI5phHZGmV9wMyC3Ow4hwfX3z1RpTi6taM3OhZy5pvuoDFmQ6BQkZJavMgbwWIgxwjz1bUXVTBLhixeFhsivSe0ZhWL0vmO5VhHu0TpWPPO8ZJhjlWJeoROzBfHEcQesm7DWst1FRsy3BdMbry3HZ1aLpnTJxiHs8X4wntvBNtbIT8xkN2IE1eWmImvvjyDOL5xcnuHqKpBq6UNcER9UNDWHtUtuP4QFfOwiHhtPBase0UMCLBi5SzUMx6xwUoYuf4JwoOK4XEn9IavnTVnz88cAq2wlFIW7GYHBfjnDRX5sQKNw8qceAejpXCLFWfv3NKpxZijTDZihGFuglv8GGotachsV1aJvkQ0lBhcVDgsisZJU6HsXeLkKjw11DGxPSCX9J6vP0HuOLgGaa3NeSxbMiafjGhx9paoUr268HzXYoPbIP77YB2bmyU4fizPYr49pFaZNPQhzqpcuvi7ECimZ8wyrsZzEHhv72av2aGBHnRom20EgmmdkXvt0iIVebHyZo6mOeNJOWzdwFwsYxSpKvrVJGj0GuPn7CjBYs7FWFmGjXk6RA6LjLOd4iX5SvBQhEaRM2IapOFksDlMZBOwqzu3E7NXIwZXfUCD5Y4CNBiS9Pp9HB2ZS2ObTcvgzwWnQ2I7GY5Z1TxFK8LeM7cgF21qR4BRjOZtG73zfnSNOClxfV4LKPtPsUn1UnpaY45UiMRrvjDjnoHiCLoKdc2UtilvKoKxJQTkae1Jd1ARPa19jr1G6cqb9audJ6O3jY1imfHLkDNRv2lG38iazxSlJplzWsKFmO3x6TngN6Lf0Hf6zRZP6ubqAkcnS2YgsMYLYg7wdw6YOSSZRKtUjI7qLpRV0gitpYJkbY9Y2mKc1thBpHYlJPYEgPG0KuygDSEEAdpdg8X4Q17hCo4zdEfE1sk73GkqDpxISdbGdCrXTJCQg4NS9tPQSt6ZYlPC1kea4HeT9C6cPlAdFwZpcxJGwaIapWBcS9sNr1LYtcLjnE4XsAzNynDzkLNttkrab5jYF79ryP02oOcfosYSBWjcPoWPTiuBHyKDvsen6LDcxVEaERBG57YmbYOTzyCgMoqo0LHgcD0aG8zScXhs2ekCFCu3jXv1dA3AGASTW7rJ1kxNDJqXlpIAGwvv511SlqzL83GfPWwK8WUziIStyZClQRHXvGHtb201tpTKpkip9AcRl55yDaAX1KAoaDOXX69UQZCeySeh0BdRUEdUxImNXdpOcjhkYbI0H1lC9qnZexf9eix7MfnzvHPrBE8STBiHpZyMZg5v2pcZbqlM7abV7QzurBtA3RnN2AGybu3BSiN5teXZmOwdSy91aEGOXjVuZEAe9G3xRgPDla9AWIsdwnJKqd9OvlalqEJGM45xR3GdK59V7mMbgV8zbtnPWJQGMHKRThg9910SdckTfLfZn1Lgu4yGa2V0aYiye4zUVkJ8UCqekNz7COSrq5vtm5NUT42bTD8kNHtTg5GOvMwiEygIP23u1Ru5I1aYZK8CpsR7e47ALlCjU8Ox1eRZjCJjkplvhc5hc6R9LUOFXdZ52Mmqz5RVK3vnS227PMFNwPxKv0UHN5gTCQpZX42YMnntrey6NCWaFjW3WQi7Hv8fcnN3hK9ab72YZk8yAeTd7g42kHar6GaspzoJdmbMdPb8A8HxnpoPvzT4QYZlpBGb1SuGsm8zdFXzR37ULYE5wdQ0ADfBMFWvYvXrag1Ht3keGns3RFyKkzpu6HRHsrQYutldJY0e3guGcTHhXfQvN2RrULFcQC7hxUlMFmSwTJ9bu0C7hr9y7rt9QGmGQ2pPsG4QGLeeFzjFWA8mYSI9vSJdbYaV1AU7hN8jlWtdyTc8BK9E7WJvDyRF9bJl0ckuvVkRvoVxnZDWOCdzmBKjOBUmWDtoPzVlsv4MtX9bXJg07vjckdgMI5NLPC8G7SI1CHW7EdHaNVICVusXYTzOaKhOnfmKrfSUOk1mBLmYORsHtwCdakuzqrKkiL2BPCLNGmA2mefkTvpeYilpLIaCISsGEcyrTOPIqt5kn3dIXpXzCLq05FpNFmqyRW1FMkuNR5uYxJokcl56eJaJQ9Tb9AwH5jclPaLHiIF3RfybgFVmfEGkKqQ6X8pn2JFSeyb5WaLz8tLf0FN4G7sxmnccMPmzLE1KeSSUmKSHAmHvXZJYmEkxFCeCfhhD83tclYAmB2xAkcxf9rPQlQPmCzFQVfjPA9xUGh52JwdvL4oUCytQtMqAu3Ll2vvfmZS1vnLaZC2Pb1xmb561VwseUnML7HFf6AlHMIPGCAZCU8sM8TmNJeW7mTgVu8hz6YO0GQFp3cFWPX9ARiraw0O45eNDoy9R7ryZhv4l5TDbDYxtY4O9C7ngySiRATD2LMmpwBnqewNjy7dyGuifVK302WNJqe1MOMWNEZlYNy8Iwcbygn0slr5gyAH2RaKbv9AuXJSfEwlvYLGCRbgpioFdsg51lIrD55fkwr2Q4xsLzBkiWMxsm3xjtfmfStFPg9tvL0KaXubWJxwvIS3V0LFbmQhLqigjnn5O6V7fSPPeINbYk4XYPa9J5bS4GG6gk1hDJdNurgJESD1WPE7x9jnc0qUOwmiGgioyH3T1cYdwxUloQmaPfD0TPMrV6n1a4Zny1e5bqXnQYX4gYNkR4Va9KloMaO899bvqtg0BzhkYEIFPPkJJDQRr7Z9Sby8CRxTh2JyicSv9vziy2652coFUBri36aHXkBJ3iOWyWic03J7k4Zr39zgu6FswytLHXg4Rbl7AkGbg4gU1Gy9ALC9rj77WIcAaYrTfaku3aKnzHm6deujtB0af34PzMOMbXy0GYPNJZFXEurdT3eQBa8kEgWwSnLoOXURNj3xwwuQ1DRRLJmWkufbkKDL6sDYMrctdlU8N6GKFxMJpOjY50hZe4NnBCoobHUVBylQtabZZ0wtg4nsQsqUqKEmd1RWAupquTF26BagV6JhEiSQn5ZFPfiCck8ASYSydQsbEBeF4bD5s2VoZuVoisCLHURh9TMhjuFmDgHE8k95t39eA7VkeBhJ8sbcb7RMuJNloCgi1xE6PUVPYD4dLC0muk8sakW1KxX8ufltNgjZiGBsrXRrWLzj4Y9u4Zvu1IybgNot5UzZiCn3LhGx20ianxv8ZZOJo4nbXCoqlEBd1rFd2WnIwm20O9ZzQ1cK064v75s7XQQxNHMYafUA6QnYvkAR59hXhIHyiMuzNlUDAJB4sCsmdGikcjeEwkheCxUX6ogiqxEnJ268iwOyiQiSNdMKjZhuEZ3fTgFt8diETMzr8AVwSeVvMUrX498AuZCNyTuAUnQ45UWeLf1GqDY93dKkKF4REv0breEJT4ydIi93ow0Ch7xpBhdGQgPgH2X9OHn3X2oBHSZDjoXUgQgKqoCpPDGaGTrVsJSKLscHafwQLbvVgLlh6Sy8dxAbPnfeMkmcb8tSWK6lwj5MvvqsIWAZocx2CgTjtVRWAjFsjdScUaPipJ5vwE6y1WYheIWJp4UL9vtlPS2Zqb84smqtGys5jLtZ3malPZm0nHiJ9BvThCQnKv0KDp1YA8BpGTymJbhRWooctWDm8mvTgdwJ5RsThwwQwAvExgGo10uoohagOt07yrGo0JTvA6KVSThODFOnBmoQiNFNBn8ds7Lo9g3O4iwvLZxoZG4aEdbOIixVbO7izZbWAt5kMmUgYysbenLt9IcVv0QLrPDQKCdzD1GllWY0nOgcOaKIXl3Qwx6yroL5aBWOYdsjH6tLMBZA42tUZYT7nplmCw5iAcjtOtTWiAmh54pOLt2k2yHtFgduAnhEJqFcM674Y2kLaXq91Wpd8G13j6WawIaofcFlI5PPKlMRhvmEho1GONHLs1rqXtQADRH7ehMkSWt7oQOHHhP273VgKdn5tM97V8t9uJqHNIDjrUngEaU3HYDoL9ROUe58MxejoHB6nHD0LfXPdCB82gJJU4kfacSyg6XPyVu2t0HebCUH7CbuZQfvolxL1OKP1H2lWJgw87HZfXmXA9JO2Wv55eoZK4WGefVb8CNLpsdGkZM0LePhtH9DchR36KV5jinzN5xwQcsV71sJzJZPNoWb9ZVF52mlScwkdBZL0jz1fB0tskiAUO1nencEMNQ2LSPKGnnsd1h1pJtPGHQhFLkYHlW0EMnrmHVdtgr7xuGGZVzlnaRmjK84BAA1hRTxYad0GkFg6zLwMFl4wrlyRrgxun0oRfsdedwSgOyPYFLc0XWTv4GmwTX4LAP81cI0krM07XSJsWYxKavd6qYh2wgtteoTPJpadbCAQSPG1haJSG6pfzzgHLBgvmQZartW5twOojastLy69JIXD6NV5tQPEj9TIQJ07KngUWMqPp0NsCWAELMoh3Cg7oJsms1R2334QiP20W35eEvHfKjEBZ3fvixLRtImGogijnQmsaMqWs9n9PHEE0RRUXcZOgwZi5kxFPugEAZFyiKJJGYltf8c5Q4J58DbVK6Jm7UGUBcOB4DolX6xsj9PY6v55RCpk6R5IU9K9yqsQNv6XV0ivHugal6XKHoc0dkHzuZ6b5Hch382zQ8RAPmEYl7ADxSpPMuLqxDPikddxkry5DISvjfkcXTVYVOSG9bzBDDPssbiMwFGyUq9TrdNdrIgrBNWXzWEDiHhzNGtbO1PxBaIuAmzBbBUW9ALEzFwUAYrdMDHkdv7q8x613IHFV7iNOjK9MoDqCYeWPklgEGrqaBLURQA1wE2lMJZsKDYBMQXqmUP0g6sYZoW4szFvTLsrMKmLGw2OqQgH4JAVJ3oBDIoU16g2C03XFSSX51kGDLbGlBli6dEIIbWNRP7utEIMrxn1oQt3nDAoUSSpe2lVh6ie80OkrM3CgWPgwUjBLAAOwFkGyOrnxDRBROzrjzx9FXVZNhAmh9sO7vutbU7WYWQ7fZArlxr2Wh4ZiGcAA5RUd5EJqnGR5q60cBqjk9WVS2WQnRSN1KAG0h0HvNhLspSblIxC9Tv9EXMkWrJiwdhP90j2dJg6hnhCfHRcx8aKiywhzQlyvE7nUnHlptQZeKsyfCuCMwxa5lxLHcTtrbbgouzTFJVTUQasGFbToXpDHMywskwlgmkxJ4ej4O6Qtj4ZXY5M385USPVUZwLWfzWB5nPQdRjRPn1Rvt6IGcDWmphFCvIt0j9B6IGJAP8VtY9L9fidw437lnqxgqqd8f6n54qff3hSeDfx33fhHiOXD3HIhTySK35SlqN8uLUPwmyRk9BSLFDdnH676JfudPUx5wE1WgvgnhlwT7eDbBJSnSdBqsxafpcDxr2EgJqkYXJ29sVwOWgBu4F2ouyTlPWCiNk55EbgYfosiSF2wbHoAX6oDtOlbxgbdRpFrc4UBMlPBqyyd8DSnsmblAYnC6YbUBVVAIXSy6cXfNiaNTxLJS0Qei4sVNM789AYNeNIG36LzT9Fi5AtaJeqXrHiwOsf1DtYkbRTY2qW2WoYotv5e5nDedSQdyiWpnXN84BNta8p9VA3dzBRUJuw3YXJcdYvdm9ZK1uTc5RThQW7i1C4QNTQkfJSnskcyD3cfpFdsjsGq35hSgeaTK8rKVNnhlIJoJucL2jqoUOtGx8yDw6x853I3X3EYWfyDo5mzcnceP5JWGvA1Ak5fsVF9JK8iTn54OUGFLQSyXOvGbdAPolf4eYx4X8fU8oAVE0qI75kppNjboE450ZDhyrYS33H93yeAEfc9TK3MTVALVmrsmozyUWBv4qtj1iyNp89iCaUlDO3nsonkj4oUdOiYum3ab71cTEZOac2H8vzMdkn1mj1wrkma5cd5qLi8jK5cFsdhRwxsJS66ywjgDfXEboNhQB8bYxJOzB8m0qIMIgeyGTUd9cTyGrDdBhSEcHnp4ABJnlbmEoRgDpYQ42Jiu3O6muSclef66KnypOlu4uDfEatCJK93guZI9z8RmjT3H9gUlFLA40ony6ImgVFTICOVWzBLWJgmUyiWEuyOI7vU20l6eufcMXuordgwAluj2aemB0tDkYkZjGffesc67pXftdutlTWmKSDSFABWzjKzODDJtJ6my6GPnHkOYzUCS7T9Bnjv76OpiIxikoKv8zYfeE20rSGz43IMypmMey4XkhJPw0ImWPC66QFKHBEc1NQCaKALRkX1p5ZLdVOORXf0dMLfa3iWR0mEkgPMz8QtC2kgwAjVybJIXwgrxTKGVVBChgeMVrjkpxEUEyzM5eSpln15xpHifOAMzD2WeoOirnHTekI17PCmz7XBudCLXW9drF1QlLRoSkZw26Rdwk0IdGgcLGU3L5zWoMH7jvZzA72hmAk6K8LK2PElxSJuicA44kMDp8DVskQ8YFhh5ffuGSwB0vQsXsJjfVwx9j11bRJUrXx3X0FTxDVQFITfTk1qRDjeKdrBUHRe9I2XvkRfwNGX4ssxHRc7Rt23BLmKlwBfrHxnNX0RyL4yTSF3T6MePHmMtQwqCAke34ymXTAimNmJtM5FgLx7a3AzjNjNiNBIWhQCTRrWu391dnOts9Q3ZShmoM6pOVsTNG6jcYGaMnKXWLvS06c8XnmNAqcHovA8cj3OQXUkgNjJIbhx6KbtkFFfEaVkNLfrP7KKYO0IZG9LkNbf8KyH4g9tRCahryOLXfrdeghWO52aRsZBUWslQXVeGK8oNrabiKKbUUo4WAuoAri0Q7PqqGvjeY2ZOLUWaSRKFZPLrvlxeW1lgcp4yKvetqruOGW751mXsXB2VtYucTnUnZZSWIftyldvIdb5ZoZ90UgPHk02Ipog6O40jBHQo5FGk6RIJhEFQRnlhh2ai0v0PHoElinaGKmxtPMd2gUimhKjUYUTHfcY16GaHBjX4hu1x8bW757GScv9u6bJRRpWWnMsdcVnsGijJOFkPqn0v5BEqOzHE7cecPELUbHLg4Sy1afHZaeDrf8RiaOrTVtYcvFOpn4x8s3bCEyMRewxZRdu3r0Gw8oNgNmKebbyq99S1Hc0TxqGZDCXGQXSgVXuKg73J1dLnBB2ENiPONGWCC3dtt8E5D0MgZ83uHe3BV0xugfBiZDz3CboFLWCTmjanRzSrmmYbazrKwSJ3f1jsMa5kJ5n2ug9dcwotA9AnLhwu8LZBo73FBFNYoPWfTAdDDI8Ke6NrHpLTXNAXkiZNc2qSNulFVebsVbGsyWmIUtIbsXdBS6CZ4yiYzlV1ivFTvtYcU7CUufOCXR8TatjpuqaDFd9f8zAA 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/17: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/18: -------------------------------------------------------------------------------- 1 | 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 2 | -------------------------------------------------------------------------------- /15.parallel-output-to-volume/files/19: -------------------------------------------------------------------------------- 1 | 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 2 | --------------------------------------------------------------------------------