PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPlNlc3Npb24gUGFja2FnZTwvdGl0bGU+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icml2ZXQuY3NzIj48bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc2LjEiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkFwYWNoZSBSaXZldCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IkFwYWNoZSBSaXZldCI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaW9kaXNwbGF5X3BhY2thZ2UuaHRtbCIgdGl0bGU9IkRJT0Rpc3BsYXkiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZm9ybS5odG1sIiB0aXRsZT0iRm9ybTogQW4gSFRNTCBGb3JtIEZpZWxkcyBHZW5lcmF0aW9uIFV0aWxpdHkiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ibmF2aGVhZGVyIj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+PHRoIGNvbHNwYW49IjMiIGFsaWduPSJjZW50ZXIiPlNlc3Npb24gUGFja2FnZTwvdGg+PC90cj48dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJsZWZ0Ij48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpb2Rpc3BsYXlfcGFja2FnZS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiBhbHQ9IlByZXYiPjwvYT6gPC90ZD48dGggd2lkdGg9IjYwJSIgYWxpZ249ImNlbnRlciI+oDwvdGg+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZm9ybS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiBhbHQ9Ik5leHQiPjwvYT48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIiB0aXRsZT0iU2Vzc2lvbiBQYWNrYWdlIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aHI+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJzZXNzaW9uX3BhY2thZ2UiPjwvYT5TZXNzaW9uIFBhY2thZ2U8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIHRpdGxlPSJJbnRyb2R1Y3Rpb24iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImlkcDgxMzUyMTYiPjwvYT5JbnRyb2R1Y3Rpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwIHN0eWxlPSJ3aWR0aDo5MCUiPgoJVGhpcyBpcyBzZXNzaW9uIG1hbmFnZW1lbnQgY29kZS4gIEl0IHByb3ZpZGVzIGFuIGludGVyZmFjZQoJdG8gYWxsb3cgeW91IHRvIGdlbmVyYXRlIGFuZCB0cmFjayBhIGJyb3dzZXIncyB2aXNpdCBhcyBhCgkic2Vzc2lvbiIsIGdpdmluZyB5b3UgYSB1bmlxdWUgc2Vzc2lvbiBJRCBhbmQgYW4gaW50ZXJmYWNlCglmb3Igc3RvcmluZyBhbmQgcmV0cmlldmluZyBkYXRhIGZvciB0aGF0IHNlc3Npb24gb24gdGhlCglzZXJ2ZXIuCiAgICAgIDwvcD48cCBzdHlsZT0id2lkdGg6OTAlIj4KCVRoaXMgaXMgYW4gYWxwaGEvYmV0YSByZWxlYXNlIC0tIGRvY3VtZW50YXRpb24gaXMgbm90IGluCglmaW5hbCBmb3JtLCBidXQgZXZlcnl0aGluZyB5b3UgbmVlZCBzaG91bGQgYmUgaW4gdGhpcyBmaWxlLgogICAgICA8L3A+PHAgc3R5bGU9IndpZHRoOjkwJSI+CglVc2luZyBzZXNzaW9ucyBhbmQgdGhlaXIgaW5jbHVkZWQgYWJpbGl0eSB0byBzdG9yZSBhbmQKCXJldHJpZXZlIHNlc3Npb24tcmVsYXRlZCBkYXRhIG9uIHRoZSBzZXJ2ZXIsIHByb2dyYW1tZXJzIGNhbgoJZ2VuZXJhdGUgbW9yZSBzZWN1cmUgYW5kIGhpZ2hlci1wZXJmb3JtYW5jZSB3ZWJzaXRlcy4gIEZvcgoJZXhhbXBsZSwgaGlkZGVuIGZpZWxkcyBkbyBub3QgaGF2ZSB0byBiZSBpbmNsdWRlZCBpbiBmb3JtcwoJKGFuZCB0aGUgcmlzayBvZiB0aGVtIGJlaW5nIG1hbmlwdWxhdGVkIGJ5IHRoZSB1c2VyCgltaXRpZ2F0ZWQpIHNpbmNlIGRhdGEgdGhhdCB3b3VsZCBiZSBzdG9yZWQgaW4gaGlkZGVuIGZpZWxkcwoJY2FuIG5vdyBiZSBzdG9yZWQgaW4gdGhlIHNlc3Npb24gY2FjaGUgb24gdGhlIHNlcnZlci4gIEZvcm1zCglhcmUgdGhlbiBmYXN0ZXIgc2luY2Ugbm8gaGlkZGVuIGRhdGEgaXMgdHJhbnNtaXR0ZWQgLS0KCWhpZGRlbiBmaWVsZHMgbXVzdCBiZSBzZW50IHR3aWNlLCBvbmNlIGluIHRoZSBmb3JtIHRvIHRoZQoJYnJvc3dlciBhbmQgb25jZSBpbiB0aGUgcmVzcG9uc2UgZnJvbSBpdC4KICAgICAgPC9wPjxwIHN0eWxlPSJ3aWR0aDo5MCUiPgoJUm9idXN0IGxvZ2luIHN5c3RlbXMsIGV0YywgY2FuIGJlIGJ1aWx0IG9uIHRvcCBvZiB0aGlzIGNvZGUuCiAgICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIiB0aXRsZT0iUmVxdWlyZW1lbnRzIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJyZXF1aXJlbWVudHMiPjwvYT5SZXF1aXJlbWVudHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwIHN0eWxlPSJ3aWR0aDo5MCUiPgoJICBDdXJyZW50bHkgaGFzIG9ubHkgYmVlbiB0ZXN0ZWQgd2l0aCBQb3N0Z3Jlc3FsLCBNeVNxbCBhbmQgT3JhY2xlLgoJICBBbGwgREIgaW50ZXJmYWNpbmcgaXMgZG9uZSB0aHJvdWdoIERJTywgdGhvdWdoLCBzbyBpdAoJICBzaG91bGQgYmUgcmVsYXRpdmVseSBlYXN5IHRvIGFkZCBzdXBwb3J0IGZvciBvdGhlcgoJICBkYXRhYmFzZXMuCgk8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiIgdGl0bGU9IlByZXBhcmluZyBUbyBVc2UgSXQiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImlkcDgxODMwODgiPjwvYT5QcmVwYXJpbmcgVG8gVXNlIEl0PC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cCBzdHlsZT0id2lkdGg6OTAlIj5DcmVhdGUgdGhlIHRhYmxlcyBpbiB5b3VyIFNRTCBzZXJ2ZXIuICBXaXRoIFBvc3RncmVzLAoJICBkbyBhIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPnBzcWwgd3d3PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj4gb3Igd2hhdGV2ZXIgREIgeW91CgkgIGNvbm5lY3QgYXMsIHRoZW4gYSBiYWNrc2xhc2gtaSBvbgoJICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnNlc3Npb24tY3JlYXRlLnNxbDwvY29kZT48L3A+PHAgc3R5bGU9IndpZHRoOjkwJSI+KElmIHlvdSBuZWVkIHRvIGRlbGV0ZSB0aGUgdGFibGVzLCB1c2UgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5zZXNzaW9uLWRyb3Auc3FsPC9jb2RlPik8L3A+PHAgc3R5bGU9IndpZHRoOjkwJSI+VGhlIHNlc3Npb24gY29kZSBieSBkZWZhdWx0IHJlcXVpcmVzIGEgRElPIGhhbmRsZQoJICBjYWxsZWQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPkRJTzwvY29kZT4gKHRoZSBuYW1lIG9mIHdoaWNoIGNhbiBiZQoJICBvdmVycmlkZGVuKS4gIFdlIGdldCBpdCBieSBkb2luZyBhPC9wPjxwcmUgc3R5bGU9ImJhY2tncm91bmQ6I2NjYzsgbWFyZ2luOiAyZXg7IG1hcmdpbi1yaWdodDogMTAlOyAgICAgICBwYWRkaW5nOiAxZXg7IGJvcmRlcjogZGFzaGVkIGJsYWNrIDFweCA7IHdoaXRlLXNwYWNlOiBwcmU7ICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgZm9udC1zaXplOiA5MCU7IiBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgoJICAgICAgUml2ZXRTZXJ2ZXJDb25mIENoaWxkSW5pdFNjcmlwdCAicGFja2FnZSByZXF1aXJlIERJTyIKCSAgICAgIFJpdmV0U2VydmVyQ29uZiBDaGlsZEluaXRTY3JpcHQgIjo6RElPOjpoYW5kbGUgUG9zdGdyZXNxbCBESU8gLXVzZXIgd3d3IgoJICAgIDwvcHJlPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIHRpdGxlPSJFeGFtcGxlIFVzYWdlIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJpZHA4MTg4NTQ0Ij48L2E+RXhhbXBsZSBVc2FnZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHAgc3R5bGU9IndpZHRoOjkwJSI+SW4geW91ciBodHRwZC5jb25mLCBhZGQ6PC9wPjxwcmUgc3R5bGU9ImJhY2tncm91bmQ6I2NjYzsgbWFyZ2luOiAyZXg7IG1hcmdpbi1yaWdodDogMTAlOyAgICAgICBwYWRkaW5nOiAxZXg7IGJvcmRlcjogZGFzaGVkIGJsYWNrIDFweCA7IHdoaXRlLXNwYWNlOiBwcmU7ICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgZm9udC1zaXplOiA5MCU7IiBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPlJpdmV0U2VydmVyQ29uZiBDaGlsZEluaXRTY3JpcHQgInBhY2thZ2UgcmVxdWlyZSBTZXNzaW9uOyBTZXNzaW9uIFNFU1NJT04iPC9wcmU+PHAgc3R5bGU9IndpZHRoOjkwJSI+CgkgIFRoaXMgdGVsbHMgUml2ZXQgeW91IHdhbnQgdG8gY3JlYXRlIGEgc2Vzc2lvbiBvYmplY3QgbmFtZWQKCSAgU0VTU0lPTiBpbiBldmVyeSBjaGlsZCBwcm9jZXNzIEFwYWNoZSBjcmVhdGVzLjwvcD48cCBzdHlsZT0id2lkdGg6OTAlIj4KCSAgWW91IGNhbiBjb25maWd1cmUgdGhlIHNlc3Npb24gYXQgdGhpcyBwb2ludCB1c2luZyBudW1lcm91cwoJICBrZXktdmFsdWUgcGFpcnMgKHdoaWNoIGFyZSBkZWZpbmVkIGxhdGVyIGluIHRoaXMgZG9jKS4KCSAgSGVyZSdzIGEgcXVpY2sgZXhhbXBsZTo8L3A+PHByZSBzdHlsZT0iYmFja2dyb3VuZDojY2NjOyBtYXJnaW46IDJleDsgbWFyZ2luLXJpZ2h0OiAxMCU7ICAgICAgIHBhZGRpbmc6IDFleDsgYm9yZGVyOiBkYXNoZWQgYmxhY2sgMXB4IDsgd2hpdGUtc3BhY2U6IHByZTsgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDkwJTsiIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Uml2ZXRTZXJ2ZXJDb25mIENoaWxkSW5pdFNjcmlwdCAicGFja2FnZSByZXF1aXJlIFNlc3Npb247IFNlc3Npb24gU0VTU0lPTiBcCiAgLWNvb2tpZUxpZmV0aW1lIDEyMCAtZGVidWdNb2RlIDEiPC9wcmU+PHAgc3R5bGU9IndpZHRoOjkwJSI+CgkgIFR1cm4gZGVidWdnaW5nIG9uIC1kZWJ1Z01vZGUgMSB0byBmaWd1cmUKCSAgb3V0IHdoYXQncyBnb2luZyBvbiAtLSBpdCdzIHJlYWxseSB1c2VmdWwsIGlmCgkgIHZlcmJvc2UuPC9wPjxwIHN0eWxlPSJ3aWR0aDo5MCUiPgoJICBJbiB5b3VyIC5ydnQgZmlsZSwgd2hlbiB5b3UncmUgZ2VuZXJhdGluZyB0aGUgJmx0O0hFQUQmZ3Q7CgkgIHNlY3Rpb246Cgk8L3A+PHByZSBzdHlsZT0iYmFja2dyb3VuZDojY2NjOyBtYXJnaW46IDJleDsgbWFyZ2luLXJpZ2h0OiAxMCU7ICAgICAgIHBhZGRpbmc6IDFleDsgYm9yZGVyOiBkYXNoZWQgYmxhY2sgMXB4IDsgd2hpdGUtc3BhY2U6IHByZTsgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDkwJTsiIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+U0VTU0lPTiBhY3RpdmF0ZTwvcHJlPjxwIHN0eWxlPSJ3aWR0aDo5MCUiPgoJICBBY3RpdmF0ZSBoYW5kbGVzIGV2ZXJ5dGhpbmcgZm9yIHlvdSB3aXRoIHJlc3BlY3QgdG8KCSAgY3JlYXRpbmcgbmV3IHNlc3Npb25zLCBhbmQgZm9yIGxvY2F0aW5nLCB2YWxpZGF0aW5nLCBhbmQKCSAgdXBkYXRpbmcgZXhpc3Rpbmcgc2Vzc2lvbnMuICBBY3RpdmF0ZSB3aWxsIGVpdGhlciBsb2NhdGUKCSAgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgb3IgY3JlYXRlIGEgbmV3IG9uZS4gIFNlc3Npb25zIHdpbGwKCSAgYXV0b21hdGljYWxseSBiZSByZWZyZXNoZWQgKHRoZWlyIGxpZmV0aW1lcyBleHRlbmRlZCkgYXMKCSAgYWRkaXRpb25hbCByZXF1ZXN0cyBhcmUgcmVjZWl2ZWQgZHVyaW5nIHRoZSBzZXNzaW9uLCBhbGwKCSAgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIGtleS12YWx1ZSBwYWlycyBjb250cm9sbGluZyB0aGUKCSAgc2Vzc2lvbiBvYmplY3QuCgk8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiIgdGl0bGU9IlVzaW5nIFNlc3Npb25zIEZyb20gWW91ciBDb2RlIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJpZHA4MTk1Mjk2Ij48L2E+VXNpbmcgU2Vzc2lvbnMgRnJvbSBZb3VyIENvZGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwIHN0eWxlPSJ3aWR0aDo5MCUiPlRoZSBtYWluIG1ldGhvZHMgeW91ciBjb2RlIHdpbGwgdXNlIGFyZTo8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48ZGw+PGR0PjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQgOyBmb250LWZhbWlseTptb25vc3BhY2UiPmlkPC9zcGFuPiA8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij4KCQlBZnRlciBkb2luZyBhIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPlNFU1NJT04gYWN0aXZhdGU8L3N0cm9uZz48L3NwYW4+PC9zcGFuPiwKCQl0aGlzIHdpbGwgcmV0dXJuIGEgMzItYnl0ZSBBU0NJSS1lbmNvZGVkIHJhbmRvbQoJCWhleGFkZWNpbWFsIHN0cmluZy4gIEV2ZXJ5IHRpbWUgdGhpcyBicm93c2VyIGNvbWVzCgkJdG8gdXMgd2l0aCBhIHJlcXVlc3Qgd2l0aGluIHRoZSB0aW1lb3V0IHBlcmlvZCwgdGhpcwoJCXNhbWUgc3RyaW5nIHdpbGwgYmUgcmV0dXJuZWQgKGFzc3VtaW5nIHRoZXkgaGF2ZQoJCWNvb2tpZXMgZW5hYmxlZCkuCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQgOyBmb250LWZhbWlseTptb25vc3BhY2UiPmlzX25ld19zZXNzaW9uPC9zcGFuPiA8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij5yZXR1cm5zIDEgaWYgaXQncyBhIG5ldyBzZXNzaW9uIG9yIDAgaWYgaXQgaGFzCgkJcHJldmlvdXNseSBleGlzdGVkIChpLmUuIGl0J3MgYSB6ZXJvIGlmIHRoaXMgcmVxdWVzdAoJCXJlcHJlc2VudHMgYSAicmV0dXJuIiBvciBzdWJzZXF1ZW50IHZpc2l0IHRvIGEKCQljdXJyZW50IHNlc3Npb24uKTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBjbGFzcz0iY21kc3lub3BzaXMiIHN0eWxlPSJ3aWR0aDo4MCUiPjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6I2NjY2NmZiA7IG1hcmdpbjoxZXggOyBwYWRkaW5nOi40ZXg7IHBhZGRpbmctbGVmdDogMC44ZXg7ICAgd29yZC1zcGFjaW5nOjFleCAiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIDsgZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5TRVNTSU9OIG5ld19zZXNzaW9uX3JlYXNvbjwvc3Bhbj4gPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJVGhpcyB3aWxsIHJldHVybiB3aHkgdGhpcyByZXF1ZXN0IGlzIHRoZSBmaXJzdAoJCXJlcXVlc3Qgb2YgYSBuZXcgc2Vzc2lvbiwgZWl0aGVyICJub19jb29raWUiIHNheWluZwoJCXRoZSBicm93c2VyIGRpZG4ndCBnaXZlIHVzIGEgc2Vzc2lvbiBjb29raWUsCgkJIm5vX3Nlc3Npb24iIGluZGljYXRpbmcgd2UgZ290IGEgY29va2llIGJ1dCBjb3VsZG4ndAoJCWZpbmQgaXQgaW4gb3VyIHNlc3Npb24gdGFibGUsIG9yICJ0aW1lb3V0IiB3aGVyZQoJCXRoZXkgaGFkIGEgY29va2llIGFuZCB3ZSBmb3VuZCB0aGUgbWF0Y2hpbmcgc2Vzc2lvbgoJCWJ1dCB0aGUgc2Vzc2lvbiBoYXMgdGltZWQgb3V0LgoJICAgICAgPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IGNsYXNzPSJjbWRzeW5vcHNpcyIgc3R5bGU9IndpZHRoOjgwJSI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZDojY2NjY2ZmIDsgbWFyZ2luOjFleCA7IHBhZGRpbmc6LjRleDsgcGFkZGluZy1sZWZ0OiAwLjhleDsgICB3b3JkLXNwYWNpbmc6MWV4ICI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQgOyBmb250LWZhbWlseTptb25vc3BhY2UiPlNFU1NJT04gc3RvcmU8L3NwYW4+ICA/PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48ZW0gY2xhc3M9InJlcGxhY2VhYmxlIj48Y29kZT5wYWNrYWdlTmFtZTwvY29kZT48L2VtPjwvc3Bhbj4/ID88c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZDsiPjxlbSBjbGFzcz0icmVwbGFjZWFibGUiPjxjb2RlPmtleTwvY29kZT48L2VtPjwvc3Bhbj4/ID88c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZDsiPjxlbSBjbGFzcz0icmVwbGFjZWFibGUiPjxjb2RlPmRhdGE8L2NvZGU+PC9lbT48L3NwYW4+PzwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPgoJCUdpdmVuIHRoZSBuYW1lIG9mIGEgcGFja2FnZSwgYSBrZXksIGFuZCBzb21lIGRhdGEuCgkJU3RvcmVzIHRoZSBkYXRhIGluIHRoZSByaXZldCBzZXNzaW9uIGNhY2hlIHRhYmxlLgoJICAgICAgPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IGNsYXNzPSJjbWRzeW5vcHNpcyIgc3R5bGU9IndpZHRoOjgwJSI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZDojY2NjY2ZmIDsgbWFyZ2luOjFleCA7IHBhZGRpbmc6LjRleDsgcGFkZGluZy1sZWZ0OiAwLjhleDsgICB3b3JkLXNwYWNpbmc6MWV4ICI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQgOyBmb250LWZhbWlseTptb25vc3BhY2UiPlNFU1NJT04gZmV0Y2g8L3NwYW4+ICA/PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48ZW0gY2xhc3M9InJlcGxhY2VhYmxlIj48Y29kZT5wYWNrYWdlTmFtZTwvY29kZT48L2VtPjwvc3Bhbj4/ID88c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZDsiPjxlbSBjbGFzcz0icmVwbGFjZWFibGUiPjxjb2RlPmtleTwvY29kZT48L2VtPjwvc3Bhbj4/PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJR2l2ZW4gYSBwYWNrYWdlIG5hbWUgYW5kIGEga2V5LCByZXR1cm4gdGhlIGRhdGEKCQlzdG9yZWQgYnkgdGhlIHN0b3JlIG1ldGhvZCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmCgkJbm9uZSB3YXMgc2V0LiAgKFN0YXR1cyBpcyBzZXQgdG8gdGhlIERJTyBlcnJvciB0aGF0CgkJb2NjdXJyZWQsIGl0IGNhbiBiZSBmZXRjaGVkIHVzaW5nIHRoZSBzdGF0dXMKCQltZXRob2QuKQoJICAgICAgPC9kaXY+PC9kaXY+PC9kZD48L2RsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIHRpdGxlPSJTZXNzaW9uIENvbmZpZ3VyYXRpb24gT3B0aW9ucyI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iaWRwODIxODk2MCI+PC9hPlNlc3Npb24gQ29uZmlndXJhdGlvbiBPcHRpb25zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cCBzdHlsZT0id2lkdGg6OTAlIj5UaGUgZm9sbG93aW5nIGtleS12YWx1ZSBwYWlycyBjYW4gYmUgc3BlY2lmaWVkIHdoZW4gYQoJICBzZXNzaW9uIG9iamVjdCAobGlrZSBTRVNTSU9OIGFib3ZlKSBpcyBjcmVhdGVkOjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPnNlc3Npb25MaWZldGltZTwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij5ob3cgbWFueSBzZWNvbmRzIHRoZSBzZXNzaW9uIHdpbGwgbGl2ZSBmb3IuCgkJNzIwMCA9PSAyIGhvdXJzCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+c2Vzc2lvblJlZnJlc2hJbnRlcnZhbDwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij4KCQlJZiBhIHJlcXVlc3QgaXMgcHJvY2Vzc2VkIGZvciBhIGJyb3dzZXIgdGhhdAoJCWN1cnJlbnRseSBoYXMgYSBzZXNzaW9uIGFuZCB0aGlzIGxvbmcgaGFzIGVsYXBzZWQKCQlzaW5jZSB0aGUgc2Vzc2lvbiB1cGRhdGUgdGltZSB3YXMgbGFzdCB1cGRhdGVkLAoJCXVwZGF0ZSBpdC4gIDkwMCA9PSAxNSBtaW51dGVzLiAgc28gaWYgYXQgbGVhc3QgMTUKCQltaW51dGVzIGhhcyBlbGFwc2VkIGFuZCB3ZSd2ZSBnb3R0ZW4gYSBuZXcgcmVxdWVzdAoJCWZvciBhIHBhZ2UsIHVwZGF0ZSB0aGUgc2Vzc2lvbiB1cGRhdGUgdGltZSwKCQlleHRlbmRpbmcgdGhlIHNlc3Npb24gbGlmZXRpbWUgKHNlc3Npb25zIHRoYXQgYXJlIGluCgkJdXNlIGtlZXAgZ2V0dGluZyBleHRlbmRlZCkuCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+Y29va2llTmFtZTwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij48L2Rpdj4KCSAgICAgIG5hbWUgb2YgdGhlIGNvb2tpZSBzdG9yZWQgb24gdGhlIHVzZXIncyB3ZWIgYnJvd3NlcgoJICAgICAgZGVmYXVsdCByaXZldFNlc3Npb24KCSAgICA8L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+ZGlvT2JqZWN0PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPgoJCVRoZSBuYW1lIG9mIHRoZSBESU8gb2JqZWN0IHdlJ2xsIHVzZSB0byBhY2Nlc3MgdGhlCgkJZGF0YWJhc2UgKGRlZmF1bHQgRElPKQoJICAgICAgPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPmdjUHJvYmFiaWxpdHk8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJVGhlIHByb2JhYmlsaXR5IHRoYXQgZ2FyYmFnZSBjb2xsZWN0aW9uIHdpbGwgb2NjdXIKCQlpbiBwZXJjZW50LiAgKGRlZmF1bHQgMSUsIGkuZS4gMSk8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+Z2NNYXhMaWZldGltZTwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij50aGUgbnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2gKCQlkYXRhIHdpbGwgYmUgc2VlbiBhcyAiZ2FyYmFnZSIgYW5kIGNsZWFuZWQgdXAgLS0KCQlkZWZhdWx0cyB0byAxIGRheSAoODY0MDApPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPnJlZmVyZXJDaGVjazwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij5UaGUgc3Vic3RyaW5nIHlvdSB3YW50IHRvIGNoZWNrIGVhY2gKCQlIVFRQIHJlZmVyZXIgZm9yLiAgSWYgdGhlIHJlZmVyZXIgd2FzIHNlbnQgYnkgdGhlCgkJYnJvd3NlciBhbmQgdGhlIHN1YnN0cmluZyBpcyBub3QgZm91bmQsIHRoZSBzZXNzaW9uCgkJd2lsbCBiZSBkZWxldGVkLiAobm90IGNvZGVkIHlldCk8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+ZW50cm9weUZpbGU8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+VGhlCgkJbmFtZSBvZiBhIGZpbGUgdGhhdCByYW5kb20gYmluYXJ5IGRhdGEgY2FuIGJlIHJlYWQKCQlmcm9tLiAgKDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L2Rldi91cmFuZG9tPC9jb2RlPikgRGF0YSB3aWxsCgkJYmUgdXNlZCBmcm9tIHRoaXMgZmlsZSB0byBoZWxwIGdlbmVyYXRlIGEKCQlzdXBlci1oYXJkLXRvLWd1ZXNzIHNlc3Npb24gSUQuPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPmVudHJvcHlMZW5ndGg8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+VGhlIG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlCgkJcmVhZCBmcm9tIHRoZSBlbnRyb3B5IGZpbGUuICBJZiAwLCB0aGUgZW50cm9weSBmaWxlCgkJd2lsbCBub3QgYmUgcmVhZCAoZGVmYXVsdCAwKTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj5zY3JhbWJsZUNvZGU8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJU2V0IHRoZSBzY3JhbWJsZSBjb2RlIHRvIHNvbWV0aGluZyB1bmlxdWUgZm9yIHRoZQoJCXNpdGUgb3IgeW91ciBhcHAgb3Igd2hhdGV2ZXIsIHRvIHNsaWdodGx5IGluY3JlYXNlCgkJdGhlIHVuZ3Vlc3NhYmlsaXR5IG9mIHNlc3Npb24gaWRzIChkZWZhdWx0ICJzb21lCgkJcmFuZG9tIHN0cmluZyIpPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPmNvb2tpZUxpZmV0aW1lPC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPlRoZSBsaWZldGltZSBvZiB0aGUgY29va2llIGluCgkJbWludXRlcy4gIDAgbWVhbnMgdW50aWwgdGhlIGJyb3dzZXIgaXMgY2xvc2VkIChJCgkJdGhpbmspLiAoZGVmYXVsdCAwKTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj5jb29raWVQYXRoPC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPlRoZQoJCXdlYnNlcnZlciBzdWJwYXRoIHRoYXQgdGhlIHNlc3Npb24gY29va2llIGFwcGxpZXMgdG8KCQkoZGVmYXVsdHMgdG8KCQk8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi88L2NvZGU+KTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj5jb29raWVTZWN1cmU8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+U3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvb2tpZSBzaG91bGQKCQlvbmx5IGJlIHNlbnQgb3ZlciBzZWN1cmUgY29ubmVjdGlvbnMsIDAgPSBhbnksIDEgPQoJCXNlY3VyZSBjb25uZWN0aW9ucyBvbmx5IChkZWZhdWx0CgkJMCk8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+c2Vzc2lvblRhYmxlPC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPlRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0aGF0IHNlc3Npb24KCQlpbmZvIHdpbGwgYmUgc3RvcmVkIGluIChkZWZhdWx0CgkJPGNvZGUgY2xhc3M9InZhcm5hbWUiPnJpdmV0X3Nlc3Npb248L2NvZGU+KTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj5zZXNzaW9uQ2FjaGVUYWJsZTwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij5UaGUgbmFtZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucwoJCWNhY2hlZCBzZXNzaW9uIGRhdGEgKGRlZmF1bHQKCQk8Y29kZSBjbGFzcz0idmFybmFtZSI+cml2ZXRfc2Vzc2lvbl9jYWNoZTwvY29kZT4pPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPmRlYnVnTW9kZTwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij5TZXQKCQlkZWJ1ZyBtb2RlIHRvIDEgdG8gdHJhY2UgdGhyb3VnaCBhbmQgc2VlIHRoZSBzZXNzaW9uCgkJb2JqZWN0IGRvIGl0cyB0aGluZyAoZGVmYXVsdCAwKTwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj5kZWJ1Z0ZpbGU8L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+VGhlCgkJZmlsZSBoYW5kbGUgdGhhdCBkZWJ1Z2dpbmcgbWVzc2FnZXMgd2lsbCBiZSB3cml0dGVuCgkJdG8gKGRlZmF1bHQKCQk8Y29kZSBjbGFzcz0idmFybmFtZSI+c3Rkb3V0PC9jb2RlPikKCSAgICAgIDwvZGl2PjwvZGl2PjwvZGQ+PC9kbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIiB0aXRsZT0iU2Vzc2lvbiBNZXRob2RzIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJpZHA4MjQ2MzA0Ij48L2E+U2Vzc2lvbiBNZXRob2RzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cCBzdHlsZT0id2lkdGg6OTAlIj4KCSAgVGhlIGZvbGxvd2luZyBtZXRob2RzIGNhbiBiZSBpbnZva2VkIHRvIGZpbmQgb3V0CgkgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHNlc3Npb24sIHN0b3JlIGFuZCBmZXRjaAoJICBzZXJ2ZXIgZGF0YSBpZGVudGlmaWVkIHdpdGggdGhpcyBzZXNzaW9uLCBldGM6Cgk8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48ZGw+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBjbGFzcz0iY21kc3lub3BzaXMiIHN0eWxlPSJ3aWR0aDo4MCUiPjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6I2NjY2NmZiA7IG1hcmdpbjoxZXggOyBwYWRkaW5nOi40ZXg7IHBhZGRpbmctbGVmdDogMC44ZXg7ICAgd29yZC1zcGFjaW5nOjFleCAiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIDsgZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5TRVNTSU9OIHN0YXR1czwvc3Bhbj4gPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJUmV0dXJuIHRoZSBzdGF0dXMgb2YgdGhlIGxhc3Qgb3BlcmF0aW9uCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTiBpZDwvc3Bhbj4gPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJR2V0IHRoZSBzZXNzaW9uIElEIG9mIHRoZSBjdXJyZW50IGJyb3dzZXIuICBSZXR1cm5zCgkJYW4gZW1wdHkgc3RyaW5nIGlmIHRoZXJlJ3Mgbm8gc2Vzc2lvbiAod2lsbCBub3QKCQloYXBwZW4gaXMgU0VTU0lPTiBhY3RpdmF0ZSBoYXMgYmVlbiBpc3N1ZWQuKQoJICAgICAgPC9kaXY+PC9kaXY+PC9kZD48ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjwvc3Bhbj48L2R0PjxkZD48ZGl2IHN0eWxlPSJwYWRkaW5nOjQgOyBtYXJnaW4tdG9wOjMgOyAgbWFyZ2luLWJvdHRvbTozIDsgd2lkdGg6NzUlIj48ZGl2IGNsYXNzPSJjbWRzeW5vcHNpcyIgc3R5bGU9IndpZHRoOjgwJSI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZDojY2NjY2ZmIDsgbWFyZ2luOjFleCA7IHBhZGRpbmc6LjRleDsgcGFkZGluZy1sZWZ0OiAwLjhleDsgICB3b3JkLXNwYWNpbmc6MWV4ICI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQgOyBmb250LWZhbWlseTptb25vc3BhY2UiPlNFU1NJT04gbmV3X3Nlc3Npb25fcmVhc29uPC9zcGFuPiA8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEuNWV4IDsgcGFkZGluZyAuNWV4Ij4KCQlSZXR1cm5zIHRoZSByZWFzb24gd2h5IHRoZXJlIHdhc24ndCBhIHByZXZpb3VzCgkJc2Vzc2lvbiwgZWl0aGVyICJub19jb29raWUiIHNheWluZyB0aGUgYnJvd3NlcgoJCWRpZG4ndCBnaXZlIHVzIGEgc2Vzc2lvbiBjb29raWUsICJub19zZXNzaW9uIgoJCWluZGljYXRpbmcgd2UgZ290IGEgY29va2llIGJ1dCBjb3VsZG4ndCBmaW5kIGl0IGluCgkJdGhlIHNlc3Npb24gdGFibGUsIG9yICJ0aW1lb3V0IiB3aGVuIHdlIGhhZCBhIGNvb2tpZQoJCWFuZCBhIHNlc3Npb24gYnV0IHRoZSBzZXNzaW9uIGhhZCB0aW1lZCBvdXQuCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTiBzdG9yZTwvc3Bhbj4gID88c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlOyBmb250LXdlaWdodDogYm9sZDsiPjxlbSBjbGFzcz0icmVwbGFjZWFibGUiPjxjb2RlPnBhY2thZ2VOYW1lPC9jb2RlPjwvZW0+PC9zcGFuPj8gPzxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2U7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PGVtIGNsYXNzPSJyZXBsYWNlYWJsZSI+PGNvZGU+a2V5PC9jb2RlPjwvZW0+PC9zcGFuPj8gPzxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2U7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PGVtIGNsYXNzPSJyZXBsYWNlYWJsZSI+PGNvZGU+ZGF0YTwvY29kZT48L2VtPjwvc3Bhbj4/PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJR2l2ZW4gYSBwYWNrYWdlIG5hbWUsIGEga2V5IHN0cmluZywgYW5kIGEgZGF0YQoJCXN0cmluZywgc3RvcmUgdGhlIGRhdGEgaW4gdGhlIHJpdmV0IHNlc3Npb24KCQljYWNoZS4KCSAgICAgIDwvZGl2PjwvZGl2PjwvZGQ+PGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48L3NwYW4+PC9kdD48ZGQ+PGRpdiBzdHlsZT0icGFkZGluZzo0IDsgbWFyZ2luLXRvcDozIDsgIG1hcmdpbi1ib3R0b206MyA7IHdpZHRoOjc1JSI+PGRpdiBjbGFzcz0iY21kc3lub3BzaXMiIHN0eWxlPSJ3aWR0aDo4MCUiPjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6I2NjY2NmZiA7IG1hcmdpbjoxZXggOyBwYWRkaW5nOi40ZXg7IHBhZGRpbmctbGVmdDogMC44ZXg7ICAgd29yZC1zcGFjaW5nOjFleCAiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIDsgZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5TRVNTSU9OIGZldGNoPC9zcGFuPiAgPzxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2U7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PGVtIGNsYXNzPSJyZXBsYWNlYWJsZSI+PGNvZGU+cGFja2FnZU5hbWU8L2NvZGU+PC9lbT48L3NwYW4+PyA/PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48ZW0gY2xhc3M9InJlcGxhY2VhYmxlIj48Y29kZT5rZXk8L2NvZGU+PC9lbT48L3NwYW4+PzwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPgoJCUdpdmVuIGEgcGFja2FnZSBuYW1lIGFuZCBhIGtleSwgcmV0dXJuIHRoZSBkYXRhCgkJc3RvcmVkIGJ5IHRoZSBzdG9yZSBtZXRob2QsIG9yIGFuIGVtcHR5IHN0cmluZyBpZgoJCW5vbmUgd2FzIHNldC4gIFN0YXR1cyBpcyBzZXQgdG8gdGhlIERJTyBlcnJvciB0aGF0CgkJb2NjdXJyZWQsIGl0IGNhbiBiZSBmZXRjaGVkIHVzaW5nIHRoZSBzdGF0dXMKCQltZXRob2QuCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTiBkZWxldGU8L3NwYW4+IDwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MS41ZXggOyBwYWRkaW5nIC41ZXgiPgoJCUdpdmVuIGEgdXNlciBJRCBhbmQgbG9va2luZyBhdCB0aGVpciBJUCBhZGRyZXNzIHdlCgkJaW5oZXJpdGVkIGZyb20gdGhlIGVudmlyb25tZW50ICh0aGFua3MsIEFwYWNoZSksCgkJcmVtb3ZlIHRoZW0gZnJvbSB0aGUgc2Vzc2lvbiB0YWJsZS4gICh0aGUgc2Vzc2lvbgoJCXRhYmxlIGlzIGhvdyB0aGUgc2VydmVyIHJlbWVtYmVycyBzdHVmZiBhYm91dAoJCXNlc3Npb25zKS4gSWYgdGhlIHNlc3Npb24gSUQgd2FzIG5vdCBzcGVjaWZpZWQgdGhlCgkJY3VycmVudCBzZXNzaW9uIGlzIGRlbGV0ZWQuCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjxkdD48c3BhbiBjbGFzcz0idGVybSI+PC9zcGFuPjwvZHQ+PGRkPjxkaXYgc3R5bGU9InBhZGRpbmc6NCA7IG1hcmdpbi10b3A6MyA7ICBtYXJnaW4tYm90dG9tOjMgOyB3aWR0aDo3NSUiPjxkaXYgY2xhc3M9ImNtZHN5bm9wc2lzIiBzdHlsZT0id2lkdGg6ODAlIj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiNjY2NjZmYgOyBtYXJnaW46MWV4IDsgcGFkZGluZzouNGV4OyBwYWRkaW5nLWxlZnQ6IDAuOGV4OyAgIHdvcmQtc3BhY2luZzoxZXggIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCA7IGZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+U0VTU0lPTiBhY3RpdmF0ZTwvc3Bhbj4gPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxLjVleCA7IHBhZGRpbmcgLjVleCI+CgkJRmluZCBhbmQgdmFsaWRhdGUgdGhlIHNlc3Npb24gSUQgaWYgdGhleSBoYXZlIG9uZS4KCQlJZiB0aGV5IGRvbid0IGhhdmUgb25lIG9yIGl0IGlzbid0IHZhbGlkICh0aW1lZCBvdXQsCgkJZXRjKSwgY3JlYXRlIGEgc2Vzc2lvbiBhbmQgZHJvcCBhIGNvb2tpZSBvbgoJCXRoZW0uCgkgICAgICA8L2Rpdj48L2Rpdj48L2RkPjwvZGw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiIgdGl0bGU9IkdldHRpbmcgQWRkaXRpb25hbCBSYW5kb21uZXNzIEZyb20gVGhlIEVudHJvcHkgRmlsZSI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iaWRwODI3MzQwOCI+PC9hPkdldHRpbmcgQWRkaXRpb25hbCBSYW5kb21uZXNzIEZyb20gVGhlIEVudHJvcHkgRmlsZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHByZSBzdHlsZT0iYmFja2dyb3VuZDojY2NjOyBtYXJnaW46IDJleDsgbWFyZ2luLXJpZ2h0OiAxMCU7ICAgICAgIHBhZGRpbmc6IDFleDsgYm9yZGVyOiBkYXNoZWQgYmxhY2sgMXB4IDsgd2hpdGUtc3BhY2U6IHByZTsgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDkwJTsiIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Uml2ZXRTZXJ2ZXJDb25mIENoaWxkSW5pdFNjcmlwdCAiU2Vzc2lvbiBTRVNTSU9OIC1lbnRyb3B5RmlsZSAvZGV2L3VyYW5kb20gXAogIC1lbnRyb3B5TGVuZ3RoIDEwIC1kZWJ1Z01vZGUgMSI8L3ByZT48cCBzdHlsZT0id2lkdGg6OTAlIj4KCSAgVGhpcyBvcHRpb25zIHNheSB3ZSB3YW50IHRvIGdldCByYW5kb21uZXNzIGZyb20gYW4gZW50cm9weQoJICBmaWxlIChyYW5kb20gZGF0YSBwc2V1ZG8tZGV2aWNlKSBvZiAvZGV2L3VyYW5kb20sIHRvIGdldCB0ZW4KCSAgYnl0ZXMgb2YgcmFuZG9tIGRhdGEgZnJvbSB0aGF0IGVudHJvcHkgZGV2aWNlLCBhbmQgdG8gdHVybgoJICBvbiBkZWJ1ZyBtb2RlLCB3aGljaCB3aWxsIGNhdXNlIHRoZSBTRVNTSU9OIG9iamVjdCB0byBvdXRwdXQKCSAgYWxsIG1hbm5lciBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gYXMgaXQgZG9lcyBzdHVmZi4gIFRoaXMKCSAgaGFzIGJlZW4gdGVzdGVkIG9uIEZyZWVCU0QgYW5kIGFwcGVhcnMgdG8gd29yay4KICAgICAgPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im5hdmZvb3RlciI+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPjx0cj48dGQgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlvZGlzcGxheV9wYWNrYWdlLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIGFsdD0iUHJldiI+PC9hPqA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj6gPC90ZD48dGQgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJmb3JtLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIGFsdD0iTmV4dCI+PC9hPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+RElPRGlzcGxheaA8L3RkPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIGFsdD0iSG9tZSI+PC9hPjwvdGQ+PHRkIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPqBGb3JtOiBBbiBIVE1MIEZvcm0gRmllbGRzIEdlbmVyYXRpb24gVXRpbGl0eTwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PjwvYm9keT48L2h0bWw+Cg==