Q3lhbm9nZW5Nb2QKPT09PT09PT09PT0KCk1haW50YWluZXJzIChDeWFub2dlbk1vZCAxMS4wKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBfX0FjZXIgQTcwMDpfXyBwYXdpdHAKKiBfX0FtYXpvbiBLaW5kbGUgRmlyZSAxc3QgRWRpdGlvbjpfXyBIYXNoY29kZSwgRnVaWl9fCiogX19BbWF6b24gS2luZGxlIEZpcmUgMm5kIEVkaXRpb246X18gSGFzaGNvZGUsIEZ1WlpfXwoqIF9fQXN1cyBFZWVQYWQgVHJhbnNmb3JtZXIgKFRGMTAxKTpfXyBCdW1ibGUtQmVlLCBFbkplbnMKKiBfX0FzdXMgRWVlUGFkIFRyYW5zZm9ybWVyIFByaW1lIChURjIwMSk6X18gQnVtYmxlLUJlZSwgRW5KZW5zCiogX19Bc3VzIEVlZVBhZCBUcmFuc2Zvcm1lciBQYWQgVEYzMDBUOl9fCiogX19Bc3VzIEVlZVBhZCBUcmFuc2Zvcm1lciBQYWQgSW5maW5pdHkgVEY3MDBUOl9fIGRhc3Vuc3J1bGUzMgoqIF9fQiZOIE5vb2tDb2xvciAoZW5jb3JlKTpfXyBleWViYWxsZXIsIGZhdHRpcmUsIGtleW9kaSwga3J5bG9uMzYwLCBzbHVvIChOb29raWVEZXZzKQoqIF9fR29vZ2xlIEdhbGF4eSBOZXh1czpfXyAsIGJla2l0LCBCdW1ibGUtQmVlLCBidXJuc3JhLCBLYWxpbW9jaG9Beiwgc29tZXRoaW5nMTU1MjUKKiBfX0dvb2dsZSBOZXh1cyBTOl9fIGJ1cm5zcmEsIEthbGltb2Nob0F6LCBrbHVzYXJrCiogX19Hb29nbGUgTmV4dXMgNDpfXyBybWNjCiogX19Hb29nbGUgTmV4dXMgNzpfXyBidXJuc3JhLCBmYXR0aXJlLCBuZW1pdGggKEdTTSkKKiBfX0dvb2dsZSBOZXh1cyAxMDpfXyBhdGlubSwgZGFsaW5ncmluLCBrb3JueW9uZSwgZ3dlZWRvNzY3CiogX19IVEMgRHJvaWQgRE5BOl9fIGNycGFsbWVyLCBpbnZpc2libGVrCiogX19IVEMgRHJvaWQgSW5jcmVkaWJsZSA0RyBMVEU6X18gaW50ZXJ2aWdpbCwgbWRtb3dlcgoqIF9fSFRDIEV2byA0RyBMVEU6X18ga3VzaGRlY2ssIHRvYXN0Y2ZoCiogX19IVEMgT25lIChHU00pOl9fIGNvZGV3b3JreCwgaDhyaWZ0CiogX19IVEMgT25lIChTcHJpbnQpOl9fIGt1c2hkZWNrLCB0b2FzdGNmaAoqIF9fSFRDIE9uZSAoVmVyaXpvbik6X18gZmx5aGFsZjIwNSwgbWRtb3dlcgoqIF9fSFRDIE9uZSBTOl9fIGludGVydmlnaWwsIHhrb25uaQoqIF9fSFRDIE9uZSBYOl9fIGdvcmJpMTYsIG1kZWVqYXksIHRiYWxkZW4sIFRo9m15CiogX19IVEMgT25lIFgrOl9fIExsb2lyLCB0b21icmlkZW4KKiBfX0hUQyBPbmUgWEw6X18gaDhyaWZ0LCBpbnRlcnZpZ2lsCiogX19MRyBPcHRpbXVzIExURSAoUDkzMCkgLyBMRyBOaXRybyBIRCB7UDkzNSk6X18gYXJjZWUKKiBfX0xHIE9wdGltdXMgTFRFIChTSyBUZWxlY29tKSAoU1U2NDApOl9fIGFyY2VlCiogX19Nb3RvIEcgKHh0MTAzMSx4dDEwMzIseHQxMDMzLHh0MTAzNC9mYWxjb24pOl9fIGRoYWNrZXIyOQoqIF9fTW90byBYICh4dDEwNTMseHQxMDU1LHh0MTA1Nix4dDEwNTgseHQxMDYwL2dob3N0KTpfXyBkaGFja2VyMjksIEhhc2hjb2RlLCBTa3JpbGF4X0NaCiogX19Nb3Rvcm9sYSBBdHJpeCBIRCAoTUI4ODYvcWluYXJhKTpfXyBlcGludGVyLCBkaGFja2VyMjksIEhhc2hjb2RlLCBTa3JpbGF4X0NaLCBuYWRsYWJhawoqIF9fTW90b3JvbGEgRHJvaWQgMyAoc29sYW5hKTpfXyBIYXNoY29kZSwgZGhhY2tlcjI5LCBzdGFyZ28KKiBfX01vdG9yb2xhIERyb2lkIDQgKG1hc2VyYXRpKTpfXyBIYXNoY29kZSwgZGhhY2tlcjI5LCBzdGFyZ28KKiBfX01vdG9yb2xhIERyb2lkIEJpb25pYyAodGFyZ2EpOl9fIGRoYWNrZXIyOSwgSGFzaGNvZGUsIHN0YXJnbwoqIF9fTW90b3JvbGEgRHJvaWQgTWF4eCAob2Jha2UtbWF4eCk6X18gU2tyaWxheF9DWiwgZGhhY2tlcjI5CiogX19Nb3Rvcm9sYSBEcm9pZCBSQVpSL1JBWlIgTWF4eCAoc3B5ZGVyKSAoQ0RNQSk6X18gZGhhY2tlcjI5LCBIYXNoY29kZSwgc3RhcmdvCiogX19Nb3Rvcm9sYSBEcm9pZCBSQVpSIEhEL0hEIE1heHggKHh0OTI2L3ZhbnF1aXNoKSAoQ0RNQSk6X18gSGFzaGNvZGUsICBkaGFja2VyMjksIGVwaW50ZXIsIFNrcmlsYXhfQ1osIG5hZGxhYmFrCiogX19Nb3Rvcm9sYSBEcm9pZCBSQVpSIE0gKHh0OTA3L3Njb3JwaW9uX21pbmkpOl9fIGRoYWNrZXIyOSwgSGFzaGNvZGUsIGVwaW50ZXIsIFNrcmlsYXhfQ1osIG5hZGxhYmFrCiogX19Nb3Rvcm9sYSBQaG90b24gUSAoeHQ4OTcvYXNhbnRpKSAoR1NNKTpfXyBTa3JpbGF4X0NaLCBuYWRsYWJhaywgZXBpbnRlciwgZGhhY2tlcjI5LCBIYXNoY29kZQoqIF9fTW90b3JvbGEgUGhvdG9uIFEgKHh0ODk3Yy9hc2FudGlfYykgKENETUEpOl9fIG5hZGxhYmFrLCBTa3JpbGF4X0NaLCBlcGludGVyLCBkaGFja2VyMjksIEhhc2hjb2RlCiogX19Nb3Rvcm9sYSBSQVpSL1JBWlIgTWF4eCAodW10c19zcHlkZXIpIChHU00pOl9fIGRoYWNrZXIyOSwgSGFzaGNvZGUsIHN0YXJnbwoqIF9fTW90b3JvbGEgUkFaUiBIRCh4dDkyNS92YW5xdWlzaCkgKEdTTSk6X18gZXBpbnRlciwgZGhhY2tlcjI5LCBIYXNoY29kZSwgU2tyaWxheF9DWiwgbmFkbGFiYWsKKiBfX01vdG9yb2xhIFhvb20gKFdpRmkpOl9fIGJhemFyLCBTdGVhZHlIYXdraW4sIFREUiAoVGVhbSBSb2d1ZSkKKiBfX01vdG9yb2xhIFhvb20gM0cgKFVNVFMpOl9fIGJhemFyLCBTdGVhZHlIYXdraW4sIFREUiAoVGVhbSBSb2d1ZSkKKiBfX01vdG9yb2xhIFhvb20gNEcgTFRFIChWZXJpem9uKTpfXyBiYXphciwgU3RlYWR5SGF3a2luLCBURFIgKFRlYW0gUm9ndWUpCiogX19PcHBvIEZpbmQgNV9fOiBuZWJrYXQKKiBfX1NhbXN1bmcgQ2FwdGl2YXRlIChTR0gtSTg5NiAvIFNHSC1JODk3KTpfXyBwYXdpdHAKKiBfX1NhbXN1bmcgRXBpYyA0RyAoU1BILUQ3MDApOl9fIGJiZWxvcwoqIF9fU2Ftc3VuZyBFeGhpbGFyYXRlIChTR0gtSTU3Nyk6X18gbWlrZXltYW43NywgY2FydnNkcml2ZXIKKiBfX1NhbXN1bmcgRmFzY2luYXRlIC8gTWVzbWVyaXplIChTQ0gtSTUwMCk6X18ganQxMTM0LCBzYnJpc3NlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSAoR1QtTjcwMDApOl9fIEVzcGVuZmpvCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIChHVC1ONzEwMCk6X18gbmVia2F0CiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoR1QtTjcxMDUpOl9fIGNvZGV3b3JreAoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKEFUJlQpIChTR0gtSTMxNyk6X18gY29kZXdvcmt4LCBjeWFub2dlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKFQtTW9iaWxlKSAoU0dILVQ4ODkpOl9fIGNvZGV3b3JreAoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKFZlcml6b24pIChTQ0gtSTYwNSk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChTcHJpbnQpIChTUEgtTDkwMCk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChVU0NDKSAoU0NILVI5NTApOl9fIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIDguMCAzRyAoR1QtTjUxMDApOl9fIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIDguMCBXaWZpIChHVC1ONTExMCk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgMTAuMSAoR1QtTjgwWFgpOl9fIEVzcGVuZmpvCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIDEwLjEgTFRFIChWZXJpem9uKSAoU0NILUk5MjUpOl9fIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBQcmVtaWVyIChHVC1JOTI2MCk6X18gbGp6eWFsCiogX19TYW1zdW5nIEdhbGF4eSBSIChHVC1JOTEwMyk6X18gQWRhbTc3Um9vdCwgRXBzeWxvbjMKKiBfX1NhbXN1bmcgR2FsYXh5IFMgQmxhemUgNEcgKFNHSC1UNzY5KTpfXyBVYmVyUGluZ3VpbgoqIF9fU2Ftc3VuZyBHYWxheHkgUyAoR1QtSTkwMDApOl9fIHBhd2l0cAoqIF9fU2Ftc3VuZyBHYWxheHkgUyAoR1QtSTkwMDBCKTpfXyBoZWx2aW84OAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSSAoVC1Nb2JpbGUpIChTR0gtVDk4OSk6X18gbWlrZXltYW43NwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSSAoQVQmVCkgKFNHSC1JNzI3KTpfXyB0b3Bwcm9zcGVjdAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSSAoQVQmVCkgKFNHSC1JNzc3KTpfXwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSSAoaW50bCkgKEdULUk5MTAwKTpfXyBjb2Rld29ya3gsIEVzcGVuZmpvCiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChpbnRsKSAoR1QtSTkxMDBHKTpfXyBjb2Rld29ya3gsIEppYW5neWksIFJ5dWluZmVybm8KKiBfX1NhbXN1bmcgR2FsYXh5IFMgSUlJIChBVCZUKSAoU0dILUk3NDcpOl9fIGN5YW5vZ2VuLCBpbnZpc2libGVrLCBta2FzaWNrLCBuYXJkaG9saW8sIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKGludGwpIChHVC1JOTMwMCk6X18gY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSBMVEUgKEdULUk5MzA1KTpfXyBtY2FtcGJlbGxzbWl0aCwgY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBTIElWIChBVCZUKSAoU0dILUkzMzcpOl9fIGF0dG4xCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIChDYW5hZGEpIChTR0gtSTMzN00pOl9fIER2VG9uZGVyCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIExURSAoR1QtSTk1MDUpOl9fIGludmlzaWJsZWssIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoU3ByaW50KSAoU1BILUw3MjApOl9fIG1rYXNpY2ssIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoVC1Nb2JpbGUpIChTR0gtTTkxOSk6X18gY3lhbm9nZW4KKiBfX1NhbXN1bmcgR2FsYXh5IFMgSVYgKFVTIENlbGx1bGFyKSAoU0NILVI1NDApOl9fIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoVmVyaXpvbikgKFNDSC1JNTQ1KTpfXyBpbnZpc2libGVrCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIE1pbmkgM0cgKEdULUk5MTkwKTpfXyBhcmNvCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIE1pbmkgTFRFIChHVC1JOTE5NSk6X18gYXJjbwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBSZWxheSA0RyAoU0dILVQ2OTkpOl9fIGluZmVybml4LCBsYmNvZGVyLCBuYXJkaG9saW8sIG5vcHR5cywgdGVmZXJpIChUZWFtQXBleFEpCiogX19TYW1zdW5nIEdhbGF4eSBUYWIgNyIgKEdTTSk6X18gY2Rlc2FpLCBodW1iZXJvcwoqIF9fU2Ftc3VuZyBHYWxheHkgVGFiIDciIChDRE1BKTpfXyBqdDExMzQKKiBfX1NhbXN1bmcgR2FsYXh5IFRhYiAyIDciIChHVC1QMzF4eCk6X18gY29kZXdvcmt4LCBjb2R5Zjg2CiogX19TYW1zdW5nIEdhbGF4eSBUYWIgMiAxMC4xIiAoR1QtUDUxeHgpOl9fIGNvZGV3b3JreCwgY29keWY4NgoqIF9fU2Ftc3VuZyBWaWJyYW50IChTR0gtVDk1OSk6X18gRmF1bHRFeGNlcHRpb24KKiBfX1NvbnkgWHBlcmlhIFNQIChodWFzaGFuKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGFkZmFkNjY2LCB1YmVybGFnZ3lkYXJ3aW4KKiBfX1NvbnkgWHBlcmlhIFQgKG1pbnQpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY29kZXdvcmt4LCBjZGVzYWksIHRpbGFsNjk5MQoqIF9fU29ueSBYcGVyaWEgViAodHN1YmFzYSk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pLCBjb2Rld29ya3gsIHRpbGFsNjk5MSwgY2hhbXBpb25zd2ltbWVyCiogX19Tb255IFhwZXJpYSBaICh5dWdhKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNkZXNhaSwgY29kZXdvcmt4LCBjaGFtcGlvbnN3aW1tZXIKKiBfX1NvbnkgWHBlcmlhIFpMIChvZGluKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNoYW1waW9uc3dpbW1lcgoqIF9fU29ueSBYcGVyaWEgWlIgKGRvZ28pOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKQoqIF9fU29ueSBYcGVyaWEgVGFibGV0IFogTFRFIChwb2xsdXgpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY29kZXdvcmt4CiogX19Tb255IFhwZXJpYSBUYWJsZXQgWiBXaWZpIChwb2xsdXhfd2luZHkpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgQnVtYmxlLUJlZQoqIF9fU29ueSBYcGVyaWEgWiBVbHRyYSAodG9nYXJpKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSkKKiBfX1NvbnkgWHBlcmlhIFoxIChob25hbWkpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKQoKCkdlbmVyYWwgZGV2ZWxvcGVyczoKLS0tLS0tLS0tLS0tLS0tLS0tLQoqIF9fVUkgVGVhbTpfXyBibHVuZGVuLCBwcmFzaAoqIF9fVVggVGVhbTpfXyBibHVuZGVuLCBjaXdybCwgZGFuZXNobSwgRHZUb25kZXIsIG1hbmlhYzEwMywgS2FpazU0MQoqIF9fT3RoZXI6X18ganJ1ZXNnYQoKVHJhbnNsYXRvcnM6Ci0tLS0tLS0tLS0tLQoqIF9fQWZyaWthYW5zOl9fIENvcnJpZSBNZXllciwgRGF2aWQgdmFuIFRvbmRlcgoqIF9fQ2F0YWxhbjpfXyBBcm5hdSBMbG92ZXQgVmlkYWwKKiBfX0NoaW5lc2UgKFNpbXBsaWZpZWQpOl9fIEFuZHJldyBKaWFuZywgSm9obiBIc2luZywgRW5nbGUgTWFycwoqIF9fQ2hpbmVzZSAoVHJhZGl0aW9uYWwpOl9fIExpIENoaSBUdW5nLCBGdS1DaHVuIEhzdQoqIF9fQ3plY2g6X18gT25kcmVqIFppbWEsIFJhZG92YW4gS2VwYWssIFBhdmVsIEt1Y2VyYSwgSm96a2EgSm96aW4sIEppcmkgU2lsdmFyaWNoLCBWYWNsYXYgTW91Y2hhCiogX19EYW5pc2g6X18gSmFjb2IgT3ZlcmdhYXJkIE1hZHNlbiwgTW9ydGVuIEr4cmdlbnNlbiwgSGVubmluZyBOaWVsc2VuIEx1bmQsIE1pa2FlbCBKZXBzZW4KKiBfX0R1dGNoOl9fIE1hcmNvIEJyb2hldCwgS2FzcGVyIEhldHRpbmdhLCBFZGR5IFdpdGthbXAKKiBfX0Zpbm5pc2g6X18gTmlrbyBLb2l2dQoqIF9fRnJlbmNoOl9fIERlbHBoaW4gUEVURVIsIEVyaWMgTW91cm91Z2FuZHksIEzpbyBDb2xvbWJhcm8sIEZsb3JlbnQgSW1mbG9mbG8sIFRhbmd1eSBQcnV2b3QsIE1hdHRoaWFzIEJvc2MKKiBfX0dlcm1hbjpfXyBLaW0gTOosIEphY29iIE38bGxlciwgQ2hyaXN0b3BoIFF1aXRlciwgTWFya3VzIEhvZWJlciwgRGFubnkgQmF1bWFubgoqIF9fR3JlZWs6X18gTWljaGFlbCBCZXN0YXMsIFZhc2lsaXMgQWtyaXRhcwoqIF9fSHVuZ2FyaWFuOl9fIFRhbeFzIFTzdGgsIEThdmlkIEzhc3ps8ywgROFuaWVsIEJ1Z2EKKiBfX0l0YWxpYW46X18gRnJhbmNlc2NvIEZvcmVzdGEsIE1hdXJvIEJhenphbm8KKiBfX0phcGFuZXNlOl9fIFRha3VvIEtpdGFtZSwgVGFpY2hpIE5pc2hpbXVyYQoqIF9fTm9yd2VnaWFuOl9fIE9kaW4gVWdlZGFsLCBBcm5lIENvdWNoZXJvbgoqIF9fUG9saXNoOl9fIFRvbWFzeiBQb3BpZWxhcmN6eWsgYy5zLgoqIF9fUG9ydHVndWVzZSAoQnJhemlsaWFuKTpfXyBHdXN0YXZvIFJvc2EsIFBlZHJvIENhcm5laXJvLCBFbWVyc29uIFBpbnRlcgoqIF9fUnVzc2lhbjpfXyBQYXZlbCBWb2xrb3YsIFZsYWRpc2xhdiBLb2xkb2Jza2l5LCBWbGFkaW1pciBCZWxrb3YKKiBfX1Nsb3ZhazpfXyBEdXNhbiBLYXppawoqIF9fU3BhbmlzaDpfXyBKb3JnZSBSdWVzZ2EsIExvcmVuem8gTS4gQ2FzdGHxbwoqIF9fU3dlZGlzaDpfXyBTaW1vbiBC5GNrLCBUZWQgTHVuZHdhbGwsIEVzYSBMYXVra2FuZW4sIEJq9nJuIEx1bmTpbgoKR3JhcGhpY3MgYW5kIEFzc2V0czoKLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBfX1dhbGxwYXBlcnM6X18gTWF0dGhldyBIYW5sZXksIEhlbnJ5IE1hc29uCiogX19JY29uczpfXyBCam9ybiBMdW5kZW4sIEhlbnJ5IE1hc29uCiogX19Cb290YW5pbWF0aW9uOl9fIERpbWEgU2t2YXJza3lpCgpGb3JtZXIgQ29udHJpYnV0b3JzOgotLS0tLS0tLS0tLS0tLS0tLS0tLQoqIF9fRGV2aWNlczpfXyBFbnRyb3B5NTEyLCB4cGxvZHdpbGQKKiBfX0ZlYXR1cmVzOl9fIG1hZC1tdXJkb2NrLCB3eXNpZSwgQW5kZXIgV2ViYnMsIENoYWluc0RELCB4cGxvZHdpbGQK