Skip to content
KernelIndex
Search⌘K

submission 28436

KernelBot user 3 · python · License unknown

Use it

Vendorable · source mirrored · license unknownView source →

No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.

solution.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-28436?include=source"
interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz

Benchmark evidence

18 measurements across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 256]
AMD Instinct MI300X
33.7µs
#1 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 512]
AMD Instinct MI300X
33.8µs
#3 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 1536]
AMD Instinct MI300X
45.5µs
#1 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
56.3µs
#12 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
58.8µs
#10 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 256]
AMD Instinct MI300X
80.6µs
#7 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 512]
AMD Instinct MI300X
83.3µs
#9 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2048]
AMD Instinct MI300X
89.7µs
#13 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2304]
AMD Instinct MI300X
98.0µs
#14 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
101.9µs
#17 of 98
2025-05-27
Show all 18 measurements ›
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 1536]
AMD Instinct MI300X
136.2µs
#20 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
141.8µs
#10 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
147.2µs
#11 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
163.2µs
#10 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
294.3µs
#27 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2048]
AMD Instinct MI300X
345.3µs
#21 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2304]
AMD Instinct MI300X
382.2µs
#21 of 98
2025-05-27
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
744.9µs
#21 of 98
2025-05-27

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:ed90cfd0458ea92d7377597c0c0e297a7d347e100369720bdea67c6fef6654bb
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

solution.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxejI4aVM0Rm42RmRYcXNBMUtORVZTc2xvdDBYemhaOHY5UE4zK2lHNzN2cG5RVXlBQUVwUmdFZ0FIQVBWaHR5STI5anlIT2J6REhPYTR4ejN1Y1gvTi9KTE56S29DcW9BQ1FNcXliTDh4dzZhSVFsVldWbFpXZnRSSDF2ZCtPSm90eGg0Ym5QbnpiZmh2eDRzdzlRT3ZjelpjLzc3MGNqTHY3Wm5mdUpPcU41UDV2djVpZnVYNjRialgyNVkvOU5kK2xLU3g1d1I2V3VDRS9seE5jdjEwdUw3Ky9kaWIrS0hIL3ZMaWpmMzBMMGRQZjdaR1VUajJVejhLVyt5alAzOWJ4Kzl4OVBHUTZ1Qi8rRlRnQlh6OFFFY2N4WEVVMnluejhDOTd6REpDSGQ0Q2ZIOWljYmpmUGNhNmZsdU1SbDZTZkd3WDVQQS9EWTF5K1BoSjB2SEJ3UWlhd1FZRHRrSGtZaHY0R3hyMGs1ZFN3aXNuOEhoTFcvam1nZlVBLy9DbTQzT0xuamNPb0dBSmZ2N1JZZjZXeG41NHFrRGRZSDdJYTdidHlTSWMyVFpQZFZLWit2ekZMMGVRV2dQL3djRURudldYRjYrT09JQUhmd3Nmck5iWE9uenYwazhGbGpkbm1RcjQxN2NEMEFqLzA4RE80VitjK1RQUG1qaXp4R3V0cnk4UzZFd0dRZytHbUcwTEFXaDd1OEdPUFFrWDd3OUZCcFNYV1E1M01vdWN0TGQzbUpYZTZjTkxTbFhUTG5jeEZWL2F0cE1DMjdpTDFMTnR5L0l1VS92Y0c2VTR3Sy9tbnJYYmFyVmtRVitVODhOMHB3L2pmNFdpVkNmaHVVeWx2VDBxdWc3aWV6RksyV2poZXV3RFVRaXFaa0diaFcwMlBWeS9oaXdnZTVMVXU1ekg5T3JDaWVkMjRyLzNvS0s5M2NQQzI1RXpPdlBzR1VoNW1hZlgzeS9CQ0d4M0ZvMm1sTVVPRnJQVW44OHc3MDYvQ0M5Y091ZTBJaWZWcjJjOWphUEZYTWVQa3pEMlRuM0l4MGtFN3hhaUd5QkQ2Z1h6bVpPQ0xzTjNJVWdXOXJiTnN0Ky9EOWVCTzBBWnd1aTE3YkYzN284OCtqbUo0cEhuaDBRUlc4SERXYVFSZ3pjemUreWZXMitaMDJhL003Y2wraUQyMGtVY01zdGhXOHhsRDFtdnhiYVpDOTJSSXpJZ0NGQ00vcm8zcWgrcTlzZWU3VjA2bzlTU2RTZXBrL29qMjBrU0wwNEJnM3VBd2VQSHJOdG1HK1BJUzFnWXBhSWdvNExmYlFBZktVZzdaVlNSNkdBTHRJbjZ6bmlzRUM3eC9uVW9tVkQwMnBYdFh0bVEvYkFXQXZ6b2REcnNSVkpWZkVENUtTOHBDeWpnblVMZlFvMExMeHdSekRhVUJ5akRvV2c3WndQUit6V2xMSUROTnFFdzlBL1UwRUlZZkxCb0dML2crTDdpZnlUK1JiU2RxUWY0anIzTHJCTDd3ay9Qc0EzMm1UZWJlN0VKdTR5Q3htYS9FSTBXd0kxdGVBV005UUlaQzBvTWh3Y0hDSEdaUmd6RmFLbERYRU93dVlFRHFJUXFHR1Y0NUVoa2dKNXI1RnVHMzg4amY4d1dZUnpOWnJZekJ5Slp6OWxrQ1g2UVk4R2FkTEtCSHdHZURzaFBxeldBNnExV20wSE9WcG5SUy9SQ0lhTncvUE9WVVVla0pVWmFZNkFwZGNSVnFQcmgyb3pwUjJEVkc1ZnhHb0NVZURHMEp0VmsrYWVQcXJOZlhlZngvUk11SmVSWTFuUDhVNTdqblpvRFArWk85dHVRMHhLeURUL1g0bmNGS1VYcjhNL1BIOVhJblUvU3lEelh6M211YVRGWFBUbkFKTkFvb2xLbGhrSzZ6aVFGRGVNRDZWSlBqdEhNYzJMUWpkWjlKNDZkcTlieHE1TXlWVjVWVUlXS0hQc25NUHJlZnVoZWE0alZWRXltSG43Wmt6Z0tiRFNsTERMdDJLV3NlM3NiUGRnSENUcGw1MTZjZ0ZmRzBQSkg5NHlSaW5SbU16YUZRWm13YU1MQUlCcE5FMWtTYW1QUkdOcm1KSkRSZXVYQUFFMFdiaGpGQWRpa0xaYWVRVlVYSHNBSkg2QTVGWHZNY2FORjJwRUEzcDc1Q1R2MVF1d1lyTXBOb2huWWVMTXIrSG1WQUJCQWErd0IwSWk5V3lRcEF5VVRqaUNyTEorZWVXd3hSNlVDVG5uQ3dBbzQ5VkpLamYzVHM1U2RPN09GeDJiKzFNTkVXZW8xbHBoZnBXZlFSQlNjSUhER25YVlY3Wk5NQlpBMnRDd2RJQVdIVnRZWndxYWdWMmhVQVhsVDVUWFBvcGFYbHRmUUFyS0RldTd0WlpsYjlLdXhJOGtJeGkvWmtmc1cydm4xdlFnNXlSc0FxbEI1SUhVeWl5NFl2SE5DYUQzcFgrZ2hDUUY3Ry92cHpEa25jc0dQZUh5Qm5lYUhYTDBEV0NMeU9HSisyb0hlQTVNbm1xU1lSd0lKUENEcm1JMDlZQUNHc3BzbGMyL2tZMCthbWFUTndLb0hKc214MEhtRk05R1pCOCtncUVkZXprOWcrb0VQQU8rakJGRlVlY0lQNXd1T1lPd0JKWUdEb05USUNVRUdwSDZBdG5LcTRNNThHTnBlNElYWXNWRUd5TDNpVEplY0xTYVRHYWVXUjR6V1dmL2VuNHk5Q2ZUVDZlVHl4OTArZEpFbzlQTEZUcmNMbEFObURsVzYwVmdCbWljZGxjOW9NQUpYSEs1Lzc0RVRKNEU4aHpIbk9xTXAwU3diSzYrZnZUNWd6MkVrZ2xVNmNkQzBwK1lJaEEwUXc3RS9xUkJkendzQ0s1UHBCc21WZURPZ3MrVkcwWXltYnRwTWtlaitoTkhFVjB1UlZtYVpDNVR3TW9GN3piQzlqV1hJdGMwTGxUVFZlRDYzUjJrODQ1b3FqaTdzd0VtbUlDVzdseE9lNWpyaFZFdWtaZ0JqaFdNcWlSNG1WVkkzL09RQUJsYVlnSTh6bjF0WnltWEJ5N0Z0ZCtHRERSdmFUakErSFlYMllqNEdiS25RWlp2QnZ4eG5pVzg3eDdLdG9HYlF6RE1IZlZId2hNZExJcHpHVHBqTVlZRFl1NWU3OW1UZlB1L251Tk1vTVh0S1NrVnNvTGpKMjJ3WFhDZDh5OFJiSHlWQ0JKakZwNTUwbm5SWUdyRDdUSHRFYjdBbFBUSkVYb0xGRVlTdUlFZ0JObzh1a05jbnJHK3VRQVg0bU96VGpXZHYzaFJHTlhUUXZ5NzhHRVJRTWJzRXVyM05LWEtRQ3dEZ3hpN3JzVDdia1duMEVXa0VpZjJ6OW1xWFBXSjc3QWZ4YWt1cFM4dTJ6MzVrVDlpZm03STlaYy9ZRVF5MzZtekpoVE5uYzhlUFNUMWpCcWtHWlk1Q0F3U0M4bEhVSUI4Rlhvb3NEY0ZUODRnVU1Dd0RoSzFVZVJiRi92c0lLRHdEbGIwRndoK1lRTlcwNlVVRWRFL0FxY3VVYy8reW4zUGxPRWR5RjVEY2s0ODlRSEluUjNJZjBIekNqdVRqajREem53WE9OQW5BSndDSVNEaXhSV1R5eDFKc0tGbjRaQWwvajI0R1pLZFMyeHBUM0dPN3BaSXA0djI0UEx5UktMbnVCK1JzbTRURUpjZ3Y0cWEyQ2hxMEhXVDVMU05nYmxNSXdUTG91cjN1ZzE3dlFiZjdvTnNiY2hDdGRqN2JUU0N6eDFKNzdnRVZjVFJwMXNpZlFQSjE5eDUwK3crNnV3QlllM2VBNzNZZWRIK0E2aDUwSDBselJEVG1GWmdMMU4xVUViRllYK3YwTnFpNU1kb0RTcWNucUdBeWh1SFNIQWVnZHpueTVpazNDaFI0bC8xT3pnWElyRDB4eHJwUVY3LzQ2dUhEWWZGVm44YmlEcFhDTERzNXMxZTlVanQybCtZb1YrcFlaQWF0WDlrbTZ5dDl5MXRuNnR3dTlTejBiNjg3SkRCSzN4TFU2cTRkaUJacnZmcUl1clJYMWF0OTZ0ZzkyYXVhbUlOR2srVEVDZnIrYm92OWtULzI5clRIZlh6Q0IyMXFEQWxYdEZ0UnRleURacG5OemdOSnlOaTVBTnBPSmw1c2cyMHl0dDE5aTA4TUozRVNqOXJadkNRN2p5YVR4RXVWbEtTVU1vclFwQXRIVjl4d3RrRUZCTllHVnRmaDFYV2d1ZzZ2cm9QVmRmeDlsTzlGSk5GbXI4ZXl0M2UzYVBiMlRIZ1N0Rm84d2FXN1V6eDMraVk4OTNhYjhOemJ2VnM4OTNhTGVObzI5WHkva1VFaHl4MzNmWjh6cVlvdG1kNFZhQ1pnSFhzNGtPUjRPd2NiMDJtek8wS2FxamNNckNWUWhsR1ZEYi9QZ25SNW1DMkI5WTVpTkg4V3JNdURiZ21zWWNSbFEvT3pZRjBlZ3N0d0NBdytkYVIrSGk0UkE5SUxGd0ViemNEUHlNR0F2N1RHVndaeFpndzlGL2w4T290Y1owWXo1REtKYnlpQkpORHNhMkVVMnVqT1JUSGwydEdXSjlSNXhXdzVoV09WZVdoS21nMW1kYlFBbjAveG9ibFZnelRlWlBNMHpxY3lNMXFBM1gzcUdkS2g1TVEvRlY0MklMWEdGMFhBOFE5c2RRRXA5b0xvM0xOSDUzWTZlRHNVQmtVUklld2o4YXJHUmMxTFdtOEIzUWduNG1LMUk4SGRWQ2NWY083azRSQmhBektGS3ZWcDM5Z2pXSE93VS9qOG0wS1hvU1ZxVXV3dVRsdDlUbzlQMTVITHUwbW9SQk1ybzBhclVGaE9aTUsvQzV5c2V2b3ora3lKbU5uQ0ZKcEk5Vk53a0p6d1Qrd0Z0TTd6QW5LSk1JVTllL0wyaWYzODlhOHZuN3lsNVdDY1pDclc4RmVQQlRTbmlTNnhPL093TURET0ZiZW5rVG9NMlNqdWREcGFVVEFFdTkwKy9PLytuazl0eS9rVStwUE5NTWpKN0xiQzdDUGFyeU9lRGc0eXhoOHUwNy9FTXpSM1BjaUloNVBjRE5XZVZXYkRDd2VZU3d6Zzh0djBETWJTdVBTZUpuVEFicWVKa3dUWDZ1SUY5MFZhWWtRb3F3dGlaUnc5VW8yeERVZ2U2dU9LRnBvNVBKcUpRVXRCckxxWCtBTjQ1aFdPb2pXbFFXelRrUEVROG1qTnFzaVZEd0kxNzJPbDJYOHF2RU1QNERsOEh1QlhvU2w4YzhPSTJwNnpQU1FPclpIMEV2RGpUNVNtVzBxTEgrTWFmbkhRR1NiT0ZVSVByUWFmb0xSeW80TWkrUTh1VXlZRkNtT3dSSjN5YXlOM1pZUVphVWt0ZFNHSXoxWFdVS04veTlRQUsrbHJKc2Z1TFpNRHpLK3ZtUno3dDB3T3NPdStabkxnNU1MdGpwYitWeUE5OUJZWDVxOVY4anpFNld0TUlUMUFHNVN5aVd4dnZLRkNOaXJ4WnRXdHJscGowUVlsenRlQTBDNjIxdGVvc2FSRHF0VG1mVVlHKzJkUTdpWTF6WjJLLzFaNldtMnlRVkUzVFNud1BzNFp0YmlRdlkrR01YYXhZUWg5M2tIWElJUjB1cFJVZHVPOFJSTmgrRGFBcjU4eUplM2RPRGZTUkJudVRIMzlsQ2twOHNiNWx5Yks0TnpNUHdKbHlqcTllWktuampiS0JORFhRcDQ2QmE4VGl6UThKUzJ2NHRkVzBPOGZvOVV6WlhiM2FueU4wdzB3R295R2dOUmExc2tsSzZNM3RENGdldGZReVR5ZmhoVlBLcURDRXpNY2VIWDV4aEpRcDl2YjdJbllqRGFqRFRaTVRPZ0ZYaERGVnl6MHZIRzJLU0ZoazJnMml5NlNBeXoza1AyRXkzVzRub2s3N3E1d00xc1NaZnZmY09jUnJxSTd1RUgvSWZBc1RSL3dncmlKaWlxYk8rbFp2a2tCV0FIKzhpTUlEUHROMW93bHZUR2V5SW5Da2RkaFQ1Kzllckt6VGhzRzhzeWNzZndFNitQb3REaytrSWhiczFqZ3BMRi95Yk5sbTVXZzVSelEyQWRXcEUxa0ZqK0hrUG96enc0T21aamg4M0U2ZExZSVFvRHpEbzhPUWJzQm9abUg3WUFxTzd4cGYvV2dYOENFOGM0OUlCL3ZENXEyY21JWUhENDBtRy90QXdvaGJUTVFISW44QkFUYlpoWTJaSnZrak1jSFNvSkhsYkJCcndEZDJLTk5WcDFTeWNkNHJvTTlIcko5MDZ2K296MTh0OU0zdmV4MSsxUVNhczZhQStONUVYaThYN045WmtnT1o0YU51NEsvL21ub1VTdUo5SDZhOENYeXJFZ2dkcmp3S3Frb2tFQ1dTeGFqczQ0OHNjSm9FOXhzUmljVUVoOG4vZHdyYUkvb1M5elBkeFl0Wm1Oa0N6eUxpTTNuWVAvcjcvLzJYMy8vbi9MZi8xbmk5NzhYeXZ5N0JQUy91dlM5UzkvNzlOM3I0emY5cDJlYzhSWmNMMHY5cHdMcS95M3grMzlEbWI4cnovK1JWZCtqNzBmMC9TTlAyY0h2RzllVVFlN1Q5eDZIMmFYdjNkdUJ2RVBmUDNESVBmcCtwRUpXVy9wL2wvajlIL2t1c0hVdXhWS0ZXZHVGTkQ1WWpha2hUODFXR3NqekpKbTZub25wQ1VncVNKUmJkTmJ6eFFpQ1EvSW5ObTRhVXl0aTk2Ui9sTldSN2ZQQ0hGemNLSkltMy9DbGNUdDV3alJUaStBMnBOdVRXeUljQldwb0dxWE9qQkJFRmFNU0F4dzlEYm50TW5LbWpXVXF3SHNGOFVBTndmZk1DVUNqcExUOWluS3Fla0pyQzIwZlJTQkx0SVZBNFNZVVcwUDg4Wkx0YUlBcFpQRmpqV1RiU2dzRmF1SXdYbnhxbUN6UGVhY0VlTGpjOG85QUxRTlBFR21ETTFlOCthd090eEVtODMydEgzRXRNSGVDNmFTZjloanFqN3drMkFOMlVQVWlGRFpKY1UyTmRncGwzcnlTSDQrMDVXQ0J6Y0tpRDA5RnhRUkVkUVl3ajdObExiRmVsVG5iRmV0WjR2M20wTkpKMG1yemV0UVpnbnc2SWZXcDI2bWJYb3d2TzVkS3Jxd2orTnliOGlZL29WRHE2dXBER25tbFBsVDVMaHVEUkl3dHhPU3dJbjhjWGVDa0NXN0xNdzZEcW5KZ2xGQzVleXVXQTZwaEIwSlpyQmxvQitnaHJFM1Q4S3FCd2ZIR2I0MHQ2cXJsS0ZkVXBvRXhZbDh5ckNVYUEyQ0MrL2V6S2diSWQ0Ynl4SHdYVVR6bTNKZHZ3a1lrQmlXRWhwWmNYaGNrYStlVkY0N1NjQjQ2Zm5jaXBVYm1xbVhnaGhiV1hEaHlzNTREb0ZsaHlZdjBmaFd4a25zNGRoclpDUmp4dVR3cFNwSnhvamdyMlRBUUhzVGRpWm1tQVVvTHpaN2NGVUNxMFNFbkJBUTFLcHdvOEZNbVdJRk82cUQwcHZWaHpBc1BiUldVS3c5WDBDNWZyZ1A4OEJ4TTBYRm1aSGZZMndoc3kwdkt5RTlSSUZ3VkRCNXM4TUR6a0dYWXhaa0hFR09HSjNLU3haejIrUXAxQ0NZN2JVSGdOckUvUWQ5WGhmWGVpL0ZvQ2FNelFwOWUrbndoNGdlNFR4TS91aUcxaFROeXk4b2pITStiQ0JDQkZmVkdWZ3AweG4yZCs0OEZEaWVGVWJ6SlFlVWpBUVoweFhqbFcyU3Z3aEhQbktobjYzRFA2VVMwaTVpYUxDZ1VVTVR1OEZzZERHTDMrendHL0NmV3hyMHh1emYrVzdqUjFvYVdPcHowbXZDRFRHbFI1K1BtbSs0aC9oMW9KdUVoMjlyeUEwTzFldkZRRkEvMTRpRVZEeXVLYTloMytoTUd1UE9ET1FXcSswR3h1N0dyL2ZDa1ZXNFNFZHlVS0dzQ0VwVkxsVXJJM0EveFV5cHkzZGlkMS9xaDZrL2tqNWk5am9GU2lRNWNCNnI0TlRUVE5HeHlWNEp2N3NvbmNGZUNZck0rdGJ0aUJLTUZ5Tmc5cEVNdmtSK08vTEVuVGlqaUNZRE0zKzE4ODN6VW1xczluMDJ3TUN2TTNHK09qYTZWNlp5Vy8vNzlqSjg3NWFlMGNLcVAyMS81WVpoZE1hK2EwTlJmNkYyaWxDRHJLa0tUcWxPQkJtZHhlYUlKRFpDYzZhdU1EcDRERHg0S1c2ZTVDTGVMbElJVmhrNmx3OE1OSkJYYkxSVmNoYjJGbmQ2TVhOR0hNemxUM0lZS2x2VGhtaHl5SmYyNlQrakRBVitwYmxiWmdlc05yVzdtcTdXT3V5ZmZuTUJ2VHVBM0ovQ2JwTDRiU2IyOGEyclUrWkNYVGtVVk91ZzNXanJQenhBTFd3MnRPTjQvSnVMemFkaDRWQkpFaWwwblY3SGJiSGVJV3drVW43ZGxJRlFXZ2swN1VNNTZhR0l1USsyY28wc2lOa3VTS0xVYXd0em9rd2xOT214NjJBQWcwMTdsakVUSWM2NmxqcWU1U1o5aGVsSXVjMDRyL3FWSUJBTTFuSUYxM3FyQ3F1cm90bkxTdStvRXQvclpOSElkNG96ekllaU9XN0x0RHpNcTNPT3pMNVlrNjFZSmtaWnh4dWFrVmFvZlA0L1orUklSaDhqRlZrNEcrVEpVSVdjanU4MzBsTkJXWWpUbHA0ZUNTZUNBVitHY2trVCtvUGcxd3FkNVcrVTM1ZHlnVkFzRlZDUXFQRGRUMFZBckd0ck4xWEpIejAveGxJeFdMUkJiZ2RRTWlFRG9UcVFhS0hDZ1ZOVE80MXdNclNySFZKR3hJcjVpSGZSUzdkbDRmSnVQY1MxUVkydVpxbW1wWGErMnJxWkRHZHRJRFFnSlQ4bXhxUTBueTdtd0pmUjBia01sYnFuR2piRGt0RndmUGx4ZnIyYlVaYkw2YmJ2VTVPRjlhYXhSMktmRVZIMVpCalRBUk5FZ05wVUJ3VnFyWUZ2YUo3MGN6c1Z0elpXWUx3Vy9Edjl5VU1MZlZ6M1c5WHU3ekl5WlN2aTlCYzNEYW0xSDc0ekNQRndSd0wwY2dENTF4VGRXMGI0ZnlwaHhtd3pqbWMxZC9hN09heTdUOTAwTitSUjBMSFhnS3RRc3NzbVhRdE9WRy9VUkkwd0pyS2V5VjI1WW1lUmJSWWc5NnNnTURSNXJyMnZTemFwN3FkdUJFejhHS3dHSElEaDROb0N4aEo0d0NDSkl6VVcwcmdGTTgremNCZ2phd3RkazNCRFVGVDFHaCtQL3RZS1Z1UWE5dlRiRC83dDZ4RmgwZlIwNTdhbkpheXF4SzlZeXhBSEp2SXg3Z3pLajZqTDRYeFphMWVQM0xyM1JJdlVVWHorcjZ6NVRISGt4dTVvMStENXpUQzlkOGRJdHUrd2xmeUt2cVJBVHNCUmhKdXVQM3Q0bC9OdWROSjl6NC9Td21yZERpNHh1YzhZNTN6aHQyaS9kWFM1SlM4bk4zZ28rcm1iSG5YNmI0Zi8rMHV4SXVWZGt4OW95RmV3b01mdnZ3WTdBRVBDdi8vbllFYU50M2hrL0xpZFg5K0ZmRXh0am5reHk3U3pQeFR4N0crY2pWNUdwVlVXK1ZwR2FoZFRFRzFXZUhmMlBGMCtQN0tldlg3NmhDeWNxQW00dXllOU5vaGQ3Yjc1UFlWVTE1cWs2c0ZOaytLcDhSWDVmVHZSMjZ4OXpobDRYYkYwUk96U2ErOTZZaDRGOWlrR2NjY1A0QlFhTTRBY1N3Q1RETXdUczVZdCtyOXRSbVVoQUlDcGxmR1MwR3hSUGxXWnBvTE9GSXdQbG5FN0J0U25uZHZQY3JqbDNic3ZsTEhWd1VISnp6TE5qeXZSUjFpaW56REpxZXc4TzhucUdsbnJ1VWdvN2dlRHhWTnVrWWFyS1hhWXF0N29xMTF4VkFZZ2NtS08yMGtqbHQ2dkVzUll4WWNVZlN0VzNjMVNKTmFrQlFUU3ZvcHhKNEN3djF1cUtmSzJxK2JPSU5hN0NNZTczWnhKckpoWCt4Y3UxM0FEOUp0ZnFxdnA2NUJxdUZua2VQeVBIQWlkY09MTTIrNkhUNit6Q2YvYUNUbS9Obkt0b1FXZk9jRmwxNU14R2k1bkRRNTFUMUhGYzM0dmMxUEh4Zk5hNTcxQ29VendyK1BLWlBFYW54dm1XQUNJNlMzZVdwdlBrWUh2NzFFL1BGbTVuRkFYYnY3NStHbXpEZ0xWNVlWc3BiT3VGS1h3NUhSR2pTUTdjZ0laOGpuZnRSQUdnenRjb0EyYyt4MVZkWE1wZHA1aTlTaWdxekpEaS9nSSs3WkRRa3V1TEJ3RzArdjFWQjQrMFJlSHNhcDAyRWxBUVh6cUlCNlVTajRMM091RVZWb25MdTJGMDBURkZLOFBlMHRVR0xZdDRjWTI5TEhJTXFvMW55ZTdMaVhKMU1ocjRFbVByOGh0UU1GZ0NUWXJpOHI4Z3VHUEpSYnQydGtSZ1hvWVBaSHpnZXd5dnlDcG53QlhaZlZ6L0VWR0U4WHppRmdFc3paUjlBQ2RqdXVKczkrcHRjNWR1VzNpYmJRdnZvbTJqbGZwdHR3SDFSa29vL1JabWJhdWJ5NmhnYXNWMCt0S1lHbWNLbXp0K3AvODFNdlhIdCswTFkrcFFvbzVaTUJCL2kxcUpxODJsQnZFOHVIWnRJa0lGQnlqdERpb1luaEpOdTczcHlyMThFVnhKekZacjY0K2VJdEM1UC9lSW5HTnZucDd4T0pyNHpuUXNWY1FRVURMd1VKdlRkYndZZ2UraXBXNmFPWXR3ZENhMnA5bTJsV1BlNHRkYlRMMDQ5TVNPVzJXM3JURHYxZjIzZXNwT0h6SWw1VFJYcE9HdE1adlNoVkIyakNtN3hZZ2o4NStpQldJVEEwL25NT1diTkpobjJmUFVFVzdvOXVKMXlUZjZxZ1IyUUw3QlhKeW56MWE2U3l2b3hYMzcyaDd1VGxCY215NXU2TmV6aHczWnAzcjJhUmFpdkdhbi9vQ3VPV3l6RGI0M25YYm52MlFCM3RRQzdJYVhCczA4dkdvRlhBSEtjZUVueFgzc0RYV0V4anBlM1dvZFUyTWRQNjlXUjBWdkcvWnJtRHV1WW9lR3Vkdnl6Rk10ODlTSUJ6aXJ0THhZZTdEaFVGMU1NM2IycHM0dHBsTU4rRnN0NUxTcURtZVVEelRVMWg3ZXBIYjNvMnFYVkZ1bXBsR0xMVnRSRTVYdjZXekQ2OE1rT2JwRWs4Uk5tZXJBVzRLSzkzUStLMEovVlEzOVZTUDBxUVo5V29iK2N6WDBuNXVHVUdJNndhSlFxbmFVSktiVCt0cldwZHJDdW1TMHAxcmhhVVBoUUJ2T2liNXJLcUZ4dDZZWGh2K3hZeGRhTGpRSHlDbjJKL2gvd01CWWFDb1g2dVgrK0NOLzZnc29XY0l1SlBRaFliY0pMR0dqYmF4U01XMGJzS2RkVkExQXd4cWdvUUZvU0VEbGZGUzRDRngrSzFIR2JFbmQwTmZ6SjAwZFNKTkFCTG1tNVNIZnNwYncxdXFEcEV6Q1RSTUZIbGRVaXdMSENmMzBpdS8xM21pc0lESFZrT1JWSkFhSTlmb3JYSHIvbjdqQ3RUaXRSKzZYVXJhdEZsVWZwcVhaNW14T1c1dm1VQ2ZSS3FlMERTVmNZNGxSVFlsUnFZVHdMbVVEVldkenFKRkJQVEJKczRLcm42Q2NhaWNvQzVhM1JpdXRNbmZKeXNLVktqTWFGOXJlUjZrMTlST0JKdTJxRnF2aWZPQ3d2QWZLVTdLMWJGeDdlRVBmR1l0Wi9MRnVpdXU1VFBkWlNlbEQxd3hsY2E4b2tMd3o5VXJIUGlnd1ZKeWtKUXh6ellZWVhoV3JoZ3lobXVGOXBqRTBSOFVmWDZxNUxvdGcwSlZ4NHBTbWk2a0VDSHkxN0diQjVjRm9xR1VZWGpqV0lBUithQUhUV0Nxa0xReDBXZ1RYQW5oVEhmT2lCUFNsbmdNN29pelFEbXVMU2xWSGwwNnZWRFRDV2cyb2JONVl5Wm1yQ1UzVmhEWFZOS2c5Nm5zRW10MzFEZ1hBaVZFWVV4RnNmRENPYkVnNk5nODFjVlNnb2t4Smc1MlVrc0lUZFRXbFB4NlV5cFFhaE8zSk5nRHlPUmZ0MkpDR3djbnh1NU9PMkdDWXJ6YUl1YURreklsQlZ0bDB5YXJxZ0J3WFhCamRZS1hUQVljTk1OeGp6WEpjRWdaZDdhc2VtaDA1ZUcvcGNTNFdUelJaeEsvTlErRXJid1FEeXZDNEI5cDluZ1NYVkYrU1R4ZGhRQWVVWUFQaWdPSXQxSlFaRjh1U1l6eXloTUh3K0lGaGtqMmJ1bFZOSjdIVXVCS0dxbDJhdzFDaEpTRUhWL0RUUXA1QkFhZXVZU0ZlQlRWbGc4NnRQb0NOSDZlTlc0UkE1aGlRQnhiS1Z5NHI2eXlxUnR0dHF0UGxNUURicGhaVzFLbkdVYWVyMU5QRmZPWloxR2ErenVpSzVjWkVQR2JiYmN0c3dROU5sdmlpcmExekN0REZKTmVRS3pGa1MxcWxnWmQzaVg1cVV4MWZiVmx2WGFjb2RDa1N2aEt5bTFHcGp2UWx5TnBZUTA0R2dva0JzQ2thcXBOWkVYZ2tsK2g1V1hsWDdLaUFyRjRVYVh5ZUZQVzl1T1oyNWlUcDBEQ2Vjd09YZmk1WHN5ckRwOHJvdXFuc3ZVakZ0anY0RlZZZjNJUnNxTVh3ajhHOUNDaGNTbEdSSGxiQ0NqbXMwT3lxR0dBVlRteURoaXVoVmxidVc0UnZiVW1UYW81Q1hwTDg4N1UxZGVyWm9SbnYrNXFXNFNUUmZTT2ptdER3eURjZTZEYTQ2ZzFsblhTUlRtMnN1L0xJWWU2M3BUUXJLUEtiWml2TVNLaTdIK3AzNjROWkJ4bE1tQlFHeERGM2tJQzcrSS9wQ2RHYS9DVnV6MnZyWm56dFJjV2p2SStmMTYxdVZxanNXcGVibEtXKzJSTFlCR1lZS2dDTmtyS2NnWXA2T1R5TUx3eHlmNXBYWjJRS002ejZBNUpDVkVETFR2QWJCVUk2UGVuUWFRbE9uNU1XZTJ3RWJBYk9VVmVyd0FZZmkzWVVqOXppNTdxUVZqdzhxVWs0TjVkdzdqY0pWeXZodmxBUjV4N3pkcWdUVmwrcGlIT1hFbkhoaWlJdVhFckV1WXFJY3l0RlhMaUtpQ1BYdDlRM1V1YUVkeXZpekV4eFV4SG5Wb2k0OEFzVGNmcDFETlNmUlNmc0ZyMWkrVkhOMWJKemJFUWFCenFQLzZmZ1cxenFGeGV5VUZCK0VhaXV0THMxR1oyQm0rczZjZXg3c2RYRnVZL2E3SGJpcGZQWWo2eGVZOVlTWklrOWhjUXJLSUtkNVFqYVZ1Y1hwMVZxb1MxRlM1SGEraWJJMm83SStiVjhHc2FzdGMzNXlxeXZaVnVPRTlIbk1EUGkwblNybTM2dHA2TllNNmlQa1BIeCtyWUk3Nk4xTG41dXJuY05wWnQwcjdrMVJ2TTVyTk10STZGYkJPRXJRM2dzYVJtWFNtdXpjVGx6RnZkVUg0djZUOWpXNDRxaFVWbkVyQ2VNMDJoK2NQSkZDN3JtclBXQ2pwcGhYSEhoUVUvNEltZGhRVElQK0tQYlc0WkFGbnhWQXd5UEhCeDdyTUYreUhweXJybUJqTVdJc2I5NnA0dVpFN1BBOFRHT1ZUUlhYK2J4WEtFK3NTcHhDQThEdnJ5QVA3ZjA5WFpEWkZkMWpOVE5xZUY0eVNkVkxWK25NbjZVdVRYTHoyYXo2aWJvdEU2dERyS0xueUJ3VEhYV0ZWTlVYSkZJMll1TE0rd3RLNk9aV2NiM3hnT2xPMnNpYzkwU1FlWG5aaFNWbjByYXlBL1FOSStLRjRFMndpMzZWbXZ3VG13NG9iOEZ6aDRhRVMxVlZjcFJZc1U2a1VQZnB2dTV5Z09tVjJEcE55TEhPQjh5UEV3Y0w5SFRJczVWc2dXOCs5Z1JzVnJmbFlZMURWNTlyOHhLdzVxbXkxTy9ZWjY4MElKQ2pYY3lTam15Q3EwS1NLd2lTSnJqUEl0M0VzOW1BZkZSYkhDejhadkpwQzAxeXUvdENhaGJaZzM1K1p6aXB0ekVXMkNvakRkV0VWMEZyMnJwanNtRlhMYkd3UjV6a3BRc0NRMjVDYk8rTTNrbm42aW5yN1duMm82NG5mNnViZURkTVlMZTdocVd5RUxxTEtlLytxdnByLzVYb0wrd0ZiRTM4ZExSR1E4aENzaWRlaFc0OVFTUW5nUXFFNUplRWI4eVl4YTBwa2xwZm00ZCtnV3IxQnJTbCtIeEVuSUoyUGphbGE5ZGMra2tLNTZZeTJjWlhEM0R5bXA5eWV3b1dxcXNMQ003M0M1SmwrcjVXdjVaeHNPNVF3TkdrMk0xRXVEV2g3L1pZdnFDemFkL09HdHFPY2FYbnlwaG9yNDNTUk90dkZHY2FCQTBlWEtyWmwxL1BPaTNtWkZuN0lwMUJxT3dhWlk5ZVI5OGFxNjdjOHV1dG9wbFpYTk9uMXZrVVowVWRkeGF4Nm4xWE5yQW9jdGJtTmtkMCtxbThJS2hPUlQzVWhXU0I0OHhhTnlHakl3djMzSmJVNTVTdXM1MndmNDE5ckcvRnlsN0twUGVLdmYxT3FPUmx5VDhGTkpUSnU0eFR2QUVRQlRqNWFwT2RybHg0S1RCWWtiRzdYZkZYZVIrWUl0RmM4TU91TU5pNWxESlhOelVob3Z4dXZuOW5kaEpUWFBWYStXYlhQQnc2eEJEYzhnYldZaXluMk9kSjd0Ri92YVdNTXJ1NWhleVR5TnI2MnByUlZYRkdqZG9sUEZlWWczSFdLcHh3NENwR05VbHVYd0w2elpDOTNrNzhtd0djRHhxUFQrUE9zRzRTTGp0RnM5V1c2dXVNTFZVNEhoYmlyaXlQc0pnTGVIbzZ1QWdqRUliWlg0VU83T2hkWTRoWjBEUzAwNHMzckZ0ZmhzZFhlNUNGOHRsQThnc3NGRENhMGN1eE9ySDJ1Y2JkSjk2MU4zMnlMdVYwWGZUNFhmajhYZkRBWGpURWJqc0VGeDZESzdSZ3VpcktQVU9tRE83Y0s1SXIvRkRTdlRXdHMvOHVRMDJVUUFLbVFhU2RWK0pkWENzREpvVHVicTQvRkJ0bytYMDVPM3JseStlMnI4ZS9mTGtuNCtldFVVZ3RwZEhMMS8vK2kvMmIwOWZ2em15bi94MDlBcWo1SzlsWTdCZ2ZSVldVU2N3emoxTEJYMzA1TGNqUEhZY3hWT3k0ellLWmhLYUJJNmZ3bGdGdXVOMVBldzg4QUpoRUZLb0tZem9OUFBBYUxBUzRBWS9IUUZSendQNHRycXRWajA2V1FGcmU1T0tiRzZERGZNSGcwZFE1clpJdVB5QkRRWVlOSVJlekU2bk11ZmxCRi9zdDFxOHgvQndtWDhhZ3FpVTF3S0pNOU1ZVWdyTW10UUxPK3ZVZFFXYmRDMlRWZXFkbm10cmNrR2E5L0tUOFRqdlloRzQ0amcvWjBZWHlQampaMzdRdVpLMktaMVFnODQwK1VkMURMUWk5UGFObUVYSTdVeGV5OWErQVprc3Vwc3VCTXFKT0k1Q1Q3K2hSampsR00vRVpMQ0w2VXZjOXZiUk5Pd2FhQ2lCYTdSRTUraW1sYXhFeHhJMndFQ1hwZlZLOWVNQ1RvYXRndGRabDRnZjVhWFd0ZVZNMlc5cTlTN1ZLc0s0b1dhdEsvcVByMXdOdkdLMGNLVU1wckd6b2dwVnkyN1ZTWWl5dGw1QkNpaU5hV2xOdTAzN09sUHVRa3J3YjVBV2VWUXZIaEFxdjZtS0R5cSsrWkkycVlOSFAxK2twY2hRTkpuU0ZPaUprLzZ5bUhCRlladTRYS0tPdnVGZHFZU0Rja1VxaHhqUjZiMGJndVN0QlpoMDJXc3JQMGxOb0EzSDNOV3p5T1Y3bHpDNDN2cWFjbDVWMU1TUWQvYndST2ZlN2ttaEVqZVB3SEpKR1E3MTEzbU1sU3Z4ZW4wTjVhaUNpRGhvdjFsQzZWRExGeUVrdXRFMjVIZUVxaS81WlgzYnZINGwvWXJ4Uy94NHhTcG1NblNGSDNib0ZzMXlHSUZLam83YTdGSWNscjBpeGkzdks3ZHRwRjJ2ei92cFBoS1F5TE9QWlhDUGVpRStxNUovU0xIaGNCRmk3WnAzUjFGSmZoVDkrQmgwUXhQOTdsWFFiMXZTcjNBWDN6NWV4VmRTcGp3RjRXUzcrdDR4dXFUOUhRejFFcEpzYSt1ZE1FUVZpWTBJMGV6bnUxYldyZXI3SytXOVJIdU5ZUFBMVEpIaUxvWWRjSW52OExUeEd0RnpEVyt0TEltc2tUTTY4Mnl3KzRkV0JxaU52eUw2UmtBSUo0UUgzakVrbG1xaTJQVWY3YldLMG1yaTBCMHlGRUdqSkxOc3AxMUtjczJDekM2SHZ1UHA3Z3F4N0FKKzhXSENwWnZPQ1dyQWlBSXpxQ0VwYUU0U2JNRkJCb3ozWTFrK3J4SFpCZXBJM3pEL0hkRDNsTk9adnE4a2xYT2p2UTZrcTREa3YwTVZKSHVZb2FkRHh6NGs0Z0d2Mk01YmFGeTRtTTNtYVh5WUo3dGE4anBTQVFiNU9VWG42QjdtejJIaGVjcWYxMHZSQVZWd3ZpRkdvRlpkRnZXOW9KSnVFTmFSTUx1TjhJMDR5KzlBdDFSRml5US9KUk5tNjBNK0NPSkZhSDhaY1J5cExZSG5KSXZZMHdNeWluM1UvcGg2TjR1Z29VWGU2Y2dkOUlVU3haZ2JTb25zT25UYS9sTWtNMWhBbHVDbzd4NkRTdm5qRDhsQThEak5Ia044REZzdGRjYVJzMjArejRpMjI5Ty9IRDM5MlFJajhIbnNlVEpIWmx5WmM3ZzhCemUzTXU5Qnkvc1NMekFla1I0RGdOeUdtZWJYWTBHdnRkU0RhWlZsM2JmY1ZqR1U1UWhrZzB2T0pHZWpLMVFUa0F1bjJwb09FVmNaWjZwdmFrUkhqZGpKZnVqdDd3Rks0aytHMlU2L3VWbUY4ZHNBQzUwZ2pQdnRuV05Xdkh0NTVzU25IdlBDYUhGNnBqWUlxamc2OThMVXBpMEhNU2phMUhIYnVEZzRQOHhhTFBpNHNyRUU0U2tnbU5LMEM0Q3BiSStXRmFwYUxpT2lVNS96VjI4VXhXTkx0S0VyTTE4TDdWRWNFQm1IbTlYbVlERElKL2ZIZnJCanFlTjBqNjZDVmNjaHBMVHpoQ2tsdE5vRkVLU3JLV21JMXdvTEhwZjg2clF4MUVjZ1EwNFU2cE1qUjJ2NFQxNzZDeUI5Rk1lNGxpeXpGRHBzclpGbTFPSGRWdEVqQXNLRlNpemErUXpaU0kyL2hDSDdlb2VGYlBMMjR3eC9sU282c0ZaYjJXN1NLbDRadmFhc2RuRGhvNDhMc0p5ODlBa2FyVlpwYkhUYlVzQnVTcm1aRFJIQWxrYmJtaGdBWEYwTU10WXFxcjQ4TGRkeStDa29QdndVUWhtVEdORjBvWEt0dk02TytRc1p2WmpZQk5sUVl5R2RnTEtWNG0rbzNMTkJ1Zk9tS0cvNC9ScklnVlhJUU5jNjBMV0NRV3R5dVNLWHErU1NHcFRJcHZ4V3JsQUo4cDloL25OYW9vRVcvMWhOcCtqSGEycUtqSHlNYVZJUDFnK1YxV1JiSmwyaXVTSmN6SGwvQTVZOGk2TVF3N1JLdVpWbHI1SkZUUG53V0Vma05YYjFhYlp5WlVjelp3N0Ezdm9CU0VtOHVqZ1g0c1VqM055VUdFY0xERWFaUWdGVWZ3a0dTWHJRN1hZNzNacmNnUmRFTWJsQzZJeUdMYUZhKzdwNmJRUmdwenlJa0FDM3piSFlabGFQRUFCbytFUDhLVTVaa2s4NDh1SzROUEU0R1BDWEUvL1NHMWUrcGJOeDNzaFAvQ2kwK3VWYnVTSGZSczdjS0kwUDJJWXBGOUFNOCtKZjQzdUxXclhKeVlyL1d6ei9vaUsvU2h2SytOT2Z0eXV5VWtPOGNLeGN4NjZZVXJmSVJlV3h6Z1A0SGVUV3dlcnN0UVIvR1F3K1pEaGpLcDlqeUZMUlBLOURLY0pZc3lXaThwZFcwQkxBT0Z1RDlmUnlNVXY5K1F6WE5KenhtRTRZZWVDOE00emlYNEtDOThJWEFQWHhoNnI3TW4zUm1YTDdUSndtYlNUTHFxT21FcHk0TEViQ1E0TFVBL3VNSXpFSW5Jcmh0MkZ0MEtqaFk0VitoOHJ2S2YxdTFaWlYvU3lscU9wTW1aT1hBWjczc3dvN1R3Mk5xYldRaTN2UXFMd3BZM0hZVnVlVVZseDFqdHg0b0V4Zm5qRFUySm55dm4zK3krczN2MzFleVNuMDc4MGtwSnI3VHZRZGhzdTlvNTZ0NzRFeVpaOTV3S1BSbGJXRU95bXpOcnFUT2N5OGQyaCtUazRlY1pzWXA1WG1hUXd1c1dQRDMzWWgwVFVsT29reHF6RjFsQ2ZlYkI0SnRNY0x2aStVZXk4SjNubm5KTWtDZXFUWDMzL28rb0RRekQ4TjhXcEV2c2RBN0hLbEJ0RUZSM3hueHFINjBxMTd5UnRZV2JUMjdhajBVcG5jd21XU1RZYXhDeXNXb25DeWJzZ3gxMmJGZUVHM3FhQmJVWkRDa2xhVzNPbGpuVWxWcGMxbFhiVXNMelV5RmFKcHhTRW5rU1RNOXFibzVqeDRWRC9mUENCa3Q3cGRQcyszaytlYkZ6ZlVBOXNZQVJaamJSdjJXeGpMMGZJMjNlNVhzVU5EbE1MYjNMb0svbWYrSkswcWtsRTZQOW1aWkpQQjVVMEhGVVZTTWErOFRBRkU2VDNPVXBPVVF0eVdLVVdUM3lKd1JVWUg0bTR3bHZIbGgveStyMnV3bXlrcHY5ZnUyckFoUTM3UVI4U2QrLzFIZXpodm0weXJOc0RJRDQvM1dvMzFkVzFkeW03djk3Uy8vZEZlWTRYWk5QdmdmWnMzYlc4WDU2bncvM1diQ05KbTRDcWpKcHpDT0tLNUxUeDE0V0w0VjJXYVMzcmZOZVJvcUJEazNRMXJ2RUdGZEZIUGpadTRZb1dpc2p1a0tkVjRwMjNNaUhwbjNaaFI5ZlpyckJsbnRjUytPU2FyMUFmaitwUFJ1cXA1c3M1YnJLNFlHTStVaGdjOTFjTm80cmVTdkxtdHpBRFNMc051ZnhlbExkMVQwbnUwUTZLWDdoSDZvYmVuaFRWWDJrck5Nd2lIb3Z4djQ2RWhXdWVrNytVYm54K0pOMkM1MC8yaG4yR0pLRGRpV1JqZlJaMmtvRW5xOXBid2ZQVEREWWlaajlDN0lTWWlsbUZaVUlGTDAxTERzdmNwYUttajJkMXRKdWJud1hOM3I3dS9XcWMzNHZsSmVGT241MDUzOXd1bDU2TmUvOHNmUTd2ZEgvT1JEaGgvT1gyKzE5djlHT25lS0RlN253TFAyNUh2bjRRM05UeFhsdTkzcG9ZME5MOWNDVitENWhjbDRUVThQNEdFdndONmZsRVNYaDlGcTByNHp6T0tibC9HZnlRMVA3YjZHNHZ1N0pDL1VpOXEzS1hVNy9KYUYrcDU4eTkvZnZIcVdhOW52M3o5N1BkZmpuQUJGSEp3eWdlZHNUZXhOaUJwbzgzdUF5cHR0dkdYRjIvRXhQQUdBZmovVUwrU1pRPT0nCgpoaXBfbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSJmcDgiLAogICAgY3BwX3NvdXJjZXM9IiIsCiAgICBjdWRhX3NvdXJjZXM9emxpYi5kZWNvbXByZXNzKGJhc2U2NC5iNjRkZWNvZGUoa2VybmVsX2NwcCkpLmRlY29kZSgpLAogICAgd2l0aF9jdWRhPVRydWUsCiAgICB2ZXJib3NlPUZhbHNlLAogICAgZXh0cmFfY3VkYV9jZmxhZ3M9KFsiLXNhdmUtdGVtcHMiXSBpZiBURVNUSU5HIGlzIG5vdCBOb25lIGVsc2UgW10pICsgWyItc3RkPWMrKzIwIiwgIi1XZXJyb3IiXSwKICAgIGJ1aWxkX2RpcmVjdG9yeT0iL3dvcmtzcGFjZS9idWlsZC8iIGlmIFRFU1RJTkcgPT0gInZzY29kZSIgZWxzZSAiL2dwdW1vZGUvYW1kL2ZwOC9idWlsZC8iIGlmIFRFU1RJTkcgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgKiooeydub19pbXBsaWNpdF9oZWFkZXJzJzogVHJ1ZX0gaWYgVEVTVElORyAhPSAidnNjb2RlIiBlbHNlIHt9KSwKKQoKZmlyc3QgPSBUcnVlCgpjYWNoZV9tID0gMApjYWNoZV9uID0gMApjYWNoZV9rID0gMApjYWNoZV9pID0gMAoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICAiIiIKICAgIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBibG9jay1zY2FsZSBmcDggZ2VtbQogICAgQXJnczoKICAgICAgICBkYXRhOiBUdXBsZSB0aGF0IGV4cGFuZHMgdG86CiAgICAgICAgICAgIGE6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFttLCBrXSwKICAgICAgICAgICAgYjogdG9yY2guVGVuc29yW2Zsb2F0OF9lNG0zZm51el0gb2Ygc2hhcGUgW24sIGtdLAogICAgICAgICAgICBhX3NjYWxlOiB0b3JjaC5UZW5zb3JbZmxvYXQzMl0gb2Ygc2hhcGUgW20sIGsgLy8gMTI4XSwKICAgICAgICAgICAgYl9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFtuIC8vIDEyOCwgayAvLyAxMjhdLAogICAgICAgICAgICBjOiB0b3JjaC5UZW5zb3JbYmZsb2F0MTZdIG9mIHNoYXBlIFttLCBuXQogICAgUmV0dXJuczoKICAgICAgICBUZW5zb3IgY29udGFpbmluZyBvdXRwdXQgaW4gYmYxNgogICAgIiIiCgogICAgZ2xvYmFsIGZpcnN0CiAgICBpZiBmaXJzdDoKICAgICAgICBwcmludCgiZXhlY3V0aW5nIG9uIiwgdG9yY2guY3VkYS5nZXRfZGV2aWNlX25hbWUoKSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgIGZpcnN0ID0gRmFsc2UKCiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQoKICAgICMgYSA9IGEuY29udGlndW91cygpCiAgICAjIGIgPSBiLmNvbnRpZ3VvdXMoKQoKICAgIG0sIG4gPSBjLnNoYXBlCiAgICBrID0gYS5zaGFwZVsxXQoKICAgIGdsb2JhbCBjYWNoZV9tCiAgICBnbG9iYWwgY2FjaGVfbgogICAgZ2xvYmFsIGNhY2hlX2sKICAgIGdsb2JhbCBjYWNoZV9pCgogICAgaWYgY2FjaGVfbSAhPSBtIG9yIGNhY2hlX24gIT0gbiBvciBjYWNoZV9rICE9IGs6CiAgICAgICAgY2FjaGVfbSA9IG0KICAgICAgICBjYWNoZV9uID0gbgogICAgICAgIGNhY2hlX2sgPSBrCiAgICAgICAgY2FjaGVfaSA9IDAKICAgIGVsc2U6CiAgICAgICAgY2FjaGVfaSArPSAxCgogICAgIyBEb24ndCBjaGVjayB0aGUgcGVyZm9ybWFuY2Ugb24gdGhlIGZpcnN0IGl0ZXJhdGlvbiB0byBhbGxvdyBmb3Igc29tZSB3YXJtdXAKICAgIG1lYXN1cmUgPSBGYWxzZQogICAgaWYgY2FjaGVfaSA9PSAxOgogICAgICAgIG1lYXN1cmUgPSBUcnVlCgogICAgaGlwX21vZHVsZS5mcDgoCiAgICAgICAgYS5kYXRhX3B0cigpLAogICAgICAgIGIuZGF0YV9wdHIoKSwKICAgICAgICBhX3NjYWxlLmRhdGFfcHRyKCksCiAgICAgICAgYl9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGMuZGF0YV9wdHIoKSwKICAgICAgICBtLAogICAgICAgIG4sCiAgICAgICAgaywKICAgICAgICBtZWFzdXJlCiAgICApCgogICAgcmV0dXJuIGMK

Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0

Changes from previous submission

Against this author's previous submission submission 27935.

- IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxMzI3aVM2TnIrRldqM1NVSTVpaXpKanR0dHk3b25OeDk5TTkzNU9OM3BkMmVPcnc4UEtWRTJJNUhVa0pRL2t2WTU3N3oxTEdaeEY3T1k1VnUrNVZ1K1h6Ty81RlVWQUJJZ1FZcHliQ2U1RTUxRUZrR2dVQ2dVQ2xVRm9QQzlINDVtaTdISEJxZitmQXYrMi9FaVRQM0E2NXdPMTc4dnZaek1lN3ZtTis2azZzMWt2cWUvbUYrNmZqanU5YmJrRC8yMUh5VnA3RG1CbmhZNG9UOVhrMXcvSGE2dmZ6LzJKbjdvc2IrOGZHcy8vY3Z6cHo5Ym95Z2MrNmtmaFMzMnlaKy9yZVAzT1BwMFNIWHdQOTRXZUFFZlA5QVJ6K000aXUyVWVmaVhIYktNVUFjM0FOK2ZXQnp1ZDRkWTEyK0wwY2hMa2svdGdoeis3ZEFvaDQrZkpCM3Y3NCtnR1d3d1lCdEVMcmFCdjZGQlAza3BKYngyQW8rM3RJVnZIbGdQOEE5dk9qNjM2SGxqSHdxVzRPY2ZIZVp2YWV5SEp3clVEZWFIdkdiYm5pekNrVzN6VkNlVnFTOWUvdkljVW12Z1A5aC93TFArOHZMMWN3N2d3ZC9DQjZ2MXRRN2Z1L0JUZ2VYMVdhWUMvdFhOQURUQ3Z4M1lPZnp6VTMvbVdSTm5sbml0OWZWRkFwM0pRT2pCRUxOdElRQnRieWZZdGlmaDRzT0J5SUR5TXN2aFRtYVJrL1oyRDdMUzIzMTRTYWxxMnNVT3B1SkwyM1pTWUJ0M2tYcTJiVm5lUldxZmVhTVVCL2psM0xOMldxMldMT2lMY242WWJ2ZGgvSzlRbE9va1BKdFUydHVsb3VzZ3ZoZWpsSTBXcnNjK0VvV2dhaGEwV2RobTA0UDFLOGdDc2lkSnZZdDVUSy9PblhodUovNEhEeXJhM1Rrb3ZCMDVvMVBQbm9HVWwzbDYvYjBTak1CMlo5Rm9TbG5zWURGTC9ma004MjczaS9EQ3hqbW5GVG1wZmozclNSd3Q1anArbklTeGQrSkRQazRpZUxjUTNRQVpVaStZejV3VTVqSjhGNEprWWUvYUxQdjkrM0FkdUFNbVF4aTl0ajMyenZ5UlJ6OG5VVHp5L0pBb1lpdDRPSXMwWXZCbVpvLzlNK3NkYzlyc2QrYTJSQi9FWHJxSVEyWTU3Q0Z6MlNQV2E3RXQ1a0ozNUlnTUNBSVVvNy91dGVxSHF2MnhaM3NYemlpMVpOMUo2cVQreUhhU3hJdFR3T0FlWUhCNHlMcHR0akdPdklTRlVTb0tNaXI0M1Fid2tZSzBVMFlWaVE2NlFKdW83NHpIQ3VFUzcxK0hrZ2xGcjEzYTdxVU4yUTlxSWNDUFRxZkRYaVpWeFFlVW4vTFNaQUVGdkJQb1c2aHg0WVVqZ3RtRzhnQmxPQlJ0NTJ3Z2VyK21sQVd3MlNZVWh2NkJHbG9JZ3c4V0RlT1hITi9YL0kvRXY0aTJNL1VBMzdGM2tWVmluL3ZwS2JiQlB2Vm1jeTgyWVpkUjBOanNsNkxSQXJpeERhK0JzVjRpWTBHSjRYQi9IeUUyYWNSUWpKWTZ4RFVFbHpkd0FKVlFCYU1Nanh5SkROQUxqWHhOK1AwczhzZHNFY2JSYkdZN2N5Q1M5WUpOR3ZDREhBdldwSk1OL0Fqd2RFQitXcTBCVkcrMTJneHl0c3FNWHFJWENobUY0MStzakRvaUxUSFNHZ05OcVNPdVF0V1BWMlpNUHdHcjNyaU0xd0NreE11aE5ha215ejk5VXAzOTZqcVA3aDl6S1NISHNwN2puL0ljNzlVYytERjNzdCtHbkphUWJmaTVFcjhyU0NsYWgzOSsvcVJHYnQ5S0kvTmNQK2U1cHNWYzllUUFsVUNqaUVxVkdncnBjeVpOMERBK2tDNzE1QmpOUENlR3VkRzY3OFN4YzlrNmVuMWNwc3JyQ3FwUWtTUC9HRWJmdTQvZEt3Mnhtb3BKMWNNdmV4SkhnWTJxbEVXcUhidVFkVzl0b1FYN0lFR2o3TXlMRTdES0dHcithSjR4bWlLZDJZeE5ZVkFtTEpvd1VJaEcwMFNXaE5wWU5JYTJPUWxrdEY0N01FQ1RoUnRHY1FBNmFZdWxwMURWdVFkd3dnZW9Uc1VlYzl4b2tYWWtnSGVuZnNKT3ZCQTdCcXR5azJnR090N3NFbjVlSmdBRTBCcDdBRFJpN3hkSnltQ1NDVWVRVlpaUFR6MjJtT09rQWtaNXdrQUxPUEZTU28zOWs5T1VuVG16aGNkbS90VERSRm5xRFphWVg2YW4wRVFVbkNCd3hwMTFkZG9ubVFvZ2JXaFpPa0FLRHEyc000Uk9RYTlRcVFMeXBzcHJua1V0THpXdm9RVmtoK201dDV0bGJ0R3ZwUjFKU2pCK3lZN2NzMURQcis5RnlFbldBRkNGeWdPcGsxbDB6dUNkRTBMcmFmNkZIcElRc0xleG4wNmRNeUlYL0lqSDU5aHBmc2luZHdCTFJCNUh6RTg3MEh1ZzhrU1RGUE5JSUlFSFpCMnpzUWNNd0ZCMnMyVHVqWHpzU1RPVHRCbG85Y0FrT1JZNnIzQW1PdlhnR1NicWtaZnpFNmgrWUFQQSt5aEJGRldlOE1QNWdpTVllMEJKNENBb05YSkNrQUdwSDZDdW5DcTRNeCtHdGhkNElYWnNsQUZ5THpuVEphZUx5V1RHcWVVUm8zWFd2L2NuWTI4Qy9YUXl1Zmh4cHc5ZEpBcTllcm5kN1FMbGdKbERsVzQwVm9EbVNVZmxNeHFNd0JVSDY5OTdZTVJKSUM5Z3pMbk9hRW8weThiS20yZHY5dGtMR0ltZ2xVNGNWTzJwT1FKaEE4Unc3RThxUk5lTGdzREtaTHBCY2lYZURPaHN1VkUwSTlkTm15a1MzWjh3Y255MUZHbGxscmxBQ1M4VHVGY00yN3UwREptMmVhSFNURFdleisxUkdzLzRUQlZINTNiZ0pGT1FrdDJMQ1U5em5YQ3FKVkl6Z0xIQ01aVkVDNU1xcVJ0K2NnQURLMHpBeHBuUHJTemxvbURsMkxhNzhFR0hEVzBuR0orTVFuc3hId08yVk9paXplQmZqclBFdDUxajJWWlFNOHpNTXdkdFViQ0V4dzBSVG1NblRPWXdRT3lkaXgxN3NtZWY5WFBjYVpTWUxTV2xJalpRek9RdHRnT21FNzVsNHEyUEVpRUN6T0lUVHhwUE9pd04ySDJtUGFJMTJKSVdHU0l2d2VJSVFsTVFwQUNiUitmSTZ4UFdOMWVnQWp3ay9YVGoyZHUzaFZFTkhmU3ZDejhHRVZUTUxvRnViWEdLN09jQ0FMaXh5M3FzejdabEduMUVHa0ZpLzZ5OTJtR1AyUzc3UWJ4NnFOU2xaZHRqUDdJbjdNL0xzajFsejloekdHN1YyWkp6Wjg3bWpoL1Q5SXdaNURRb2N4UWFJQkNVajZJRytTandVbVJwQ0phYVI2U0FZUmtnYktYSzB5ajJQMFJBNFJsTTJROUIrQU1UcUROdGVoNEIzUk13NnJMSnVYL1J6N2x5bkNPNUEwanV5c2NlSUxtZEk3a0hhRDVoeitYamo0RHpud1hPNUFUZ0RnQWlFanEyaUV6K1dJb05KUXQzbHZEM2FHWkFkaXExcFRIRlBiWlRLcGtpM29mbDRZMUV5ZWQrUU02MlNVaGNnUHdpYm1xcm9HRzJneXkvWlFUTWRRb2hXQVpkdDlkOTBPczk2SFlmZEh0RERxTFZ6cjNkQkRKN0xMWG5IbEFSUjVPbWpmd0pKRjkzOTBHMy82QzdBNEMxZC92NGJ2dEI5d2VvN2tIM3NWUkhSR05lZzdwQTNVMFZFWXYxdFU1dnd6UTNSbjFBNmZRRUo1aU1ZYmcweHdIb1hZeThlY3FWQWdYZVJiK1Rjd0V5YTArTXNTN1UxUysrZXZSb1dIelZwN0c0VGFVd3kzYk83Rld2MUk3ZElSL2xTaDJMektEMUs5dGtmYVZ2ZWV0TW5kdWxub1grN1hXSEJFYnBXNEphM2JVRDBXS3RWeDlUbC9hcWVyVlBIYnNyZTFVVGM5Qm9rcHpvb08vdnROZ2YrV052VjN2Y3d5ZDgwRnhqU0xpaTNvcFR5eDdNTExQWldTQUpHVHZuUU52SnhJdHQwRTNHdHJ0bmNjZHdFaWZ4cUozNUpkbFpOSmtrWHFxa0pLV1VVWVFxWFRpNjVJcXpEVk5BWUcxZ2RSMWVYUWVxNi9EcU9saGR4OTlEK1Y1RUVuWDJlaXg3dTNlTFptL1hoQ2RCcThVVFRMbzd4WE83YjhKemQyY1pucnM3ZDR2bjdrNFJUOXVtbnU4dlpWREljc2Q5MytkTXFtSkxxbmNGbWdsb3h4NE9KRG5lemtESGROcnNqcENtNmcwRHF3SEtNS3F5NGZkWmtDNFBzd1pZYnl0SzgyZkJ1anpvR21BTkl5NGJtcDhGNi9JUWJNSWhNUGpVa2ZwNXVFUU1TQzljQkd3MEF6c2pCd1AyMGhwZkdVVFBHRm91OHZsa0Zybk9qRHprTW9sdktJRWttTm5Yd2lpMDBaeUxZc3ExclMxUHFIN0ZiRG1GWTVWWmFFcWFEV3AxdEFDYlQ3R2h1VmFETk41azh6VE9YWmtaTFVEdlB2RU02VkJ5NHA4SUt4dVFXdU9MSW1ENEI3YTZnQlI3UVhUbTJhTXpPeDI4R3dxRm9vZ1E5cEY0VldPaTVpV3RkNEJ1aEk2NFdPMUlNRGRWcHdMNlRoNE5FVFlnVTZoU2QvdkdIc0dhZzU3Qy9XOEtYWWFXcUVuUnV6aHRkWjhlZDllUnlidEpxRVFUSzZOR3ExQllPakxoM3prNnE1NytqRFpUSWp4Ym1FS09WRDhGQThrSi84UmVRdXM4THlDVENGUFlzeWZ2bnRndjN2ejY2c2s3V2c1R0oxT3hocjk2TENDZkpwckU3c3pEd3NBNGwxeWZSdW93WktPNDArbG9SVUVSN0hiNzhMLzdlKzdhbHY0VStwTjVHS1F6dTYwdys0ajI2NGluL2YyTThZZE4rcGQ0aG56WGc0eDQ2T1JtT08xWlpUWThkNEM1eEFBdXYwMVBZU3lOUysvSm9RTjZPemxPRWx5cml4ZmNGbW1KRWFHc0xvaVZjYlJJTmNZMklIbWdqeXRhYU9id3lCT0Rtb0pZZFMveEIvRE1heHhGYTBxRDJLWWg0d0hrMFpwVmtTc2ZCR3JlUTZYWmZ5cThRd3ZnQlh3ZTRGZWhLWHh6dzRqYW5yTTlKQTZ0a2JRUzhPTlBsS1piU29zUGNRMi9PT2dNam5PRjBFTnJpVTFRV3JuUlFaSDhCNU1wa3dLRk1WaWlUdm0xa2JzeXdveTBwSmE2RU1SOWxUWFU2Tjh3TlVCTCtwckpzWFBENUFEMTYyc214OTROa3dQMHVxK1pIT2hjdU5uUjB2OEtwSWZlNG9ML1dpWFBJM1JmWXdyTkE3UkJLWE5rZStNTkZiSnhFbDgrZGF1cjFsaDB5U1RPMTRCUUw3YlcxNml4TklkVVRadjNHU25zbjJGeU4wM1QzS2o0YnpWUHEwMDJUTlRMWEFxOGozTkdMUzVrNzZGaWpGMXNHRUtmZDlBdEVVSTZYVXBUOWxLL3hUTEM4RzBBWHo5bFNyUDNVdC9JTXNwd1krcnJwMHhwSWwvcWYxbEdHZlROL0NOUXBqeW5MM2Z5MU5GR2NRQjlMZVNwbStCMVl0RU1UMG5OcC9pMUZlYjNUNW5WczhuczdxZnhOVTQzd0dnd0dnSlNhMWtubDdTTTN0RDZpT2hkUVNmemZCcFdQS21BQ2svTWNPRFY1UnRMWURyZDJtSlB4R2EwR1cyd1ljS2hGM2hCRkYreTBQUEcyYWFFaEUyaTJTdzZUL2F4M0NQMkV5N1g0WG9tN3JpN3hNMXNTWlR0ZjhPZFI3aUs3dUFHL1VmQXMrUSs0QVZ4RXhWVk5uZlMwM3lUQXJBQy9PVkhFQmoybTZ3WlMzcGpQSkVUaFNPdnc1NCtlLzFrZTUwMkRPU1pPV1A1Q2RiSDBXbHpmQ0FSdDJheHdFbGovNEpueXpZclFjczVvTEVQckVpYnlDeCtEaUgxWjU0ZEhERGg0ZlBSSFRwYkJDSEFlWTlIaDZEZGdORE13M1pBbFIzZXRMOTYwQytnd25obkhwQ1A5d2U1clp3WUJvY1BEZVpiKzRCQ1NOc01CRWNpUHdIQnRwaUZEZGtpT2VQeGdaTGdVU1ZzMEd0QU4vWm9rMVduVlBJUXozV3d3eUhiTTczcVA5N0ZkOXQ5MDh0ZXQwOGxvZWFzT1RDZUY0SEgrelhiWjRia2NHYll1RXY0NjUrRUhyV1NTTytuQ1Y4aXo0b0VZb2NMcjVLS0FnbGt1V1F4T3UzSUV5dU1Oc0hOWm5SQ0lmSFI2ZWRlUW50RVgrSit2dE5vTVJzalcrQlpSR3crQi90ZmYvKzMvL3I3LzVULy9rK0QzLzllS1BQdkV0RC82dEwzRG4zdjBYZXZqOS8wbjU3UjR5MjRYcGI2VHdYVS8ydncrMzlEbWI4cnovK1JWZCtqNzhmMC9TTlAyY2J2YTllVVFlN1Q5eTZIMmFYdm5adUJ2RTNmUDNESVBmcCtyRUpXVy9wL0cveitqM3dYMkRxWFlxbkNyTzFDR2grc3h0U1FwMllyRFdSNWtreGR6OFQwQkNRVkpNb3RPdXY1WWdUQklma1RHemVOcVJXeGU5SSt5dXJJOW5saERpNXVGRW1UYi9qU3VKMHNZZkxVSXJnTmFmYmttZ2hIZ1JxYVJxa3pJd1J4aWxHSkFZYWVodHhXR1RuVHhqSVY0TDJDZUtDRzRIdm1CRENqcExUOWluS3E4NFRXRnRvK2lrQWF0SVZBNFNZVVcwUDhzR0U3bHNBVXN2aFFJOW1XMGtLQm1qaU1GNThZbk9VNTc1UUFENXN0L3dqVU12QUVrVFk0ODRrMzkrcHdIV0V5MzlQNkVkY0NjeU9ZVHZwcGo2SCt5RXVDUG1BSFZTOUNvWk1VMTlSb3AxQm16U3Y1OFVoYkRoYllMQ3phOEZSVU9DQ3FNNEI2bkMxcmlmV3F6Tml1V004Uzd6ZUhsazZTVnB2WG8zb0ljbmRDNmxPM1V6ZTlIRjkwTHBSY1dVZHczNXZ5SmoraFVPcnE2a01hZWFVK1ZQaytHNE5FakllSXlVRkYvamc2UjZjSmJzc3pEb09xY3FDVVVMbDdLNVlEcW1FSFFsbXNHV2dINkNHc1RkUHdxb0hCOGNadmpTM3FxdVVvVjFTbWdURmlYMUtzSlJvRFlJTDc5N01xQnNoM2h2TEVmT2RSUE9iY2wyL0NSaVFHSllTR2xseGVGeVJyNTVVWGp0SndIanA2Znl5bFJtYXFaZUNHRnRaY09IS3puZ01ncjdEa1JYcS9pbGpKTFJ3N2pld0VsUGhjbmhRbHlUaFJqSlZzR0FnTDR1N0V6TElCU2d2Tm50d1ZRRk9qUTBZSUNHcWNjS0xBVDVsZ0JUcXBnOUtiMW9jeEx6eTBWVkN1UEZ4QnUzejVIT0NIWjZDS2pqTWx1OFBlUmFCYlhsQkdmb29DNGFwZzhHQ0RCNWFITE1QT1R6MkFHRE04a1pNczVyVFBWMHlIb0xMVEZnU3VFL3NUdEgxVldCKzhHSStXTURvamRQdlM1d3NSUDhCOW12alJGYW1INkpGcktvOXdQRzhpUUFSV25EZXlVakJuM05lNS8wamdjRndZeFpzY1ZENFNZRUJYakZlK1JmWXlIUEhNaVhxMkR2ZWNUa1M3aUtsSmcwSUJSZXdPdjlYQklIYS96MlBBZjJKdDNCdXplK08vaFJ0dGJXaXB3MG12Q1QvSWxCWjFQbTYrNlI3ZzM0R21FaDZ3aHcvOXdGQ3RYandVeFVPOWVFakZ3NHJpR3ZhZC9vUUI3dnhnVG9IcWZsRHNidXhxUHp4dWxadEVCRGNseXBxQVJPVlNwUkl5OXlQOGxJcGNMZTNPSy8xUTlTM1pJMmFyWTZCVW9nUFhnU3AyRFhtYWhzdk1sZUNidVhJTDVrcFFiTlp0bXl0R01GcUFqSjBET3ZRUytlSElIM3ZpaENLZUFNanMzYzQzeTBldHVkcnkyUVFOczBMTi9XYlk2TE15bmRQeVAzeVk4WE9uL0pRV3V2cTQvcFVmaHRrUmZ0V0VYSCtoZDRGU2dyU3JDRldxVGdVYW5NWGxpU1pVUUhLbXIxSTZlQTQ4ZUNoMG5lVkZ1RjZrRkt4UWRDb05IcTRncWRnK1ZNRlY2RnZZNmN1Uks5cHdKbU9LNjFCQlF4dHVtVUhXMEs2N1JSc08rRW8xczhvR1hHOW9kVE5iclhYVVBmNW1CSDR6QXI4WmdkOGs5ZDFJNnVhbXFYSE9oN3gwS3FyUVFiL1IwbmwraGxqb2FxakY4ZjR4RVorN1llTlJTUkFwZXAxY3hXNnpuU0Z1SlZCczNwYUJVRmtJTnUxQU9ldWhpdG1FMmpsSGwwUnNsaVJSYWkwSmM2TTdFNWJOWWRPREpRQ3kyYXVja1FoNXhtZXBvMm11MG1lWUhwZkxuTkdLZnlrU3dVQU5aMkNkdGFxd3FqcTZyWnowcmpyQnJYNDJqVnlIT0tNL0JNMXhTN2I5VVVhRmU5ejdZa215UGl3aDBqSjZiSTVicGZyeGM4ak9Ha1FjSWhOYk9Sbmt5MUNGbkkzc050TlRRbHVKMFpTZkhnb21nUU5XaFhOQ0V2bWpZdGNJbStaZGxkMlVjNE5TTFJSUWthaXczRXhGUTYxb2FDK3ZsaHQ2Zm9xblpMUnFnZGdLcE9XQUNJUnVSS3FCQWdkS1JlMDh6c1hRcWpKTUZSa3I0aXZXUVMvVm5vM0hkL2tZMXdJMXRwcFVUVXZ0ZXJWMU5SM0kyRVpxUUVoNFNvNU1iVGh1WnNLVzBOTzVEU2R4UzFWdWhDYW41ZnI0OGVwcU5hVXVrOVh2MnFVbUQrOUxaWTNDUGlXbTZzc3lZQWxNRkExaVV4a1FyTFVLdHFWOTBzMXdMbTVycnNTOEVmdzYvTXRCQ1g5ZjlWalg3KzB5TTJaVHd1OHRhQjVXYXp0Nlp4VDhjRVVBOTNJQXV1dUtiNnlpZlQrVU1lTTJHY1l6ODEzOXJ2bzFtL1Q5c29iY0JoMUxIYmdLTll0czhxWFFkT1ZHZmNJSVV3THJxZXlWSzFZbStWWVJZbzg2TWtPRHg5cnJtdVptMWJ6VTljQ0pINE9XZ0VNUUREd2J3RmhpbmpBSUlrak5SYlErQTVqODdGd0hDTnJDMW1SY0VkUW5lb3dPeC85ckJTdHpEWHE3YlliL2QvU0lzV2o2T3RMdHFjbHJLckVqMWpMRUFjbThqSHVOTXFQcU12aGZGbHJWNHZjdXZORWk5UlJiUDZ2clBsTU1lZUZkelJwOG56bW1sNjU0NlpaTjlwSTlrZGRVaUFsWWlqQ1Q5VWR2OXdMKzdVeVduM1BqOUxDV2I0Y1dHZDNsR2VkODQ3UnB2M1MzV1pLV2txdTlGWHhjelk3Yi9UYkQvLzNHN0VpNVYyVEgyaklWN0NneCsrL0Jqc0FROEsvLytkZ1JvMjNlR1Q4Mms2dDc4RzhaRzJPZVRISnROK2RpbnIyTi9zaFZaR3BWa2E5VnBHWWhOZkZHbFdmUC84ZkxwOC90cDI5ZXZhVUxKeW9DYmpiazkyV2lGM3R2dmtkaFZUWG1xVHF3VTJUNHFueEZmbThtZXJ2MWp6bERyd3Uycm9nZEdzMTliOHpEd0Q3RklNNjRZZndjQTBid0F3bWdrdUVaQXZicVpiL1g3YWhNSkNBUWxUSStNdW9OaXFWS1hocm9iR0hJUURtblV6QnR5cm5kUExkcnpwM3JjamxMN2UrWHpCeXpkMHh4SDJXTmNzb3NvN1ozZnordloyaXA1eTZsc0JNSUhrMjFUUnFtcXR3bVZiblZWYm5tcWdwQTVNQWN0WlZHS3I5ZEpZNjFpQWtyL2xDcXZwMmpTcXpKR1JCRTh5cVRNd21jNW1LdHJzalhPalYvRnJIR3AzQ00rLzJaeEpwcEN2L2k1VnF1Z0g2VGEzVlZmVDF5RFZlTFBJK2ZrV09CRXk2Y1dadjkwT2wxZHVBL2UwbW50MmJPWmJTZ00yZTRyRHB5WnFQRnpPR2h6aW5xT0s3dlJXN3ErSGcrNjh4M0tOUXBuaFY4OVV3ZW8xUGpmRXNBRVoybE8wM1RlYksvdFhYaXA2Y0x0ek9LZ3ExZjN6d050bURBMnJ5d3JSUzI5Y0lVdnB5T2lKR1RBemVnSVovalhUdFJBS2p6TmNyQW1jOXhWUmVYY3RjcFpxOFNpZ296cExpL2dMc2RFbHB5ZmZrZ2dGWi91T3pna2JZb25GMnUwMFlDQ3VKTEIvR2dWT0pSOEY0bnZNUXFjWGszak00N3BtaGwyRnY2dEVITElsNWNveStMSElOcTVWbXllek5ScmpxamdTOHh0aTYvQVFXREpaQlRGSmYvQmNFZFN5N2F0Yk1sQXZNeWZDRGpBOTlqZUVWV09RT3V5TzdoK28rSUlvem5FeDhTd0pLbjdDTVlHZE1WdmQycnQ4MXQzTGJ3SnRzVzNrWGJSaXYxMjg0UzFKZFNRdW0zTUd0Ym5TK2pncWtWMWVsTFkycjBGQzd2K08zKzE4alVuOTYyTDR5cFE0azZac0ZBL0MxcUphNDJseHJFOCtEYXRZa0lGUnlndER1b1lIaEtOTzMycGl2MzhrVndKVEZicmEwL2VvcEE1LzdjSTNLT3ZYbDZ5dU5vNGp2VHNWUVJRMERKd0VOdFR0ZnhZZ1MraTVhNmFlWXN3dEdwMko1bTIxYU9lWXRmYnpIMTR0QVRPMjZWM2JaQ3ZWZjMzK29wMjMzSWxKVFRYSkdHdDhac1NoTkMyVEdtN0JZampzeC9paGFJVFF3OG5jT1ViOUpnbm1YUFUwZTRvZHVMMXlYZjZLc1MyQUg1Qm5OeG5qNWI2UzZ0b0JmMzdXdDd1RHRCY1cyNnVLRmZ6eDR1eVQ3VnMwK3pFT1UxTy9VSGRNMWhtMjN3dmVtME8vOFZDL0NtRm1BM3ZEUm81dUZWSzJBS1VJNXpQeW51WTE5U1IyaXM0L1dOMWpFMTF2SHphblZVOUxaaHY0YTU0eXAyYUppN0xjODgxVEpQalhpQXNVckxpN1VIR3c3VXhUUmpaMi9xM0dJNjFZQy8xVUpPcStwd1J2bEFRMjN0NFhWcWR6K3Bka20xSmpXTldxeHBSY3VvZkU5bkcxNGZKc25SSlpva2JzcFVCMTRES3Q3VCthd0kvWFUxOU5kTG9VODE2Tk15OUorcm9mKzhiQWdscGhNc0NxVnFSMGxpT3EydmJWMnFMYXhMUm51cUZaNHVLUnhvd3puUmQwMGxOTzdXOU1Md1AzYnNRc3ZGekFGeWl2MEovdTh6VUJhV2xRdjFjbi84a1QvMUJaUXNZUWNTK3BDd3N3d3NZYU50ckZJeGJSdXdwMTFVUzRDR05VQkRBOUNRZ0VwL1ZMZ0lYSDRyVWNac1NkM1ExL01ueXpxUW5FQUV1YWJsSWQreWx2RFc2b09rVE1KTkV3VU9LNnBGZ2VPRWZucko5M3B2TEswZ01kV1E1RlVrQm9qMTgxZlllUCtmdU1LMTZOWWo4MHNwMjFhTHFnL1RrcmM1ODJscmJnN1ZpVmJwMGphVWNJMGxSalVsUnFVU3dycVVEVlNOemFGR0J2WEFKSGtGVno5Qk9kVk9VQlkwYjQxV1dtVnV3OHJDbFNvektoZmEza2M1YStvbkFrMnpxMXFzaXZPQncvSWVLTHRrYTltNDl2Q0d2ak1Xcy9oalhSWFhjNW51czVMU2g2NFp5dUplVVNCNVorcVZqbjFRWUtnNFNVc1k1ak1iWW5oWnJCb3loR3FHRDltTW9Sa3EvdmhDelhWUkJJT21qQk9uNUM2bUVpRHcxYktiQlpNSG82R1dZWGpoV0lNUStLRUZUR09wa0I1aW9OTWl1QmJBbStxWUZ5V2dMK2M1MENQS0F1Mmd0cWljNnVqUzZaV0tSbGlyQVpYTmEwOXk1bXBDVXpWaFRUVkxwajNxZXdTYTNmVU9CY0NJVVJoVEVXeDhNSTVzU0RveUR6VnhWS0NpVEdrR095NGxoY2ZxYWtwL1BDaVZLVFVJMjVOdEFPUStGKzNZa0liQjhkSDc0NDdZWUppdk5naGZVSExxeENDcmJMcGtWVFZBamdvbWpLNncwdW1BZ3lVdzNDTk5jMndJZzY3MlZRL05qaHk4dC9Rb0Y0dkhtaXppMSthaDhKVTNnZ0ZsZU53RDdUNVBna3RUWDVLN2l6Q2dBMHF3QVhGQThSWnF5b3lMWmNrUkhsbkNZSGo4d0RESm5rMWRxNmFUV0dwY0NVUFZMdmt3VkdoSnlNRVY3TFNRWjFEQXFXdFlpRmRobXJKaHpxMCtnSTBmcDQxYmhFRG1HSkFIRnNwWExpdnJMRTZOdHJ1c1RwZkhBR3liV2xoUnB4cEhuYTVTVHhmem1XZFJtL2s2b3l1V0d4UHhtRzIzTGJNRlB6Ulo0b3UydHM0cFFCZVRYRU91eEpBdGFaVUdYdDRsK3FsTmRYeTFaYjExbmFMUXBVajRTc2h1UnFVNjBwY2dhMk1OT1JrSUpnYkFwbWlvVG1aRjRKRmNvdWVtOHE3WVVRRnB2U2pTdUo4VTUzdHh6ZTNNU2RLaFlUem5DaTc5YkZhektzT255dWk2cnV3OVQ4VzJPL2dWVmgvY2hHdzRpK0VmZzNrUlVMaVU0a1I2VUFrcjVMQkNzNmxpZ0ZVNHNRMHpYQW0xOHVUK2tQQ3RMV21hbXFPUWx5VDdmRzFOZFQwNzVQRytyODB5bkNTNmJXU2NKalE4OG8wSHVnNnVXa05aSjUyblV4dnJyanh5bU50dEtYa0ZSWDZUdDhLTWhMcjdvWDYzUHFoMWtNR0VTV0ZBSEhFRENiaUwvNWdlRTYzSlh1TDZ2TFp1eHRkZVZEeksrL2g1M2VwbWhjcXVkYmxLV2VxYmh3S2J3QXhEQmFCUlVwWXpVRkV2aDRmeGhVTHVUL1BxakV4aGhsVi9RRktJQ21qWk1YNmpRRWlueHgwNkxjSHBjOXhpaDBiQVp1QWNkYlVLYlBDUmFFZnh5QzErcmdwcHhjT1Rtb1J6Y3dubmZwTnd0Ukx1Q3hWeDdoRnZoK3F3K2twRm5OdEl4SVVyaXJpd2tZaHpGUkhuVm9xNGNCVVJSNlp2cVcra3pBbnZWc1NabWVLNklzNnRFSEhoRnliaTlPc1lxRCtMUnRnTldzWHlvNnFyWmVQWWlEUU9kQjcvVDhHM3VOUXZMbVNob1B3aVVGMXBkMnN5T2dVejEzWGkyUGRpcTR1K2o5cnNkdUtsODlpUHJON1NyQ1hJRW5zS2lWZVlDTGFiRWJTdCtoZW5WZE5DVzRxV0lyWDFUWkMxSFpIemEvazBqSG5XTnVjcnM3NldyUmtub3MxaFpzVEdkS3R6djliVFVhd1oxRWZJK1BUNXRnanZrK2RjL0Z4LzNqV1VYamIzbWx0alZKL0R1cmxsSk9ZV1FmaktFQjROTmVOU2FjMGJsek5uY1UvMWthai9tRDA4ckJnYWxVWE04NFRSamVZSHgxKzBvRnVldFY3UVVUT01LeTQ4NkFsZjVDd3NTT1lCZjNSOXl4RElncTlxZ09LUmcyT0hHdXhIckNkOXpVdklXSXdZKzZ0M3NwZzVNUXNjSCtOWVJYUDFaUjdQRmVvVHF4SUg4RERneXd2NDg2RyszbTZJN0txT2tUcWZHbzZYM0tscStUcVY4YVA0MWl3LzgyYlZPZWkwVHEwT3NvdWZJSEJNZGRZVlU2YTRJcEd5RitlbjJGdFdSak96ak8rTkIwcDMxa1RtdWlHQ3lzLzFLQ28vbGJTUkg2QnBIaFV2Z3RrSXQraGJyY0Y3c2VHRS9oWTRlMmhFdEZSVktVZUpGZXRFRG4yYjd1Y3FENWhlZ2FYZmloempmTWp3TUhHOFJFK0xPRmZKRnZEdVUwZkVhbjFYR3RZMGVQVzlNaXNOYTNLWHAvNFNQM21oQllVYTcyU1VjbVFWV2hXUVdFV1FMSS96TE41SlBKY0xpRTlpZyt1TjMwd21QVlNqL042Y2dMcGgxcENmenlsdXlrMjhBWWJLZUdNVjBWV3dxaHAzVEM3a3NqVU9kc2hKVXRJa05PUW16UHJPWkozY1VrOWZhVSsxSFhFei9WM2J3THRqQkwzZE5TeVJoZFJwTm4vMVY1dS8rbC9CL0lXdGlMMkpsNDVPZVFoUlFPN0VxOEN0SjREMEpGQ1prUFNLK0pVWnN6QnJtaWJOenoySGZzRlRhZzNweS9CNENia0ViSHp0eXRldXVYU1NGVS9NNWJNTXJwNWg1V205WVhZVUxWVmFscEVkYnBha2pYcStsbithV0RoM3FNQm9jcXhHQXR6NDhEZHJURit3K3ZRUHAwMDFZM3o1cVJJbTZudVROTkhLRzhXSkJrR1RKemVxMXZYSGczNmJHWG5Hcmxobk1BcWI1YkluNzRQYjVybzcxK3hxcTJncW0zUDYzQ0NQNnFTbzQ5WTZUcTNuMGlVYzJsekR6TzZZVmplRkZ4VE5vYmlYcXBBOE9NU2djUnN5TXI1OHkzVk5lVXJwS3RzRis5Zll4LzVlcE95cFRIcW4zTmZyakVaZWt2QlRTRStadU1jNHdSTUFVWXlYcXpyWjVjYUJrd2FMR1NtMzN4VjNrZnVCTFJiTkRUdmdEb3FaUXlWemNWTWJMc2JyNnZkM1lpYzErYXJYeWplNTRPSFdJWWJta0RleUVHVS94enBQZG92OHpTMWhsTTNOTDJTZlJ0YlcxZGFLcW9vdDNhQlJ4cnZCR282eDFOSU5BNlppVkpmazhvZFl0eEc2ejl1Ulp6T0E0MUhyK1huVUNjWkZ3bTIzZUxiYVduV0ZxYVVDeDl0U3hKWDFFUVpyQ1VlWCsvdGhGTm9vODZQWW1RMnRNd3c1QTVLZWRtTHhqbTN6Mitqb2NoZTZXQzRiUUdhQmhSSmVPM0loVmovV1B0K2d1KzFSZDlNajcwWkczM1dIMzdYSDN6VUg0SFZIWU5NaDJIZ01ydEdDNk9zbzlmYVpNenQzTG1sZTQ0ZVU2SzF0bi9wekczU2lBQ1prR2tqV2ZTWFd3WkV5YUk3bDZtTHpvZHBHemVuSnV6ZXZYajYxZjMzK3k1Ti9mdjZzTFFLeHZYcis2czJ2LzJMLzl2VE4yK2YyazUrZXY4WW8rV3ZaR0N4b1g0VlYxQW1NYzg5U1FUOS84dHR6UEhZY3hWUFM0ellLYWhLcUJJNmZ3bGdGdXVOMVBld3M4QUtoRUZLb0tZem9OUE5BYWJBUzRBWS9IUUZSendMNHRycXRWajA2V1FGcmE1T0tiRzZCRHZNSGcwZVl6RzJSY1BFREd3d3dhQWk5bUoxTVpjNkxDYjdZYTdWNGorSGhNdjhrQkZFcHJ3VVNaNll4cEJTb05ha1hkdGFwNndvNjZWb21xOVE3UGRmVzVJSTA3K1VuNDNIZXhTSnd4VkYrem93dWtQSEh6L3lnY3lsMVV6cWhCcDFwc28vcUdHaEY2TzFyTVl1UTI1bThscTE5Q3pKWmREZGRDSlFUY1J5Rm5uNURqVERLTVo2SlNXRVg3a3ZjOXZiSk5Pd2FhQ2lCYTdSRTQraTZsYXhFeHhJMndFQVhwZlZLOWVNQ1RvYXRnbGRabDRnZjVhWFd0V2FxN0xkcDlTNm5WWVJ4elptMXJ1Zy8vdVJxNEJXamhpdGxNSTJkRmFkUXRlekRPZ2xSbnExWGtBSktZMXBhMDI1U3Y4NG1keUVsK0RkSWl6eXFGdzhJbGQ5VXhRY1YzM3hKbTlUQm9wOHYwbEprS0hLbUxBdjB4RWwvVVV5NHBMQk5YQzVSUjEvenJsVENRYmtpbFVPTTZQVGVOVUh5MWdKTXV1eTFsWitrSnRDR1krN3FXZVR5dlVzWVhHOTlUVG12S21waXlEdTdlS0p6ZCtlNFVJbWJSMkM1b0F3SCt1czh4c3FsZUwyK2huSlVRVVFjdE44c29YU2c1WXNRRXQxb0cvSTdRdFdYL0xLK0xWNi9rbjdKK0NWK3ZHSVZNeG02d2c4N2RJdG1PWXhBSlVkSGJYWWhEc3RlRXVPVzk1WGJOdEt1MStmOWRCOEpTT1Rad3pLNFI3MFFuMVhKUDZUWWNMZ0lzWGJGdTZNNFNYNFMvZmdZZEVNVC9lNVYwRzlMMHE5d0Y5OGVYc1ZYbWt4NUNzTEpkdlc5WjNSSiszc1k2aVVrMmNPSDc0VWlxa2hzUklpOG4rOWJXYmVxN3krVjl4THROWUxOTHpORmlyc1lkc0FsdnNQVHhtdEV6elc4dGJJa3NrYk82TlN6UWU4ZldobWdOdjZLNkJzQklad1FIbmpIa0ZpcWlXTFhmN3piS2txcmlVTjN5RkFFalpMTXNwMTJLY2sxQ3pLN0hQcU9wN3NyeExJTCtNV0hDWmR1T2llb0FTTUt6S0NHcENDZkpPaUNnd3dZNzhleWZGNGpzZ3ZVa2I1aC9qdWc3eW1uTTMxZlNpcm5TbnNkU0ZjQnlYK0hLa2oyS0VOUGg0NTlTTVFEWHJHZGQ5QzRjREdiemRQNElFOTJ0ZVIxcEFJTThqT0t6dEU5eUovRHd2T1VQNitYb2dPcTRIeERqRUN0dWl6cWUyRkt1a1pZUjhMc0pzSTNvcGZmZ1c2cGloWkpka29tek5hSGZCREVpOUQrTXVJNFVsc0N6MGtXc2FjSFpCVDdxUDB4OVc0V1FVT0x2Tk9STytnTEpZb3hONVFTMlhYb3RQMm5TR2JRZ0N6QlVkOGR3cFR5eHgrU2dlQnhtajJHK0JpMldxckhrYk50N21kRTNlM3BYNTQvL2RrQ0pmQkY3SGt5UjZaY21YTzRQQWRYdHpMclFjdjdDaTh3SHRFOEJnQzVEalBOcjhlQ1htdXBCOU1xeTdydnVLNWlLTXNSeUFhWDlDUm5veXRVRTVBTHA5cWFEaEZYR1dlcWJXcEVSNDNZeVg3bzdlMENTdUpQaHRsMmYzbXpDdU4zQ1N3MGdqRHV0M2VHV2ZIdTVaa1RuM2pNQzZQRnlhbmFJS2ppK1prWHBqWnRPWWhob2swZHQ0MkxnL09Eck1XQ2p5c2JTeENlQW9JcHVWMEFUR1Y3dEt4UVZiT01pRTU5emwrOVVSU1BMZEdHcnN4OEpXYVA0b0RJT053OGJRNEdnOXk1UC9hRGJVc2RwN3QwRmF3NkRpR2xuU2RNS2FIVkxvQ2d1WnFTaG5pdHNPQnh5YTlPRzBOOUJETGtSS0UrT1hLMGh2L2twYjhBMHMvakdOZVNaWlpDaDYwdHBSbDFlTGRWdElpQWNLRVNpM1krUXpaUzR5OWh5TDdlUVNHYnZQMDR3MStsaWc2czFWYTJtN1NLVjBhdkthc2RYUGpvNHdJMEp5OTlna3FyVlJvYjNiWVVzSnRTYm1aREJMQ2wwYlltQmdDZkxnWVpheFdudmp3dG4rWHdVNWo0OEZNSVpVeGlSSnNMbFd2bGRYYk1YOGpveGNRbXlJWWFDK2tFbEswVWYwUGxuZzNLblRkRmVjUHYxMEFPckVJR3V0YUJyaFVNV3BQTEZibGNKWmVjUVlsc3ltL2xDcFVnL3hubVA2Y2xHbWp4ajlWMGluNjhwcWJJeU1lWUp1ZkIrcUd5bW16THBFczBWNFNMT2U5dndKS25jUlJpbUZZcHQ3THNWYktJS1I4ZTY0aXN4cTd1Wml0WDluem16QUhZT3o4QUtZbFhGK2RDdkhpRW02c1M0MmlCd1NoVEtJRFRYNEpCa2g1MHU5MU90eVozNEFWUlRLWVFHcU5oUzB5dGZYMTZYUXJBVG5rUUlRRnVpMk94eGF3ZUlRRFE4SWY0VTNSWmtrMDQ4dUs0NUhnY0RQakxpWC9oalN2ZjB0azRiK1FuZmhSYS9mS3QzSkJ2STJkdWxNYjdiTU9VQzJpR2VmR3Y4YjFGcmRya1pNWC9MWjUvVVpGZnBRMWwvT25QV3hWWnFTRmVPRmF1WTFkVXFSdmtvdkpZNXdIODluUHRZSFgyYXNCZkJvVVBHYzZZeW4wTVdTcXE1M1VvUlJocnRrUlUvdElLV2dJWVoydlFubDR0WnFrL24rR2Foak1lMHdrakQ0eDNobEg4UzFEd1h2Z0NvRDcrVU9lK2JMN29UTGwrSms2VExpWExxcU9tRXB5NExFYkNRNExVQS91TUl6RUluSXJodDJGdDBLamhZNFYraDhydktmMXUxWlpWN1N5bHFHcE1tWk9iQU0vN1dZV2RwNGJHMUZySXhUMW9WTjZVc1Roc3EzTktMYTQ2UjY0OFVLWXZUeGhxN0V4NTM3MzQ1YzNiM3o2djVCVHo3L1VrcEpyN1R1WTdESmQ3UnoxYjN3Tmx5ajd6Z0VlalM2dUJPU216TGpVbmM1aDU3NUIvVGpxUHVFNk1icVY1R29OSjdOand0MTFJZEUySlRtTE1ha3dkNVluWDh5UEI3UEdTN3d2bDFrdUNkOTQ1U2JLQUh1bjE5eDY1UGlBMDgwOUN2QnFSN3pFUXUxeXBRWFRCRWQrWmNhQytkT3RlOGdaV0ZxMTlPeXE5Vkp4YnVFeXl5VEIyWWNWQ0ZEcnJoaHh6elN2R0M3ckxDcm9WQlNrc2FXWEo3VDdXbVZSVnVyeXNxNWJscFVhbVF1UldISElTU2NKc2JTcGhvN2J6YlFQemJLTnIvcnFmdnk3R3pGYXRmMk1CV3ArbTYvblVyRXAydklldG0rZFBUdjFKV3NxYkVTYy9qSW42UmNuVGUwamVndXFTV01NSGRCZVR1TUNxYXJPVCsxbUVqc2dhUXZ3RjZpcSsvSmpmdUhVRm1pc2w1VGZMWGFuN04rVkgzL3o4Z2JaN1A5NXRtVnFNbjl6ZFBQalE1aFhzN3FDL0J2OWZ0UW10TmdPVEVlOVZKUDhPbmp4d01RU3E0dXFSRnFnSm9TVzF3R0MvUmpXcjFFSlgwMXlyTVUxckVUWGNOc21vbXR0dlRVYXoyKzJhakdnM1ZNMlZnWkMxUkx4ZXZZMHFnUkYzc3pTc2FvaXM2RlBydUZJVGlvSGF4RisydWFYNG5FZ1lkdnM3dUM1RE4yUDBIbS92NGdQZFhQTkRiMWNMcEszZ1R5aWJPS0FvOEdnakl5MnQwWGV6VmhHdTJTbHNBNXJiM1IvNkdacUljd1dhajN2OUNvNHBTdUVNenh2QzhQRVBLOUpSRjZWbE12WnZnWXlJV0lhbG1HQ1dJcG5McnNxK3ZoWDB1anNObWZIdUVOelo3ZTQxNmVVbGJIaG5KTnp1N254cEpBVFNmUEk0MFlieGJZeVRuZTZQK1dnR2pMK0VidDd0N1h5eTJMN1ZidFlRdkNHQmZZc1lOaFRZbncvQmxZWDFIWGZ4bHlpdE5RUy9TR2xkUThJdlExcnJnNlNadFA1OEZHd29xZStBZ0ZvUWtva3ptN25PYUVyck42bVhwTGpnOG1sNGRlVThSOXZUVmtBdk94U3UxSXNUYWlNdHREa3BvSjYzLy9Mbmw2K2Y5WHIycXpmUGZ2L2xPUzZZUVE3ZUpVRm43RTJzRFVqYWFMUDdnRXFiYmZ6bDVWdmhTTndnQVA4ZmZtNHhuQT09JwoKaGlwX21vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0iZnA4IiwKICAgIGNwcF9zb3VyY2VzPSIiLAogICAgY3VkYV9zb3VyY2VzPXpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGtlcm5lbF9jcHApKS5kZWNvZGUoKSwKICAgIHdpdGhfY3VkYT1UcnVlLAogICAgdmVyYm9zZT1GYWxzZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPShbIi1zYXZlLXRlbXBzIl0gaWYgVEVTVElORyBpcyBub3QgTm9uZSBlbHNlIFtdKSArIFsiLXN0ZD1jKysyMCIsICItV2Vycm9yIl0sCiAgICBidWlsZF9kaXJlY3Rvcnk9Ii93b3Jrc3BhY2UvYnVpbGQvIiBpZiBURVNUSU5HID09ICJ2c2NvZGUiIGVsc2UgIi9ncHVtb2RlL2FtZC9mcDgvYnVpbGQvIiBpZiBURVNUSU5HIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICoqKHsnbm9faW1wbGljaXRfaGVhZGVycyc6IFRydWV9IGlmIFRFU1RJTkcgIT0gInZzY29kZSIgZWxzZSB7fSksCikKCmZpcnN0ID0gVHJ1ZQoKY2FjaGVfbSA9IDAKY2FjaGVfbiA9IDAKY2FjaGVfayA9IDAKY2FjaGVfaSA9IDAKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgIiIiCiAgICBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgYmxvY2stc2NhbGUgZnA4IGdlbW0KICAgIEFyZ3M6CiAgICAgICAgZGF0YTogVHVwbGUgdGhhdCBleHBhbmRzIHRvOgogICAgICAgICAgICBhOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbSwga10sCiAgICAgICAgICAgIGI6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFtuLCBrXSwKICAgICAgICAgICAgYV9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFttLCBrIC8vIDEyOF0sCiAgICAgICAgICAgIGJfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbiAvLyAxMjgsIGsgLy8gMTI4XSwKICAgICAgICAgICAgYzogdG9yY2guVGVuc29yW2JmbG9hdDE2XSBvZiBzaGFwZSBbbSwgbl0KICAgIFJldHVybnM6CiAgICAgICAgVGVuc29yIGNvbnRhaW5pbmcgb3V0cHV0IGluIGJmMTYKICAgICIiIgoKICAgIGdsb2JhbCBmaXJzdAogICAgaWYgZmlyc3Q6CiAgICAgICAgcHJpbnQoImV4ZWN1dGluZyBvbiIsIHRvcmNoLmN1ZGEuZ2V0X2RldmljZV9uYW1lKCksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICBmaXJzdCA9IEZhbHNlCgogICAgYSwgYiwgYV9zY2FsZSwgYl9zY2FsZSwgYyA9IGRhdGEKCiAgICAjIGEgPSBhLmNvbnRpZ3VvdXMoKQogICAgIyBiID0gYi5jb250aWd1b3VzKCkKCiAgICBtLCBuID0gYy5zaGFwZQogICAgayA9IGEuc2hhcGVbMV0KCiAgICBnbG9iYWwgY2FjaGVfbQogICAgZ2xvYmFsIGNhY2hlX24KICAgIGdsb2JhbCBjYWNoZV9rCiAgICBnbG9iYWwgY2FjaGVfaQoKICAgIGlmIGNhY2hlX20gIT0gbSBvciBjYWNoZV9uICE9IG4gb3IgY2FjaGVfayAhPSBrOgogICAgICAgIGNhY2hlX20gPSBtCiAgICAgICAgY2FjaGVfbiA9IG4KICAgICAgICBjYWNoZV9rID0gawogICAgICAgIGNhY2hlX2kgPSAwCiAgICBlbHNlOgogICAgICAgIGNhY2hlX2kgKz0gMQoKICAgICMgRG9uJ3QgY2hlY2sgdGhlIHBlcmZvcm1hbmNlIG9uIHRoZSBmaXJzdCBpdGVyYXRpb24gdG8gYWxsb3cgZm9yIHNvbWUgd2FybXVwCiAgICBtZWFzdXJlID0gRmFsc2UKICAgIGlmIGNhY2hlX2kgPT0gMToKICAgICAgICBtZWFzdXJlID0gVHJ1ZQoKICAgIGhpcF9tb2R1bGUuZnA4KAogICAgICAgIGEuZGF0YV9wdHIoKSwKICAgICAgICBiLmRhdGFfcHRyKCksCiAgICAgICAgYV9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGJfc2NhbGUuZGF0YV9wdHIoKSwKICAgICAgICBjLmRhdGFfcHRyKCksCiAgICAgICAgbSwKICAgICAgICBuLAogICAgICAgIGssCiAgICAgICAgbWVhc3VyZQogICAgKQoKICAgIHJldHVybiBjCg==
No newline at end of file
+ IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KIyFQT1BDT1JOIGdwdSBNSTMwMApmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90CmltcG9ydCB0b3JjaApmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmltcG9ydCB0aW1lCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCB6bGliCmltcG9ydCBiYXNlNjQKCmlmICJQWVRPUkNIX1JPQ01fQVJDSCIgbm90IGluIG9zLmVudmlyb246CiAgICBvcy5lbnZpcm9uWyJQWVRPUkNIX1JPQ01fQVJDSCJdID0gImdmeDk0Mjp4bmFjay0iCgpURVNUSU5HID0gb3MuZW52aXJvbi5nZXQoIkdQVU1PREVfVEVTVElORyIsIE5vbmUpCgprZXJuZWxfY3BwID0gYidlSnp0ZlUxejI4aVM0Rm42RmRYcXNBMUtORVZTc2xvdDBYemhaOHY5UE4zK2lHNzN2cG5RVXlBQUVwUmdFZ0FIQVBWaHR5STI5anlIT2J6REhPYTR4ejN1Y1gvTi9KTE56S29DcW9BQ1FNcXliTDh4dzZhSVFsVldWbFpXZnRSSDF2ZCtPSm90eGg0Ym5QbnpiZmh2eDRzdzlRT3ZjelpjLzc3MGNqTHY3Wm5mdUpPcU41UDV2djVpZnVYNjRialgyNVkvOU5kK2xLU3g1d1I2V3VDRS9seE5jdjEwdUw3Ky9kaWIrS0hIL3ZMaWpmMzBMMGRQZjdaR1VUajJVejhLVyt5alAzOWJ4Kzl4OVBHUTZ1Qi8rRlRnQlh6OFFFY2N4WEVVMnluejhDOTd6REpDSGQ0Q2ZIOWljYmpmUGNhNmZsdU1SbDZTZkd3WDVQQS9EWTF5K1BoSjB2SEJ3UWlhd1FZRHRrSGtZaHY0R3hyMGs1ZFN3aXNuOEhoTFcvam1nZlVBLy9DbTQzT0xuamNPb0dBSmZ2N1JZZjZXeG41NHFrRGRZSDdJYTdidHlTSWMyVFpQZFZLWit2ekZMMGVRV2dQL3djRURudldYRjYrT09JQUhmd3Nmck5iWE9uenYwazhGbGpkbm1RcjQxN2NEMEFqLzA4RE80VitjK1RQUG1qaXp4R3V0cnk4UzZFd0dRZytHbUcwTEFXaDd1OEdPUFFrWDd3OUZCcFNYV1E1M01vdWN0TGQzbUpYZTZjTkxTbFhUTG5jeEZWL2F0cE1DMjdpTDFMTnR5L0l1VS92Y0c2VTR3Sy9tbnJYYmFyVmtRVitVODhOMHB3L2pmNFdpVkNmaHVVeWx2VDBxdWc3aWV6RksyV2poZXV3RFVRaXFaa0diaFcwMlBWeS9oaXdnZTVMVXU1ekg5T3JDaWVkMjRyLzNvS0s5M2NQQzI1RXpPdlBzR1VoNW1hZlgzeS9CQ0d4M0ZvMm1sTVVPRnJQVW44OHc3MDYvQ0M5Y091ZTBJaWZWcjJjOWphUEZYTWVQa3pEMlRuM0l4MGtFN3hhaUd5QkQ2Z1h6bVpPQ0xzTjNJVWdXOXJiTnN0Ky9EOWVCTzBBWnd1aTE3YkYzN284OCtqbUo0cEhuaDBRUlc4SERXYVFSZ3pjemUreWZXMitaMDJhL003Y2wraUQyMGtVY01zdGhXOHhsRDFtdnhiYVpDOTJSSXpJZ0NGQ00vcm8zcWgrcTlzZWU3VjA2bzlTU2RTZXBrL29qMjBrU0wwNEJnM3VBd2VQSHJOdG1HK1BJUzFnWXBhSWdvNExmYlFBZktVZzdaVlNSNkdBTHRJbjZ6bmlzRUM3eC9uVW9tVkQwMnBYdFh0bVEvYkFXQXZ6b2REcnNSVkpWZkVENUtTOHBDeWpnblVMZlFvMExMeHdSekRhVUJ5akRvV2c3WndQUit6V2xMSUROTnFFdzlBL1UwRUlZZkxCb0dML2crTDdpZnlUK1JiU2RxUWY0anIzTHJCTDd3ay9Qc0EzMm1UZWJlN0VKdTR5Q3htYS9FSTBXd0kxdGVBV005UUlaQzBvTWh3Y0hDSEdaUmd6RmFLbERYRU93dVlFRHFJUXFHR1Y0NUVoa2dKNXI1RnVHMzg4amY4d1dZUnpOWnJZekJ5Slp6OWxrQ1g2UVk4R2FkTEtCSHdHZURzaFBxeldBNnExV20wSE9WcG5SUy9SQ0lhTncvUE9WVVVla0pVWmFZNkFwZGNSVnFQcmgyb3pwUjJEVkc1ZnhHb0NVZURHMEp0VmsrYWVQcXJOZlhlZngvUk11SmVSWTFuUDhVNTdqblpvRFArWk85dHVRMHhLeURUL1g0bmNGS1VYcjhNL1BIOVhJblUvU3lEelh6M211YVRGWFBUbkFKTkFvb2xLbGhrSzZ6aVFGRGVNRDZWSlBqdEhNYzJMUWpkWjlKNDZkcTlieHE1TXlWVjVWVUlXS0hQc25NUHJlZnVoZWE0alZWRXltSG43Wmt6Z0tiRFNsTERMdDJLV3NlM3NiUGRnSENUcGw1MTZjZ0ZmRzBQSkg5NHlSaW5SbU16YUZRWm13YU1MQUlCcE5FMWtTYW1QUkdOcm1KSkRSZXVYQUFFMFdiaGpGQWRpa0xaYWVRVlVYSHNBSkg2QTVGWHZNY2FORjJwRUEzcDc1Q1R2MVF1d1lyTXBOb2huWWVMTXIrSG1WQUJCQWErd0IwSWk5V3lRcEF5VVRqaUNyTEorZWVXd3hSNlVDVG5uQ3dBbzQ5VkpLamYzVHM1U2RPN09GeDJiKzFNTkVXZW8xbHBoZnBXZlFSQlNjSUhER25YVlY3Wk5NQlpBMnRDd2RJQVdIVnRZWndxYWdWMmhVQVhsVDVUWFBvcGFYbHRmUUFyS0RldTd0WlpsYjlLdXhJOGtJeGkvWmtmc1cydm4xdlFnNXlSc0FxbEI1SUhVeWl5NFl2SE5DYUQzcFgrZ2hDUUY3Ry92cHpEa25jc0dQZUh5Qm5lYUhYTDBEV0NMeU9HSisyb0hlQTVNbm1xU1lSd0lKUENEcm1JMDlZQUNHc3BzbGMyL2tZMCthbWFUTndLb0hKc214MEhtRk05R1pCOCtncUVkZXprOWcrb0VQQU8rakJGRlVlY0lQNXd1T1lPd0JKWUdEb05USUNVRUdwSDZBdG5LcTRNNThHTnBlNElYWXNWRUd5TDNpVEplY0xTYVRHYWVXUjR6V1dmL2VuNHk5Q2ZUVDZlVHl4OTArZEpFbzlQTEZUcmNMbEFObURsVzYwVmdCbWljZGxjOW9NQUpYSEs1Lzc0RVRKNEU4aHpIbk9xTXAwU3diSzYrZnZUNWd6MkVrZ2xVNmNkQzBwK1lJaEEwUXc3RS9xUkJkendzQ0s1UHBCc21WZURPZ3MrVkcwWXltYnRwTWtlaitoTkhFVjB1UlZtYVpDNVR3TW9GN3piQzlqV1hJdGMwTGxUVFZlRDYzUjJrODQ1b3FqaTdzd0VtbUlDVzdseE9lNWpyaFZFdWtaZ0JqaFdNcWlSNG1WVkkzL09RQUJsYVlnSTh6bjF0WnltWEJ5N0Z0ZCtHRERSdmFUakErSFlYMllqNEdiS25RWlp2QnZ4eG5pVzg3eDdLdG9HYlF6RE1IZlZId2hNZExJcHpHVHBqTVlZRFl1NWU3OW1UZlB1L251Tk1vTVh0S1NrVnNvTGpKMjJ3WFhDZDh5OFJiSHlWQ0JKakZwNTUwbm5SWUdyRDdUSHRFYjdBbFBUSkVYb0xGRVlTdUlFZ0JObzh1a05jbnJHK3VRQVg0bU96VGpXZHYzaFJHTlhUUXZ5NzhHRVJRTWJzRXVyM05LWEtRQ3dEZ3hpN3JzVDdia1duMEVXa0VpZjJ6OW1xWFBXSjc3QWZ4YWt1cFM4dTJ6MzVrVDlpZm03STlaYy9ZRVF5MzZtekpoVE5uYzhlUFNUMWpCcWtHWlk1Q0F3U0M4bEhVSUI4Rlhvb3NEY0ZUODRnVU1Dd0RoSzFVZVJiRi92c0lLRHdEbGIwRndoK1lRTlcwNlVVRWRFL0FxY3VVYy8reW4zUGxPRWR5RjVEY2s0ODlRSEluUjNJZjBIekNqdVRqajREem53WE9OQW5BSndDSVNEaXhSV1R5eDFKc0tGbjRaQWwvajI0R1pLZFMyeHBUM0dPN3BaSXA0djI0UEx5UktMbnVCK1JzbTRURUpjZ3Y0cWEyQ2hxMEhXVDVMU05nYmxNSXdUTG91cjN1ZzE3dlFiZjdvTnNiY2hDdGRqN2JUU0N6eDFKNzdnRVZjVFJwMXNpZlFQSjE5eDUwK3crNnV3QlllM2VBNzNZZWRIK0E2aDUwSDBselJEVG1GWmdMMU4xVUViRllYK3YwTnFpNU1kb0RTcWNucUdBeWh1SFNIQWVnZHpueTVpazNDaFI0bC8xT3pnWElyRDB4eHJwUVY3LzQ2dUhEWWZGVm44YmlEcFhDTERzNXMxZTlVanQybCtZb1YrcFlaQWF0WDlrbTZ5dDl5MXRuNnR3dTlTejBiNjg3SkRCSzN4TFU2cTRkaUJacnZmcUl1clJYMWF0OTZ0ZzkyYXVhbUlOR2srVEVDZnIrYm92OWtULzI5clRIZlh6Q0IyMXFEQWxYdEZ0UnRleURacG5OemdOSnlOaTVBTnBPSmw1c2cyMHl0dDE5aTA4TUozRVNqOXJadkNRN2p5YVR4RXVWbEtTVU1vclFwQXRIVjl4d3RrRUZCTllHVnRmaDFYV2d1ZzZ2cm9QVmRmeDlsTzlGSk5GbXI4ZXl0M2UzYVBiMlRIZ1N0Rm84d2FXN1V6eDMraVk4OTNhYjhOemJ2VnM4OTNhTGVObzI5WHkva1VFaHl4MzNmWjh6cVlvdG1kNFZhQ1pnSFhzNGtPUjRPd2NiMDJtek8wS2FxamNNckNWUWhsR1ZEYi9QZ25SNW1DMkI5WTVpTkg4V3JNdURiZ21zWWNSbFEvT3pZRjBlZ3N0d0NBdytkYVIrSGk0UkE5SUxGd0ViemNEUHlNR0F2N1RHVndaeFpndzlGL2w4T290Y1owWXo1REtKYnlpQkpORHNhMkVVMnVqT1JUSGwydEdXSjlSNXhXdzVoV09WZVdoS21nMW1kYlFBbjAveG9ibFZnelRlWlBNMHpxY3lNMXFBM1gzcUdkS2g1TVEvRlY0MklMWEdGMFhBOFE5c2RRRXA5b0xvM0xOSDUzWTZlRHNVQmtVUklld2o4YXJHUmMxTFdtOEIzUWduNG1LMUk4SGRWQ2NWY083azRSQmhBektGS3ZWcDM5Z2pXSE93VS9qOG0wS1hvU1ZxVXV3dVRsdDlUbzlQMTVITHUwbW9SQk1ybzBhclVGaE9aTUsvQzV5c2V2b3ora3lKbU5uQ0ZKcEk5Vk53a0p6d1Qrd0Z0TTd6QW5LSk1JVTllL0wyaWYzODlhOHZuN3lsNVdDY1pDclc4RmVQQlRTbmlTNnhPL093TURET0ZiZW5rVG9NMlNqdWREcGFVVEFFdTkwKy9PLytuazl0eS9rVStwUE5NTWpKN0xiQzdDUGFyeU9lRGc0eXhoOHUwNy9FTXpSM1BjaUloNVBjRE5XZVZXYkRDd2VZU3d6Zzh0djBETWJTdVBTZUpuVEFicWVKa3dUWDZ1SUY5MFZhWWtRb3F3dGlaUnc5VW8yeERVZ2U2dU9LRnBvNVBKcUpRVXRCckxxWCtBTjQ1aFdPb2pXbFFXelRrUEVROG1qTnFzaVZEd0kxNzJPbDJYOHF2RU1QNERsOEh1QlhvU2w4YzhPSTJwNnpQU1FPclpIMEV2RGpUNVNtVzBxTEgrTWFmbkhRR1NiT0ZVSVByUWFmb0xSeW80TWkrUTh1VXlZRkNtT3dSSjN5YXlOM1pZUVphVWt0ZFNHSXoxWFdVS04veTlRQUsrbHJKc2Z1TFpNRHpLK3ZtUno3dDB3T3NPdStabkxnNU1MdGpwYitWeUE5OUJZWDVxOVY4anpFNld0TUlUMUFHNVN5aVd4dnZLRkNOaXJ4WnRXdHJscGowUVlsenRlQTBDNjIxdGVvc2FSRHF0VG1mVVlHKzJkUTdpWTF6WjJLLzFaNldtMnlRVkUzVFNud1BzNFp0YmlRdlkrR01YYXhZUWg5M2tIWElJUjB1cFJVZHVPOFJSTmgrRGFBcjU4eUplM2RPRGZTUkJudVRIMzlsQ2twOHNiNWx5Yks0TnpNUHdKbHlqcTllWktuampiS0JORFhRcDQ2QmE4VGl6UThKUzJ2NHRkVzBPOGZvOVV6WlhiM2FueU4wdzB3R295R2dOUmExc2tsSzZNM3RENGdldGZReVR5ZmhoVlBLcURDRXpNY2VIWDV4aEpRcDl2YjdJbllqRGFqRFRaTVRPZ0ZYaERGVnl6MHZIRzJLU0ZoazJnMml5NlNBeXoza1AyRXkzVzRub2s3N3E1d00xc1NaZnZmY09jUnJxSTd1RUgvSWZBc1RSL3dncmlKaWlxYk8rbFp2a2tCV0FIKzhpTUlEUHROMW93bHZUR2V5SW5Da2RkaFQ1Kzllckt6VGhzRzhzeWNzZndFNitQb3REaytrSWhiczFqZ3BMRi95Yk5sbTVXZzVSelEyQWRXcEUxa0ZqK0hrUG96enc0T21aamg4M0U2ZExZSVFvRHpEbzhPUWJzQm9abUg3WUFxTzd4cGYvV2dYOENFOGM0OUlCL3ZENXEyY21JWUhENDBtRy90QXdvaGJUTVFISW44QkFUYlpoWTJaSnZrak1jSFNvSkhsYkJCcndEZDJLTk5WcDFTeWNkNHJvTTlIcko5MDZ2K296MTh0OU0zdmV4MSsxUVNhczZhQStONUVYaThYN045WmtnT1o0YU51NEsvL21ub1VTdUo5SDZhOENYeXJFZ2dkcmp3S3Frb2tFQ1dTeGFqczQ0OHNjSm9FOXhzUmljVUVoOG4vZHdyYUkvb1M5elBkeFl0Wm1Oa0N6eUxpTTNuWVAvcjcvLzJYMy8vbi9MZi8xbmk5NzhYeXZ5N0JQUy91dlM5UzkvNzlOM3I0emY5cDJlYzhSWmNMMHY5cHdMcS95M3grMzlEbWI4cnovK1JWZCtqNzBmMC9TTlAyY0h2RzllVVFlN1Q5eDZIMmFYdjNkdUJ2RVBmUDNESVBmcCtwRUpXVy9wL2wvajlIL2t1c0hVdXhWS0ZXZHVGTkQ1WWpha2hUODFXR3NqekpKbTZub25wQ1VncVNKUmJkTmJ6eFFpQ1EvSW5ObTRhVXl0aTk2Ui9sTldSN2ZQQ0hGemNLSkltMy9DbGNUdDV3alJUaStBMnBOdVRXeUljQldwb0dxWE9qQkJFRmFNU0F4dzlEYm50TW5LbWpXVXF3SHNGOFVBTndmZk1DVUNqcExUOWluS3Fla0pyQzIwZlJTQkx0SVZBNFNZVVcwUDg4Wkx0YUlBcFpQRmpqV1RiU2dzRmF1SXdYbnhxbUN6UGVhY0VlTGpjOG85QUxRTlBFR21ETTFlOCthd090eEVtODMydEgzRXRNSGVDNmFTZjloanFqN3drMkFOMlVQVWlGRFpKY1UyTmRncGwzcnlTSDQrMDVXQ0J6Y0tpRDA5RnhRUkVkUVl3ajdObExiRmVsVG5iRmV0WjR2M20wTkpKMG1yemV0UVpnbnc2SWZXcDI2bWJYb3d2TzVkS3Jxd2orTnliOGlZL29WRHE2dXBER25tbFBsVDVMaHVEUkl3dHhPU3dJbjhjWGVDa0NXN0xNdzZEcW5KZ2xGQzVleXVXQTZwaEIwSlpyQmxvQitnaHJFM1Q4S3FCd2ZIR2I0MHQ2cXJsS0ZkVXBvRXhZbDh5ckNVYUEyQ0MrL2V6S2diSWQ0Ynl4SHdYVVR6bTNKZHZ3a1lrQmlXRWhwWmNYaGNrYStlVkY0N1NjQjQ2Zm5jaXBVYm1xbVhnaGhiV1hEaHlzNTREb0ZsaHlZdjBmaFd4a25zNGRoclpDUmp4dVR3cFNwSnhvamdyMlRBUUhzVGRpWm1tQVVvTHpaN2NGVUNxMFNFbkJBUTFLcHdvOEZNbVdJRk82cUQwcHZWaHpBc1BiUldVS3c5WDBDNWZyZ1A4OEJ4TTBYRm1aSGZZMndoc3kwdkt5RTlSSUZ3VkRCNXM4TUR6a0dYWXhaa0hFR09HSjNLU3haejIrUXAxQ0NZN2JVSGdOckUvUWQ5WGhmWGVpL0ZvQ2FNelFwOWUrbndoNGdlNFR4TS91aUcxaFROeXk4b2pITStiQ0JDQkZmVkdWZ3AweG4yZCs0OEZEaWVGVWJ6SlFlVWpBUVoweFhqbFcyU3Z3aEhQbktobjYzRFA2VVMwaTVpYUxDZ1VVTVR1OEZzZERHTDMrendHL0NmV3hyMHh1emYrVzdqUjFvYVdPcHowbXZDRFRHbFI1K1BtbSs0aC9oMW9KdUVoMjlyeUEwTzFldkZRRkEvMTRpRVZEeXVLYTloMytoTUd1UE9ET1FXcSswR3h1N0dyL2ZDa1ZXNFNFZHlVS0dzQ0VwVkxsVXJJM0EveFV5cHkzZGlkMS9xaDZrL2tqNWk5am9GU2lRNWNCNnI0TlRUVE5HeHlWNEp2N3NvbmNGZUNZck0rdGJ0aUJLTUZ5Tmc5cEVNdmtSK08vTEVuVGlqaUNZRE0zKzE4ODN6VW1xczluMDJ3TUN2TTNHK09qYTZWNlp5Vy8vNzlqSjg3NWFlMGNLcVAyMS81WVpoZE1hK2EwTlJmNkYyaWxDRHJLa0tUcWxPQkJtZHhlYUlKRFpDYzZhdU1EcDRERHg0S1c2ZTVDTGVMbElJVmhrNmx3OE1OSkJYYkxSVmNoYjJGbmQ2TVhOR0hNemxUM0lZS2x2VGhtaHl5SmYyNlQrakRBVitwYmxiWmdlc05yVzdtcTdXT3V5ZmZuTUJ2VHVBM0ovQ2JwTDRiU2IyOGEyclUrWkNYVGtVVk91ZzNXanJQenhBTFd3MnRPTjQvSnVMemFkaDRWQkpFaWwwblY3SGJiSGVJV3drVW43ZGxJRlFXZ2swN1VNNTZhR0l1USsyY28wc2lOa3VTS0xVYXd0em9rd2xOT214NjJBQWcwMTdsakVUSWM2NmxqcWU1U1o5aGVsSXVjMDRyL3FWSUJBTTFuSUYxM3FyQ3F1cm90bkxTdStvRXQvclpOSElkNG96ekllaU9XN0x0RHpNcTNPT3pMNVlrNjFZSmtaWnh4dWFrVmFvZlA0L1orUklSaDhqRlZrNEcrVEpVSVdjanU4MzBsTkJXWWpUbHA0ZUNTZUNBVitHY2trVCtvUGcxd3FkNVcrVTM1ZHlnVkFzRlZDUXFQRGRUMFZBckd0ck4xWEpIejAveGxJeFdMUkJiZ2RRTWlFRG9UcVFhS0hDZ1ZOVE80MXdNclNySFZKR3hJcjVpSGZSUzdkbDRmSnVQY1MxUVkydVpxbW1wWGErMnJxWkRHZHRJRFFnSlQ4bXhxUTBueTdtd0pmUjBia01sYnFuR2piRGt0RndmUGx4ZnIyYlVaYkw2YmJ2VTVPRjlhYXhSMktmRVZIMVpCalRBUk5FZ05wVUJ3VnFyWUZ2YUo3MGN6c1Z0elpXWUx3Vy9Edjl5VU1MZlZ6M1c5WHU3ekl5WlN2aTlCYzNEYW0xSDc0ekNQRndSd0wwY2dENTF4VGRXMGI0ZnlwaHhtd3pqbWMxZC9hN09heTdUOTAwTitSUjBMSFhnS3RRc3NzbVhRdE9WRy9VUkkwd0pyS2V5VjI1WW1lUmJSWWc5NnNnTURSNXJyMnZTemFwN3FkdUJFejhHS3dHSElEaDROb0N4aEo0d0NDSkl6VVcwcmdGTTgremNCZ2phd3RkazNCRFVGVDFHaCtQL3RZS1Z1UWE5dlRiRC83dDZ4RmgwZlIwNTdhbkpheXF4SzlZeXhBSEp2SXg3Z3pLajZqTDRYeFphMWVQM0xyM1JJdlVVWHorcjZ6NVRISGt4dTVvMStENXpUQzlkOGRJdHUrd2xmeUt2cVJBVHNCUmhKdXVQM3Q0bC9OdWROSjl6NC9Td21yZERpNHh1YzhZNTN6aHQyaS9kWFM1SlM4bk4zZ28rcm1iSG5YNmI0Zi8rMHV4SXVWZGt4OW95RmV3b01mdnZ3WTdBRVBDdi8vbllFYU50M2hrL0xpZFg5K0ZmRXh0am5reHk3U3pQeFR4N0crY2pWNUdwVlVXK1ZwR2FoZFRFRzFXZUhmMlBGMCtQN0tldlg3NmhDeWNxQW00dXllOU5vaGQ3Yjc1UFlWVTE1cWs2c0ZOaytLcDhSWDVmVHZSMjZ4OXpobDRYYkYwUk96U2ErOTZZaDRGOWlrR2NjY1A0QlFhTTRBY1N3Q1RETXdUczVZdCtyOXRSbVVoQUlDcGxmR1MwR3hSUGxXWnBvTE9GSXdQbG5FN0J0U25uZHZQY3JqbDNic3ZsTEhWd1VISnp6TE5qeXZSUjFpaW56REpxZXc4TzhucUdsbnJ1VWdvN2dlRHhWTnVrWWFyS1hhWXF0N29xMTF4VkFZZ2NtS08yMGtqbHQ2dkVzUll4WWNVZlN0VzNjMVNKTmFrQlFUU3ZvcHhKNEN3djF1cUtmSzJxK2JPSU5hN0NNZTczWnhKckpoWCt4Y3UxM0FEOUp0ZnFxdnA2NUJxdUZua2VQeVBIQWlkY09MTTIrNkhUNit6Q2YvYUNUbS9Obkt0b1FXZk9jRmwxNU14R2k1bkRRNTFUMUhGYzM0dmMxUEh4Zk5hNTcxQ29VendyK1BLWlBFYW54dm1XQUNJNlMzZVdwdlBrWUh2NzFFL1BGbTVuRkFYYnY3NStHbXpEZ0xWNVlWc3BiT3VGS1h3NUhSR2pTUTdjZ0laOGpuZnRSQUdnenRjb0EyYyt4MVZkWE1wZHA1aTlTaWdxekpEaS9nSSs3WkRRa3V1TEJ3RzArdjFWQjQrMFJlSHNhcDAyRWxBUVh6cUlCNlVTajRMM091RVZWb25MdTJGMDBURkZLOFBlMHRVR0xZdDRjWTI5TEhJTXFvMW55ZTdMaVhKMU1ocjRFbVByOGh0UU1GZ0NUWXJpOHI4Z3VHUEpSYnQydGtSZ1hvWVBaSHpnZXd5dnlDcG53QlhaZlZ6L0VWR0U4WHppRmdFc3paUjlBQ2RqdXVKczkrcHRjNWR1VzNpYmJRdnZvbTJqbGZwdHR3SDFSa29vL1JabWJhdWJ5NmhnYXNWMCt0S1lHbWNLbXp0K3AvODFNdlhIdCswTFkrcFFvbzVaTUJCL2kxcUpxODJsQnZFOHVIWnRJa0lGQnlqdERpb1luaEpOdTczcHlyMThFVnhKekZacjY0K2VJdEM1UC9lSW5HTnZucDd4T0pyNHpuUXNWY1FRVURMd1VKdlRkYndZZ2UraXBXNmFPWXR3ZENhMnA5bTJsV1BlNHRkYlRMMDQ5TVNPVzJXM3JURHYxZjIzZXNwT0h6SWw1VFJYcE9HdE1adlNoVkIyakNtN3hZZ2o4NStpQldJVEEwL25NT1diTkpobjJmUFVFVzdvOXVKMXlUZjZxZ1IyUUw3QlhKeW56MWE2U3l2b3hYMzcyaDd1VGxCY215NXU2TmV6aHczWnAzcjJhUmFpdkdhbi9vQ3VPV3l6RGI0M25YYm52MlFCM3RRQzdJYVhCczA4dkdvRlhBSEtjZUVueFgzc0RYV0V4anBlM1dvZFUyTWRQNjlXUjBWdkcvWnJtRHV1WW9lR3Vkdnl6Rk10ODlTSUJ6aXJ0THhZZTdEaFVGMU1NM2IycHM0dHBsTU4rRnN0NUxTcURtZVVEelRVMWg3ZXBIYjNvMnFYVkZ1bXBsR0xMVnRSRTVYdjZXekQ2OE1rT2JwRWs4Uk5tZXJBVzRLSzkzUStLMEovVlEzOVZTUDBxUVo5V29iK2N6WDBuNXVHVUdJNndhSlFxbmFVSktiVCt0cldwZHJDdW1TMHAxcmhhVVBoUUJ2T2liNXJLcUZ4dDZZWGh2K3hZeGRhTGpRSHlDbjJKL2gvd01CWWFDb1g2dVgrK0NOLzZnc29XY0l1SlBRaFliY0pMR0dqYmF4U01XMGJzS2RkVkExQXd4cWdvUUZvU0VEbGZGUzRDRngrSzFIR2JFbmQwTmZ6SjAwZFNKTkFCTG1tNVNIZnNwYncxdXFEcEV6Q1RSTUZIbGRVaXdMSENmMzBpdS8xM21pc0lESFZrT1JWSkFhSTlmb3JYSHIvbjdqQ3RUaXRSKzZYVXJhdEZsVWZwcVhaNW14T1c1dm1VQ2ZSS3FlMERTVmNZNGxSVFlsUnFZVHdMbVVEVldkenFKRkJQVEJKczRLcm42Q2NhaWNvQzVhM1JpdXRNbmZKeXNLVktqTWFGOXJlUjZrMTlST0JKdTJxRnF2aWZPQ3d2QWZLVTdLMWJGeDdlRVBmR1l0Wi9MRnVpdXU1VFBkWlNlbEQxd3hsY2E4b2tMd3o5VXJIUGlnd1ZKeWtKUXh6ellZWVhoV3JoZ3lobXVGOXBqRTBSOFVmWDZxNUxvdGcwSlZ4NHBTbWk2a0VDSHkxN0diQjVjRm9xR1VZWGpqV0lBUithQUhUV0Nxa0xReDBXZ1RYQW5oVEhmT2lCUFNsbmdNN29pelFEbXVMU2xWSGwwNnZWRFRDV2cyb2JONVl5Wm1yQ1UzVmhEWFZOS2c5Nm5zRW10MzFEZ1hBaVZFWVV4RnNmRENPYkVnNk5nODFjVlNnb2t4Smc1MlVrc0lUZFRXbFB4NlV5cFFhaE8zSk5nRHlPUmZ0MkpDR3djbnh1NU9PMkdDWXJ6YUl1YURreklsQlZ0bDB5YXJxZ0J3WFhCamRZS1hUQVljTk1OeGp6WEpjRWdaZDdhc2VtaDA1ZUcvcGNTNFdUelJaeEsvTlErRXJid1FEeXZDNEI5cDluZ1NYVkYrU1R4ZGhRQWVVWUFQaWdPSXQxSlFaRjh1U1l6eXloTUh3K0lGaGtqMmJ1bFZOSjdIVXVCS0dxbDJhdzFDaEpTRUhWL0RUUXA1QkFhZXVZU0ZlQlRWbGc4NnRQb0NOSDZlTlc0UkE1aGlRQnhiS1Z5NHI2eXlxUnR0dHF0UGxNUURicGhaVzFLbkdVYWVyMU5QRmZPWloxR2ErenVpSzVjWkVQR2JiYmN0c3dROU5sdmlpcmExekN0REZKTmVRS3pGa1MxcWxnWmQzaVg1cVV4MWZiVmx2WGFjb2RDa1N2aEt5bTFHcGp2UWx5TnBZUTA0R2dva0JzQ2thcXBOWkVYZ2tsK2g1V1hsWDdLaUFyRjRVYVh5ZUZQVzl1T1oyNWlUcDBEQ2Vjd09YZmk1WHN5ckRwOHJvdXFuc3ZVakZ0anY0RlZZZjNJUnNxTVh3ajhHOUNDaGNTbEdSSGxiQ0NqbXMwT3lxR0dBVlRteURoaXVoVmxidVc0UnZiVW1UYW81Q1hwTDg4N1UxZGVyWm9SbnYrNXFXNFNUUmZTT2ptdER3eURjZTZEYTQ2ZzFsblhTUlRtMnN1L0xJWWU2M3BUUXJLUEtiWml2TVNLaTdIK3AzNjROWkJ4bE1tQlFHeERGM2tJQzcrSS9wQ2RHYS9DVnV6MnZyWm56dFJjV2p2SStmMTYxdVZxanNXcGVibEtXKzJSTFlCR1lZS2dDTmtyS2NnWXA2T1R5TUx3eHlmNXBYWjJRS002ejZBNUpDVkVETFR2QWJCVUk2UGVuUWFRbE9uNU1XZTJ3RWJBYk9VVmVyd0FZZmkzWVVqOXppNTdxUVZqdzhxVWs0TjVkdzdqY0pWeXZodmxBUjV4N3pkcWdUVmwrcGlIT1hFbkhoaWlJdVhFckV1WXFJY3l0RlhMaUtpQ1BYdDlRM1V1YUVkeXZpekV4eFV4SG5Wb2k0OEFzVGNmcDFETlNmUlNmc0ZyMWkrVkhOMWJKemJFUWFCenFQLzZmZ1cxenFGeGV5VUZCK0VhaXV0THMxR1oyQm0rczZjZXg3c2RYRnVZL2E3SGJpcGZQWWo2eGVZOVlTWklrOWhjUXJLSUtkNVFqYVZ1Y1hwMVZxb1MxRlM1SGEraWJJMm83SStiVjhHc2FzdGMzNXlxeXZaVnVPRTlIbk1EUGkwblNybTM2dHA2TllNNmlQa1BIeCtyWUk3Nk4xTG41dXJuY05wWnQwcjdrMVJ2TTVyTk10STZGYkJPRXJRM2dzYVJtWFNtdXpjVGx6RnZkVUg0djZUOWpXNDRxaFVWbkVyQ2VNMDJoK2NQSkZDN3JtclBXQ2pwcGhYSEhoUVUvNEltZGhRVElQK0tQYlc0WkFGbnhWQXd5UEhCeDdyTUYreUhweXJybUJqTVdJc2I5NnA0dVpFN1BBOFRHT1ZUUlhYK2J4WEtFK3NTcHhDQThEdnJ5QVA3ZjA5WFpEWkZkMWpOVE5xZUY0eVNkVkxWK25NbjZVdVRYTHoyYXo2aWJvdEU2dERyS0xueUJ3VEhYV0ZWTlVYSkZJMll1TE0rd3RLNk9aV2NiM3hnT2xPMnNpYzkwU1FlWG5aaFNWbjByYXlBL1FOSStLRjRFMndpMzZWbXZ3VG13NG9iOEZ6aDRhRVMxVlZjcFJZc1U2a1VQZnB2dTV5Z09tVjJEcE55TEhPQjh5UEV3Y0w5SFRJczVWc2dXOCs5Z1JzVnJmbFlZMURWNTlyOHhLdzVxbXkxTy9ZWjY4MElKQ2pYY3lTam15Q3EwS1NLd2lTSnJqUEl0M0VzOW1BZkZSYkhDejhadkpwQzAxeXUvdENhaGJaZzM1K1p6aXB0ekVXMkNvakRkV0VWMEZyMnJwanNtRlhMYkd3UjV6a3BRc0NRMjVDYk8rTTNrbm42aW5yN1duMm82NG5mNnViZURkTVlMZTdocVd5RUxxTEtlLytxdnByLzVYb0wrd0ZiRTM4ZExSR1E4aENzaWRlaFc0OVFTUW5nUXFFNUplRWI4eVl4YTBwa2xwZm00ZCtnV3IxQnJTbCtIeEVuSUoyUGphbGE5ZGMra2tLNTZZeTJjWlhEM0R5bXA5eWV3b1dxcXNMQ003M0M1SmwrcjVXdjVaeHNPNVF3TkdrMk0xRXVEV2g3L1pZdnFDemFkL09HdHFPY2FYbnlwaG9yNDNTUk90dkZHY2FCQTBlWEtyWmwxL1BPaTNtWkZuN0lwMUJxT3dhWlk5ZVI5OGFxNjdjOHV1dG9wbFpYTk9uMXZrVVowVWRkeGF4Nm4xWE5yQW9jdGJtTmtkMCtxbThJS2hPUlQzVWhXU0I0OHhhTnlHakl3djMzSmJVNTVTdXM1MndmNDE5ckcvRnlsN0twUGVLdmYxT3FPUmx5VDhGTkpUSnU0eFR2QUVRQlRqNWFwT2RybHg0S1RCWWtiRzdYZkZYZVIrWUl0RmM4TU91TU5pNWxESlhOelVob3Z4dXZuOW5kaEpUWFBWYStXYlhQQnc2eEJEYzhnYldZaXluMk9kSjd0Ri92YVdNTXJ1NWhleVR5TnI2MnByUlZYRkdqZG9sUEZlWWczSFdLcHh3NENwR05VbHVYd0w2elpDOTNrNzhtd0djRHhxUFQrUE9zRzRTTGp0RnM5V1c2dXVNTFZVNEhoYmlyaXlQc0pnTGVIbzZ1QWdqRUliWlg0VU83T2hkWTRoWjBEUzAwNHMzckZ0ZmhzZFhlNUNGOHRsQThnc3NGRENhMGN1eE9ySDJ1Y2JkSjk2MU4zMnlMdVYwWGZUNFhmajhYZkRBWGpURWJqc0VGeDZESzdSZ3VpcktQVU9tRE83Y0s1SXIvRkRTdlRXdHMvOHVRMDJVUUFLbVFhU2RWK0pkWENzREpvVHVicTQvRkJ0bytYMDVPM3JseStlMnI4ZS9mTGtuNCtldFVVZ3RwZEhMMS8vK2kvMmIwOWZ2em15bi94MDlBcWo1SzlsWTdCZ2ZSVldVU2N3emoxTEJYMzA1TGNqUEhZY3hWT3k0ellLWmhLYUJJNmZ3bGdGdXVOMVBldzg4QUpoRUZLb0tZem9OUFBBYUxBUzRBWS9IUUZSendQNHRycXRWajA2V1FGcmU1T0tiRzZERGZNSGcwZFE1clpJdVB5QkRRWVlOSVJlekU2bk11ZmxCRi9zdDFxOHgvQndtWDhhZ3FpVTF3S0pNOU1ZVWdyTW10UUxPK3ZVZFFXYmRDMlRWZXFkbm10cmNrR2E5L0tUOFRqdlloRzQ0amcvWjBZWHlQampaMzdRdVpLMktaMVFnODQwK1VkMURMUWk5UGFObUVYSTdVeGV5OWErQVprc3Vwc3VCTXFKT0k1Q1Q3K2hSampsR00vRVpMQ0w2VXZjOXZiUk5Pd2FhQ2lCYTdSRTUraW1sYXhFeHhJMndFQ1hwZlZLOWVNQ1RvYXRndGRabDRnZjVhWFd0ZVZNMlc5cTlTN1ZLc0s0b1dhdEsvcVByMXdOdkdLMGNLVU1wckd6b2dwVnkyN1ZTWWl5dGw1QkNpaU5hV2xOdTAzN09sUHVRa3J3YjVBV2VWUXZIaEFxdjZtS0R5cSsrWkkycVlOSFAxK2twY2hRTkpuU0ZPaUprLzZ5bUhCRlladTRYS0tPdnVGZHFZU0Rja1VxaHhqUjZiMGJndVN0QlpoMDJXc3JQMGxOb0EzSDNOV3p5T1Y3bHpDNDN2cWFjbDVWMU1TUWQvYndST2ZlN2ttaEVqZVB3SEpKR1E3MTEzbU1sU3Z4ZW4wTjVhaUNpRGhvdjFsQzZWRExGeUVrdXRFMjVIZUVxaS81WlgzYnZINGwvWXJ4Uy94NHhTcG1NblNGSDNib0ZzMXlHSUZLam83YTdGSWNscjBpeGkzdks3ZHRwRjJ2ei92cFBoS1F5TE9QWlhDUGVpRStxNUovU0xIaGNCRmk3WnAzUjFGSmZoVDkrQmgwUXhQOTdsWFFiMXZTcjNBWDN6NWV4VmRTcGp3RjRXUzcrdDR4dXFUOUhRejFFcEpzYSt1ZE1FUVZpWTBJMGV6bnUxYldyZXI3SytXOVJIdU5ZUFBMVEpIaUxvWWRjSW52OExUeEd0RnpEVyt0TEltc2tUTTY4Mnl3KzRkV0JxaU52eUw2UmtBSUo0UUgzakVrbG1xaTJQVWY3YldLMG1yaTBCMHlGRUdqSkxOc3AxMUtjczJDekM2SHZ1UHA3Z3F4N0FKKzhXSENwWnZPQ1dyQWlBSXpxQ0VwYUU0U2JNRkJCb3ozWTFrK3J4SFpCZXBJM3pEL0hkRDNsTk9adnE4a2xYT2p2UTZrcTREa3YwTVZKSHVZb2FkRHh6NGs0Z0d2Mk01YmFGeTRtTTNtYVh5WUo3dGE4anBTQVFiNU9VWG42QjdtejJIaGVjcWYxMHZSQVZWd3ZpRkdvRlpkRnZXOW9KSnVFTmFSTUx1TjhJMDR5KzlBdDFSRml5US9KUk5tNjBNK0NPSkZhSDhaY1J5cExZSG5KSXZZMHdNeWluM1UvcGg2TjR1Z29VWGU2Y2dkOUlVU3haZ2JTb25zT25UYS9sTWtNMWhBbHVDbzd4NkRTdm5qRDhsQThEak5Ia044REZzdGRjYVJzMjArejRpMjI5Ty9IRDM5MlFJajhIbnNlVEpIWmx5WmM3ZzhCemUzTXU5Qnkvc1NMekFla1I0RGdOeUdtZWJYWTBHdnRkU0RhWlZsM2JmY1ZqR1U1UWhrZzB2T0pHZWpLMVFUa0F1bjJwb09FVmNaWjZwdmFrUkhqZGpKZnVqdDd3Rks0aytHMlU2L3VWbUY4ZHNBQzUwZ2pQdnRuV05Xdkh0NTVzU25IdlBDYUhGNnBqWUlxamc2OThMVXBpMEhNU2phMUhIYnVEZzRQOHhhTFBpNHNyRUU0U2tnbU5LMEM0Q3BiSStXRmFwYUxpT2lVNS96VjI4VXhXTkx0S0VyTTE4TDdWRWNFQm1IbTlYbVlERElKL2ZIZnJCanFlTjBqNjZDVmNjaHBMVHpoQ2tsdE5vRkVLU3JLV21JMXdvTEhwZjg2clF4MUVjZ1EwNFU2cE1qUjJ2NFQxNzZDeUI5Rk1lNGxpeXpGRHBzclpGbTFPSGRWdEVqQXNLRlNpemErUXpaU0kyL2hDSDdlb2VGYlBMMjR3eC9sU282c0ZaYjJXN1NLbDRadmFhc2RuRGhvNDhMc0p5ODlBa2FyVlpwYkhUYlVzQnVTcm1aRFJIQWxrYmJtaGdBWEYwTU10WXFxcjQ4TGRkeStDa29QdndVUWhtVEdORjBvWEt0dk02TytRc1p2WmpZQk5sUVl5R2RnTEtWNG0rbzNMTkJ1Zk9tS0cvNC9ScklnVlhJUU5jNjBMV0NRV3R5dVNLWHErU1NHcFRJcHZ4V3JsQUo4cDloL25OYW9vRVcvMWhOcCtqSGEycUtqSHlNYVZJUDFnK1YxV1JiSmwyaXVTSmN6SGwvQTVZOGk2TVF3N1JLdVpWbHI1SkZUUG53V0Vma05YYjFhYlp5WlVjelp3N0Ezdm9CU0VtOHVqZ1g0c1VqM055VUdFY0xERWFaUWdGVWZ3a0dTWHJRN1hZNzNacmNnUmRFTWJsQzZJeUdMYUZhKzdwNmJRUmdwenlJa0FDM3piSFlabGFQRUFCbytFUDhLVTVaa2s4NDh1SzROUEU0R1BDWEUvL1NHMWUrcGJOeDNzaFAvQ2kwK3VWYnVTSGZSczdjS0kwUDJJWXBGOUFNOCtKZjQzdUxXclhKeVlyL1d6ei9vaUsvU2h2SytOT2Z0eXV5VWtPOGNLeGN4NjZZVXJmSVJlV3h6Z1A0SGVUV3dlcnN0UVIvR1F3K1pEaGpLcDlqeUZMUlBLOURLY0pZc3lXaThwZFcwQkxBT0Z1RDlmUnlNVXY5K1F6WE5KenhtRTRZZWVDOE00emlYNEtDOThJWEFQWHhoNnI3TW4zUm1YTDdUSndtYlNUTHFxT21FcHk0TEViQ1E0TFVBL3VNSXpFSW5Jcmh0MkZ0MEtqaFk0VitoOHJ2S2YxdTFaWlYvU3lscU9wTW1aT1hBWjczc3dvN1R3Mk5xYldRaTN2UXFMd3BZM0hZVnVlVVZseDFqdHg0b0V4Zm5qRFUySm55dm4zK3krczN2MzFleVNuMDc4MGtwSnI3VHZRZGhzdTlvNTZ0NzRFeVpaOTV3S1BSbGJXRU95bXpOcnFUT2N5OGQyaCtUazRlY1pzWXA1WG1hUXd1c1dQRDMzWWgwVFVsT29reHF6RjFsQ2ZlYkI0SnRNY0x2aStVZXk4SjNubm5KTWtDZXFUWDMzL28rb0RRekQ4TjhXcEV2c2RBN0hLbEJ0RUZSM3hueHFINjBxMTd5UnRZV2JUMjdhajBVcG5jd21XU1RZYXhDeXNXb25DeWJzZ3gxMmJGZUVHM3FhQmJVWkRDa2xhVzNPbGpuVWxWcGMxbFhiVXNMelV5RmFKcHhTRW5rU1RNOXFibzVqeDRWRC9mUENCa3Q3cGRQcyszaytlYkZ6ZlVBOXNZQVJaamJSdjJXeGpMMGZJMjNlNVhzVU5EbE1MYjNMb0svbWYrSkswcWtsRTZQOW1aWkpQQjVVMEhGVVZTTWErOFRBRkU2VDNPVXBPVVF0eVdLVVdUM3lKd1JVWUg0bTR3bHZIbGgveStyMnV3bXlrcHY5ZnUyckFoUTM3UVI4U2QrLzFIZXpodm0weXJOc0RJRDQvM1dvMzFkVzFkeW03djk3Uy8vZEZlWTRYWk5QdmdmWnMzYlc4WDU2bncvM1diQ05KbTRDcWpKcHpDT0tLNUxUeDE0V0w0VjJXYVMzcmZOZVJvcUJEazNRMXJ2RUdGZEZIUGpadTRZb1dpc2p1a0tkVjRwMjNNaUhwbjNaaFI5ZlpyckJsbnRjUytPU2FyMUFmaitwUFJ1cXA1c3M1YnJLNFlHTStVaGdjOTFjTm80cmVTdkxtdHpBRFNMc051ZnhlbExkMVQwbnUwUTZLWDdoSDZvYmVuaFRWWDJrck5Nd2lIb3Z4djQ2RWhXdWVrNytVYm54K0pOMkM1MC8yaG4yR0pLRGRpV1JqZlJaMmtvRW5xOXBid2ZQVEREWWlaajlDN0lTWWlsbUZaVUlGTDAxTERzdmNwYUttajJkMXRKdWJud1hOM3I3dS9XcWMzNHZsSmVGT241MDUzOXd1bDU2TmUvOHNmUTd2ZEgvT1JEaGgvT1gyKzE5djlHT25lS0RlN253TFAyNUh2bjRRM05UeFhsdTkzcG9ZME5MOWNDVitENWhjbDRUVThQNEdFdndONmZsRVNYaDlGcTByNHp6T0tibC9HZnlRMVA3YjZHNHZ1N0pDL1VpOXEzS1hVNy9KYUYrcDU4eTkvZnZIcVdhOW52M3o5N1BkZmpuQUJGSEp3eWdlZHNUZXhOaUJwbzgzdUF5cHR0dkdYRjIvRXhQQUdBZmovVUwrU1pRPT0nCgpoaXBfbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSJmcDgiLAogICAgY3BwX3NvdXJjZXM9IiIsCiAgICBjdWRhX3NvdXJjZXM9emxpYi5kZWNvbXByZXNzKGJhc2U2NC5iNjRkZWNvZGUoa2VybmVsX2NwcCkpLmRlY29kZSgpLAogICAgd2l0aF9jdWRhPVRydWUsCiAgICB2ZXJib3NlPUZhbHNlLAogICAgZXh0cmFfY3VkYV9jZmxhZ3M9KFsiLXNhdmUtdGVtcHMiXSBpZiBURVNUSU5HIGlzIG5vdCBOb25lIGVsc2UgW10pICsgWyItc3RkPWMrKzIwIiwgIi1XZXJyb3IiXSwKICAgIGJ1aWxkX2RpcmVjdG9yeT0iL3dvcmtzcGFjZS9idWlsZC8iIGlmIFRFU1RJTkcgPT0gInZzY29kZSIgZWxzZSAiL2dwdW1vZGUvYW1kL2ZwOC9idWlsZC8iIGlmIFRFU1RJTkcgaXMgbm90IE5vbmUgZWxzZSBOb25lLAogICAgKiooeydub19pbXBsaWNpdF9oZWFkZXJzJzogVHJ1ZX0gaWYgVEVTVElORyAhPSAidnNjb2RlIiBlbHNlIHt9KSwKKQoKZmlyc3QgPSBUcnVlCgpjYWNoZV9tID0gMApjYWNoZV9uID0gMApjYWNoZV9rID0gMApjYWNoZV9pID0gMAoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICAiIiIKICAgIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBibG9jay1zY2FsZSBmcDggZ2VtbQogICAgQXJnczoKICAgICAgICBkYXRhOiBUdXBsZSB0aGF0IGV4cGFuZHMgdG86CiAgICAgICAgICAgIGE6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFttLCBrXSwKICAgICAgICAgICAgYjogdG9yY2guVGVuc29yW2Zsb2F0OF9lNG0zZm51el0gb2Ygc2hhcGUgW24sIGtdLAogICAgICAgICAgICBhX3NjYWxlOiB0b3JjaC5UZW5zb3JbZmxvYXQzMl0gb2Ygc2hhcGUgW20sIGsgLy8gMTI4XSwKICAgICAgICAgICAgYl9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFtuIC8vIDEyOCwgayAvLyAxMjhdLAogICAgICAgICAgICBjOiB0b3JjaC5UZW5zb3JbYmZsb2F0MTZdIG9mIHNoYXBlIFttLCBuXQogICAgUmV0dXJuczoKICAgICAgICBUZW5zb3IgY29udGFpbmluZyBvdXRwdXQgaW4gYmYxNgogICAgIiIiCgogICAgZ2xvYmFsIGZpcnN0CiAgICBpZiBmaXJzdDoKICAgICAgICBwcmludCgiZXhlY3V0aW5nIG9uIiwgdG9yY2guY3VkYS5nZXRfZGV2aWNlX25hbWUoKSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgIGZpcnN0ID0gRmFsc2UKCiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQoKICAgICMgYSA9IGEuY29udGlndW91cygpCiAgICAjIGIgPSBiLmNvbnRpZ3VvdXMoKQoKICAgIG0sIG4gPSBjLnNoYXBlCiAgICBrID0gYS5zaGFwZVsxXQoKICAgIGdsb2JhbCBjYWNoZV9tCiAgICBnbG9iYWwgY2FjaGVfbgogICAgZ2xvYmFsIGNhY2hlX2sKICAgIGdsb2JhbCBjYWNoZV9pCgogICAgaWYgY2FjaGVfbSAhPSBtIG9yIGNhY2hlX24gIT0gbiBvciBjYWNoZV9rICE9IGs6CiAgICAgICAgY2FjaGVfbSA9IG0KICAgICAgICBjYWNoZV9uID0gbgogICAgICAgIGNhY2hlX2sgPSBrCiAgICAgICAgY2FjaGVfaSA9IDAKICAgIGVsc2U6CiAgICAgICAgY2FjaGVfaSArPSAxCgogICAgIyBEb24ndCBjaGVjayB0aGUgcGVyZm9ybWFuY2Ugb24gdGhlIGZpcnN0IGl0ZXJhdGlvbiB0byBhbGxvdyBmb3Igc29tZSB3YXJtdXAKICAgIG1lYXN1cmUgPSBGYWxzZQogICAgaWYgY2FjaGVfaSA9PSAxOgogICAgICAgIG1lYXN1cmUgPSBUcnVlCgogICAgaGlwX21vZHVsZS5mcDgoCiAgICAgICAgYS5kYXRhX3B0cigpLAogICAgICAgIGIuZGF0YV9wdHIoKSwKICAgICAgICBhX3NjYWxlLmRhdGFfcHRyKCksCiAgICAgICAgYl9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGMuZGF0YV9wdHIoKSwKICAgICAgICBtLAogICAgICAgIG4sCiAgICAgICAgaywKICAgICAgICBtZWFzdXJlCiAgICApCgogICAgcmV0dXJuIGMK
No newline at end of file

Best evidence level for this revision: reported

JSON