diff options
author | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-23 20:23:04 +0000 |
---|---|---|
committer | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-23 20:23:51 +0000 |
commit | 9995bacc3a751f7c233b895fd5f186ab660b9d94 (patch) | |
tree | 9a54cd864caab7e19862f9b24e43a98e4a389551 /jenkins | |
parent | ba4aa8ee26492c44798be802d57576c6c5d6ba4d (diff) |
onsuccess: #81: 1: [TCWG CI] https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/
Results :
| # reset_artifacts:
| -10
| # build_bmk_llvm:
| -3
| # benchmark -- -O2_marm:
| 1
check_regression status : 0
Diffstat (limited to 'jenkins')
-rw-r--r-- | jenkins/build-name | 2 | ||||
-rw-r--r-- | jenkins/notify-full.log | 3684 | ||||
-rw-r--r-- | jenkins/notify-init.log | 130 | ||||
-rw-r--r-- | jenkins/rewrite.log | 22 | ||||
-rw-r--r-- | jenkins/run-build.env | 9 |
5 files changed, 3722 insertions, 125 deletions
diff --git a/jenkins/build-name b/jenkins/build-name index da0d1a8..ea8eec3 100644 --- a/jenkins/build-name +++ b/jenkins/build-name @@ -1 +1 @@ -#79-R# cpuxalan_r_base.default,523.xalancbmk_r failed to run-force +#81-llvm-R1 diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log index 30eaf46..a16b7a0 100644 --- a/jenkins/notify-full.log +++ b/jenkins/notify-full.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_4 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 4 -+ opts=-p38193 ++ opts=-p38814 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38814' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_0 -+ ssh -p38193 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38193 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_0 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_4 ++ ssh -p38814 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38814 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_4 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -70,8 +70,8 @@ + declare -a changed_components + declare print_commits_f print_result_f print_config_f print_last_icommit_f + dump_model_only=false -# setup_notify_environment + setup_notify_environment +# setup_notify_environment + echo '# setup_notify_environment' + top_artifacts=artifacts ++ get_current_manifest '{rr[ci_project]}' @@ -81,21 +81,21 @@ ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x -# Debug traces : + ci_config=llvm-arm-master-O2 +# Debug traces : + echo '# Debug traces :' ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/77/ -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/77/' +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/ ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/' # Using dir : base-artifacts + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/ -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/' +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/ ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/' # Using dir : artifacts + echo '# Using dir : artifacts' @@ -106,12 +106,12 @@ + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes -# check_source_changes + echo '# check_source_changes' +# check_source_changes ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' force '!=' init ']' ++ '[' onsuccess '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,18 +121,94 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xbaseline '!=' xbaseline ']' ++++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' ++++ echo -ne llvm ++++ delim=' ' +++ echo +++ for c in $(print_updated_components) ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ '[' xa502dddfd0da8ccefd2cee15599b49f6eaf74efa '!=' xe13bed4c5f3544c076ce57e36d9a11eefa5a7815 ']' +++ echo -ne llvm +++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 0 = 0 ']' -+ change_kind=no_change -+ changed_single_component= -# Debug traces : ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ++ local res ++ res=0 ++ wait 44628 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ git -C llvm rev-parse 'a502dddfd0da8ccefd2cee15599b49f6eaf74efa^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 769bc11f684d376bff03649da41296a4fc710161 = e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ']' ++ return 1 ++ change_kind=single_component + echo '# Debug traces :' -# change_kind=no_change : +# Debug traces : +# change_kind=single_component : llvm ++ echo '# change_kind=single_component : llvm' ++ for c in "${changed_components[@]}" +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ git -C llvm rev-list --count e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ c_commits=586 +# rev for llvm : e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa (586 commits) -+ echo '# change_kind=no_change : ' ++ echo '# rev for llvm : e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa (586 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -159,7 +235,7 @@ + echo '# post_interesting_commits' # post_interesting_commits + local stage=init -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' full '!=' full ']' + bmk_generate_extra_details @@ -167,21 +243,21 @@ + local artifacts_mail_dir + artifacts_mail_dir=artifacts/notify + local res=0 -+ wait 45151 -+ /home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose ++ wait 44652 ++ /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose + assert_with_msg 'ERROR while trying to regenerate bmk-data results. Aborting..' '[' 0 = 0 ']' + set -euf -o pipefail +x + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false -+ '[' xno_change '!=' xsingle_commit ']' ++ '[' xsingle_component '!=' xsingle_commit ']' + return + post_interesting_commits full + set -euf -o pipefail # post_interesting_commits + echo '# post_interesting_commits' + local stage=full -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + true + generate_jira_dir @@ -192,7 +268,7 @@ ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 -++ '[' xno_change '!=' xsingle_commit ']' +++ '[' xsingle_component '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' @@ -212,7 +288,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -222,28 +299,27 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.regression ']' -++ IFS=, -++ read metric bmk symbol short_diag long_diag -+++ head -n1 artifacts/notify/exe.regression -++ echo '523.xalancbmk_r failed to run' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ short_diag='No change' +++ echo 'No change' ++ print_artifacts_url 'notify/mail-body.txt/*view*/' ++ set -euf -o pipefail ++ local url +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x -++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/artifact/artifacts +++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/artifact/artifacts ++ '[' '' '!=' '' ']' -++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/artifact/artifacts/notify/mail-body.txt/*view*/' +++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files + echo '# print all notification files' + true @@ -251,16 +327,3416 @@ + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail -+ local c= ++ local c=llvm ++ '[' llvm = '' ']' ++ local -A emails ++ emails["tcwg-validation@linaro.org"]=bcc ++ emails["author"]=cc ++ emails["committer"]=to ++ case "$ci_project/$ci_config:$c" in ++ emails["author"]=no ++ emails["committer"]=no ++ emails["maxim.kuvyrkov@linaro.org"]=to ++ local c email base_rev cur_rev +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ read -r email +++ git -C llvm log --pretty=%ae e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ local precommit_postcommit=postcommit + '[' '' = '' ']' -+ echo bcc:tcwg-validation@linaro.org -+ return 0 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ read -r email +++ git -C llvm log --pretty=%ce e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ unset 'emails[author]' 'emails[committer]' ++ local type ++ recipients=() ++ local -a recipients ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=bcc ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$type:$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=to ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ IFS=, ++ echo bcc:tcwg-validation@linaro.org,maxim.kuvyrkov@linaro.org ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline -++ '[' no_change = no_change ']' -++ echo 'baseline build' +++ '[' single_component = no_change ']' +++ local more_lines +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' +++ local new_commits c base_rev cur_rev c_commits components +++ local commits_or_patches +++ '[' '' '!=' '' ']' +++ commits_or_patches=commits +++ new_commits=0 +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++++ git -C llvm rev-list --count e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ c_commits=586 +++ new_commits=586 ++++ echo llvm ++++ tr ' ' , +++ components=llvm +++ echo '586 commits in llvm' +++ '[' --oneline = --oneline ']' ++ return 0 ++ bmk_print_result --oneline ++ set -euf -o pipefail @@ -270,7 +3746,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -280,21 +3757,20 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.regression ']' -++ IFS=, -++ read metric bmk symbol short_diag long_diag -+++ head -n1 artifacts/notify/exe.regression -++ echo '523.xalancbmk_r failed to run' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ short_diag='No change' +++ echo 'No change' ++ bmk_print_config --oneline -++ . /home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/tcwg_bmk-config.sh +++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh +++ [[ -v rr[ci_project] ]] +++ [[ -v rr[ci_config] ]] +++ declare -A bmk_data @@ -346,20 +3822,20 @@ ++ case "$ci_config" in ++ echo 'arm O2' ++ return 0 -+ echo '[Linaro-TCWG-CI]' 'baseline build: 523.xalancbmk_r failed to run on arm O2' ++ echo '[Linaro-TCWG-CI]' '586 commits in llvm: No change on arm O2' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/artifact/artifacts ++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -+ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/77/artifact/artifacts ++ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/artifact/artifacts + cat ++ bmk_print_config --short -++ . /home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/tcwg_bmk-config.sh +++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh +++ [[ -v rr[ci_project] ]] +++ [[ -v rr[ci_config] ]] +++ declare -A bmk_data @@ -419,8 +3895,58 @@ ++ set -euf -o pipefail ++ false ++ local print_arg=--short -++ '[' no_change = no_change ']' -++ echo 'baseline build' +++ '[' single_component = no_change ']' +++ local more_lines +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' +++ local new_commits c base_rev cur_rev c_commits components +++ local commits_or_patches +++ '[' '' '!=' '' ']' +++ commits_or_patches=commits +++ new_commits=0 +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++++ git -C llvm rev-list --count e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ c_commits=586 +++ new_commits=586 ++++ echo llvm ++++ tr ' ' , +++ components=llvm +++ echo '586 commits in llvm' +++ '[' --short = --oneline ']' +++ for c in "${changed_components[@]}" ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev +++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++++ git -C llvm rev-list --count e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ c_commits=586 +++ '[' '' '!=' '' ']' +++ git -C llvm log -n 5 --oneline e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ '[' 586 -gt 5 ']' +++ echo '... and 581 more commits in llvm' +++ '[' '' '!=' '' ']' ++ return 0 ++ bmk_print_result --short ++ set -euf -o pipefail @@ -430,7 +3956,8 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ improved_or_regressed=regression +++ '[' -f artifacts/notify/symbol.regression ']' +++ improved_or_regressed=improvement ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -440,25 +3967,18 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='slowed down by' +++ changed_by='speeds up by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ '[' -f artifacts/notify/exe.regression ']' -++ sort -gr -o artifacts/notify/exe.regression artifacts/notify/exe.regression -++ echo 'the following benchmarks slowed down by more than 3%:' -++ local metric exe symbol short_diag long_diag -++ IFS=, -++ read metric exe symbol short_diag long_diag -++ echo '- 523.xalancbmk_r failed to run
' -++ '[' -f artifacts/notify/523.xalancbmk_r.symbols-regression ']' -++ IFS=, -++ read metric exe symbol short_diag long_diag -++ '[' -f artifacts/notify/symbol.regression ']' -++ '[' -f artifacts/notify/exe.regression ']' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ '[' -f artifacts/notify/exe.improvement ']' +++ '[' -f artifacts/notify/symbol.improvement ']' +++ echo 'No change' ++ bmk_print_config --long -++ . /home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/tcwg_bmk-config.sh +++ . /home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/tcwg_bmk-config.sh +++ [[ -v rr[ci_project] ]] +++ [[ -v rr[ci_config] ]] +++ declare -A bmk_data @@ -554,7 +4074,7 @@ +++ case "$target" in +++ target=arm-linux-gnueabihf +++ echo arm-linux-gnueabihf -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + echo '# generate dashboard' # generate dashboard @@ -568,13 +4088,13 @@ + return + post_dashboard_squad # post_dashboard_squad -+ echo '# post_dashboard_squad' ... Skipping ++ echo '# post_dashboard_squad' + false + echo '... Skipping' + return + generate_lnt_report -+ wait 45243 ++ wait 44797 + set -euf -o pipefail + echo '# generate_lnt_report' # generate_lnt_report @@ -593,5 +4113,5 @@ + false + false + false -Full stage ran successfully. + echo 'Full stage ran successfully.' +Full stage ran successfully. diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log index 3bd0c40..aa2a98b 100644 --- a/jenkins/notify-init.log +++ b/jenkins/notify-init.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_4 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 4 -+ opts=-p38193 ++ opts=-p38814 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38814' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_0 -+ ssh -p38193 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38193 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_0 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_4 ++ ssh -p38814 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38814 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_4 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_4/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -87,15 +87,15 @@ ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/77/ -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/77/' -+ echo '# Using dir : base-artifacts' +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/ # Using dir : base-artifacts ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/' ++ echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/ -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/79/' +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/ ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/81/' # Using dir : artifacts + echo '# Using dir : artifacts' @@ -111,7 +111,7 @@ ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' force '!=' init ']' ++ '[' onsuccess '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,18 +121,94 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xbaseline '!=' xbaseline ']' ++++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' ++++ echo -ne llvm ++++ delim=' ' +++ echo +++ for c in $(print_updated_components) ++++ get_current_git llvm_rev ++++ set -euf -o pipefail ++++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat artifacts/git/llvm_rev ++++ get_baseline_git llvm_rev ++++ set -euf -o pipefail ++++ local base_artifacts=base-artifacts ++++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ set -euf -o pipefail +x ++++ cat base-artifacts/git/llvm_rev +++ '[' xa502dddfd0da8ccefd2cee15599b49f6eaf74efa '!=' xe13bed4c5f3544c076ce57e36d9a11eefa5a7815 ']' +++ echo -ne llvm +++ delim=' ' ++ echo + local c base_rev cur_rev c_commits ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=llvm +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ first_bad=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ last_good=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ++ local res ++ res=0 ++ wait 44515 ++ git -C llvm rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p llvm ++ set -euf -o pipefail ++ local c=llvm ++ local base_rev cur_rev sha1 +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ git -C llvm rev-parse 'a502dddfd0da8ccefd2cee15599b49f6eaf74efa^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' 769bc11f684d376bff03649da41296a4fc710161 = e13bed4c5f3544c076ce57e36d9a11eefa5a7815 ']' ++ return 1 ++ change_kind=single_component # Debug traces : -# change_kind=no_change : -+ '[' 0 = 0 ']' -+ change_kind=no_change -+ changed_single_component= + echo '# Debug traces :' -+ echo '# change_kind=no_change : ' +# change_kind=single_component : llvm ++ echo '# change_kind=single_component : llvm' ++ for c in "${changed_components[@]}" +++ get_baseline_git llvm_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev ++ base_rev=e13bed4c5f3544c076ce57e36d9a11eefa5a7815 +++ get_current_git llvm_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/llvm_rev ++ cur_rev=a502dddfd0da8ccefd2cee15599b49f6eaf74efa +++ git -C llvm rev-list --count e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa ++ c_commits=586 +# rev for llvm : e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa (586 commits) ++ echo '# rev for llvm : e13bed4c5f3544c076ce57e36d9a11eefa5a7815..a502dddfd0da8ccefd2cee15599b49f6eaf74efa (586 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -156,12 +232,12 @@ + generate_extra_details_f=bmk_generate_extra_details + post_interesting_commits init + set -euf -o pipefail -# post_interesting_commits + echo '# post_interesting_commits' +# post_interesting_commits + local stage=init -+ '[' no_change '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' init '!=' full ']' -+ echo 'Init stage ran successfully.' Init stage ran successfully. ++ echo 'Init stage ran successfully.' + exit 0 diff --git a/jenkins/rewrite.log b/jenkins/rewrite.log index 18276e8..0d55c22 100644 --- a/jenkins/rewrite.log +++ b/jenkins/rewrite.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 ++ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -d: -f 1 + host=tcwg-snow_bmk-02 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_0 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_4 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 4 -+ opts=-p38193 ++ opts=-p38814 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_0:-p38193:ssh_host=tcwg-snow_bmk-02 ssh_port=38193' +++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_4:-p38814:ssh_host=tcwg-snow_bmk-02 ssh_port=38814' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38193' ++ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=38814' + shift + local -a cmd + cmd=() @@ -58,8 +58,8 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q 100 -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_0 -+ ssh -p38193 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38193 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_0 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_4 ++ ssh -p38814 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=38814 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_4 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' + declare -g rewrite_base_artifacts_first=true + true + update_baseline diff --git a/jenkins/run-build.env b/jenkins/run-build.env index 160b6e2..b460024 100644 --- a/jenkins/run-build.env +++ b/jenkins/run-build.env @@ -1,4 +1,4 @@ -build_name="#79" +build_name="#81" docker_opts=(--distro default --arch @@ -9,6 +9,7 @@ tcwg-snow_bmk-02 true ) source build_container.sh trap "cleanup_all_containers" EXIT -build_name="#79" -branch_opt=() -build_name="#79-R# cpuxalan_r_base.default,523.xalancbmk_r failed to run-force" +build_name="#81-llvm" +branch_opt=(==rr\[llvm_git\] +https://github.com/llvm/llvm-project.git#main ) +build_name="#81-llvm-R1" |