Q3lhbm9nZW5Nb2QKPT09PT09PT09PT0KCk1haW50YWluZXJzIChDeWFub2dlbk1vZCAxMC4yKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBfX0FjZXIgQTcwMDpfXyBwYXdpdHAKKiBfX0FtYXpvbiBLaW5kbGUgRmlyZSAxc3QgRWRpdGlvbjpfXyBIYXNoY29kZQoqIF9fQW1hem9uIEtpbmRsZSBGaXJlIDJuZCBFZGl0aW9uOl9fIEhhc2hjb2RlCiogX19Bc3VzIEVlZVBhZCBUcmFuc2Zvcm1lciAoVEYxMDEpOl9fIEJ1bWJsZS1CZWUsIEVuSmVucwoqIF9fQXN1cyBFZWVQYWQgVHJhbnNmb3JtZXIgUHJpbWUgKFRGMjAxKTpfXyBCdW1ibGUtQmVlLCBFbkplbnMKKiBfX0FzdXMgRWVlUGFkIFRyYW5zZm9ybWVyIFBhZCBURjMwMFQ6X18geHBsb2R3aWxkCiogX19Bc3VzIEVlZVBhZCBUcmFuc2Zvcm1lciBQYWQgSW5maW5pdHkgVEY3MDBUOl9fIGRhc3Vuc3J1bGUzMgoqIF9fQiZOIE5vb2tDb2xvciAoZW5jb3JlKTpfXyBleWViYWxsZXIsIGZhdHRpcmUsIGtleW9kaSwga3J5bG9uMzYwLCBzbHVvIChOb29raWVEZXZzKQoqIF9fR29vZ2xlIEdhbGF4eSBOZXh1czpfXyAsIGJla2l0LCBCdW1ibGUtQmVlLCBidXJuc3JhLCBLYWxpbW9jaG9Beiwgc29tZXRoaW5nMTU1MjUKKiBfX0dvb2dsZSBOZXh1cyBTOl9fIGJ1cm5zcmEsIEthbGltb2Nob0F6CiogX19Hb29nbGUgTmV4dXMgNDpfXyBybWNjCiogX19Hb29nbGUgTmV4dXMgNzpfXyBidXJuc3JhLCBmYXR0aXJlLCBuZW1pdGggKEdTTSkKKiBfX0dvb2dsZSBOZXh1cyAxMDpfXyBhdGlubSwgZGFsaW5ncmluLCBrb3JueW9uZSwgZ3dlZWRvNzY3CiogX19IVEMgRHJvaWQgRE5BOl9fIGludmlzaWJsZWsKKiBfX0hUQyBEcm9pZCBJbmNyZWRpYmxlIDRHIExURTpfXyBpbnRlcnZpZ2lsLCBtZG1vd2VyCiogX19IVEMgRXZvIDRHIExURTpfXyBrdXNoZGVjaywgdG9hc3RjZmgKKiBfX0hUQyBPbmUgKEdTTSk6X18gY29kZXdvcmt4LCBoOHJpZnQKKiBfX0hUQyBPbmUgKFNwcmludCk6X18ga3VzaGRlY2ssIHRvYXN0Y2ZoCiogX19IVEMgT25lIChWZXJpem9uKTpfXyBmbHloYWxmMjA1CiogX19IVEMgT25lIFM6X18gaW50ZXJ2aWdpbCwgeGtvbm5pCiogX19IVEMgT25lIFgrOl9fIExsb2lyLCB0b21icmlkZW4KKiBfX0hUQyBPbmUgWEw6X18gaDhyaWZ0LCBpbnRlcnZpZ2lsCiogX19MRyBPcHRpbXVzIExURSAoUDkzMCkgLyBMRyBOaXRybyBIRCB7UDkzNSk6X18gYXJjZWUKKiBfX0xHIE9wdGltdXMgTFRFIChTSyBUZWxlY29tKSAoU1U2NDApOl9fIGFyY2VlCiogX19Nb3Rvcm9sYSBBdHJpeCBIRCAoTUI4ODYvcWluYXJhKTpfXyBlcGludGVyLCBkaGFja2VyMjksIEhhc2hjb2RlLCBTa3JpbGF4X0NaLCBuYWRsYWJhawoqIF9fTW90b3JvbGEgRHJvaWQgMyAoc29sYW5hKTpfXyBIYXNoY29kZSwgZGhhY2tlcjI5CiogX19Nb3Rvcm9sYSBEcm9pZCA0IChtYXNlcmF0aSk6X18gSGFzaGNvZGUsIGRoYWNrZXIyOQoqIF9fTW90b3JvbGEgRHJvaWQgQmlvbmljICh0YXJnYSk6X18gZGhhY2tlcjI5LCBIYXNoY29kZQoqIF9fTW90b3JvbGEgRHJvaWQgUkFaUi9SQVpSIE1heHggKHNweWRlcikgKENETUEpOl9fIGRoYWNrZXIyOSwgSGFzaGNvZGUKKiBfX01vdG9yb2xhIERyb2lkIFJBWlIgSEQvSEQgTWF4eCAoeHQ5MjYvdmFucXVpc2gpIChDRE1BKTpfXyBIYXNoY29kZSwgIGRoYWNrZXIyOSwgZXBpbnRlciwgU2tyaWxheF9DWiwgbmFkbGFiYWsKKiBfX01vdG9yb2xhIERyb2lkIFJBWlIgTSAoeHQ5MDcvc2NvcnBpb25fbWluaSk6X18gZGhhY2tlcjI5LCBIYXNoY29kZSwgZXBpbnRlciwgU2tyaWxheF9DWiwgbmFkbGFiYWsKKiBfX01vdG9yb2xhIFBob3RvbiBRICh4dDg5Ny9hc2FudGkpIChHU00pOl9fIFNrcmlsYXhfQ1osIG5hZGxhYmFrLCBlcGludGVyLCBkaGFja2VyMjksIEhhc2hjb2RlCiogX19Nb3Rvcm9sYSBQaG90b24gUSAoeHQ4OTdjL2FzYW50aV9jKSAoQ0RNQSk6X18gbmFkbGFiYWssIFNrcmlsYXhfQ1osIGVwaW50ZXIsIGRoYWNrZXIyOSwgSGFzaGNvZGUKKiBfX01vdG9yb2xhIFJBWlIvUkFaUiBNYXh4ICh1bXRzX3NweWRlcikgKEdTTSk6X18gZGhhY2tlcjI5LCBIYXNoY29kZQoqIF9fTW90b3JvbGEgUkFaUiBIRCh4dDkyNS92YW5xdWlzaCkgKEdTTSk6X18gZXBpbnRlciwgZGhhY2tlcjI5LCBIYXNoY29kZSwgU2tyaWxheF9DWiwgbmFkbGFiYWsKKiBfX01vdG9yb2xhIFhvb20gKFdpRmkpOl9fIGJhemFyLCBTdGVhZHlIYXdraW4sIFREUiAoVGVhbSBSb2d1ZSkKKiBfX01vdG9yb2xhIFhvb20gM0cgKFVNVFMpOl9fIGJhemFyLCBTdGVhZHlIYXdraW4sIFREUiAoVGVhbSBSb2d1ZSkKKiBfX01vdG9yb2xhIFhvb20gNEcgTFRFIChWZXJpem9uKTpfXyBiYXphciwgU3RlYWR5SGF3a2luLCBURFIgKFRlYW0gUm9ndWUpCiogX19TYW1zdW5nIENhcHRpdmF0ZSAoU0dILUk4OTYgLyBTR0gtSTg5Nyk6X18gcGF3aXRwCiogX19TYW1zdW5nIEVwaWMgNEcgKFNQSC1ENzAwKTpfXyBiYmVsb3MKKiBfX1NhbXN1bmcgRXhoaWxhcmF0ZSAoU0dILUk1NzcpOl9fIG1pa2V5bWFuNzcsIGNhcnZzZHJpdmVyCiogX19TYW1zdW5nIEZhc2NpbmF0ZSAvIE1lc21lcml6ZSAoU0NILUk1MDApOl9fIGp0MTEzNCwgc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgKEdULU43MDAwKTpfXyBFbnRyb3B5NTEyLCBFc3BlbmZqbwoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSAoR1QtTjcxMDApOl9fIG5lYmthdAoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKEdULU43MTA1KTpfXyBjb2Rld29ya3gKKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChBVCZUKSAoU0dILUkzMTcpOl9fIGNvZGV3b3JreCwgY3lhbm9nZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChULU1vYmlsZSkgKFNHSC1UODg5KTpfXyBjb2Rld29ya3gKKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChWZXJpem9uKSAoU0NILUk2MDUpOl9fIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoU3ByaW50KSAoU1BILUw5MDApOl9fIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoVVNDQykgKFNDSC1SOTUwKTpfXyBzYnJpc3NlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSAxMC4xIChHVC1OODBYWCk6X18gRW50cm9weTUxMiwgRXNwZW5mam8KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgMTAuMSBMVEUgKFZlcml6b24pIChTQ0gtSTkyNSk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IFIgKEdULUk5MTAzKTpfXyBBZGFtNzdSb290LCBFcHN5bG9uMwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBCbGF6ZSA0RyAoU0dILVQ3NjkpOl9fIFViZXJQaW5ndWluCiogX19TYW1zdW5nIEdhbGF4eSBTIChHVC1JOTAwMCk6X18gcGF3aXRwCiogX19TYW1zdW5nIEdhbGF4eSBTIChHVC1JOTAwMEIpOl9fIGhlbHZpbzg4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChULU1vYmlsZSkgKFNHSC1UOTg5KTpfXyBtaWtleW1hbjc3CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChBVCZUKSAoU0dILUk3MjcpOl9fIHRvcHByb3NwZWN0CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChBVCZUKSAoU0dILUk3NzcpOl9fIEVudHJvcHk1MTIKKiBfX1NhbXN1bmcgR2FsYXh5IFMgSUkgKGludGwpIChHVC1JOTEwMCk6X18gY29kZXdvcmt4LCBFc3BlbmZqbwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSSAoaW50bCkgKEdULUk5MTAwRyk6X18gY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoQVQmVCkgKFNHSC1JNzQ3KTpfXyBjeWFub2dlbgoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKENyaWNrZXQpIChTQ0gtUjUzMCk6X18gbm9vYm5sCiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoaW50bCkgKEdULUk5MzAwKTpfXyB4cGxvZHdpbGQsIGNvZGV3b3JreAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgTFRFIChHVC1JOTMwNSk6X18gbWNhbXBiZWxsc21pdGgsIGNvZGV3b3JreAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKE1ldHJvUENTKSAoU0NILVI1MzApOl9fIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKFNwcmludCkgKFNQSC1MNzEwKTpfXyBta2FzaWNrLCBub29ibmwKKiBfX1NhbXN1bmcgR2FsYXh5IFMgSUlJIChULU1vYmlsZSkgKFNHSC1UOTk5KTpfXyBjeWFub2dlbgoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKFVTIENlbGx1bGFyKSAoU0NILVI1MzApOl9fIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKFZlcml6b24pIChTQ0gtSTUzNSk6X18gaW52aXNpYmxlawoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoQVQmVCkgKFNHSC1JMzM3KTpfXyBhdHRuMQoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoQ2FuYWRhKSAoU0dILUkzMzdNKTpfXyBEdlRvbmRlcgoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViBMVEUgKEdULUk5NTA1KTpfXyBpbnZpc2libGVrLCBub29ibmwKKiBfX1NhbXN1bmcgR2FsYXh5IFMgSVYgKFNwcmludCkgKFNQSC1MNzIwKTpfXyBta2FzaWNrLCBub29ibmwKKiBfX1NhbXN1bmcgR2FsYXh5IFMgSVYgKFQtTW9iaWxlKSAoU0dILU05MTkpOl9fIGN5YW5vZ2VuCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIChVUyBDZWxsdWxhcikgKFNDSC1SNTQwKTpfXyBub29ibmwKKiBfX1NhbXN1bmcgR2FsYXh5IFMgSVYgKFZlcml6b24pIChTQ0gtSTU0NSk6X18gaW52aXNpYmxlawoqIF9fU2Ftc3VuZyBHYWxheHkgVGFiIDciIChHU00pOl9fIGNkZXNhaSwgaHVtYmVyb3MKKiBfX1NhbXN1bmcgR2FsYXh5IFRhYiA3IiAoQ0RNQSk6X18ganQxMTM0CiogX19TYW1zdW5nIEdhbGF4eSBUYWIgMiA3IiAoR1QtUDMxeHgpOl9fIGNvZGV3b3JreAoqIF9fU2Ftc3VuZyBHYWxheHkgVGFiIDIgMTAuMSIgKEdULVA1MXh4KTpfXyBjb2Rld29ya3gKKiBfX1NhbXN1bmcgVmlicmFudCAoU0dILVQ5NTkpOl9fIEZhdWx0RXhjZXB0aW9uCiogX19Tb255IFhwZXJpYSBUIChtaW50KTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNvZGV3b3JreCwgdGlsYWw2OTkxCiogX19Tb255IFhwZXJpYSBWICh0c3ViYXNhKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNvZGV3b3JreCwgdGlsYWw2OTkxLCBjaGFtcGlvbnN3aW1tZXIKKiBfX1NvbnkgWHBlcmlhIFogKHl1Z2EpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY2Rlc2FpLCBjb2Rld29ya3gsIEVudHJvcHk1MTIsIGNoYW1waW9uc3dpbW1lcgoqIF9fU29ueSBYcGVyaWEgWkwgKG9kaW4pOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY2hhbXBpb25zd2ltbWVyCiogX19Tb255IFhwZXJpYSBaUiAob2Rpbik6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pCiogX19Tb255IFhwZXJpYSBUYWJsZXQgWiAocG9sbHV4KTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNvZGV3b3JreCwgRW50cm9weTUxMgoKCkdlbmVyYWwgZGV2ZWxvcGVyczoKLS0tLS0tLS0tLS0tLS0tLS0tLQoqIF9fVUkgVGVhbTpfXyBibHVuZGVuLCBwcmFzaAoqIF9fVVggVGVhbTpfXyBibHVuZGVuLCBjaXdybCwgZGFuZXNobSwgRHZUb25kZXIsIG1hZC1tdXJkb2NrLCBtYW5pYWMxMDMsIEthaWs1NDEKKiBfX090aGVyOl9fIGpydWVzZ2EKClRyYW5zbGF0b3JzOgotLS0tLS0tLS0tLS0KKiBfX0FmcmlrYWFuczpfXyBDb3JyaWUgTWV5ZXIsIERhdmlkIHZhbiBUb25kZXIKKiBfX0NhdGFsYW46X18gQXJuYXUgTGxvdmV0IFZpZGFsCiogX19DaGluZXNlIChTaW1wbGlmaWVkKTpfXyBBbmRyZXcgSmlhbmcsIEpvaG4gSHNpbmcsIEVuZ2xlIE1hcnMKKiBfX0NoaW5lc2UgKFRyYWRpdGlvbmFsKTpfXyBMaSBDaGkgVHVuZywgRnUtQ2h1biBIc3UKKiBfX0N6ZWNoOl9fIE9uZHJlaiBaaW1hLCBSYWRvdmFuIEtlcGFrLCBQYXZlbCBLdWNlcmEsIEpvemthIEpvemluLCBKaXJpIFNpbHZhcmljaCwgVmFjbGF2IE1vdWNoYQoqIF9fRGFuaXNoOl9fIEphY29iIE92ZXJnYWFyZCBNYWRzZW4sIE1vcnRlbiBK+HJnZW5zZW4sIEhlbm5pbmcgTmllbHNlbiBMdW5kLCBNaWthZWwgSmVwc2VuCiogX19EdXRjaDpfXyBNYXJjbyBCcm9oZXQsIEthc3BlciBIZXR0aW5nYSwgRWRkeSBXaXRrYW1wCiogX19GaW5uaXNoOl9fIE5pa28gS29pdnUKKiBfX0ZyZW5jaDpfXyBEZWxwaGluIFBFVEVSLCBFcmljIE1vdXJvdWdhbmR5LCBM6W8gQ29sb21iYXJvLCBGbG9yZW50IEltZmxvZmxvLCBUYW5ndXkgUHJ1dm90LCBNYXR0aGlhcyBCb3NjCiogX19HZXJtYW46X18gS2ltIEzqLCBKYWNvYiBN/GxsZXIsIENocmlzdG9waCBRdWl0ZXIsIE1hcmt1cyBIb2ViZXIsIERhbm55IEJhdW1hbm4KKiBfX0dyZWVrOl9fIE1pY2hhZWwgQmVzdGFzLCBWYXNpbGlzIEFrcml0YXMKKiBfX0h1bmdhcmlhbjpfXyBUYW3hcyBU83RoLCBE4XZpZCBM4XN6bPMsIEThbmllbCBCdWdhCiogX19JdGFsaWFuOl9fIEZyYW5jZXNjbyBGb3Jlc3RhLCBNYXVybyBCYXp6YW5vCiogX19KYXBhbmVzZTpfXyBUYWt1byBLaXRhbWUsIFRhaWNoaSBOaXNoaW11cmEKKiBfX05vcndlZ2lhbjpfXyBPZGluIFVnZWRhbCwgQXJuZSBDb3VjaGVyb24KKiBfX1BvbGlzaDpfXyBUb21hc3ogUG9waWVsYXJjenlrIGMucy4KKiBfX1BvcnR1Z3Vlc2UgKEJyYXppbGlhbik6X18gR3VzdGF2byBSb3NhLCBQZWRybyBDYXJuZWlybywgRW1lcnNvbiBQaW50ZXIKKiBfX1J1c3NpYW46X18gUGF2ZWwgVm9sa292LCBWbGFkaXNsYXYgS29sZG9ic2tpeSwgVmxhZGltaXIgQmVsa292CiogX19TbG92YWs6X18gRHVzYW4gS2F6aWsKKiBfX1NwYW5pc2g6X18gSm9yZ2UgUnVlc2dhLCBMb3JlbnpvIE0uIENhc3Rh8W8KKiBfX1N3ZWRpc2g6X18gU2ltb24gQuRjaywgVGVkIEx1bmR3YWxsLCBFc2EgTGF1a2thbmVuLCBCavZybiBMdW5k6W4K